Лекція 10. Навчання нечітких
нейромереж
Розглянемо алгоритм навчання мережі ANFIS із алгоритмом виведення Ларсена. Із п. 8.1 випливає, що вихід нечіткої
нейромережі розраховується згідно із виразом:
Zˆ q1 q2 w1(a1x b1 y) w2 (a2 x b2 y)
w1
w
(a1x b1 y) 2 (a2 x b2 y)
w1 w2
w1 w2
1
1
(w1(a1x b1 y) w2 (a2 x b2 y))
w1 w2
A1 (x) B1 ( y) A2 (x) B2 ( y)
[A1 (x) B1 ( y)(a1x b1 y) A2 (x) B2 ( y)(a2 x b2 y)].
(8.1)
Припустимо, що функції належності є гаусівськими функціями:
x x A 2
y y B 2
i
i
Ai ( x ) exp
, Bi ( x ) exp
, i 1, 2.
A
B
i
i
(8.2)
Величини
x1A , x 2A , y1B , y 2B , 1A , 2A , 1B , 2B , a1 , a 2 , b1 , b2
(8.3)
(c) Снитюк
В.Є.
є параметрами алгоритму
виведення
і підлягають оптимізації шляхом навчання нечіткої нейромережі.
Навчання нечітких нейромереж
Припустимо, що нечіткою нейромережею реалізовано
невідоме відображення
Z F ( x, y ).
(8.4)
Є навчальна вибірка ( x1 , y1 , z1 ),,( xn , yn , zn ). Зауважимо,
що xi , y i , zi , i 1, n, є дійсними числами. Цільова функція для
k -го образу є такою:
1
Ek ( Zˆ k ( ) Z k ) 2 , k 1, n,
2
(8.5)
де Z k ( ) − розраховані значення виходу нейромережі, Z k −
значення, задані таблично. Як і для навчання звичайних
нейронних мереж, використаємо градієнтний метод, який
дозволить здійснити настройку параметрів (8.3), мінімізуючи
функцію (8.5), яка деталізовано є такою:
Ek Ek ( ) Ek x1A, x2A, y1B , y2B ,1A ,2A ,1B ,2B , a1, a2 , b1, b2
2
1 ˆk
Z ( ) Z k
2
2
1 ˆk A A B B A A B B
Z x1 , x2 , y1 , y2 ,1 ,2 ,1 ,2 , a1, a2 , b1, b2 Zk , k 1, n.
2
(c) Снитюк В.Є.
(8.6)
Навчання нечітких нейромереж
Коригування значень параметрів, зокрема x1A , здійснюватиметься за формулою:
Ek
,
(8.7)
A
x1 (t )
де x1A (t ) − значення параметра x1A на ітерації t ,
B1 ( x)
Ek
Ek Zˆ k ( ) A1 ( x) ˆ
k
(
Z
(
)
Z
)
k
A
A
k
ˆ
x1 Z ( ) A1 ( x) x1 (t)
A1 ( x)B1 ( y) A2 ( x)B2 ( y)
x1A (t 1) x1A (t )
2( x x1A )
(A1 ( x)B1 ( y) 1)(a1 x b1 y) A2 ( x)B2 ( y)(a2 x b2 y)
A1 ( x).
1A
Аналогічні перетворення мають місце для i , зокрема:
E
1A (t 1) 1A (t ) kA ,
(8.8)
1
(c) Снитюк В.Є.
Навчання нечітких нейромереж
B1 ( x)
Ek
Ek Zˆ k ( ) A1 ( x) ˆ
k
k
A (Zk ( ) Z )
A
ˆ
1 (t) Z ( ) A1 ( x) 1 (t)
A1 (x) B1 ( y) A2 (x)B2 ( y)
2( x m)2
(A1 ( x)B1 ( y) 1)(a1x b1 y) A2 ( x)B2 ( y)(a2 x b2 y)
A1 (x).
3
Перетворення для a1 є таким:
E k
a1 (t 1) a1 (t )
,
a1 (t )
(8.9)
xA1 ( x)B1 ( y)
Ek
Ek Zˆk ( )
k
ˆ
( Zk ( ) Z )
.
ˆ
a1 (t ) Zk ( ) a1 (t )
A1 ( x)B1 ( y ) A2 ( x)B2 ( y)
Аналогічно одержують вирази для коригування значень
інших параметрів.
(c) Снитюк В.Є.
Алгоритм навчання нечіткої нейромережі
Крок 1. Визначити структуру та елементний базис ННМ.
Крок 2. Виконати ініціалізацію значень параметрів (8.3).
Крок 3. Випадковим чином вибрати навчальний образ,
подати на вхід ННМ та розрахувати вихід.
Крок 4. Розрахувати значення цільової функції.
Крок 5. Виконати коригування значень параметрів за
формулами (8.7) – (8.9).
Крок 6. Якщо подано n образів та виконано відповідне
коригування, то ще раз подати їх у визначеному порядку без
коригування та знайти сумарне значення цільової функції
n
E Ek . Виконання умови E , де 0 − деяке задане чиk 1
сло, означає перехід на крок 7, якщо ж умова не виконується,
то виконати обнулення лічильників і перейти на крок 3.
Також на крок 3 необхідно переходити, якщо подано менше
ніж n образів.
Крок 7. Виведення результатів. Закінчення алгоритму.
(c) Снитюк В.Є.
Алгоритм навчання нечіткої нейромережі
Якщо функції належності є недиференційованими, застосування градієнтних методів навчання ННМ є неможливим. Зокрема, такими функціями є трикутні та трапецієподібні. Однією із технік навчання ННМ із такими функціями
належності є стохастичний метод. Розглянемо його застосування при навчання мережі ANFIS із алгоритмом логічного
виведення Цукамото. Відомо, що вихід ННМ (див. п. 8.1) є
таким:
1
Y 1Z1 2 Z2 3Z3 1D11 (1 ) 2 D12 (2 ) 3D13 (3 )
1 2 3
1
1D11 (1 ) 2 D12 (2 ) 3D13 (3 ) 3
(x ) (x ) ( x )
Ai
1
Bi
2
Ci
3
i 1
A1 ( x1 )B1 ( x2 )C1 ( x3 ) D11 (1 ) A2 ( x1 )B2 ( x2 )C2 ( x3 )D12 (2 )
A3 ( x1 )B3 ( x2 )C3 ( x3 )D13 (3 )].
(c) Снитюк В.Є.
(8.10)
Алгоритм навчання нечіткої нейромережі
Таким чином, (8.10) складають 12 функцій належності.
Без обмеження загальності вважатимемо їх симетричними
трикутними функціями. Тоді вектор параметрів ННМ буде
таким:
( a1A , a 2A , a 3A , a1B , aB2 , aB3 , aC1 , aC2 , aC3 , a1D , aD2 , aD3 ,
1
A
2
A
3
A
1
B
2
B
3
B
1
C
2
C
3
C
1
D
2
D
3
D
(8.11)
c , c , c , c , c , c , c , c , c , c , c , c ).
Для навчання ННМ використаємо розподіл Коші
T (t )
f ( x) 2
, де T (t ) – штучна температура, t – номер
2
T (t ) x
ітерації.
(c) Снитюк В.Є.
Алгоритм навчання нечіткої нейромережі
Наведемо алгоритм стохастичного навчання ННМ:
Крок 1. t 0. Надати значенню температури T великого
початкового значення.
Крок 2. Ініціалізувати значення вектора параметрів .
Крок 3. Подати навчальний образ і розрахувати значення
цільової функції.
Крок 4. Випадковим чином вибрати параметр w із (8.11),
розіграти рівномірно розподілене випадкове число із
інтервалу , , обчислити w T (t )tg ( f ( )) та надати
2 2
коефіцієнту w зміщення w, тобто w w w.
Крок 5. Обчислити знову значення цільової функції. Якщо
воно зменшилось, то зміна значення параметра w
зберігається. Якщо цільова функція погіршилась, то
необхідно розіграти випадкове рівномірно розподілене на
(0,1) число і порівняти з f ( w). Якщо f ( w) , то зміна
значення параметра зберігається, в іншому випадку зміна
відміняється.
(c) Снитюк В.Є.
Алгоритм навчання нечіткої нейромережі
Крок 6. Якщо всі навчальні образи вичерпані, то подаємо їх по
черзі на вхід ННМ і розраховуємо сумарну цільову функцію
E . Якщо E , то переходимо на крок 8. Якщо не всі образи
вичерпані, то здійснимо перехід на крок 3.
Крок 7. Якщо всі параметри зазнали корекції, то подаємо всі
навчальні образи і розраховуємо сумарну цільову функцію
E. Якщо E , то переходимо на крок 8, в протилежному
випадку − на крок 4.
Крок 8. Виведення результатів. Кінець алгоритму.
(c) Снитюк В.Є.
Алгоритм навчання нейромережі TSK
Розглянемо алгоритм навчання мережі TSK. У значній
мірі він є аналогічним алгоритму навчанню мережі ANFIS.
Нехай x1 , x2 , , xn – входи нейромережі. Їх фазифікація
здійснюється функціями належності
A j ( xi )
i
1
1 e
bi j ( xi aij )
, i 1, n, j 1, m,
де m – кількість правил. Тоді вектор параметрів нейромережі
(див. п. 8.1), які підлягають оптимізації є таким:
( a11 , b11 , a12 , b12 ,, a1n , b1n , a21 , b21 ,, a2n , b2n ,, amn , bmn , p10 , p11 , p12 ,,
p1n ,, pm 0 , pm1 , pm 2 ,, pmn ).
Наведемо основні вирази для навчання моделі TSK:
E
aij (t 1) aij (t ) j k , k 1, p,
ai (t )
p – кількість навчальних образів;
(c) Снитюк В.Є.
(8.12)
Алгоритм навчання нейромережі TSK
Ek
Ek
Zˆ k ( ) Aij ( xi ) ˆ
1
k
(
Z
(
)
Z
)
k
m n
aij Zˆ k ( ) Aj ( xi ) aij
i
Aij ( xi )
j1 i1
n
( x )
i 1
m
n
m
m
n
i j
( p j 0 p ji xi )Aj ( xi ) m n
( p j 0 Pji xi ) A j ( xi )
i
i
2 j 1
i 1
i1
i 1
i 1
(
(
x
))
i j
i
Aij
j 1 i1
Aij
j
j
bij ebi ( xi ai )
bij ( xi aij ) 2
(1 e
i
;
)
bij ( t 1) bij (t )-
Ek
, k 1, p.
j
bi (t )
(c) Снитюк В.Є.
Алгоритм навчання нейромережі TSK
У цьому випадку вираз для обчислення похідної відрізняється від попереднього лише останнім множником:
A j ( xi )
i
bi j
j
j
( ai j xi ) ebi ( xi ai )
(1 e
bi j ( xi aij ) 2
.
)
Для сукупності параметрів pij , j 1, m, i 0, n, коригування
здійснюється так:
pij (t 1) pij (t )
Ek
,
pij
n
xi A j ( xi )
i
Ek
Ek Zˆ k ( )
k
( Zˆ k ( ) Z k ) m i n1
,
ˆ
p ji Z ( ) pij
A j ( xi )
j 1 i 1
n
A j ( xi )
i
Ek
k
k
i 1
ˆ
( Z ( ) Z ) m n
.
p j 0
A j ( xi ) (c) Снитюк В.Є.
j 1 i 1
i
i
Алгоритм навчання RBF-нейромережі
Крок 1. Нормуємо початкові дані.
Крок 2. Формуємо навчальний і контрольний масиви.
Крок 3. Визначаємо границі зміни параметрів, що оптимізуються.
Крок 4. Задаємо параметри генетичного алгоритму.
Крок 5. Обчислюємо кількість елементів в генеральній
сукупності (залежить від передбачуваної точності результату
eps ).
Крок 6. Визначаємо кількість бінарних елементів в генотипі.
Крок 7. Випадковим чином формуємо початкову популяцію в
двійковому, дійсному і цілому еквівалентах.
Крок 8. Покладемо S _ Fit 0 та інтерпретуватимемо
значення цієї змінної як середню пристосованість на
попередньому кроці.
(c) Снитюк В.Є.
Алгоритм навчання RBF-нейромережі
Крок 9. Для всіх елементів початкової популяції по черзі
навчаємо RBF-мережу і знаходимо середньоквадратичну
помилку на контрольних образах Fit (i ).
Крок 10. Знаходимо значення середньої пристосованості
S _ Pop. Якщо виконується нерівність S _ Fit S _ Pop eps,
то перехід на крок 20.
Крок 11. Знаходимо максимальне Max _ Fit і мінімальне
Min _ Fit значення пристосованості в популяції. Якщо
Max _ Fit Min _ Fit eps, то перехід на крок 20.
Крок 12. Нормуємо значення Fit (i ) і формуємо відповідний
масив ймовірностей.
Зауваження 8.1. Кроки 13-16 виконуються k1 раз.
(c) Снитюк В.Є.
Алгоритм навчання RBF-нейромережі
Крок 13.Вибір батьків (по одній із схем ПР, ПА, СЕ, ІН, АУ).
Крок 14.Здійснення кроссоверу (по одній з схем ОТ, ДТ).
Крок 15.Здійснення мутації із заданою ймовірністю.
Крок 16.Формування множини кандидатів в нову популяцію.
Крок 17.Відбір індивідів в нову популяцію за однією із схем
ЗВ, ЕЛ, ВТ.
Крок 18.Покладемо S _ Fit S _ Pop.
Крок 19.Перехід на крок 9.
Крок 20.Обчислюємо прогнозні значення для
отриманих
масивів вагових коефіцієнтів W і параметрів .
Крок 21.Виведення результатів. Закінчення алгоритму.
(c) Снитюк В.Є.