юється за правилом:
) (3.11)
Таким чином, він зменшується від значення order_lr до значення tune_lr.
Етап підстроювання. Цей етап триває протягом решти процедури навчання. Розмір околиці на цьому етапі залишається постійним і рівним:
=tune_nd + 0.00001 (3.12)
Параметр швидкості навчання змінюється за наступним правилом:
(3.13)
Параметр швидкості навчання продовжує зменшуватися, але дуже повільно, і саме тому цей етап іменується підстроюванням. Мале значення околиці і повільне зменшення параметра швидкості навчання добре налаштовують мережу при збереженні розміщення, знайденого на попередньому етапі. Число кроків на етапі підстроювання повинно значно перевищувати число кроків на етапі розміщення. На цьому етапі відбувається тонка настройка ваг нейронів по відношенню до набору векторів входу.
Як і у випадку шару Кохонена, нейрони карти Кохонена будуть упорядочиваться так, щоб при рівномірній щільності векторів входу нейрони карти Кохонена також були розподілені рівномірно. Якщо вектори входу розподілені нерівномірно, то і нейрони на мапі Кохонена матимуть тенденцію розподілятися відповідно до щільністю розміщення векторів входу.
Таким чином, при навчанні карти Кохонена вирішується не тільки завдання кластеризації вхідних векторів, але і виконується часткова класифікація.
Виконаємо навчання карти:
Задамо кількість циклів навчання рівним 500:
net.trainParam.epochs=500.trainParam.show=100=train (net, P) (P (1, :), P (2, :), * raquo ;, laquo ; markersize , 10) on (net.iw {1 * 1}, net.layers {1} .distances)
Результат навчання представлений на рис. 3.31.
Рис. 3.31. Карта Кохонена навчена
Положення нейронів і їх нумерація визначаються масивом вагових векторів, який для даного прикладу має вигляд:
. IW {l}=
.- 0.8545 - 0.8994
2.- 0.7932 - 0.8143
.- 0.2709 - 0.2603
. 0.1882 0.2544
. 0.3662 0.5626
. 0.4867 0.7698
.- 0.8393 - 0.8660
.- 0.3886 - 0.3762
. 0.1418 0.1526
. 0.2705 0.3433
. 0.4644 0.6633
. 0.5763 0.8375
.- 0.5093 - 0.5309
.- 0.2643 - 0.2911
. 0.1246 0.0871
. 0.2464 0.2180
. 0.3882 0.3787
. 0.6330 0.6630
.- 0.0016 - 0.1233
. 0.0864 - 0.0209
. 0.1945 0.0661
. 0.3692 0.2297
. 0.5971 0.4455
. 0.7805 0.6008
.- 0.0040 - 0.1857
. 0.0668 - 0.0835
. 0.1446 - 0.0139
. 0.2837 0.0732
. 0.5270 0.2719
. 0.7390 0.4789
Пронумеруємо на мапі Кохонена кластери і лінією відділимо один клас від іншого (рис. 3.32).
Рис. 3.32. Карта Кохонена в Matlab
Якщо промоделювати карту Кохонена на масиві навчальних векторів входу, то буде отримана приналежність нейронів до певного класу (табл. 3.5):
Табл. 3.5
Класифікація нейронів
1 класс2 класс3 класс1342457961010151216171918202221232224252926302728
Це означає, що вектори входів 1, 2, 7 віднесені до класу з номером 1, вектори 3,4, 9, 10, 15, 16, 19, 20, 21, 22, 25, 26 , 27, 28 - до клаccу 2, вектори 4, 5, 6, 10, 12, 17, 18, 22, 23, 24, 29, 30 - до классcу 3. Номер кластера в таблиці відповідає номеру відповідного нейрона на мапі Кохонена. Бачимо, що в 2-му та 3-му класах зустрічаються однакові нейрони. Це говорить про те, що класифікація зразків на кордоні класів відбувається неоднозначно і зустрічаються перетину.
Якщо сформувати довільний вектор входу, то карта Кохонена повинна вказати його приналежність до того чи іншого кластеру:
а=sim (net, [1; 1])
а=(12,1) 1.
В даному випадку представлений вектор входу віднесений до кластеру з номером 12. Векторів такого сорту в навчальної послідовності не було. Можна зробит...