А.8 Використання нейро-нечітких мереж
Приклад 19. Використання навченої нейро-нечіткої мережі.
Нехай ми маємо ємність, у яку наливається вода визначеної температури. Потрібно визначити температуру води через проміжок часу.
Входи мережі: х1 – температура води; х2 – час остигання води.
Вихід мережі: у – температура води після остигання.
Нехай у нас мається наступна база правил виду:
Якщо вода х1 та остигає х2, то температура води буде у.
Представимо її у вигляді таблиці:
НОМЕР ПРАВИЛА | ЯКЩО (входи) | ТО (вихід) | ВАГА ПРАВИЛА | |
x1 | x2 | |||
11 | холодна | недовго | прийнятна | 1 |
12 | холодна | довго | 1 | |
13 | тепла | довго | 0,8 | |
14 | гаряча | довго | 0,6 | |
21 | тепла | недовго | нормальна | 0,5 |
22 | гаряча | довго | 0,8 | |
31 | гаряча | недовго | висока | 0,9 |
Тут холодна, тепла, гаряча, довго, недовго – нечіткі терми (нечіткі множини):
Рисунок А.1 - Функції приналежності: μхол(х), μтепл(х), μгар(х)
Рисунок.А.2 - Функції приналежності μдол(х) та μнед(х)
Розбиття на класи для у виглядає таким чином:
прийнятна: [10; 25]
нормальна: [25; 45]
висока: [45; 60]
Таким чином: у = 10, у1 = 25, у2 = 45, = 60.
Рисунок А.3 - Нечітка нейронна мережа
Шар 1. Визначаються функції приналежності вхідних змінних термам. На виході μT(xi), i = 1, 2.
Шар 2. Вибирається мінімальний із входів нейрона. На виході min(μT(xi)), j = 1, 2, 3 – номер класу у.
|
|
Шар 3. Вибирається максимальний із входів нейрона (вхід є добутком виходу нейрона попереднього шару і ваги правила). На виході max(wjp·min(μT(xi))), p = 1, .., 7 – номер правила.
Шар 4. Визначаємо вихід:
.
Нехай х1 = 22 і х2 = 12, тоді:
визначення приналежностей термам (фазифікація):
μхол(х1) = 0,53; μтепл(х1) = 0,22; μгар(х1) = 0; μнед(х2) = 0,8; μдов(х2) = 0,2.
результати виконання нечітких правил:
11: min(0,53, 0,8) = 0,53;
12: min(0,53, 0,2) = 0,2;
13: min(0,22, 0,2) = 0,2;
14: min(0, 0,2) = 0;
21: min(0,22, 0,8) = 0,22;
22: min(0, 0,22) = 0;
31: min(0, 0,8) = 0.
результати об'єднання правил у класи:
d1: max(1·0,53, 1·0,2, 0,8·0,2, 0,6·0) = 0,53
d2: max(0,5·0,22, 0,8·0) = 0,11; d3: max(0,9·0) = 0.
Дефазифікація:
y = (10·0,53 + 25·0,11)/(0,53 + 0,11) = 12,6.
Одержуємо відповідь: вода 22°С після остигання протягом 12 хвилин буде мати температуру 12,6°С.
Приклад 20. Нехай ми маємо спостереження за погодою, представлені наборами значень змінних х1 - температура повітря, °С; х2 - вміст вологи у повітрі, %; y - кількість опадів, мм/см2. Ми знаємо, що параметр y залежить від параметрів x1 та x2, але ми не знаємо як. Треба побудувати нейро-нечітку апроксимацію залежності y(x1,x2) за даними спостережень, представленими у вигляді таблиці (навчальна вибірка). Для перевірки апроксимаційних властивостей нейро-нечіткої моделі будемо використовувати тестову вибірку, представлену у таблиці.
|
|
навчаюча вибірка |
| тестова вибірка | ||||
x1 | x2 | y | x1 | x2 | y | |
25 | 76 | 2.3 | 15 | 0.86 | 0.9 | |
27 | 79 | 2.2 | 25 | 0.47 | 2.5 | |
23.5 | 91 | 1.8 | 26 | 0.57 | 2.6 | |
15 | 89 | 1.2 | 15 | 0.98 | 0.9 | |
14.5 | 79 | 1.0 | 13.5 | 0.68 | 0.9 | |
17 | 61 | 1.4 | 16.5 | 0.93 | 1.6 | |
20 | 96 | 2.0 | 19.5 | 0.67 | 1.9 | |
23 | 89 | 2.0 | 22 | 0.58 | 2.1 | |
26.5 | 57 | 2.6 | 25 | 0.82 | 2.0 | |
29 | 59 | 2.7 | 28 | 0.86 | 2.8 |
У середовищі MATLAB створимо змінну навчаючої вибірки p та змінну тестової вибірки t:
p=[25 76 2.3; 27 79 2.2; 23.5 91 1.8; 15 89 1.2; 14.5 79 1.0; 17 61 1.4; 20 96 2.0; 23 89 2.0; 26.5 57 2.6; 29 59 2.7];
t=[15 0.86 0.9; 25 0.47 2.5; 26 0.57 2.6; 15 0.98 0.9; 13.5 0.68 0.9; 16.5 0.93 1.6; 19.5 0.67 1.9; 22 0.58 2.1; 25 0.82 2.0; 28 0.86 2.8];
Запустимо редактор ANFIS, для чого введемо: anfisedit
В області Load data задамо змінні тестової вибірки (оберемо в списку Type: Training та в списку from: Worksp., після чого натиснемо кнопку Load data .. та введемо у поле input variable name: p) та навчаючої вибірки (оберемо в списку Type:Testing та в списку from: Worksp., після чого натиснемо кнопку Load data .. та введемо у поле input variable name: t).
В області Generate Fis оберемо: Sub. clustering та натиснемо кнопку Generate Fis. В області Train FIS оберемо метод оптимізації Optim. method: hybrid. Задамо прийнятний рівень помилки Error tolerance: 0.000001. Задамо кількість ітерацій Epochs: 300. Натиснемо кнопку Train now. У графічній області Training Error будемо спостерігати, як змінюється помилка нейро-нечіткої мережі протягом навчання. Натиснувши кнопку Structure отримаємо зображення структури згенерованої нейро-нечіткої мережі.
|
|
Після цього отриману FIS структуру можна зберегти на диску або використовувати для прогнозування у, наприклад із використанням тестової вибірки t. Для тестування оберемо, для якої вибірки здійснюється тестування (Training - навчальна, Testing - тестова), та натиснемо кнопку Test now. Внизу форми буде вказано середню помилку тестування (Average Error), а на графіку буде зображено синіми точками - цільові значення виходу, а червоними зірками - розрахункові значення виходу нейро-нечіткої мережі.
Додаток Б
Дата добавления: 2018-04-15; просмотров: 278; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!