Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Навчально-методичний посібник до виконання лабораторних робіт з дисципліни «Основи проектування баз знань»

Навчально-методичний посібник до виконання лабораторних робіт з дисципліни «Основи проектування баз знань»




Сторінка3/4
Дата конвертації03.06.2017
Розмір0.96 Mb.
ТипНавчально-методичний посібник
1   2   3   4
§3. ПРОЕКТУВАННЯ СИСТЕМ НЕЧІТКОГО ВИВОДУ СУГЕНО
Мета роботи: освоїти методику проектування системи нечіткого виводу на основі розробки та використання баз знань продукційних правил з використанням алгоритму Сугено. Провести порівняльний аналіз алгоритмів Мамдані і Сугено.
3.1 Основні поняття

Розглянемо основні етапи проектування систем нечіткого виводу за алгоритмом Сугено на прикладі задачі візуалізації поверхні, яка реалізує залежність µ § на відрізку µ § (рис.2.1). Відмінність СНВ алгоритму Сугено полягає у проектуванні вихідних змінних. Формування бази правил систем нечіткого виводу наступного формату:


Правило <#>: Якщо «змінна_1=значення_А» і «змінна_2=значення_В» Тоді «µ §
або
Правило <#>: Якщо «змінна_1 = значення_А» і «змінна_2 = значення_В» Тоді «змінна_y=значення_С»
3.2 Метод проектування та використання систем
за алгоритмом Сугено

Моделювання заданої поверхні будемо реалізовувати за допомогою наступних правил бази знань:

Якщо х1 та х2 низькі, тоді µ §

Якщо х1 низьке, тоді µ §

Якщо х1 низьке і х2 вище середнього, тоді µ §

Якщо х1 та х2 високі, тоді µ §

Якщо х2 низьке, тоді µ §

Якщо х1 високе, тоді µ §

Якщо х2 високе, тоді µ §

Якщо х1 низьке і х2 високе, тоді µ §

Якщо х1 середнє і х2 середнє, тоді µ §

Тоді проектування системи нечіткого виводу типу Сугено лежить у виконанні наступної послідовності кроків.

Крок 1. Для завантаження основного fis-редактору надрукуємо слово fuzzy у командному рядку Mathlab.

Крок 2. Оберемо тип системи. Для цього в меню File в підменю New fisЎK оберемо команду Sugeno.

Крок 3. Додамо другу вхідну змінну. Для цього в меню Edit оберемо команду Add input.

Крок 4. Перейменуємо першу вхідну змінну. Для цього зробимо одне натиснення лівої кнопки миші на блоці input1, введемо нове позначення x1 в полі редагування імені поточної змінної і натиснемо .

Крок 5. Перейменуємо другу вхідну змінну. Для цього зробимо одне натиснення лівою кнопкою миші на блоці input2, введемо нове позначення x2 в полі редагування імені поточної змінної і натиснемо .

Крок 6. Перейменуємо вихідну змінну. Для цього зробимо одне натиснення лівою кнопкою миші на блоці output1, введемо нове позначення y в полі редагування імені поточної змінної і натиснемо .

Крок 7. Задамо ім’я системи. Для цього в меню File в підменю Export оберемо команду To disk і введемо імя файла, наприклад, FirstSugeno.

Крок 8. Перейдемо в редактор функций належності. Для цього зробимо швидке подвійне натиснення лівої кнопки миші на блоці x1.

Крок 9. Зададимо діапазон змін змінної x1. Для цього надрукуємо 0 4 в полі Range і натиснемо (див. рис.3.1).

Крок  10. Задамо функції належності змінної µ §. Для лінгвістичної оцінки цієї змінної будемо використовувати 3 терми з трикутними функціями належності, які встановлені за замовченням. Задамо найменування термів змінної µ §. Для цього робимо одне натиснення лівою кнопкою миші по графіку першої функції належності.

Крок  11. Аналогічно задамо функції належності змінної µ §. Для лінгвістичної оцінки цієї змінної будемо використовувати 4 терми з трикутними функціями належності. Для цього активізуємо змінну µ § за допомогою натиснення лівої кнопки миші на блоці µ §. Задамо діапазон змін µ §. Для цього надрукуємо 0 4 в полі Range і натиснемо . Задамо найменування 4 термів (наприклад, L Низький, A Середній, HA Вище середнього, H Високий).

Рис 3.1. Функції належності змінної µ §

Крок 12. Задамо лінійні залежності між входами і виходом, яке наведене в базі знань. Для цього активуємо змінну y за допомогою натиснення лівої кнопки на блоці y. В правому верхньому куті можуть з’явитися позначення функцій належності, кожна з яких відповідає однієї лінійної залежності між входами і виходом.

Лінійно незалежні вектори (лінійна незалежність множини векторів) - множина векторів, які не утворюють тривіальних лінійних комбінацій рівних нулю.

В базі знань, яка наведена на початку файлу, вказані 6 різних залежностей: y=-10; y=7; y=3,75µ §-10; y=4µ §-10;

y=-3,75µ § 15; y=-3,75µ § 15. Додамо ще необхідну кількість функцій залежності шляхом обирання команди Add MfsЎK меню Edit.

Рис 3.2. Вікно лінійних залежностей «входи-вихід»
Крок  13. Задамо найменування і параметри цих залежностей. Для цього робимо одне натиснення лівою кнопкою миші по імені першої залежності mf1. Потім друкуємо назву залежності, наприклад y=-10, в полі Name, і встановлюємо тип залежності ЁC константа шляхом обирання опції Сonstant в меню Type. Після цього вводимо значення параметру ЁC -10 в полі Params. Аналогічну процедуру робимо для другої змінної y=7.

Для третьої функції mf3 введемо найменування, наприклад, y=3.75x1-10. Потім вкажемо лінійний тип залежності шляхом вибору опції Linear в меню Type і введемо параметри залежності  3.75 0 -10 в полі Params. Для лінійної залежності порядок параметрів наступний: перший параметр ЁC коєфіцієнт при першій змінній, другий ЁC при дрцгій і т.д., останній параметр ЁC вільний член залежності. Таким ж чином введемо назви і параметри для всіх 6 функцій належності змінної y.

В результаті отримуємо графічне вікно, яке представлено на рис. 3.2.

Рис 3.3. Нечітка база знань для системи типу Сугено

Крок  14. Перейдемо в редактор бази знань RuleEditor. Для цього оберемо в меню Edit команду Edit rules.... і введемо правила. Для вводу правила необхідно обрати відповідну комбінацію термів і залежностей і натиснути кнопку Add rule. На рис. 3.3 зображене вікно редактору бази знань після введення усіх 6 правил.

На рис. 3.4 приведено вікно візуалізації нечіткого логічного виводу. Це вікно активується командою View rules... меню View. В полі Input вказуються значення вхідних змінних, для яких виконується логичний вивід. Як можна побачити з рисунку, значення вихідної змінної, розраховується як середнє зважене значення результатів виходу за кожним правилом.

Рис. 3.4 Візуалізація нечіткого логічного виводу для системи типу Сугено

На рис. 3.5 приведена поверхня “входи-вихід”, яка відповідає синтезованій нечіткій системі. Для виведення цього вікна необхідно використати команду View surface... меню View. Порівнюючи цю поверхню і поверхню на рис. 1, можна зробити висновок, що нечіткі правила достатньо добре описують складну лінійну залежність. При цьому, модель типу Сугено більш точна. Перевага моделей типу Мамдані полягає у тому, що правила бази знань є прозорі і інтуїтивно зрозумілі, таді як для моделей типу Сугэно не завжди ясно які лінійні залежності «входи-вихід» необхідно використовувати.

Рис 3.5. Поверхня “вхід-вихід” для системи алгоритму Сугено
3.3 Завдання для самостійної роботи.

1. Створити систему нечіткого виводу Сугено, яка моделює залежність µ § при µ §.

2. Створити систему нечіткого виводу Сугено, яка відтворює поверхню µ § при µ §

3. Створити систему нечіткого виводу Сугено, яка відтворює поверхню µ § при µ §


§4. ПРОЕКТУВАННЯ СИСТЕМ КЕРУВАННЯ НА ОСНОВІ АЛГОРИТМІВ
НЕЧІТКОГО ВИВОДУ ТА БАЗ ЗНАНЬ НЕЧІТКИХ ПРОДУКЦІЙ
4.1 основні поняття

Одним з основних напрямів використання СНВ є розв’язування задач керування. Під системою керування [5] будемо розуміти з’єднання µ § елементів µ § виду

µ §µ §

Рис. 4.1 Функціональний блок системи керування


в єдину конфігурацію, яка забезпечує їм необхідну поведінку для досягнення поставленої цілі. Зв'язок між входом (вектор-функцією µ §) і виходом (вектор-функцією µ §) в елементі системи (функціональному блоці) ЁC це перетворення одного сигналу (причини) в інший (наслідок). Вся система керування (СК) теж може бути представлення аналогічною схемою:

µ §


Рис. 4.2. Загальна схема системи керування
СК поділяють на розімкнені і замкнені. В розімкненій системі існує елемент ЁC виконуючий пристрій, який визначає необхідне значення вхідного сигналу µ § («приймає рішення» про необхідний вплив на систему) в залежності від бажаного (необхідного) значення виходу µ §:
µ §

Рис. 4.3. Загальна схема розімкнутої системи керування


В СК елемент, який «приймає рішення» будемо називати активним. Якщо система представляє собою конфігурацію активних елементів, її називають організаційною системою управління (ОСУ). Тоді в систему може входити елемент ЁC координатор, який визначає вхідні сигнали активних елементів.

В замкненій системі існує зворотній зв’язок. Окремі елементи вхідного вектора µ §, які можна назвати керуючими змінними, залежать від різниці між бажаним значенням вихідних величин і їх реальним значенням µ § (негативний зворотній зв’язок) або від суми цих значень µ § (позитивний зворотній зв’язок):

µ §

Рис. 4.4. Система керування зі зворотнім зв’язком


В якості прикладу розімкненої СУ може служити електронагрівальний пристрій, який керується кнопками завдання бажаної інтенсивності нагріву кімнати. Тоді вхідним сигналом є натиснення відповідної кнопки, а виходом ЁC температура нагріву.

Як замкнену систему управління можна розглянути керування автомобілем на дорозі. Тут в якості вхідних елементів виступають кут повороту руля та сила натискання педалей, в якості вихідних елементів виступають швидкість та напрямок руху автомобіля, а в якості вимірювання в зворотньому зв’язку виступають органи зору водія, які спостерігають напрямок траси і дозволені швидкості.

Під керуванням (управлінням) системою будемо розуміти таке визначення вхідного сигналу µ §, яке формує необхідну поведінку (зміну станів µ §) системи для досягнення бажаних значень µ §.

Побудова нечіткої моделі системи керування базується на формальному представленні характеристик об’єкту в термінах лінгвістичних змінних.

В системі керування в якості лінгвістичних змінних розглядаються змінні входу і виходу системи. Ціль керування полягає у визначенні значень керуючих змінних (вхідних) змінних, реалізація яких забезпечує бажану поведінку чи бажаний стан об’єкту керування. Вихідні змінні можуть знову поступати на вхід системи, утворюючи зворотній зв'язок, як показано на рис.4.5.
µ §
Рис 4.5. Архітектура компонентів процесу нечіткого керування
Таким чином, нечітка модель системи керування може бути описана за допомогою апарату системи нечіткого виводу.
4.2 Методика розробки та використання системи
нечіткого виводу для розв’язування задачі керування
Розглянемо етапи побудови системи нечіткого виводу на основі прикладу побудови системи нечіткого керування процесом прийому на роботу у фірму нових співробітників. Нехай, у фірми є дві вакансії: програміст і системний адміністратор.

Систе́мний адміністра́тор (від англ. system administrator, systems administrator) - працівник, посадові обов’язки якого передбачають забезпечення роботи комп’ютерної техніки, комп’ютерної мережі і програмного забезпечення в організації.

Тому СНВ має дві вихідні лінгвістичні змінні µ § з множинами-носіями у вигляді відрізків µ §, які інтерпретується як імовірність прийняття деякої особи на роботу відповідно на першу чи другу посаду. Вхідні змінні мають характеризувати особу, яка подала резюме про себе в фірми з метою влаштуватися на роботу. Наприклад, µ § - досвід роботи в сфері комп’ютерних технологій, µ § - освіта, µ § - ділові якості спілкування.

Менеджер по кадрам даної фірми розробив такі прості правила прийому на роботу:

Якщо досвід роботи високий і професійна освіта висока, то ймовірність прийняття на посаду програміста висока

Якщо досвід роботи високий і ділові якості гарні, то ймовірність прийняття на посаду системного адміністратора висока

Якщо досвід роботи і освіта високі, а ділові якості гарні, то ймовірність прийняття на роботу даної особи висока на обидві посади

Якщо досвід роботи невеликий, але освіта та ділові якості високі, тоді можливо прийняти на роботу таку особу в якості системного адміністратора

Якщо особа не має освіти і досвіду роботи, тоді прийняття її на роботу малоймовірне на обидві посади

Якщо професійна освіта висока, але досвід роботи і ділові якості невеликі тоді можна прийняти цю особу на посаду програміста і малоймовірно її прийняти на посаду системного адміністратора

Якщо освіти у особи немає, тоді малоймовірне її прийняття на роботу

Якщо особа не має досвіду роботи і її ділові якості не високі, тоді малоймовірне її прийняття на роботу на обидві посади

Якщо освіта особи висока, досвід роботи невеликий, то можливо прийняття її на роботу на посаду програміста

Якщо особа не має освіті і ділових якостей, то прийняття її на роботу малоймовірне на обидві посади

Якщо особа не має освіти, досвід і її ділові якості невисокі, тоді малоймовірне її прийняття на роботу на обидві посади

Якщо ділові якості особи невеликі, освіта професійна і досвід роботи високі, тоді малоймовірно її прийняти на посаду системного адміністратора і можливо її прийняти на посаду програміста.


Для розробки системи слід виконати наступні кроки.
Крок 1. Визначити вхідні і вихідні змінні. Очевидно, що для СНВ у якості вхідних змінних потрібно взяти

досвід роботи µ § з множиною-носієм від 0 до 30 років;

освіту особи µ §з множиною-носієм, наприклад, µ §;

ділові якості µ § з множиною-носієм µ §.

Далі слід задати терми цих змінних. Наприклад, для вхідної змінної досіду роботи можуть бути задані наступні терми: «немає», «невеликий», «високий»

Крок 2. Фазифікація вхідних змінних. На цьому кроці слід задати функції належності для всіх термів вхідних змінних, а в якості області визначення ЁC їх множини-носії

Крок 3.

Область визначення (старіший термін - область задавання[джерело?]) - множина допустимих значень аргументу функції. Позначатиметься як D(y), якщо вказується область визначення функції y=f(x).

Задати функції належності термів вихідних змінних (ймовірність прийняття на посаду)

Крок 4. Ввести правила у базу правил.

Крок 5. Використання моделі. Для цього розглянути приклад роботи системи керування при різних значеннях вхідної змінної. Для цього слід відкрити вікно правил µ §і переглянути можливі значення вихідної змінної прийняття рішення про прийом на роботу в залежності від зміни значень вхідних змінних.

Рис. 4.6. Приклад термів змінної µ § - досвіду роботи

Рис 4.7. Вікно дії правил

Рис 4.8 Поверхня СНВ задачі прийняття на роботу особи.

4.3 Завдання для самостійної роботи

Завдання 1. Побудова системи керування діями офіцера дорожньої служби

За допомогою СНВ алгоритму Мамдані побудувати базу знань, яка б консультувала офіцера дорожньої міліції що робити з машиною, яка наближається до контрольного пункту (пропустити, зупинити, перевірити документи, штрафувати або забирати права) в залежності від швидкості автомобіля та погодних умов, які можна задати за допомогою лінгвістичних змінних.

Пого́да - стан нижнього шару атмосфери в конкретній місцевості в конкретний час, або протягом тривалого часу (година, доба, декада, місяць). Характеризується рядом метеорологічних елементів, таких як вітер, температура, тиск, вологість, видимість та ін.


Завдання 2. Побудова нечіткої моделі керування кранами гарячої і холодної води при прийнятті душу

При прийнятті душу на вхід змішувача подається холодна та гаряча вода по відповідним трубопроводам.

Гаряча вода (англ. Hot Water) - американська кінокомедія режисера Фреда С. Ньюмейера 1924 року.

Для комфортного прийняття душа, користувач задає на виході бажану комфортну теплу температуру і бажаний напір води. Оскільки, під час прийняття душу спостерігається нерівномірне використання води і температура на виході змішувача буде весь час коливатися, виникає необхідність ручного керування кранами відкриття гарячої чи холодної води. Задача полягає у створенні СНВ, яка б дозволила автоматизувати цей процес. Кран змішувача можна повертати наліво і направо (тобто, область визначення кута ЁC це відрізок [-90;90] градусів), керуючи тим самим температурою води і її напором. Нехай, повернення будь-якого крану направо ЁC це збільшити потік води відповідної температури. Тоді досвід прийняття душа дозволяє сформувати декілька евристичних правил.

Якщо вода гаряча і її напір сильний, тоді необхідно повернути кран гарячої води на середній кут вліво, а кран холодної води на середній кут вправо

Якщо вода гаряча і її напір не дуже сильний, слід повернути кран холодної води на середній кут вправо

Якщо вода не дуже гаряча і її напір сильний, тоді необхідно повернути кран гарячої води на невеликий кут вліво

Якщо вода не дуже гаряча і її напір слабий, тоді слід повернути крани гарячої і холодної води на невеликий кут вправо

Якщо вода тепла і її напір не дуже сильний, тоді слід залишити кран змішувача в своєму положенні

Якщо вода прохолодна і її напір сильний, тоді необхідно повернути кран гарячої води на середній кут вправо, а кран холодної води на середній кут вліво

Якщо вода прохолодна і її напір не дуже сильний, тоді слід повернути кран гарячої води на середній кут вправо, а кран холодної води на невеликий кут вліво

Якщо вода холодна і її напір слабий, тоді слід повернути кран гарячої води на великий кут вправо

Якщо вода холодна і її напір сильний, тоді слід повернути кран гарячої води на середній кут вліво, а кран гарячої води на середній кут вправо

Якщо вода тепла і її напір сильний, тоді слід повернути крани гарячої і холодної води на невеликий кут вліво .

Якщо вода тепла і її напір слабий, тоді слід повернути крани гарячої і холодної води на невеликий кут вправо .

Для розробки системи слід виконати наступні кроки.


Крок 1. Визначити вхідні і вихідні змінні. Очевидно, що для СНВ у якості вхідних змінних потрібно взяти температуру води на виході змішувача і її напір. У якості вихідних змінної слід взяти кути повороту кранів гарячої і холодної води.

Далі слід задати терми цих змінних. Наприклад, для вхідної змінної температури ЁC «вода гаряча», «вода не дуже гаряча», «вода тепла», «вода прохолодна», «вода холодна»

Крок 2. Фазіфікація вхідних змінних. На цьому кроці слід задати функції належності для всіх термів вхідних змінних, а в якості області визначення ЁC інтервал можливої температури води і інтервал кількісної оцінки напору. Наприклад, відповідно, в градусах Цельсія від 0 до 100 і внормований одиницях ЁC від 0(напору немає) до 1(напір дуже сильний).

Градус Цельсія (°C) - одиниця виміру температури, подібна до Кельвіна. Широко використовується в побуті.

Крок 3. Задати функції належності термів вихідної змінної (кута повороту крана гарячої води) з інтервалом в області визначення від -90 до 90 гр.

Крок 4. Ввести правила у базу правил.

Крок 5. Використання моделі. Для цього розглянути приклад роботи системи керування при різних значеннях вхідної змінної.


Рис. 4.9. Можливий вигляд поверхні задачі про змішувач води в душі

Завдання 3. Нечітка модель керування кондиціонером повітря в приміщенні.

Нехай, в приміщенні встановлений кондиціонер, який дозволяє регулювати (нагрівати чи охолоджувати) температуру. Найбільш комфортні умови складаються при встановленні деякої заданої комфортної температури. Задача полягає у розробці СНВ, яка б змогла автоматизувати роботу кондиціонера при коливанні температури приміщення через різні зовнішні дестабілізуючі фактори.

Досвід використання побутових кондиціонерів показує деяку інертність в процесі нагріву чи охолодження повітря. Наприклад, після включення режиму «холод», відбувається нагнітання холодного повітря, через що температура в приміщенні поступово спадає.

При цьому, при виключенні цього режиму, температура все рівно деякий час продовжує знижуватися. Аналогічна картина спостерігається при включенні режиму «тепло». Щоб врахувати цю властивість, потрібно задати як вхідну змінну не тільки температуру приміщення, але і швидкість її зміни. В такому випадку, досвід показує адекватність наступних правил керування кондиціонеру:

Якщо температура повітря дуже тепла і швидкість зміни температури додатня, то потрібно включити режим «холод», повернувши регулятор кондиціонеру на великий кут вліво.

Температу́ра (від лат. temperatura - належне змішування, нормальний стан) - фізична величина, яка описує стан термодинамічної системи.

Якщо температура повітря дуже тепла, а швидкість зміни температури від’ємна, тоді необхідно включити режим «холод», повернувши регулятор кондиціонеру на невеликий кут вліво.

Найвища температура, досягнута за участі людини, ~ 10 трлн К (що є порівнянним з температурою Всесвіту у перші секунди його існування) була досягнута у 2010 році під час зіткнення іонів свинцю, прискорених до світлових швидкостей. Експеримент було проведено на Великому адронному колайдері.

Якщо температура повітря тепла, а швидкість зміни температури додатня, тоді потрібно включити режим «холод», повернувши регулятор кондиціонеру на великий кут вліво.

Найвища теоретично можлива температура - планківська температура. Вища температура за сучасними фізичними уявленнями не може існувати, оскільки надання додаткової енергії системі, нагрітої до такої температури, не збільшує швидкості частинок, а лише породжує у зіткненнях нові частки, за цієї обставини кількість частинок у системі зростає й зростає маса системи. Вище за планківську температуру гравітаційні сили між частинками стають порівняними із силами решти фундаментальних взаємодій. Можна вважати, що це температура «кипіння» фізичного вакууму. Вона приблизно дорівнює 1.41679(11)×10 K (~ 142 нонільйони K).

Якщо температура повітря тепла, а швидкість зміни температури від’ємна, тоді потрібно включити режим «холод», повернувши регулятор кондиціонеру слід вимкнути.

Поверхня Сонця має температуру близько 6000 K, а сонячне ядро - близько 15 000 000 K.

Якщо температура повітря дуже холодна, а швидкість зміни температури від’ємна, тоді потрібно включити режим «тепло», повернувши регулятор кондиціонеру на великий кут вправо.

Найнижча температура, яка досягнута людиною, була отримана у 1995 році Еріком Корнеллом та Карлом Віманом із США під час охолодження атомів рубідію. Вона перевищувала абсолютний нуль менше ніж на 1/170 мільярдну частку кельвіна (5,9×10 K).

Якщо температура повітря дуже холодна, а швидкість зміни температури додатня, тоді потрібно включити режим «тепло», повернувши регулятор кондиціонеру на невеликий кут вправо.

Рекордно низьку температуру на поверхні Землі −89.2 °С було зареєстровано на радянській внутрішньоконтинентальній науковій станції «Восток», Антарктида (висота розташування 3488 м над рівнем моря) 21 червня 1983 року.

Якщо температура повітря холодна, а швидкість зміни температури від’ємна, тоді потрібно включити режим «тепло», повернувши регулятор кондиціонеру на великий кут вліво.

9 грудня 2013 року на конференції Американського геофізичного союзу група американських дослідників повідомила про те, що 10 серпня 2010 року температура повітря в одній з точок Антарктиди опускалась до −135,8 °F (-93,2 °С). Цю інформацію було отримано за результатами аналізу супутникових даних НАСА. На думку автора повідомлення Т. Скамбоса (англ. Ted Scambos) отримане значення не підлягає реєстрації як рекордне, оскільки визначене у результаті супутникових вимірювань, а не за допомогою термометра.

Якщо температура повітря холодна, а швидкість зміни температури додатня, тоді потрібно виключити кондиціонер.

Рекордно високу температуру повітря поблизу земної поверхні +56,7 ˚C було було зареєстровано 10 липня 1913 року на ранчо Грінленд у долині Смерті (штат Каліфорнія, США).

Якщо температура повітря дуже тепла, а швидкість зміни температури дорівнює 0, тоді потрібно включити режим «холод», повернувши регулятор кондиціонеру на великий кут вліво.

Насіння наземних рослин зберігають здатність проростати навіть після охолодження до −269 °C (наприклад мохи, папоротеподібні).

Якщо температура повітря тепла, а швидкість зміни температури дорівнює 0, тоді потрібно включити режим «холод», повернувши регулятор кондиціонеру на невеликий кут вліво.

Якщо температура повітря дуже холодна, а швидкість зміни температури дорівнює 0, тоді потрібно включити режим «тепло», повернувши регулятор кондиціонеру на великий кут вправо.

Якщо температура повітря холодна, а швидкість зміни температури дорівнює 0, тоді потрібно включити режим «тепло», повернувши регулятор кондиціонеру на невеликий кут вправо.

Якщо температура повітря в нормі, а швидкість зміни температури додатня, тоді потрібно включити режим «холод», повернувши регулятор кондиціонеру на невеликий кут вліво.

Якщо температура повітря в нормі, а швидкість зміни температури від’ємна, тоді потрібно включити режим «тепло», повернувши регулятор кондиціонеру на невеликий кут вправо.

Якщо температура повітря в нормі, а швидкість зміни температури дорівнює 0, тоді потрібно виключити кондиціонер.
Тому, для розробки системи слід виконати наступні кроки.
Крок 1. Визначити вхідні і вихідні змінні. Очевидно, що для СНВ у якості вхідних змінних потрібно взяти температуру повітря в приміщенні та швидкість її зміни. У якості вихідної змінної слід взяти кут повороту регулятора кондиціонеру.

Далі слід задати терми цих змінних. Наприклад, для 1 вхідної змінної ЁC «повітря дуже холодне», «повітря холодне», «повітря в нормі», «повітря тепле», «повітря дуже тепле»

Крок 2. Фазифікація вхідних змінних. На цьому кроці слід задати функції належності для всіх термів вхідної змінної, а в якості області визначення ЁC інтервал можливої температури повітря та її швидкості. Наприклад, в градусах Цельсія від -10 до 40.

Крок 3. Задати функції належності термів вихідної змінної (кута повороту регулятора кондиціонеру) з інтервалом в області визначення від -90 до 90 гр.

Крок 4. Ввести правила у базу правил.

Крок 5. Використання моделі. Для цього розглянути приклад роботи системи керування при різних значеннях вхідної змінної.


Завдання 4. Нечітка модель керування контейнерним краном.

Контейнерні крани використовуються при виконанні вантажних робіт в портах. Крани тросом підіймають контейнер з вантажем і далі ідуть на спеціальних рейсах до місця призначення і там розвантажуються. Коли контейнер піднімається до крану і кран починає рухатися по рейсам, вантаж починає розхитувати і відхилятися від свого строго вертикального положення під краном. Проблема полягає в тому, що допоки контейнер хитається, він не може бути опущений на платформу цілі, в якості яких використовуються деякі транспортні засоби.

Тра́нспортний за́сіб - пристрій, призначений для перевезення людей і вантажу.

Аналіз дій крановиків-операторів, які виконують дії по управлінню краном, показує, що вони в своїй роботи використовують наступні евристичні правила:

Почати роботу, потрібно, коли контейнер вже завантажено грумом і виконувати наступні правила:

Якщо контейнер знаходиться на горизонталі завантаження чи цілі (наприклад, це позиція 0), тоді слід підняти контейнер на рівень руху (наприклад, позиція 1).

Починати рух потрібно зі середньою потужністю

Якщо рух вже почався, кабіна знаходиться далеко від цілі і контейнер несильно хитається, тоді потрібно задати потужність руху велику

Якщо рух вже почався, кабіна знаходиться далеко від цілі і контейнер сильно хитається, тоді потрібно задати потужність руху невелику

Якщо кабіна знаходиться близько від цілі, слід зменшити швидкість руху до малої

Якщо контейнер знаходиться дуже близько до цілі, тоді слід виключити потужність двигуна

Коли контейнер знаходиться прямо над позицією цілі, тоді слід зупинити двигун.

Якщо контейнер знаходиться над ціллю, але хитання великі, тоді слід не опускати контейнер на ціль і чекати

Якщо контейнер знаходиться над ціллю, він не хитається, тоді слід опускати його

Якщо контейнер зустрівся з ціллю, тоді слід зупинити його опускання

Крок 1. Визначити вхідні і вихідні змінні. Очевидно, що для СНВ у якості вхідних змінних потрібно взяти відстань до цілі, кут хитання контейнеру від строго вертикальної позиції під кабіною крану і вертикальну відстань контейнеру від цілі.. У якості вихідних змінних слід взяти потужність двигуна крана при русі рейсами і швидкість опускання, чи піднімання крану.

Далі слід задати терми цих змінних. Наприклад, для 1 вхідної змінної ЁC «відстань далека», «відстань середня», «відстань близька», «позиція над ціллю», для 2 вхідної змінної ЁC «кут=0», «кут хитання малий», «кут хитання великий», для 3 вхідної змінної ЁC «контейнер в позиції 0», «контейнер в позиції 1», для 1 вихідної змінної ЁC «потужність середня», «потужність велика», «потужність мала», «потужність нульова», для 2 вихідної змінної ЁC «піднімати контейнер», «опускати контейнер», «не змінювати вертикальну позицію контейнера»

Крок 2. Фазіфікація вхідних змінних. На цьому кроці слід задати функції належності для всіх термів вхідної змінної, а в якості області визначення ЁC інтервал можливих значень.

Крок 3. Задати функції належності термів вихідних змінних.

Крок 4. Ввести правила у базу правил.

Крок 5. Використання моделі. Для цього розглянути приклад роботи системи керування при різних значеннях вхідної змінної.


Рис 4.10. Наближений вигляд поверхні задачі про кондиціонер


Рис 4.11. Наближений вигляд поверхні задачі контейнера


§5. Лабораторна робота № 4

РОЗРОБКА НЕЧІТКИХ МОДЕЛЕЙ СИСТЕМ ПІДТРИМКИ ПРИЙНЯТТЯ


РІШЕНЬ в соціально-економічних системах
Мета роботи: Освоїти методику проектування і побудови систем підтримки прийняття рішень на основі моделі нечіткого виводу та бази знань нечітких продукцій на прикладі оцінюваннія ефективності фінансування інноваційного проекту. Основою прийняття рішення є бізнес-план проекту, в якому зазначені соціальне значення нововведення, ступінь ризику та оцінка чистого приведеного доходу як міра фінансової ефективності. На прикладі познайомитися з особливостями розробки програмних засобів нечіткого моделювання.

Програ́мне забезпе́чення (програ́мні за́соби) (ПЗ; англ. software) - сукупність програм системи обробки інформації і програмних документів, необхідних для експлуатації цих програм.

5.1 Змістовна постановка задачі оцінювання ефективності інновації

Під інновацією (нововведенням) розуміють кінцевий результат інноваційної діяльності, що одержав реалізацію у виді нового або удосконаленого продукту, реалізованого на ринку, нового або удосконаленого технологічного процесу, використовуваного в практичній діяльності.

Інноваційна діяльність - вид діяльності, пов'язаний із трансформацією наукових досліджень і розробок, інших науково-технологічних досягнень у новий чи покращений продукт введений на ринок, в оновлений чи вдосконалений технологічний процес, що використовується у практичній діяльності, чи новий підхід до реалізації соціальних послуг, їх адаптацію до актуальних вимог суспільства.

Техноло́гія (від грец. τεχνολογια, що походить від грец. τεχνολογος; грец. τεχνη - майстерність, техніка; грец. λογος - (тут) передавати) - наука («корпус знань») про способи (набір і послідовність операцій, їх режими) забезпечення потреб людства за допомогою (шляхом застосування) технічних засобів (знарядь праці).

Інновація являє собою результат, отриманий від вкладення капіталу в нову техніку або технологію, у нові форми організації виробництва праці, обслуговування, керування і т.п.

Процес створення, освоєння і поширення інновацій називається інноваційною діяльністю або інноваційним процесом.

У залежності від технологічних параметрів інновації підрозділяються на продуктові і процесові (технологічні). Продуктові інновації включають застосування нових матеріалів, нових напівфабрикатів і комплектуючих; одержання принципове нових продуктів. Процесні інновації означають нові методи організації виробництва (нові технології).

Спонукальним механізмом розвитку економічних інновацій, у першу чергу, є ринкова конкуренція. В умовах ринку виробники продукції або послуг постійно змушені шукати шляхи скорочення витрат виробництва і виходу на нові ринки збуту.

Ви́трати виробни́цтва - витрати різних видів економічних ресурсів (сировини, праці, основних засобів, послуг, грошей), безпосередньо пов'язаних з виробництвом економічних благ.

Тому фірми, що першими освоїли ефекти інновації, одержують вагома перевага перед конкурентами.

Важливою умовою для їхньої практичної реалізації в бізнесі є залучення інноваційних інвестицій[17].

Інноваційний процес являє собою послідовність дій по розробці нових продуктів і операцій, по їхній реалізації на ринку і по подальшому поширенню результатів.

Інноваційний процес складається з наступних основних кроків:

зародження ідеї інновації;

обґрунтування необхідності інноваційної зміни;

оцінка ефективності інновації;

розробка та технічна реалізація інноваційної ідеї;

реалізація інновації в поведінці системи;

просування інновації на ринку вимог.
Модель інноваційної діяльності в економіці можна представити у вигляді системи управління зі зворотнім зв’язком, як показано на рис 5.1.

µ §


Рис. 5.1. Функціональна послідовність інноваційного процесу в економічній системі
Згідно цієї концепції, нові знання, одержані в результаті фунда­ментальних, а потім і прикладних досліджень народжують автома­тично нові технології і продукти.

Прикладні́ науко́ві дослі́дження (англ. applied research) - наукова і науково-технічна діяльність, спрямована на одержання і використання знань для практичних цілей - розробка нових виробів, нових матеріалів, технологій та технологічного обладнання, нових методів лікування хвороб, медичних препаратів та медичного обладнання, нових сільгоспкультур, нових порід свійських тварин та промислових риб, нових технологій сільгоспвиробництва, пошук покладів корисних копалин.

Тому нові знання повинні автома­тично вести до економічного росту[24].

Кожна стадія потребує фінансових та інших витрат на своє здійснення. Суб’єкта, який витрачає свої кошти і зусилля на проведення інноваційної діяльності будемо називати інвестором. Звичайно, інвестор зацікавлений у тому, щоб інноваційна діяльність була ефективною.

Ефективність інноваційної зміни виражається через різноманітні показники. В умовах ринкових відносин не може бути уніфікованої системи показників.

Ринкова економіка - економічна система, заснована на принципах вільного підприємництва, у якій роль основного регулятора економічних відносин відіграє ринок.

Кожен інвестор самостійно визначає цю систему виходячи з особливостей інноваційного проекту, професіоналізму фахівців і менеджерів, й інших факторів.

Впровадження нововведень може дати наступні види ефекту: науковий (приріст інформації); продуктовий (покращення якості товару); технологічний (ріст продуктивності праці, покращення умов праці);

Охорóна прáці (рос. охрана труда; англ. labour protection; нім. Arbeitsschutz m) - це: система правових, соціально-економічних, організаційно-технічних, санітарно-гігієнічних і лікувально-профілактичних заходів та засобів, спрямованих на збереження життя, здоров'я і працездатності людини в процесі трудової діяльності; діюча на підставі відповідних законодавчих та інших нормативних актів система соціально-економічних, організаційно-технічних, санітарно-гігієнічних і лікувально-профілактичних заходів та засобів, що забезпечують збереження здоров'я і працездатності людини в процесі праці. дозвіл на початок робіт підвищеної небезпеки, який необхідний організації чи підприємству, хто працює в будівництві.

Продукти́вність пра́ці (англ. productivity, labour productivity; нім. Arbeitsleistung f, Leistung f, Arbeitsproduktivität f) - це показник трудової діяльності працівників. Характеризує кількість продукції, виробленої за одиницю часу, або витрати часу на виробництво одиниці продукції.

функціональний (ріст ефективності управління організацією); соціальний (покращення умов життя); екологічний (покращення умов довкілля).

Неекономічні ефекти все рівно несуть у собі потенційний економічний ефект. Наприклад, розроблений винахід як нововведення вищого рівня може дати економічний ефект або після його продажу, або після реалізації товару, розробленого на основі винаходу. Або, підвищення ступеня задоволення фізіологічних потреб співробітників і їхніх родин скоротить утрати робочого часу по хворобах, підвищить продуктивність праці, якість відтворення трудових ресурсів, що не порахуєш відразу у формі економічного ефекту.

В Україні найнижча продуктивність праці з усіх європейських країн.

Робочий час - це установлений законодавством відрізок календарного часу, протягом якого працівник відповідно до правил внутрішнього трудового розпорядку, графіка роботи та умов трудового договору повинен виконувати свої трудові обов'язки.

Трудові́ ресу́рси (або також трудові резерви) - поняття «марксистсько-ленінської» (комуністичної, сталінської або так званої «лагерної») політичної економії.

Зниження викидів шкідливих компонентів в атмосферу, ґрунт, воду зберігає екосистему, збільшує тривалість життя людини тощо. Цей ефект неможливо відразу перевести в прибуток. Приведені приклади дозволяють зробити наступний висновок: економічний ефект розробки, впровадження (перетворення в інновацію) або продажу нововведень може бути потенційним або фактичним (реальним, комерційним), а науково-технічний, соціальний і екологічний ефекти можуть мати форму тільки потенційного економічного ефекту. По суті, якщо взяти до уваги тільки кінцеві результати впровадження або продажі нововведень, те будь-який вид інноваційної діяльності можна оцінити у вартісному вираженні. Критеріями кінцевої оцінки тут є: час одержання фактичного економічного ефекту і ступінь невизначеності його одержання (або рівень ризику вкладення інвестицій в інновації).[16]

Не всі оцінки ефективності інновацій можна оцінити чітко. Наприклад, як можна визначити, що ступінь ризику вкладання коштів в деякий проект є високою і варто ще раз все зважити перед прийняттям рішення про його фінансування? Як раз в такому випадку можна скористатися теорією нечітких продукцій.

Саме з цієї причини була запропонована ідея розробки нечіткої моделі для оцінювання ефективності фінансування інноваційного проекту. При цьому як нечітка модель використовується система нечіткого виводу з вхідними і вихідною змінними, які розглянуті далі.

5.2 Описання вхідних і вихідних змінних задачі, що розглядається

Змістовна інтерпретація нечіткої моделі припускає вибір і специфікацію вхідних і вихідних змінних відповідної системи нечіткого виводу. При цьому в нечіткій моделі передбачається використовувати три вхідні змінні і одну вихідну зміну.

У якості першої вхідної змінної розглянемо ступінь ризику інноваційного проекту, що фінансується. Звичайно, чим вище ступінь ризику, тим більше втрачає сенс інвестувати даний проект.

Друга вхідна змінна визначає соціальне значення нововведення, його вплив на життя суспільства. Іноді високе соціальне значення може «компенсувати» помірний і середній ризик чи невеликий економічний ефект проекту.

У якості третьої вхідної змінної визначимо таку кількісну оцінку економічної ефективності інноваційного проекту як чистий приведений дохід (ЧПД, NPV), який при умові дискретного характеру параметра часу життєвого циклу може бути представлений формулою:

µ §,
де µ § - функція чистого прибутку від діяльності по розробці та реалізації нововведення протягом часу життєвого циклу проекту µ §, µ § - функція витрат проекту, які пов’язані з погашенням інвестиційних боргів, µ § - ставка дисконту (знецінення) грошових одиниць протягом кроку часу.

В математичній оптимізації, статистиці, теорії рішень та машинному навчанні фу́нкція втрат (англ. loss function) або фу́нкція витра́т (англ. cost function) - це функція, яка відображує подію, або значення однієї чи декількох величин, на дійсне число, яке інтуїтивно представляє якісь «витрати», пов'язані з цією подією.

Чи́стий прибу́ток (Net Income) - частина балансового прибутку підприємства, що залишається в його розпорядженні після сплати податків, зборів, відрахувань і інших обов'язкових платежів до бюджету. Чистий прибуток використовується для збільшення оборотних коштів підприємства, формування фондів і резервів, і реінвестицій у виробництво.

Грошова́ одини́ця - це встановлений у законодавчому порядку грошовий знак. Вона служить для вимірювання цін товарів та послуг. Грошова одиниця встановлюється законодавством країни з урахуванням соціально-економічних та історичних закономірностей її розвитку.

Вважається, що чим більше додатне значення має величина ЧПД, тим ефективнішим є проект, який фінансується.

У якості вихідної змінної виступає оцінка проекту для інвестора з точки зору ефективності його фінансування, що є основою прийняття рішень про виділення кредитів для реалізації нововведення.

Базуючись на досвіді і отриманих знаннях про ринок інноваційних проектів, інвестор застосовує наступні евристичні правила:

1.

Іннова́ція (англ. innovation - нововведення)- ідея, новітній продукт в галузі техніки, технології, організації праці, управління, а також у інших сферах наукової та соціальної діяльності, засноване на використанні досягнень науки і передового досвіду, є кінцевим результатом інноваційної діяльності.

Якщо ризик є допустимим, соціальне значення і ЧПД проекту є доволі високими, тоді приймається рішення про фінансування даного проекту. Тобто, можна вважати, що в такому «ідеальному» випадку ступінь фінансування проекту є 100%.

2. Якщо ризик є допустимим, соціальне значення середнє, тоді міра прийняття рішення про фінансування проекту співпадає з нормованою величиною ЧПД, тобто відношенням ЧПД д свого максимально можливого значення: µ §.

3. Якщо ризик є малим, соціальне значення посереднє, тоді міра прийняття рішення про фінансування проекту менше ніж нормована міра ЧПД раза в три.

4. Якщо ризик є малим, а соціальне значення є високим, тоді міра прийняття рішення про фінансування проекту співпадає з нормованою величиною ЧПД.

5. Якщо ризик є малим, а соціальне значення є нижче за середній рівень, тоді міра прийняття рішення про фінансування проекту менше ніж нормована величина ЧПД в разів п’ять.

6. Якщо ризик є середнім, соціальне значення і ЧПД великі, тоді міра прийняття рішення про фінансування даного проекту в 1,5 рази менше за нормоване ЧПД.

7. Якщо ризик є середнім, соціальне значення середнє, тоді міра прийняття рішення про фінансування проекту в 1,5 рази менше за нормоване ЧПД.

8. Якщо ризик є малим, соціальне значення середнє, тоді міра прийняття рішення про фінансування проекту менше ніж нормована міра ЧПД в три рази.

9. Якщо ризик є малим, а соціальне значення є високим, тоді міра прийняття рішення про фінансування проекту співпадає з нормованою величиною ЧПД.

10. Якщо ризик є малим, а соціальне значення є нижче за середній рівень, тоді міра прийняття рішення про фінансування проекту менше ніж нормована величина ЧПД в разів п’ять.

11. Якщо ризик є середнім, соціальне значення і ЧПД проекту є малими, тоді міра прийняття рішення про фінансування проекту менше ніж нормована величина ЧПД в разів п’ять.

12. Якщо ризик є середнім, соціальне значення малим, тоді міра прийняття рішення про фінансування проекту менше ніж нормована величина ЧПД в разів п’ять.

13. Якщо ризик є середнім, соціальне значення посереднє, тоді міра прийняття рішення про фінансування проекту менше ніж нормована міра ЧПД в три рази.

14. Якщо ризик є середнім, а соціальне значення є високим, тоді міра прийняття рішення про фінансування проекту в 1,5 рази менше за нормовану величину ЧПД.

15. Якщо ризик є середнім, а соціальне значення є нижче за середній рівень, тоді міра прийняття рішення про фінансування проекту менше ніж нормована величина ЧПД в разів п’ять.

16. Якщо ризик є середнім, соціальне значення і ЧПД проекту є низькими, тоді приймається рішення про не фінансування даного проекту. Тобто, можна вважати, що в такому «поганому» випадку ступінь фінансування проекту є 0%.

17. Якщо ризик є високим, соціальне значення середнє, ЧПД велике, тоді міра прийняття рішення про фінансування проекту в 1.5 рази нижче нормованої величини ЧПД.

18. Якщо ризик є високим, соціальне значення посереднє, ЧПД середнє, тоді міра прийняття рішення про фінансування проекту менше ніж нормована міра ЧПД в три рази.

19. Якщо ризик є високим, а соціальне значення є високим, ЧПД високе, тоді міра прийняття рішення про фінансування проекту співпадає з нормованою величиною ЧПД.

Для даного правила можна встановити степінь істинності 0.75.

20. Якщо ризик є високим, а соціальне значення є нижче за середній рівень, ЧПД мале, тоді міра прийняття рішення про фінансування проекту 0%.
5.3 Фазифікація вхідних і вихідних змінних

Як терм-множину першої вхідної змінної "Ступінь ризику" (Risk) будемо використовувати множину Т1={«допустимий», «малий», «середній», «високий»} або в символічному виді Т1={RD, RM, RS, RV}.

Як терм-множину другої вхідної змінної "Соціальне значення" (Social-meaning) будемо використовувати аналогічну множину Т2={«низьке», «нижче середнього», «середнє», «високе»} або в символічному виді Т2={SN, SNS, SS, SV}.

Як терм-множину третьої лінгвістичної змінної "ЧПД" (NPV) будемо використовувати множину Т3={«мале», «середнє», «високе»} чи в символічному виді Т3={СN, CS, CV}.

Як терм-множину вихідної лінгвістичної змінної «Міра прийняття проекту на фінансування»" (Сredit) будемо використовувати множину T6={«0», «в 5 разів менша за ЧПД», «в 3 рази менша за ЧПД», «в 1.5 рази менша за ЧПД», «ЧПД», «1»} чи в символічному виді T6={P_0, P5, P3, Р1_5, Р1, P_1}.

5.4 Формування моделі системи нечіткого виводу

Наступним етапом побудови моделі є побудова бази правил. Для цієї мети будемо використовувати 20 правил нечітких продукцій, які зручно представити у виді наступної таблиці 5.1.

Таблиця 5.1. Правила нечітких продукцій для розглянутої системи нечіткого виводу

№ правилаСтупінь ризику Міра соціального ефекту ЧПДМіра фінансування1

2

3RD


SV

CVP12RDSSP_13RMSNSP3ЎK



Як схему нечіткого виводу будемо використовувати метод Сугено. Далі необхідно визначити методи агрегувания підумов. Оскільки у всіх правилах 1 ЎЄ 40 як логічне зв'язування для підумов застосовується тільки нечітка кон'юнкція (операція "І"), то як метод агрегування будемо використовувати операцію min-кон'юнкції. Для акумуляції виводів правил будемо використовувати метод mах-дизъ'юнкції, що також застосовується у випадку схеми нечіткого виводу методом Мамдані. Нарешті, як метод дефазифікації будемо використовувати метод центра ваги.

Розробку нечіткої моделі будемо виконувати з використанням графічних засобів системи МАТLАВ. З цією метою в редакторі FIS визначимо 3 вхідних змінних з іменами "ступінь ризику" (Risk), "соціальне значення" (Social), "ЧПД" (NPV) і одну вихідну змінну з ім'ям "міра фінансування" (Credit). Вид графічного інтерфейсу редактора FIS для цих змінних зображений на рис.5.1.

Графі́чний інтерфе́йс кори́стувача́ (ГІК, англ. GUI, Graphical user interface) - тип інтерфейсу, який дозволяє користувачам взаємодіяти з електронними пристроями через графічні зображення та візуальні вказівки, на відміну від текстових інтерфейсів, заснованих на використанні тексту, текстовому наборі команд та текстовій навігації.

Для вирішення поставленої задачі нечіткого моделювання будемо використовувати систему нечіткого виводу типу Сугено. Залишимо без зміни параметри розроблювальної нечіткої моделі, запропоновані системою МАТLАВ за замовчуванням.

Далі варто визначити функції належності термів для кожної з 3-х вхідних і єдиної вихідної змінних розглянутої системи нечіткого виводу. Для цієї мети скористаємося редактором функцій належності системи МАТLАВ. Графічний інтерфейс редактора функцій належності для вихідної змінної "міра фінансування проекту" зображений на рис.5.2.

Далі задамо 20 правил для розроблювальної системи нечіткого виводу. Для цієї мети скористаємося редактором правил системи МАТLАВ. Вид графічного інтерфейсу редактора правил після завдання всіх 20 правил нечіткого виводу зображений на рис.5.3. Оскільки в робочому вікні відображаються не всі змінні нечіткої моделі, для керування режимом відображення змінних правил варто скористатися спеціальними кнопками, розташованими в нижній правій частині редактора правил.

Тепер можна виконати аналіз побудованої системи нечіткого виводу для розглянутої задачі оцінки фінансової заможності клієнтів. З цією метою відкриємо вікно перегляду правил системи MATLAB і введемо значення вхідних змінних для частинного випадку, коли значення вхідної змінної "ступінь ризику" оцінюється в 0.08, значення вхідної змінної “соціальне значення” також оцінюється в 0.48 балів, значення вхідної змінної "ЧПД" оцінюється в 900. Це досить високі оцінки вхідних змінних, котрі навіть на інтуїтивному рівні свідчать на користь відповідного клієнта.

Процедура нечіткого виводу, виконана системою MATLAB для розробленої нечіткої моделі, видає в результаті значення вихідної змінної "міра фінансування проекту", рівне 50,6% (рис.5.4). Це досить висока оцінка фінансової заможності потенційного клієнта, що може служити підставою для позитивного рішення з боку банку про надання кредиту під заставу. Як можна заключити, даний висновок цілком узгоджується з раніше висловленими інтуїтивними розуміннями.

Рис. 5.1. Графічний інтерфейс редактора FIS після визначення вхідних і вихідної змінних системи нечіткого виводу mortgage

Рис. 5.2. Графічний інтерфейс редактора функцій належності для вихідної змінної "міра фінансування"

Рис. 5.3. Графічний інтерфейс введення правил

Ї

Рис. 5.4. Графічний інтерфейс програми перегляду правил після виконання процедури нечіткого виводу 2 варіанту


Далі можна визначити міру фінансування проекту для інших варіантів значень вхідних змінних і проглянути ті поверхні, які системи пропонує як результат своєї роботи. Проаналізуйте їх (рис. 5.5).

Дана поверхня нечіткого виводу дозволяє установити залежність значень вихідної змінної від значень окремих вхідних змінних нечіткої моделі. Аналіз цих залежностей може служити підставою для зміни функцій належності вхідних змінних чи нечітких правил з метою підвищення адекватності системи нечіткого виводу для конкретних стратегій інвесторів.


Рис. 5.5. Візуалізація поверхні нечіткого виводу розглянутої моделі для вхідних змінних "місцезнаходження" і "обробка"


Слід зазначити також ту обставину, що розроблювачі даної нечіткої моделі відзначають її декілька спрощений характер у порівнянні з реально використовуваною в процесі прийняття рішень керівництвом інвестиційнго фонду. У той же час розглянута нечітка модель має досить високу адекватність, що обумовлює її успішне застосування в практиці фінансових операцій.

5.5 Завдання для самостійної роботи

Проектування системи оцінки фінансової
заможності клієнтів

При видачі довгострокових кредитів на будівництво будинків чи котеджів під заставу нерухомості для оцінки заможності клієнтів банками традиційно використовується метод експертних оцінок.

Ме́тод експе́ртних оці́нок або метод Дельфі (англ. Delphi technique) - один з основних класів методів науково-технічного прогнозування, який ґрунтується на припущенні, що на основі думок експертів можна збудувати адекватну модель майбутнього розвитку об'єкта прогнозування.

При цьому метою банків є одержання максимального прибутку від укладених угод по наданню кредитів і виключення можливості фінансових утрат. Тому інтереси банків зосереджені, з одного боку, на збільшенні кількості успішних угод, а з іншого боку, на запобіганні невдалих угод, коли клієнт не повертає виданий кредит чи повертає його не вчасно.

Традицiйно підставою для прийняття рішень по наданню кредитів у майбутньому служить досвід успішних угод, зроблених у минулому. Керівництво банку Ноme&Sevings Ваnk, в інтересах якого виконувалося відповідне дослідження, хотіло б узагальнити правила надання кредитів з метою максимально повно використовувати досвід експертів. При цьому необхідно виключити можливі помилки суб'єктивного характеру з боку окремих менеджерів у випадку неадекватного оцінювання фінансової заможності клієнтів.

Аналіз стратегії надання кредитів на будівництво будинків показує, що для оцінювання фінансової заможності клієнтів можуть бути використані різні характеристики, такі як місцезнаходження споруджуваного будинку, якість передбачуваного виконання опоряджувальних робіт, оцінка активів потенційного клієнта, оцінка доходу потенційного клієнта за винятком фіксованих витрат, величина підлягаючих сплаті відсотків з кредиту. При цьому власне фінансова заможність клієнта оцінюється його кредитоспроможністю.

Однією з перших формальних моделей, запропонованих для розв’язку даної задачі, була статистична модель, заснована на імовірнісній інтерпретації кількісної оцінки позитивного рішення про надання кредиту.

Статисти́чна моде́ль - абстрактна схема відношень між величинами, що характеризують властивості реального процесу, розробка якої здійснюється неформальним шляхом. Статистична модель являє собою процес генерування даних, часто в значно ідеалізованій формі.

Однак більш детальний аналіз цієї моделі згодом показав її неадекватність, пов’язану з недостатнім обсягом статистичної вибірки й умовами надання кредитів, що змінюються з плином часу.

У якості першої вхідної змінної використовується оцінка місця розташування споруджуваного будинку, що безпосередньо оцінює проект споруджуваного будинку, приймаючи до уваги розміщення будинку в тому чи іншому конкретному районі міста чи регіоні передмістя. Очевидно, чим вище ця оцінка, тим більше ліквідним представляється проект у випадку його реалізації на ринку нерухомості.

У якості другої вхідної змінної використовується якість передбачуваного виконання опоряджувальних робіт відповідно до архітектурного проекту споруджуваного будинку. Ця змінна вносить додатковий елемент в оцінку вартості споруджуваного будинку.

У якості третьої вхідної змінної використовується оцінка активів, що використовується для оцінки майна чи авуарів у випадку неспроможності потенційного клієнта при неповерненні їм узятого кредиту. Дійсно, величина наданого кредиту повинна ґрунтуватися не тільки на урахуванні вартості споруджуваного будинку, але і на власній капіталізації клієнта.

У якості четвертої вхідної змінної використовується оцінка доходу потенційного клієнта за винятком фіксованих витрат, яка також використовується у випадку неспроможності потенційного клієнта при неповерненні їм узятого кредиту. Чим вище значення цієї змінної, тим більше успішним є надання кредиту клієнту.

У якості п'ятої вхідної змінної використовується величина підлягаючих сплаті відсотків відповідно до передбачуваного плану виплат по узятому кредиту. Ця змінна зв'язана з терміном надання кредиту і його величиною, дозволяючи об'єднати в собі відповідні характеристики кредиту. Чим вище величина виплат по відсотках, тим більше високими повинні бути значення активів і доходів для позитивного рішення про надання кредиту потенційному клієнту.

У якості вихідної змінної використовується оцінка кредитоспроможності, що є основою для ухвалення рішення керівництвом банку по наданню кредиту потенційним клієнтам. При цьому рішення про надання кредиту керівництвом банку приймається тільки у випадку високої оцінки цієї вихідної змінної.

Аналіз надання кредитів на будівництво будинків показує, що для аналізу фінансової заможності потенційних клієнтів керівництво банків застосовує певні евристичні правила.

Після розгляду змістовної постановки задачі можна приступити до побудови ее нечіткої моделі у формі відповідної системи нечіткого виводу. Для цієї мети скористаємося розглянутими раніше графічними засобами пакета Fuzzу Logic Тооlbох системи МАТLАВ.

При побудові нечіткої моделі оцінки фінансової заможності потенційних клієнтів було зроблене припущення про те, що всі розглянуті змінні виміряються в балах в інтервалі дійсних чисел від 0 до 10.

Дійсні числа - елементи числової системи, яка містить у собі раціональні числа і, в свою чергу, є підмножиною комплексних чисел. Математична абстракція, яка виникла з потреб вимірювання геометричних і фізичних величин навколишнього світу, а також виконання таких математичних операцій як добування кореня, обчислення логарифмів, розв'язування алгебраїчних рівнянь.

При цьому найнижча оцінка значення кожної із змінних є 0, а найвища ЎЄ 10.

Як терм-множину першої вхідної змінної "Місцезнаходження" (Loсаtion) будемо використовувати множину Т1={"непрестижне", "престижне", "дуже престижне"} або в символічному виді Т1={PS, РМ, РВ}.

Як терм-множину другої вхідної змінної "Опоряджування" (Work-manship) будемо використовувати аналогічну множину Т2={"погане", "гарне", "прекрасне"} або в символічному виді Т2={PS, РМ, РВ}.

Як терм-множину третьої лінгвістичної змінної "Активи" (Аsset) будемо використовувати множину Т3={"низькі", "середні", "високі"} чи в символічному виді Т3={РS, РМ, РВ}.

Як терм-множину четвертої лінгвістичної змінної "Доход" (Income) будемо використовувати аналогічну множину T4={"низький", "середній", "високий"} чи в символічному виді T4={РS, РМ, РВ}.

Як терм-множину п'ятої лінгвістичної змінної "Виплати" (Interest) будемо використовувати аналогічну множину T5= {"низькі", "середні", "високі"} чи в символічному виді T5={РS, РМ, РВ}.

Як терм-множину вихідної лінгвістичної змінної "Кредитоспроможність" (Сredit) будемо використовувати множину T6={"дуже низька", "низька", "середня", "висока", "дуже висока"} чи в символічному виді T6={NВ, NS, Z, РS, РВ}.

Як схему нечіткого виводу будемо використовувати метод Мамдані, тому методом активації буде МІN. Далі необхідно визначити методи агрегувания підумов. Оскільки у всіх правилах 1 ЎЄ 40 як логічне зв'язування для підумов застосовується тільки нечітка кон'юнкція (операція "І"), то як метод агрегування будемо використовувати операцію min-кон'юнкції. Для акумуляції виводів правил будемо використовувати метод mах-дизъ'юнкції, що також застосовується у випадку схеми нечіткого виводу методом Мамдані. Нарешті, як метод дефазифікації будемо використовувати метод центра ваги.

Розробку нечіткої моделі (назвемо її mortgagе) будемо виконувати з використанням графічних засобів системи МАТLАВ. З цією метою в редакторі FIS визначимо 5 вхідних змінних з іменами "місцезнаходження" (ѓТ1), "опоряджування" (ѓТ2), "активи" (ѓТ3), "доход" (ѓТ4), "виплати" (ѓТ5) і одну вихідну змінну з ім'ям "кредитоспроможність" (ѓТ6). Вид графічного інтерфейсу редактора FIS для цих змінних зображений на рис.5.1.

Для вирішення поставленої задачі нечіткого моделювання будемо використовувати систему нечіткого виводу типу Мамдані. Залишимо без зміни параметри розроблювальної нечіткої моделі, запропоновані системою МАТLАВ за замовчуванням, а саме, логічні операції (min ЎЄ для нечіткого логічного I, mах ЎЄ для нечіткого логічного ЧИ), метод імплікації (min), метод агрегування (mах) і метод дефазифікації (centroid).

Слід зазначити також ту обставину, що розроблювачі даної нечіткої моделі відзначають її декілька спрощений характер у порівнянні з реально використовуваною в процесі прийняття рішень керівництвом банку. У той же час розглянута нечітка модель має досить високу адекватність, що обумовлює її успішне застосування в практиці фінансових операцій деяких банків.

Таблиця 5.2 Встановлення ваги правил

№ правилаВага№ правилаВага10.51110.2820.75120.9730.24130.3240.14140.7150.77150.4760.33160.6970.79170.9680.16180.7490.86190.86100.98200.11№ правилаВага№ правилаВага210.53310.05220.09320.03230.81330.49240.70340.68250.06350.27260.58360.40270.78370.59280.91380.14290.17390.75300.34400.59

§6. Розробка систем АНАЛІЗУ ДАНИХ методами
Нечіткої кластерізації
Мета роботи: Освоїти методику проектування і побудови систем інтелектуального аналізу даних на основі методів нечіткої кластеризації.
6.1. Основні поняття
Кластерний аналіз ЁC це сукупність методів, підходів і процедур, які розробляються для розв’язування проблеми формування класів ЁC сукупностей даних, однорідних за заданими ознаками.

Кластерний аналіз (автоматична класифікація сукупності даних) займає одно з центральних місць серед методів аналізу даних і являє собою сукупність підходів та алгоритмів знаходження деякого розбиття досліджуваної сукупності об’єктів на підмножини відносно схожих між собою елементів. Такі підмножини отримали назву кластерів.

Виділення кластерів серед сукупності даних має відповідати наступним вимогам:

кожний кластер представляє собою сукупність об’єктів, які схожі між собою значеннями деяких властивостей або ознак;

сукупність всіх кластерів має бути вичерпаною, тобто всі об’єкти досліджуваної сукупності мають належить до деякого кластеру;

кластери мають бути взаємно-виключні; тобто, жоден з об’єктів не має належить до двох різних кластерів.

Формально, під задачею кластерного аналізу розуміється задача знаходження деякого теоретико-множинного розбиття початкової множити об’єктів на підмножини, які не перетинаються, таким чином, щоб елементи, які відносяться до однієї підмножини відрізнялися між собою в значно меншій степені, ніж об’єкти з різних підмножин.

Кластерний аналіз (англ. Data clustering) - задача розбиття заданої вибірки об'єктів (ситуацій) на підмножини, що називаються кластерами, так, щоб кожен кластер складався з схожих об'єктів, а об'єкти різних кластерів істотно відрізнялися.

Концептуальний зв'язок між кластер ним аналізом і теорією нечітких множин оснований на тому, що при розв’язуванні задач структуризації складних систем більшість класів, що формуються, «розмиті» за своєю природою.

Складна́ систе́ма - система, поняття, що широко використовується в сучасній науковій літературі і вказує на специфічні особливості об'єктів дослідження практично в усіх розділах природничих та гуманітарних наук.

Тому, найбільш адекватну відповідь слід шукати не на питання «Чи належить елемент до того чи іншого класу?», а на питання «В якій степені даний елемент належить класу, що розглядається?».

Методи нечіткої кластеризації вводять до розгляду нечіткі кластери і відповідні їм функції належності, які приймають значення з інтервалу µ §.

Таким чином, задача нечіткої кластеризації полягає у тому, що необхідно знайти нечітке розбиття або нечітке покриття множини елементів сукупності, що досліджується. Задача зводиться до знаходження степенем належності елементів множини нечітким кластерам (класам).


6.2. Постановка задачі
Нехай початкова (досліджувана) сукупність даних представляє собою скінчену множину елементів µ §, яке ще називається множиною об’єктів кластеризації. Вводиться також скінчена множина ознак або атрибутів об’єктів µ §, кожний з яких являє собою деяку характеристику елементів множини µ §.

Далі, пропонується, що для всіх елементів множини об’єктів кластеризації виміряли всі ознаки множини Р, і кожен елемент множини µ §представлений вектором µ §, де µ § - дійсне значення ознаки µ § для об’єкту µ §.

Умовно істинне значення (фізичної величини); дійсне істинне значення (фізичної величини) (англ. conventional true value (of a quantity)) - значення фізичної величини, знайдене експериментальним шляхом і настільки наближене до істинного значення, що його можна використати замість істинного для даної мети.

Множина́ - одне з основних понять сучасної математики. Строго воно не визначається, але може бути дано інтуїтивне визначення множини як сукупності певних і різних об'єктів довільної природи, яка розглядається як одне ціле.

Взагалі, проблема кількісного вимірювання ознак кожного об’єкта з сукупності ЁC нетривіальна і самостійна задача. Процес вимірювання ознак може бути реалізований в різних шкалах, кожна з яких характеризується допустимим перетворенням даних. В зв’язку з цим, визначають різні типи шкал:

шкала найменувань: об’єкту ставиться у відповідність деякий символ або номер, який лише відокремлює одне значення ознаки від іншого; прикладом таких ознак є стать людини ЁC(м, ж) або найменування міст (Київ, Житомир, Луганськ,...); допустимим відображенням множини об’єктів у множину символів є бієктивне відображення;

порядкова шкала: разом з відповідною множиною символьних ознак об’єктів ця шкала дозволяє встановити відношення порядку відносно цієї ознаки;

Бієкція (бієктивна функція, бієктивне відображення, взаємно однозначна відповідність) - в математиці відображення, яке є одночасно сюр'єктивним та ін'єктивним.

Відно́шення поря́дку в математиці - бінарне відношення, яке є транзитивним та антисиметричним.

тоді об’єкту ставиться у відповідність деяке число, яке грає роль його оцінки в балах; допустимим відображенням є монотонне зростаюче відображення або функція між двома множинами значень ознак; приклад ЁC оцінки на іспитах;

інтервальна шкала: крім порядку елементів по ознакам ця шкала встановлює рівність інтервалів значень цієї ознаки; об’єкту, як правило, ставиться у відповідність число, яке дорівнює значенню цієї ознаки; допустимим перетворенням тут є довільна лінійна зростаюча функція між двома множинами значень ознак; характерною ознакою такої шкали є відсутність абсолютного нуля; приклад ЁC температура в шкалах Цельсія;

шкала відношень: в доповнення до рівності інтервалів додає ще рівність відношень значень ознаки, що розглядається; об’єкту ставиться у відповідність деяке число, яке дорівнює значенню цієї ознаки; допустимим відображенням є довільна лінійна зростаюча функція, яка проходить через нуль; приклад ЁC відстань в метрах, швидкість в км/ч.

Множину ознак слід обирати таким чином, щоб всі µ § були виміряні в шкалах відношень чи інтервалів. Саме в такому випадку результати нечіткої кластеризації мають змістовну інтерпретацію, яка адекватна проблемі знаходження нечітких кластерів.


Вектори значень ознак µ § зручно представляти у вигляді матриці даних D розмірності (n*q), кожний рядок якої представляє собою значення вектору µ §.

Отже, задача нечіткого кластерного аналізу формулюється наступним чином: на основі даних матриці D визначити таке нечітке розбиття µ § або нечітке покриття µ § множини А на задане число нечітких кластерів µ §, яке доставляє екстремум деякій цільовій функції µ § серед всіх нечітких розбиттів чи екстремум цільової функції µ § серед всіх можливих нечітких покриттів.

Цільова функція - функція, що зв'язує мету (змінну, що оптимізується) з керованими змінними в задачі оптимізації.

Для конкретизації задачі ще слід уточнити вигляд цільової функції та тип шуканих нечітких кластерів.
Одним з видів конкретизації цієї задачі є використання спеціальної функції fcm системи MATLAB, який оснований на алгоритмі розв’язування методом нечітких с-середніх.

Спеціальні функції - функції, що зустрічаються в різних додатках математики (найчастіше - в різних задачах математичної фізики), які не виражаються через елементарні функції. Спеціальні функції представляються у вигляді рядів або інтегралів.

Для уточнення вигляду цільової функції µ § вводяться деякі додаткові поняття. По-перше, пропонується, що шукані нечіткі кластери представляють собою нечіткі множини µ §, які є нечітким покриттям початкової множини об’єктів кластеризації А, для якої має місце наступна умова:

µ §, (6.1)

де с ЁC загальна кількість нечітких кластерів µ §, яке вважається попередньо заданим.

Далі для кожного кластеру вводяться так звані типові представники або центри µ § шуканих нечітких кластерів µ §, які розраховуються за наступною формулою:

µ §, (6.2)

де m ЁC деякий параметр, який має назву експоненційна вага і дорівнює деякому дійсному числу (m>1). Кожний з центрів кластерів є вектором µ § в деякому q-вимірному нормованому просторі ознак, який ізоморфний µ §, якщо всі ознаки виміряні по шкалі відношень.

В розпізнаванні образів та машинному навчанні ве́ктор озна́к (англ. feature vector) - це n-вимірний вектор числових ознак, що представляють певний об'єкт. Багато алгоритмів у машинному навчанні вимагають чисельного представлення об'єктів, оскільки такі представлення полегшують обробку та статистичний аналіз.

В якості цільової функції будемо розглядати суму квадратів зважених відхилень координат об’єктів кластеризації від центрів нечітких кластерів:


µ §. (6.3)

Чим більше елементів містить множина А, тим менше значення слід вибирати для m>1.

Тоді задача нечіткої кластеризації полягає у наступному: для заданої матриці даних D, кількості нечітких кластерів µ §, параметра m, визначити матрицю U значень функції належності об’єктів кластерізації µ § нечітким кластерам µ §, які доставляють мінімум цільової функції (6.3) і задовольняють обмеженням (6.1)-(6.2), а також додатковим обмеженням:

µ § (6.4).

Умови (4) виключають появу пустих нечітких кластерів в шуканій нечіткій кластеризації. Таким чином, мінімізація цільової функції (6.3) мінімізує відхилення всіх об’єктів кластеризації від центрів нечітких кластерів пропорційно значенням функцій належності цих об’єктів відповідним нечітким кластерам.

Ця функція не є випуклою, а тому задача кластеризації в загальному випадку відноситься до багатоекстремальних задач нелінійного програмування.

Неліні́йне програмува́ння (NLP, англ. NonLinear Programming) - випадок математичного програмування, у якому цільовою функцією чи обмеженнями є нелінійна функція.


6.3. Алгоритм розв’язування задачі нечіткої кластеризації
Основні ідеї алгоритму для розв’язування задачі нечіткої кластеризації були запропоновані Дж.К.Данном у 1974р. Цей алгоритм спочатку отримав назву нечіткого алгоритму fuzzyISODATA. У 1980 році Дж.К. Беджек теоретично довів збіжність цього алгоритму, потім він же узагальнив цей алгоритм на випадок довільних нечітких множин даних і запропонував для цього алгоритму назву нечітких середніх FCM, Fuzzy-C-Means. Саме під такою назвою алгоритм реалізований в системі MATLAB.

Алгоритм FCM має ітеративний характер послідовного покращення деякого початкового нечіткого розбиття µ §, яке задається користувачем або формується автоматично за деяким евристичним правилом. На кожному кроці ітерації прораховуються значення функцій належності нечітких кластерів і їх типових представників.

Алгоритм FCM завершує роботу у випадку, коли відбудеться наперед задане число ітерацій, або, коли мінімальна абсолютна різниця між значеннями функцій належності на двох послідовних ітераціях не стане менше деякого наперед заданого значення.

Формально алгоритм FCM представляється у вигляді наступних кроків:

попередньо необхідно задати наступні значення: кількість шуканих нечітких кластерів с, максимальну кількість ітерацій алгоритмів µ §, параметр збіжності алгоритму µ §, а також екпоненційну вагу для цільової функції і центрів кластерів m>1. В якості початкового розбиття на першій ітерації алгоритму для матриці даних D задати деяке нечітке розбиття µ § на с непустих нечітких кластерів, які описуються сукупністю функцій належності µ §.

для поточного нечіткого розбиття µ § за формулою (6.2) розрахувати центри нечітких кластерів µ § і значення цільової функції (6.3). Кількість виконаних ітерацій покласти 1.

сформувати нове нечітке розбиття µ § множини об’єктів кластеризації А на с непусті нечіткі кластери, які характеризуються сукупністю функцій належності µ §, що визначаються за формулою:

µ §
При цьому, якщо для деякого µ § і деякого µ § значення µ §, тоді для відповідного нечіткого кластеру µ § беремо µ §, а для інших кластерів µ § беремо µ §. Якщо ж таких значень µ § виявиться декілька для µ §, тоді евристично беремо µ § для меншого з них, а для інших µ §.

Для нового нечіткого розбиття µ § за формулою (6.2) розраховуємо центри нечітких кластерів і значення цільової функції (6.3).

Якщо кількість виконаних ітерацій більше за s або модуль різниці між попереднім і новим значенням цільової функції менше за µ §, тоді в якості результату прийняти нечітке розбиття µ § і завершити виконання алгоритму. Інакше, вважати поточним розбиттям µ § і перейти на крок 3, збільшивши на 1 кількість виконаних ітерацій.


В результаті виконання алгоритм зводиться до деякого локально-оптимального розбиття µ §, яке описується сукупністю функцій належностіµ §, а також центрами нечітких класів µ §.

6.4. Виконання алгоритму FCM в системі MATLAB


Функція fcm може бути викликана в одному з наступних форматів:

µ §


або

µ §.


Вхідними аргументами цієї функції є

data: матриця початкових даних D, і-тий рядок якої являє собою інформацію про об’єкт нечіткої кластеризації µ § у формі вектора µ §;

cluster_n: число шуканих кластерів µ §.
Вихідними аргументами цієї функції є

center: матриця центрів шуканих нечітких кластерів, кожний рядок якої являє собою координати центру одного з нечітких кластерів в формі вектора µ §;

U: матриця значень функцій належності шуканого нечіткого розбиття µ §;

obj_fun: значення цільової функції (3) на кожній з ітерацій роботи алгоритму.


Функція fcm() може бути викликана з додатковими аргументами options, які введенні для управління процесом кластеризації, а також для зміни критерію останова роботи алгоритму і/або відображення інформації на екрані монітора.

Управлі́ння проце́сом - це сукупність заходів з планування та моніторингу виконання процесу. Термін часто використовують описуючи управління бізнесовими та виробничими процесами.

Ці додаткові аргументи мають наступні значення:

option (1): експоненційна вага m для розрахунків матриці нечіткого розбиття U (за замовченням µ §);

option (2): максимальне число ітерацій s (за замовченням це значення дорівнює 100);

option (3): параметр збіжності алгоритму µ § (за замовченням це значення дорівнює 0.00001);

option (4): інформація про поточну ітерацію, яка відображається на екрані монітора (за замовченням, це значення 1).


Якщо будь-яке зі значень додаткових аргументів дорівнює NaN (не число), тоді для цього аргументу використовується значення за замовченням.
6.5. Приклад реалізації алгоритму

Завдання 1. В якості прикладу застосування нечіткої кластеризації розглянемо множину даних, які містяться в системі MATLAB і використовуються в якості текстової сукупності об’єктів нечіткої кластеризації. Ці дані являють собою матрицю D розмірності 140х2 і містяться у файлі fcmdata.dat, який поставляється разом зі MATLAB В даному випадку матриця D відповідає 140 об’єктам, для кожного з який виконане вимірювання за двома ознаками, що є дуже зручним для візуалізації результатів нечіткої кластеризації в двовимірному просторі на площині.

1. Для візуалізації цих даних слід виконати наступні команди:

Load fcmdata.dat

plot(fcmdata(:,1), fcmdata(:,2), ‘o’)

На екрані з’явиться графічне зображення, яке представлене на рис. 6.1.


Рис.6.1 Зображення точок матриці D з файлу fcmdata.dat


2. Далі слід викликати функцію fcm, наприклад, з наступним форматом:

[center, U, obj_fcn]=fcm(fcmdata, 2)

Потім слід подивитись результати виконання процедури нечіткої кластеризації:

координати центрів класів, тобто, матрицю center;

належність кожної сукупності даних до класів ЁC матрицю U;

значення функції цілі ЁC obj_fcn.

Взагалі, процедуру нечіткої кластеризації можна записати у вигляді командного М-файла з наступним текстом:

load fcmdata.dat

plot(fcmdata(:,1), fcmdata(:,2),’o’)

[center, U, obj_fcn]= fcm(fcmdata, 2);

maxU=max(U);

index1 = find(U(1,:)== maxU);

index2 = find(U(2,:)== maxU);

line(fcmdata(index1,1), fcmdata(index1,2),’linestyle’,’none’,ЎK

‘marker’, ‘x’, ‘color’, ‘g’);

line(fcmdata(index2,1), fcmdata(index2,2),’linestyle’,’none’,ЎK

‘marker’, ‘x’, ‘color’, ‘r’);

hold on


plot( center(1,1), center(1,2),’ko’, ‘markersize’,10, ‘LineWidth’, 2)

plot( center(2,1), center(2,2),’ko’, ‘markersize’,10, ‘LineWidth’, 2)


Результатом цієї програми буде розбиття даних на два кластера, візуалізація якого зображена на рис.6.2.

Рис. 6.2. Результат роботи програми нечіткої кластерізації


3. Після роботи програми в системі MATLAB можна перевірити значення матриць center та U, набравши їх назву в командному рядку і натиснувши Enter.

Після роботи (англ. Clocking Off) - британський драматичний серіал, який виходив на телеканалі BBC One з 2000 до 2003 року. Його було виготовлено для BBC незалежною компанією Red Production Company і створено Полом Ебботом.

4. Крім того, в програмі можна використати наступний формат запису:

[center, U, obj_fcn]= fcm(fcmdata, 2, [2.5 1000 0.000001 1]);

В цьому випадку експоненційна вага 2.5, максимальне число ітерацій 1000, параметр збіжності µ §. Порівняльний аналіз показує практичну ідентичність графіків ЁC результатів використання обох форматів функції fcm, що дозволяє зробити висновок про відповідність отриманих результатів нечіткої кластеризації.

5. Для розв’язування задачі нечіткої кластеризації в системі MATLAB можна використовувати графічний інтерфейс, який викликається за допомогою команди findcluster. Ця програма може використовувати або метод с-середніх або метод субтрактивної кластеризації (substractive clustering, який викликається і окремо за допомогою команди subclust). Останній використовується тоді, коли не можна заздалегідь встановити число кластерів с на кроці 6.

Формат виклику графічного інтерфейсу: findcluster або findcluster(‘file.dat’).


Рис 6.3. Вікно роботи графічного інтерфейсу нечіткої кластеризації для алгоритму субтрактивної кластеризації


В даному вікні можна завантажити файл даних Load Data, обрати метод кластеризації Methods, обрати необхідні значення параметрів і натиснути кнопку Start.
6. Нехай, заздалегідь невідома кількість кластерів с. Тоді слід використати метод субтрактивної кластеризації. Ідея цього методу полягає у тому, що кожна точка даних пропонується в якості центра потенційного кластеру. Далі слід вирахувати деяку міру можливості кожної точки даних представляти центр кластеру. Ця кількісна міра основана на оцінці густини точок навколо відповідного центра кластера.

Оці́нка густини́ (англ. density estimation) в теорії ймовірностей та статистиці - це побудова оцінки неспостережуваної підлеглої функції густини ймовірності на основі спостережуваних даних. Ця неспостережувана функція густини розглядається як густина, відповідно до якої розподілено велику сукупність, а дані зазвичай розглядаються як випадкова вибірка з тієї сукупності.

Цей алгоритм, який є узагальненням методу кластеризації Р. Ягера, заснований на виконанні наступних кроків:

вибрати точку даних з максимальним потенціалом для представлення центру першого кластеру

забрати всі точки даних в околі центру даного кластеру, величина якої задається параметром radii, щоб визначити наступний нечіткий кластер і координати його центру.

Далі, ці дві процедури повторюються до тих пір, допоки всі точки даних не будуть лежати в границях околів радіуса radii навколого шуканих кластерів.

Функція командного рядка

[C, S] = subclust (X, radii, xBounds, options)

знаходить центри таких кластерів.

При цьому матриця Х містить об’єкти кластеризації, кожний рядок якої відповідає координатам окремої точки даних. Параметр radii являє собою вектор, компоненти якого приймають значення з інтервалу [0,1] і задають діапазон розрахунку центрів кластерів по кожній з розказ вимірювань об’єктів. Робиться припущення, що всі дані знаходяться в деякому гіперкубі. Взагалі, малі значення параметрів radii призводять до знаходження малого числа великих по кількістю точок кластерів. Найкращих результатів можна очікувати при значенні radii між 0.2 і 0.5.

Аргумент xBounds являє собою матрицю розміру (2xq), яка визначає засіб відображення матриці даних Х в деякому одиничному гіперкубі. Тут q ЁC кількість ознак. Цей аргумент є необов’язковим, якщо матриця Х вже нормована. Перший рядок цієї матриці містить мінімальні значення інтервалу вимірювання кожної ознаки, а другий рядок ЁC максимальне значення вимірювання кожної ознаки.

Для зміни значень, які встановлені по замовченню, можна використати параметр options, компоненти вектора якого можуть приймати наступні значення:

оptions(1) = guashFactor ЁC параметр, який використовується в якості коефіцієнту для множення значень radii з ціллю зменшення впливу потенціалу граничних точок, які розглядаються як частина даного кластеру (за замовченням це значення дорівнює 1.25);

options(2) = acceptRatio ЁC параметр, який встановлює потенціал як частину потенціалу першого кластеру, вище якого інша точка даних не може розглядатся в якості центра іншого кластеру (за замовченням це значення 0.5);

option(3) = rejectRation - параметр, який встановлює потенціал як частину потенціалу першого кластеру, нижче якого інша точка даних не може розглядатся в якості центра іншого кластеру (за замовченням це значення 0.15);

options(4) = verbose ЁC якщо значення цього параметра не дорівнює 0, тоді на екран монітору виводиться інформація про виконання процесу кластеризації (за замовченням це значення 0).

Функція subclust повертає матрицю С значень координат центрів нечітких кластерів. При цьому кожний рядок цієї матриці містить координати одного центру кластеру. Вектор S містить µ §-значень, які визначають діапазон впливу центра кластеру по кожній з розглянутих ознак. При цьому, всі центра кластерів мають однакову множину µ §-значень.


Для прикладу розглянемо наступну послідовність команд:

Load fcmdata.dat

[C, S] = subclust(fcmdata, [0.5 0.5], [], [1.25 0.5 0.15 1])

Для кожної ознаки вводяться радіуси околів ЁC 0.5 і 0.5.

Як видно з рис. 3. для даної сукупності даних функція suclust має знайти три кластери.

Для розв’язування задачі субтрактивної кластеризації може використовуватися і розглянутий раніше графічний інтерфейс, який викликається командою findcluster.

Таким чином, система MATLAB дозволяє розв’язувати задачі нечіткої кластеризації двома способами: за допомогою функцій командного рядка і за допомогою графічного інтерфейсу кластеризації. Результати нечіткої кластеризації мають наближений характер і мають служити для попередньої структуризація вхідної (початкової) інформації про систему, що вивчається. Тобто, провівши кластерізацію, можна отримати і зберегти знання про систему у вигляді структуризації початкової інформації.

6.6. Завдання для самостійної роботи


1. Виконати нечітку кластеризації набору точок в двовимірному просторі ознак: (1,2); (2,1); (1, 2); (3,2); (2,3); (1,6); (2,5); (3,6); (5,5); (5,6); (7,5); (7,6). Розділити їх на 3 кластери. Відповідь можна подивитися на рис 6.4.

Рис 6.4. Точки і центри кластерів завдання 1

2. Виконати нечітку кластерізацію 10 фірм, які можуть в майбутньому опинитися в різних зонах своєї діяльності на ринку (2, 3 або 4 зони). Для цього слід використовувати дві ознаки стану фірм ЁC середній дохід і середнє-квадратичне відхилення можливого доходу, тобто, ризикованість. Відомі наступні дані про фірми:
ФірмаПоказники 1Можливий дохід100120300250200Імовірність0,10,30,20,20,22Можливий дохід120400200150300Імовірність0,20,40,10,20,13Можливий дохід200250260150300Імовірність0,30,30,20,10,14Можливий дохід120100200150130Імовірність0,20,40,20,20,25Можливий дохід520400250450300Імовірність0,60,10,10,10,16Можливий дохід520400200450300Імовірність0,20,40,10,20,17Можливий дохід220300200150300Імовірність0,20,30,20,20,18Можливий дохід100300200150300Імовірність0,20,20,30,10,29Можливий дохід230400200250200Імовірність0,10,30,20,20,210Можливий дохід220120200350400Імовірність0,10,50,10,20,1Яка можлива економічна інтерпретація цих зон?
§7. РОЗРОБКА ІНТЕЛЕКТУАЛЬНИХ СИСТЕМ НА ОСНОВІ
МОДЕЛЕЙ НЕЙРОНИХ МЕРЕЖ
Мета роботи: освоїти методику проектування і побудови інтелектуальних систем на основі моделей нечітких нейронних мереж.
7.1. Нейроні мережі в Matlab
Концептуальною основою і складовою частиною штучних нейронних мереж є так званий штучний нейрон, що має визначену внутрішню структуру (рис. 7.

Штучна нейронна мережа (ШНМ, англ. artificial neural network, ANN, рос. искусственная нейронная сеть, ИНС) - це математична модель, а також її програмна та апаратна реалізація, побудовані за принципом функціювання біологічних нейронних мереж - мереж нервових клітин живого організму.

1) і правила перетворення сигналів (7.1).

µ §


Рис. 7.1. Структура штучного нейрона
Штучний нейрон (далі просто ЎЄ нейрон) складається з помножувачів (синапсів), суматора і нелінійного перетворювача. Синапси, зображені перекресленим кружком, призначені для зв'язку нейронів між собою і множать вхідний сигнал µ § на деяке постійне число.

Вхідни́й сигна́л (автоматика) - зумовлений (заздалегідь обумовлений) стан або зміна стану параметра, що відображає інформацію, яка міститься у впливі. Звичайно сигнал виражається певною математичною функцією, що однозначно відображає зміни у часі певного представницького параметра.

Це число µ §, назване вагою синапса, характеризує силу цього зв'язку. Суматор виконує додавання всіх сигналів, що надходять на вхід нейрона від інших нейронів, і зовнішніх вхідних сигналів. Нелінійний перетворювач призначений для нелінійної зміни вихідного значення суматора відповідно до деякої функції від одного аргументу. Ця функція називається функцією активації чи передатною функцією нейрона.

Правила перетворення сигналів визначаються математичною моделлю нейрона, що може бути записана у формі наступних аналітичних виразів:

µ § (7.

Математи́чна моде́ль - система математичних співвідношень, які описують досліджуваний процес або явище. Математична модель має важливе значення для таких наук, як: економіка, екологія, соціологія, фізика, хімія, механіка, інформатика, біологія та ін.

1)

де µ §ЎЄ вага синапса µ §; b ЎЄ значення зсуву; s ЎЄ результат підсумовування; µ § ЎЄ компонент вектора чи входу вхідного сигналу µ §; у ЎЄ вихідний сигнал нейрона; п ЎЄ число входів нейрона; f ЎЄ функція активації (передатна функція) нейрона, що представляє собою деяке нелінійне перетворення.

Функція активації, або передавальна функція (англ. activation function, також excitation function, squashing function, transfer function) штучного нейрона - залежність виходового сигналу штучного нейрона від вхідного.

У загальному випадку: µ §.

Синаптичні зв'язки з позитивними вагами: µ § називаються збуджуючими, а з негативними вагами µ § гальмуючими.

Таким чином, окремо узятий штучний нейрон цілком описується своєю структурою (див. рис. 7.1) і математичною моделлю (7.1). Одержавши вектор вхідного сигналу хi, нейрон видає деяке число y на своєму виході.

Як функція активації нейрона можуть бути використані різні нелінійні перетворення (табл. 7.1).

Таблиця .7.1. Основні види функцій активації нейронів

Назва

Область значень



Формула

Лінійна


µ §µ §Напівлінійна

µ §µ §Гранична

µ §µ §Модульна

µ §µ §Знакова (сигнатурна)

µ §µ §Квадратична

µ §µ §Експонентна

µ §µ §Синусоїдальна

[-1, 1]µ §Логістична (сигмоїдальна)

(0, 1)µ §Раціональна (сигмоїдальна)(-1, 1)µ §Гіперболічний тангенс

(сигмоїдальна)(-1, 1)µ §Лінійна з насиченням

(крокова)

[-1, 1]µ §µ §

Напівлінійна з насиченням

[0, 1)µ §Трикутна[0, 1]µ §Радіальна базисна (Гаусова)(0, 1]µ §

Нейронна мережа являє собою сукупність окремих нейронів, взаємозв’язаних між собою деяким фіксованим чином. При цьому взаємозв'язок нейронів визначається чи задається структурою (топологією) нейронної мережі. З точки зору топології нейронні мережі можуть бути повнозв’язними, багатошаровими і слабозв’язними. У загальному випадку структура багатошарової чи багаторівневої нейронної мережі може бути зображена в такий спосіб (рис. 7.2).

µ §


Рис. 7.2. Структура трирівневої нейронної мережі

Кожний з рівнів нейронної мережі називається її шаром. При цьому шар вхідного рівня називається вхідним шаром, шар рівня 1 і 2 ЎЄ схованими шарами, а шар рівня 3 ЎЄ вихідним шаром.

У свою чергу багатошарові нейронні мережі можуть бути наступних типів:

Монотонні ЎЄ кожен шар (крім вихідного) додатково розбивається на 2 блоки: збуджуючий і гальмуючий. Аналогічно розбиваються і зв'язки між блоками: на збуджуючі і гальмуючі. При цьому як функції активації можуть бути використані тільки монотонні функції (див. табл. 7.1).

Нейронні мережі зі зворотними зв'язками ЎЄ інформація з наступних шарів може передаватися на нейрони попередніх шарів.

Нейронні мережі без зворотних зв'язків ЎЄ інформація з наступних шарів не може передаватися на нейрони попередніх шарів.

Класичним варіантом багатошарової нейронної мережі є повнозв’язна мережа прямого поширення (рис. 7.2).

Процес побудови і використання нейро-мережевих моделей складається з наступних етапів:

1. Вибір типу і структури нейронної мережі для розв’язку поставленої проблеми (синтез структури нейронної мережі).

2. Навчання нейронної мережі (визначення чисельних значень ваг кожного з нейронів) на основі наявної інформації про розв’язок даної задачі експертом чи даних про розв’язок задачі в минулому.

3. Перевірка нейронної мережі на основі використання деякого контрольного приклада (необов'язковий етап).

4. Використання навченої нейронної мережі для розв’язку поставленої проблеми.

В даний час запропоновані різні схеми класифікації нейронних мереж і відповідні алгоритми їх навчання. Одним з найпоширеніших алгоритмів навчання є так званий алгоритм зворотного поширення помилки (back propagation).

Метод зворотного поширення помилки (англ. backpropagation) - метод навчання багатошарового перцептрону. Це ітеративний градієнтний алгоритм, який використовується з метою мінімізації помилки роботи багатошарового перцептрону та отримання бажаного виходу.

Цей алгоритм являє собою ітеративний градієнтний алгоритм мінімізації середньоквадратичного відхилення значень виходу від бажаних значень (мінімізації помилки) у багатошарових нейронних мережах.

Вибір виду і структури нейронної мережі визначається специфікою розв'язуваної задачі. При цьому для розв’язку окремих типів практичних задач розроблені оптимальні конфігурації нейронних мереж, що найбільше адекватно відбивають особливості відповідної проблемної області. Подальшим розвитком нейронних мереж є так звані гібридні мережі, що реалізовані в пакеті Fuzzy Logic Toolbox системи МАТLАВ.

Гібридна мережа являє собою багатошарову нейронну мережу спеціальної структури без зворотних зв'язків, у якій використовуються звичайні (не нечіткі) сигнали, ваги і функції активації, а виконання операції підсумовування (7.1) засновано на використанні фіксованої Т-норми, Т-конорми чи деякої іншої неперервної операції. При цьому значення входів, виходів і ваг гібридної нейронної мережі являють собою дійсні числа з відрізка [0, 1].

Основна ідея, покладена в основу моделі гібридних мереж, полягає в тому, щоб використовувати існуючу вибірку даних для визначення параметрів функцій належності, що найкраще відповідають деякій системі нечіткого виводу. При цьому для находження параметрів функцій належності використовуються відомі процедури навчання нейронних мереж.

У пакеті Fuzzy Logic Toolbox системи МАТLАВ гібридні мережі реалізовані у формі так званої адаптивної системи нейро-нечіткого виводу ANFIS. З одного боку, гібридна мережа ANFIS являє собою нейронну мережу з єдиним виходом і декількома входами, що являють собою нечіткі лінгвістичні змінні. При цьому терми вхідних лінгвістичних змінних описуються стандартними для системи МАТLАВ функціями належності, а терми вихідної змінної представляються лінійною чи постійною функцією належності.

З іншого боку, гібридна мережа ANFIS являє собою систему нечіткого виводу FIS типу Сугено нульового чи першого порядку, у якій кожне з правил нечітких продукцій має постійну вагу, рівну 1. У системі МАТLАВ користувач має можливість редагувати і налаштовувати гібридні мережі ANFIS аналогічно системам нечіткого виводу, використовуючи всі розглянуті раніше засоби пакета Fuzzy Logic Toolbox.

У пакеті Fuzzy Logic Toolbox системи МАТLАВ гібридні мережі реалізовані у формі адаптивних систем нейро-нечіткого виводу ANFIS.

Адапти́вна систе́ма (система, що сама пристосовується) - система, що автоматично змінює алгоритми свого функціонування і (іноді) свою структуру з метою збереження або досягнення оптимального стану при зміні зовнішніх умов.

При цьому розробка і дослідження гібридних мереж виявляється можливою:

інтерактивному режимі за допомогою спеціального графічного редактора адаптивних мереж, що одержав назву редактора ANFIS;

Графічний редактор - прикладна програма (або пакет програм), що дозволяє її користувачеві створювати і редагувати зображення на екрані комп'ютера і зберігати їх в графічних форматах файлів, наприклад, JPEG, PNG, GIF, TIFF.

режимі командного рядка за допомогою введення імен відповідних функцій з необхідними аргументами безпосередньо у вікно команд системи МАТLАВ. Для роботи в режимі командного рядка призначені спеціальні функції.

Редактор ANFIS дозволяє створювати чи завантажувати конкретну модель адаптивної системи нейро-нечіткого виводу, виконувати її навчання, візуалізувати її структуру, змінювати і налагоджувати її параметри, а також використовувати налагоджену мережу для одержання результатів нечіткого виводу.

Графічний інтерфейс редактора ANFIS викликається функцією anfisedit з командного рядка середовища Matlab.

7.2. Приклад розв’язку задачі нейро-нечіткого виводу


Для ілюстрації процесу розробки гібридної мережі в системі МАТLАВ розглянемо задачу побудови адаптивної системи нейро-нечіткого виводу для апроксимації деякої виробничої функції типу Кобба-Дугласа:

µ §,


яка описує залежність між витратами двох виробничих факторів (наприклад, грошей і праці) у кількості µ § і µ § та кількістю виготовленої продукції µ § у наперед визначених одиницях.

Фа́ктори виробни́цтва (англ. factors of production) - ресурси, необхідні для виробництва товарів або послуг. Класичними факторами виробництва є робоча сила (всі розумові та фізичні здібності людей), земля (природні багатства), капітал (наявні, вироблені засоби виробництва, а також фінансовий капітал).

Загальна послідовність процесу розробки моделі гібридної мережі може бути представлена в наступному вигляді.

Крок 1. Для початку за допомогою редактора відладчика m-файлів або будь-якого текстового редактору підготуємо навчальні дані, що містять 6-ти рядків з трьох значень ЁC два вхідних і одне вихідне значення, наприклад, наступного виду:

1 2 2.37


4 1 4.00

1 4 2.82


5 5 6.68

2 4 4.00


4 3 5.26

3 1 3.46


4 4 5.65

4 2 4.80


Числа в рядку розділяються клавішею «Space», а перехід на наступний рядок відбувається натисненням клавіші «Enter» . Слід зберегти цей файл у папці work каталогу Matlab6, наприклад, з назвою train.txt.

Взагалі, вхідні дані представляють собою звичайну числову матрицю розмірності m„e(n 1), у якій кількість рядків m відповідає обсягу вибірки, перші п стовпців ЎЄ значенням вхідних змінних моделі, а останній стовпчик ЎЄ значенню вихідної змінної. Відповідно до правил системи МАТLАВ окремі значення матриці відокремлюються пробілами, а кожен рядок матриці завершується символом "перевід каретки" (клавіша ).

Хоча по кількості рядків матриці вхідних даних не існує формальних рекомендацій, прийнято вважати, що якість навчання гібридної мережі, а, отже, і точність одержуваних результатів пропорційно залежить від обсягу навчальної вибірки. Що стосується кількості стовпців матриці вхідних даних, то слід зазначити можливі проблеми з працездатністю системи МАТLАВ, якщо кількість вхідних змінних перевищує 5 ЎЄ 6.

Початкові дані, що завантажуються, можуть бути одного з наступних типів:

навчальні дані (Training) ЎЄ обов'язкові дані, що використовуються для побудови гібридної мережі;

тестові дані (Testing) ЎЄ необов'язкові дані, що використовуються для тестування побудованої гібридної мережі з метою перевірки якості функціонування побудованої гібридної мережі;

перевірочні дані (Checking) ЎЄ необов'язкові дані, що використовуються для перевірки побудованої гібридної мережі з метою з'ясування факту перенавчання мережі;

демонстраційні дані (Demo) ЎЄ дозволяють завантажити один з демонстраційних прикладів гібридної мережі.

Тому, створимо ще і файл тестових даних test.txt. За аналогією зі створенням файлу train.txt, введемо в нього наступні дані:

2 1 2.82


3 2 4.12

1 3 2.63


2 3 3.72

3 3 4.56


4 2 4.75

3 4 4.90
Крок 2. Головне меню редактора ANFIS достатньо просте і призначене для роботи з попередньо створеною системою нечіткого виводу. Основну частину графічного інтерфейсу займає вікно візуалізації даних, що розташоване нижче головного меню (рис. 7.3). Для знову створюваної гібридної мережі це вікно не містить ніяких даних. Для створення гібридної мережі необхідно завантажити дані. Для цієї мети слід скористатися кнопкою Load Data в лівій нижній частині графічного вікна. При цьому дані можуть бути завантажені з зовнішнього файлу (disk) чи з робочої області (worksp). У першому випадку необхідно попередньо створити файл із вхідними даними (файл train), що являє собою звичайний текстовий файл.

Те́кстовий файл - форма подання послідовності символів у комп'ютері, де кожен символ із задіяного набору символів кодується одним байтом чи послідовністю двох, трьох і т. д. байтів. На відміну від терміна «текстовий формат», що характеризує вміст даних, термін «текстовий файл» стосується файлу та характеризує його як контейнер, який зберігає такі дані.

Після завантаження файлу із навчальними даними в редактор АNFIS у робочому вікні редактора буде зображений графік, ордината якого відображає значення вхідної математичної функції (кількість продукції у прикладі).


Рис. 7.3. Графічний інтерфейс редактора ANFIS після завантаження файлу function.dat з навчальними даними

Завантажимо ще і тестові дані для перевірки. Для цього в лівому нижньому кутку екрану оберемо тип testing, натиснемо кнопку Load data і завантажимо файл test.txt.

Крок 3. Приступити до генерації структури системи нечіткого виводу FIS. Ця структура аналогічна структурі системи нечіткого виводу типу Сугено. Тобто, має в своєму складі лінгвістичні вхідні змінні; вихідну змінну, терми якої представляються у вигляді числових констант або лінійних функцій від вхідних змінних; систему правил виводу.

У логіці правило виведення, правило виводу або правило перетворення (англ. rule of inference, inference rule, transformation rule) - це логічна форма[en], що складається з функції, яка отримує передумови, аналізує їхній синтаксис[en] і повертає висновок (або висновки[en]).

Крім того, можна завантажити структуру уже створеної FIS з диска (Load from disk), або з робочої області (Load from worksp). При створенні структури нової FIS можна незалежно розбити усі вхідні змінні на області їх значень (Grid partision) чи скористатися процедурою субтрактивної кластеризації для попередньої розбивки значень вхідних змінних на кластери близьких значень (Sub. clustering).

Після натискання кнопки Generate FIS викликається діалогове вікно з вказівкою числа і типу функцій належності для окремих термів вхідних змінних і вихідної змінної (рис. 7.4). В цьому вікні можна вибрати тип функцій належності і кількість термів кожної вхідної змінної, а також тип вихідної змінної. Установивши параметри генерації, наприклад, як на рис.7.4, одержимо структуру FIS.

Рис. 7.4. Діалогове вікно для завдання кількості і типу функцій належності
Після генерації структури гібридної мережі можна її подивитись, натиснувши кнопку Structure в правій частині графічного вікна. Структура отриманої в результаті системи нечіткого виводу FIS відображається в окремому вікні і досить тривіальна по своєму виду. Проаналізуйте її зміст.

Крок 4. Перед навчанням гібридної мережі необхідно задати параметри навчання, для чого варто скористатися наступною групою опцій у правій нижній частині робочого вікна:

1. Вибрати метод навчання гібридної мережі ЎЄ зворотного розповсюдження (bacprоро) чи гібридний (hybrid), що представляє собою комбінацію мeтоду найменших квадратів і методу спадання зворотного градієнта.

Мето́дика (від грец. μέθοδος - «шлях через») навчання окремої навчальної дисципліни (предмета) - галузь педагогічної науки, що являє собою окрему теорію навчання (приватну дидактику).

2. Установити рівень помилки навчання (Error Tolerance) ЎЄ за замовчуванням значення 0 (змінювати не рекомендується).

3. Задати кількість циклів навчання (Epochs) ЎЄ за замовчуванням значення 3 (рекомендується збільшити і для розглянутого приклада задати його значення рівним 40).

6. Для навчання мережі варто натиснути кнопку Trian Now. При цьому хід процесу навчання ілюструється у вікні візуалізації у формі графіка ЎЄ залежність помилки від кількості циклів навчання.

7. Аналогічно можуть бути виконані додаткові етапи тестування й перевірки гібридної мережі, для яких необхідно попередньо завантажити відповідні дані.
Крок 5. Подальше настроювання параметрів побудованої і навченої гібридної мережі може бути виконане за допомогою розглянутих раніше стандартних графічних засобів пакета Fuzzy Logic Toolbox. Для цього рекомендується зберегти створену систему нечіткого виводу в зовнішньому файлі з розширенням fis, після чого варто завантажити цей файл у редактор систем нечіткого виводу FIS. Можна працювати зі структурою системи нечіткого виводу безпосередньо в редакторі ANFIS.

При цьому також стають доступними редактор функцій належності системи нечіткого виводу (Membership Function Editor), редактор правил системи нечіткого виводу (Rule Editor), програма перегляду правил системи нечіткого виводу (Rule Viewer) і програма перегляду поверхні системи нечіткого виводу (Surface Viewer). Проаналізуйте правила та функції належності, які були побудовані даною системою апроксимації виробничої функції. Спробуйте їх корегувати і слідкувати за зміною результатів.

Крок 6. Виконати аналіз точності побудованої нечіткої моделі гібридної мережі можна за допомогою перегляду поверхні відповідної системи нечіткого виводу. Для цього слід записати побудовану мережу у вигляді файлу з розширенням *.fis і завантажити його в системі нечіткого виводу fuzzyToolbox (рис.5).

Рис. 7.5. Графічний інтерфейс пергляду поверхні згенерованої системи нечіткого виводу


Візуальний аналіз зображеного графіка з точним графіком функції µ § дозволяє судити про досить високий ступінь їх співпадання, що може свідчити про адекватність побудованої нечіткої моделі гібридної мережі.

Аналіз адекватності побудованої моделі можна виконати за допомогою перегляду правил відповідної системи нечіткого виводу (рис.7.6).

Перевірка побудованої моделі гібридної мережі може бути виконана для декількох значень вихідної змінної. З цією метою необхідно ввести конкретне значення в поле вводу Input (наприклад, значення 3 1), після натискання клавіші за допомогою побудованої моделі буде отримане відповідне значення вихідної змінної (у даному випадку значення 3.46). Порівнюючи отримане значення з точним значенням функції 3.46, одержимо відносну помилку порядку 0%.

Рис. 7.6. Графічний інтерфейс перегляду правил згенерованої системи нечіткого виводу

Менш удалою виявляється перевірка для значення вхідних змінних 4 3, для якого побудована модель пропонує значення 5.45 (табличне значення 5.26). Оче­видно, даний факт свідчить не на користь адекватності побудованої нечіткої моделі і вимагає її додаткового настроювання.

У загальному випадку додаткове настроювання моделі може бути виконане декількома можливими способами. Найбільш прийнятними з них представляються наступні.

1. Підготовка і завантаження більшого за обсягом вибірки файлу з навчальними вхідними даними.

2. Підготовка і завантаження додаткового файлу з перевірочними вхідними даними, сформованими для пар значень розглянутої математичної функції, відсутніх у вибірці навчальних даних.

3. Редагування типів і значень параметрів функцій належності термів вхідної і вихідної змінних за допомогою редактора функцій належності системи МАТLАВ.

Проілюструємо третій спосіб додаткового настроювання побудованої нечіткої моделі гібридної мережі. На перший погляд він представляється найбільш природним з погляду можливості візуального контролю виконуваних змін параметрів. З цією метою відкриємо редактор функцій належності і методом підбора змінимо кількісні значення параметрів другої і третьої функції належності вхідної змінної, оскільки саме вони "працюють" при одержанні некоректного значення вихідної змінної: 5.45 для значення вхідних змінних 4 і 3. (рис.7.7).


Рис. 7.7. Графічний інтерфейс редактора функцій належності побудованої системи нечіткого виводу


Після зміни параметрів у полі Params для третьої функції належності першої змінної на значення [0.385 3.66] одержимо практично точне значення вихідної змінної для значення вхідної змінної 5.29 (рис.7.8).

Рис. 7.8. Результат ручного настроювання параметрів функції належності вхідної змінної для розглянутої системи нечіткого виводу


Більш ефективним способом настроювання, а точніше ЎЄ модифікації, даної нечіткої моделі виявляється перший. З цією метою можна збільшити обсяг навчальної вибірки до 12 пар значень, додавши ще три рядка в файл train.txt. Наприклад:
2 1 2.82

3 2 4.12


1 3 2.63
Після видалення усіх раніше завантажених даних кнопкою Clear Data завантажимо новий файл із навчальною вибіркою. При генерації структури нової FIS збільшимо кількість термiв і, відповідно, кількість функцій належності вхідної змінної до 5, залишивши їх тип без зміни (gbellmf). Процес навчання виконаємо аналогічно раніше розглянутому. У результаті буде отримана нова система нечіткого виводу FIS, аналіз якої показує, що в порівнянні з першим варіантом нечіткої моделі вона більш точно описує вихідну математичну функцію. Це може бути основою для генерації нової нечіткої моделі, що пропонується виконати самостійно як вправу.

На закінчення необхідно відзначити, що навіть найпростіші розглянуті приклади відбивають творчий характер процесу побудови й аналізу моделей гібридних мереж. При цьому вибір того чи іншого способу додаткового настроювання нечітких моделей залежить не тільки від специфіки розв'язуваної задачі, але і від обсягу доступної вибірки навчальних і перевірочних даних.

У випадку недостатньої інформації навчальних даних використання гібридних мереж може виявитися взагалі недоцільним, оскільки одержати адекватну нечітку модель, а значить ЎЄ і точний прогноз значень вихідної змінної не представляється можливим. Саме з цих причин необхідний попередній аналіз усіх можливостей застосовуваних нечітких моделей для рішення конкретних задач у тій чи іншій проблемній області. Подібний аналіз необхідно виконувати із системної точки зору і з обліком всіх обставин, що складаються на даний момент. Тільки всебічна і повна оцінка проблемної ситуації дозволить розробити адекватну модель розв'язку тієї чи іншої конкретної задачі нечіткого керування чи прийняття рішень.

Проблема - складне теоретичне або практичне питання, що потребує розв'язання, вивчення, дослідження. Проблема - об'єкт (питання, недолік чи потреба чогось,завада від надлишку чи наявності чогось, процес) явище збуджуючого характеру як стимул діяльності спонукаючого характеру - незадоволений попит чи нереалізовані потреби (нестача або відсутність, надлишок або наявність чого-небудь), дефект, вада, чи загроза що змушує цілеспрямовано ліквідувати проблему шляхом уникнення взаємодії чи зміни стану об'єкту, себе чи свого ставлення до подій.

7.3. Завдання для самостійної роботи.

1. Апроксимація поверхні.

За допомогою гібридної мережі провести апроксимацію залежності µ §, використовуючи дані, які представлені на наступному рисунку.

Рис. 7.9. Навчальні дані збільшеного об’єму для побудови

гібридної мережі ANFIS, що представляє функцію µ §.

Рис 7. 10. Приблизний вигляд поверхні за результатами роботи СНВ, яка апроксимує залежність µ §

2. Аналіз і прогнозування цін на ринку житла

Як приклад побудови і використання адаптивної системи нейро-нечіткого виводу розглянемо процес розробки нечіткої моделі гібридної мережі для розв’язування задачі прогнозування ціни на ринку однокімнатних квартир в районі Теремків в залежності від кількості метрів та ціни на дану квартиру за попередні три місяці.

Суть даної задачі полягає в тому, щоб, знаючи динаміку зміни вартості продажу квартир за фіксований інтервал часу, прогнозувати значення їх вартості на визначений момент часу в майбутньому.

Момент часу - точка на часовій осі. Про події, що відповідають одному моменту часу, говорять як про одночасні.

При цьому характерною рисою динаміки зміни вартості (тренда) є наявність двох основних тенденцій у коливаннях відповідних цін.

З одного боку, спостерігається загальне довгострокове підвищення вартості, зв'язане з інфляцією та іншими факторами. З іншого боку, спостерігається короткострокове коливання цін, зв'язане з цілим рядом випадкових факторів, адекватне представлення яких у тій чи іншій формальній моделі навряд чи можливо.

Традиційно для рішення даної задачі застосовуються різні моделі технічного аналізу, засновані на використанні різних індикаторів.

Технічний аналіз (англ. Technical analysis) - прогнозування зміни ціни в майбутньому на основі аналізу зміни ціни у минулому. У його основі лежить аналіз часових рядів ціни - «чартів» (від англ. chart).

У той же час наявність неявних тенденцій у динаміці зміни вартості житла дозволяє застосувати модель адаптивних нейро-нечітких мереж.

У якості вихідних даних можна скористатися інформацією про динаміку вартості квартир, які пропонує фірма «Благовест» за 10 останніх тижднів, що доступна в Інтернеті за адресою: www.blagovest.com. Дану інформацію для зручності подальшої роботи представимо в табличній формі (табл. 2)

Таблиця 2. Динаміка вартості квартир у період з липня 2005 року по квітень 2006 року.

ТижденьМетражВартість29.01.06336000029.01.0645650005.02.0658597005.02.06365000012.02.06285200012.02.06254000019.02.06426000019.02.0633580002.03.0625400002.03.06466050019.03.06285200019.03.06456300026.03.06366000026.03.0639540002.04.0646605002.04.0645630009.04.0628520009.04.06466350016.04.06436300016.04.0645680007.05.0645645007.05.064665000

Припустимо, що нечітка модель гібридної мережі буде містити 3 вхідних змінних. Це будуть значення цін 1 м2 за попередні до поточного 3 тижня. Вихідна змінна ЁC вартість квартири (1м2) на поточний тиждень. Тому у файлі даних слід ввести матрицю цін, яка містить 4 стовпчики. Якщо ми розглядаємо 10 тижнів, тоді кількість рядків буде ЁC 7.

Збережемо навчальну вибірку в зовнішньому файлі під ім'ям prise.txt. Після цього відкриємо редактор ANFIS, у який завантажимо цей файл із навчальними даними.

Перед генерацією структури системи нечіткого виводу типу Суггено після виклику діалогового вікна властивостей задамо для кожної iз вхідних змінних по 3 або 4 лінгвістичних терма, а як тип їх функції належності виберемо трикутні функції (установлені системою МАТLАВ за замовчуванням).

Для навчання гібридної мережі скористаємося гібридним методом навчання з рівнем помилки 0, а кількість циклів навчання задамо 20. Після закінчення навчання даної гібридної мережі може бути виконаний аналіз графіка помилки навчання, що показує, що навчання практично закінчилося.

Після навчання гібридної мережі можна візуально оцінити структуру побудованої нечіткої моделі. Очевидно, графічна наочність даної моделі залишає бажати кращого, оскільки загальна кількість правил у розробленій адаптивній системі нейро-нечіткого виводу досить багато, що ускладнює їхній візуальний контроль і оцінку.

За допомогою графічних засобів системи MATLAB можна виконати контроль і настроювання параметрів функцій належності вхідних змінних і правил нечітких продукцій. Для виконання відповідних операцій можна скористатися редактором функцій належності.

Оскільки точність кількісних значень, забезпечувана графічними засобами пакета Fuzzу Logic Тооlbох, є недостатньою для рішення даної задачі, скористаємося функцією командного рядка evalfis. Як аргументи цієї функції вкажемо вектор значень вартості квартири на поточний і 3 попередніх тижня. Повний формат виклику цієї функції буде наступним:


out=evalfis ([х1 х2 х3], prise)
де out ЎЄ умовне ім'я вихідної змінної; х1 ЎЄ значення вартості квартири за попередній тиждень; х2ЎЄ значення вартості квартири за два тиждня; х3ЎЄ значення вартості квартири за три тиждня; prise ЎЄ ім'я структури FIS, попередньо завантаженої в робочу область системи МАТLАВ.

Після виконання цієї команди за допомогою розробленої нечіткої моделі буде отримане значення вихідної змінної для наступного тижня буде отримано деяке значення. Порівнюючи отримане значення з відповідним значенням з табл. 2, можна констатувати порівняти прогноз цін квартир.

У цьому випадку нечіткі моделі адаптивних систем нейро-нечiткого виводу можуть вважатися новим і конструктивним інструментом технічного аналізу фінансових ринків.

Розглянутий підхід є перспективним напрямком для побудови і використання відповідних нечітких моделей прогнозування цін інших фінансових інструментів, таких як курси валют, акцій компаній, фьючерсів і опціонів.

Фінансові інструменти - це засоби, що застосовуються для виконання завдань, передбачених фінансовою політикою. Основними фінансовими інструментами є: податки та збори, види цін, грошовий капітал, фінансові ресурси, стимули, санкції, цінні папери, валюта, грошові зобов'язання, страхові поліси, кредитні договори та інші види ринкового фінансового продукту.

Дійсно, загальним для всіх цих інструментів з позицій технічного аналізу є відсутність апріорних припущень про динаміку коливань відповідних курсів цін, що цілком узгоджується з вихідними передумовами побудови нечітких моделей адаптивних систем нейро-нечіткого виводу.

ДОДАТОК

Основи роботи в середовищі Matlab



Поява потужних математичних пакетів прикладних програм (ППП) ЁC один з напрямів розвитку сучасної прикладної науки.

Застосунок, застосовна програма або прикладна програма (англ. application, application software, app) - користувацька комп'ютерна програма, що дає змогу вирішувати конкретні прикладні задачі користувача.

ППП дозволяють спростити постановку задачі, процес її розв’язування та аналізу результату. Одним з таких пакетів є Matlab [7,8].
Обчислення арифметичних виразів

Арифметичні вирази в MatLab складаються, як і в більшості мов, з чисел, знаків арифметичних операцій, знака ^ (в степені), круглих дужок, змінних та вбудованих функцій [7].

Арифметичні дії є двомісними операціями на множині чисел - на вході беруть два числа (операнда), і повертають одне число як результат.

Десяткова частина числа відділяється точкою. Для обчислення найпростішого виразу потрібно набрати його в командному рядку і натиснути . Відповідь записується в спеціальну змінну ans і її значення виводиться на екран:

>> 1.5 2.9

ans =


4.4000

В якості знаку присвоювання використовується «=», наприклад:

>> a=3.25*(0.7-3.3/5.1) 2.3^3

a =


12.3391

Результат відразу виводиться на екран. Якщо це не потрібно, слід завершити вираз з оператором присвоювання крапкою з копою «;».Символ e використовується для запису числа в експоненціальній формі: числа 0.00125 и 1.25eЁC3 еквівалентні. Комплексні числа вводяться за допомогою символу «i»:

>>b=5*(2.2 3.9i) 0.

Ко́мпле́ксні чи́сла - розширення поля дійсних чисел, зазвичай позначається C } . Будь-яке комплексне число може бути представлене як формальна сума x + i y , де x і y - дійсні числа, i - уявна одиниця.

8

b =


11.8000 19.5000i

В MatLab є великий набір вбудованих математичних функцій. Деякі з них наведені в табл. 1.1. Під час виклику математичної функції аргумент записується в круглі дужки. Повний перелік всіх вбудованих елементарних математичних функцій можна отримати, якщо набрати в командному рядку help elfun. Команда help відображає список розділів довідкової системи. Для отримання змісту розділу необхідно вказати через пропуск його назву після help, а для виводу детальної інформації про будь-яку функцію, потрібно ввести в рядку разом з командою help ім’я функції.


Таблица 1.1

Основні математичні функції

Тригонометричні функції (аргумент задається в радіанах)sin, cos, tan, cotСинус, косинус, тангенс и котангенсsec, cscСеканс, косекансЗворотні тригонометричні функції (результат виражається в радіанах)asin, acos, atan, acot Арксинус, арккосинус, арктангенс и арккотангенсasec, acsc Арксеканс, арккосекансsinh, cosh, tanh, coth Гіперболічні синус, косинус, тангенс и котангенсsech, csch Гіперболічні секанс и косекансasinh, acosh, atanh, acoth Гіперболічні арксинус, арккосинус, арктангенс и арккотангенс;

Тригонометри́чні фу́нкції - це функції кута. Вони можуть бути визначені як відношення двох сторін та кута трикутника або як відношення координат точок кола.

ExpЕкспоненціальна функціяlog, log2, log10Натуральний логарифм, логарифми за основою 2 і 10SqrtКвадратний коріньabs, signМодуль и знак числаconj, imag, realКомплексно-спряженні, уявна і дійсна частинаНехай, наприклад, потрібно найти значення виразів при x = 0.2 и y = ЁC3.9:

µ §

Якщо набирати зразу всі вирази, то получається достатньо довга стрічка. Для перенесення на наступний рядок любої команди MatLab можна використати три слідуючих підряд точки, після натискування на середовище MatLab чекає продовження введення:



>> x=0.2;

>> y=-3.9;

>> c=sqrt((sin(4/3*pi*x) exp(0.1*y))/(cos(4/3*pi*x) exp(0.1*y))) ...

((sin(4/3*pi*x) exp(0.1*y))/(cos(4/3*pi*x) exp(0.1*y)))^(1/3)

Простіше всього вирішити поставлену задачу, використовуючи проміжні змінні:

>> x=0.2;

>> y=-3.9;

>> a=sin(4/3*pi*x) exp(0.1*y);

>> b=cos(4/3*pi*x) exp(0.1*y);

>> c=sqrt(a/b) (a/b)^(1/3)

c =

2.0451


Зверніть увагу на кілька важливих особливостей. Всі оператори присвоювання, крім останнього, закінченні точкою з комою для подавлені виводу результату. Не обов’язково набирати виразів для b, подібні на тільки що введення для a. Після введення третього рядка натисніть клавішу <Ўи>. В командному рядку появиться попередній вираз, внесіть в нього необхідні зміни, а саме, поміняйте sin на cos, и натисніть . Клавіші <Ўи> и <Ўй> служать для переходу по історії команд, т. ін. для занесення раніше набраних команд в командний рядок, а <Ўз>, <Ўж>,

1   2   3   4