Самоорганізована карта Кохонена

Самоорганізована карта Кохонена ( англ. Self-organizing map - SOM) - змагальна нейронна мережа з навчанням без вчителя, виконує завдання візуалізації та кластеризації. Ідея мережі запропонована фінським вченим Т. Кохоненом. Є методом проекціювання багатовимірного простору в простір з більш низькою розмірністю (найчастіше, двовимірне), застосовується також для вирішення завдань моделювання, прогнозування та ін Є однією з версій нейронних мереж Кохонена.


1. Структура мережі

Самоорганізована карта складається з компонентів, які називаються вузлами або нейронами. Їх кількість задається аналітиком. Кожен з вузлів описується двома векторами. Перший - т. зв. вектор ваги m, що має таку ж розмірність, що і вхідні дані. Другий - вектор r, що представляє собою координати вузла на карті. Зазвичай вузли розташовують у вершинах регулярної решітки з квадратними або шестикутними осередками.

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


2. Робота мережі

  • Ініціалізація карти, тобто первісне завдання векторів ваги для вузлів.
  • Цикл:
    • Вибір наступного спостереження (вектора з безлічі вхідних даних).
    • Знаходження для нього кращою одиниці відповідності (best matching unit, BMU, або Winner) - вузла на карті, вектор ваги якого найменше відрізняється від спостереження (в метриці, яка задається аналітиком, найчастіше, евклідової).
    • Визначення кількості сусідів BMU і навчання - зміна векторів ваги BMU і його сусідів з метою їх наближення до спостереження.
    • Визначення помилки карти.

3. Алгоритм

  • Ініціалізація

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

    • Завдання всіх координат випадковими числами.
    • Привласнення вектору ваги значення випадкового спостереження з вхідних даних.
    • Вибір векторів ваги з лінійного простору, натягнутого на головні компоненти набору вхідних даних.
  • Цикл

Нехай t - Номер ітерації (ініціалізація відповідає номеру 0).

    • Вибрати довільне спостереження x (t) з множини вхідних даних.
    • Знайти відстані від нього до векторів ваги всіх вузлів карти і визначити найближчий по вазі вузол M_c (t) . Це - BMU або Winner. Умова на M_c (t) :
\ | X (t)-m_c (t) \ | \ leq \ | x (t)-m_i (t) \ | ,
для будь-якого m_i (t) , Де m_i (t) - Вектор ваги вузла M_i (t) . Якщо знаходиться декілька вузлів, які відповідають умові, BMU вибирається випадковим чином серед них.
    • Визначити за допомогою функції h (Функції сусідства) сусідів M_c і зміна їх векторів ваги.
      • Завдання h
Функція визначає "міру сусідства" вузлів M_i і M_c і зміна векторів ваги. Вона повинна поступово уточнювати їх значення, спочатку в більшої кількості вузлів і сильніше, потім у меншого і слабкіше. Часто в якості функції сусідства використовується гаусівських функція:
h_ {ci} (t) = \ alpha (t) \ cdot \ exp (- \ frac {\ | r_c-r_i \ | ^ 2} {2 \ sigma ^ 2 (t)})
де 0 <\ alpha (t) <1 - Навчальний співмножник, монотонно спадною з кожною наступною ітерацією (тобто визначає наближення значення векторів ваги BMU і його сусідів до спостереження; чим більше крок, тим менше уточнення);
r_i , r_c - Координати вузлів M_i (t) і M_c (t) на карті;
\ Sigma (t) - Співмножник, що зменшує кількість сусідів з ітераціями, монотонно убуває.
Параметри \ Alpha , \ Sigma і їх характер убування задаються аналітиком.
Більш простий спосіб завдання функції сусідства:
h_ {ci} (t) = \ alpha (t) ,
якщо M_i (t) знаходиться в околиці M_c (t) заздалегідь заданого аналітиком радіусу, і 0 у противному випадку.
Функція h (t) дорівнює \ Alpha (t) для BMU і зменшується з видаленням від BMU.
      • Зміна векторів ваги
Змінити вектор ваги за формулою:
m_i (t) = m_i (t-1) + h_ {ci} (t) \ cdot (x (t)-m_i (t-1))
Т.ч. вектора ваги всіх вузлів, що є сусідами BMU, наближаються до розглянутого спостереженню.
    • Обчислення помилки карти
Наприклад, як середнє арифметичне відстаней між спостереженнями і векторами ваги відповідних їм BMU:
\ Frac {1} {N} \ sum_ {i = 1} ^ {N} \ | x_ {i}-m_ {c} \ | ,
де N - кількість елементів набору вхідних даних.

4. Історія

Метод був запропонований фінським вченим Теуво Кохоненом в 1984 році. Існує безліч модифікацій вихідної моделі.