ктура самоорганізується карти Кохонена
Ця архітектура аналогічна структурі шару Кохонена за винятком того, що тут не використовуються зсуву. Конкуруюча функція активації повертає 1 для елемента виходу, відповідного перемог нейрону; всі інші елементи вектора рівні 0.
Однак в мережі Кохонена виконується перерозподіл нейронів, які сусідять із перемігшим нейроном. При цьому можна вибирати різні топології розміщення нейронів і різні заходи для обчислення відстаней між нейронами.
. 8.3 Створення мережі
Для створення самоорганізується карти Кохонена у складі ППП MATLAB NNT передбачена М-функція newsom. За умовами завдання нам потрібно створити мережу для обробки двохелементних векторів входу з діапазоном зміни елементів від - 1 до 1 і від - 1 до 1 відповідно. Передбачається використовувати гексагональну сітку розміру 6x5. Тоді для формування такої нейронної мережі достатньо скористатися оператором:
net=newsom ([- 1 1; - 1 1], [6 5]). layers {1} =: [6 5]: linkdist raquo ;: [30x30 double]: laquo ; initwb raquo ;: netsum raquo ;: [2x30 double]: 30: hextop raquo ;: compet raquo ;: [1x1 struct]
Рис. 3.29. Початкові входи Нейрна.
З аналізу характеристик цієї мережі слід, що вона використовує за замовчуванням гексагональну топологію hextop і функцію відстані linkdist.
Для навчання мережі задамо наступні 120 двохелементних векторів входу, а 30 зразків, по 10 з кожного класу залишимо для тестування мережі:
=[- 0.86 - 0.86 ... n; 0.58 0.41 ... n]
Побудуємо на топографічній карті початкове розташування нейронів карти Кохонена (рис. 3.30):
hold on (P (1,;), P (2, :), * до , markersize , 10)
Рис. 3.30. Розташування вибірки навчальних зразків
Вектори входу помічені символом * і розташовані по периметру малюнка, а початкове розташування нейронів відповідає точці з координатами (1, 0.5).
. 8.4 Навчання мережі
Навчання самоорганізується карти Кохонена реалізується повекторно незалежно від того, виконується навчання мережі за допомогою функції trainwbl або адаптація за допомогою функції adaptwb. У будь-якому випадку функція learnsom виконує настройку елементів вагових векторів нейронів.
Насамперед визначається нейрон-переможець і коригуються його вектор ваг і вектори ваг сусідніх нейронів згідно співвідношенню:
(3.8)
де - параметр швидкості навчання;- Масив параметрів сусідства для нейронів, розташованих в околиці нейрона-переможця i, який обчислюється за співвідношенням:
(3.9)
де - елемент виходу нейронної мережі;- Відстань між нейронами i і j;- Розмір околу нейрона-переможця.
Вагові вектори нейрона-переможця та сусідніх нейронів змінюються залежно від значення параметра сусідства. Ваги нейрона-переможця змінюються пропорційно параметру швидкості навчання, а ваги сусідніх нейронів - пропорційно половинному значенням цього параметра.
Процес навчання карти Кохонена включає 2 етапи: етап впорядкування векторів вагових коефіцієнтів в просторі ознак і етап підстроювання. При цьому використовуються наступні параметри навчання мережі (таблиця 3.4):
Табл. 3.4
Параметри навчання мережі
Параметри навчання та налаштування карти КохоненаЗначеніе по умолчаніюКолічество циклів обученіяneе.trainParamepochsN gt; 1000Колічество циклів на етапі упорядоченіяnetinputWeights {1,1} .learnParam.order_stepsS1000Параметр швидкості навчання на етапі упорядоченіяnet.inputWeights {1,1} .leamParam. order_lrorder_lr0.9Параметр швидкості навчання на етапі подстройкіnet.inputWeights {1,1} .learnParam.tune_lrtune0.02Размер околиці на етапі подстройкіnet.inputWeights (1,1) .learnParam.tune_ndtune_nd1
У процесі побудови карти Кохонена змінюються 2 параметра: розмір околиці і параметр швидкості навчання.
Етап упорядкування. На цьому етапі використовується фіксована кількість кроків. Початковий розмір околу призначається рівним максимальному відстані між нейронами для обраної топології і потім зменшується до величини, використовуваної на етапі підстроювання у відповідності з наступним правилом:
(3.10)
де
- максимальна відстань між нейронами;- Номер поточного?? ага.
Параметр швидкості навчання змін...