Участник:Anton goy/Самоорганизующиеся карты Кохонена

Материал из Алговики
Перейти к навигации Перейти к поиску


Автор: Гой Антон, 617 группа.

Свойства и структура алгоритмов

Общее описание алгоритма

Самоорганизующаяся карта Кохонена (англ. Self-Organizing Map или сокращено SOM) - это разновидность нейронных сетей, относящаяся к алгоритмам обучения без учителя. Основная цель - найти скрытые закономерности в данных. Важным свойством карт Кохонена является то, что они строят отображение исходного пространства в пространство низкой размерности (обычно двумерное), сохраняя топологическую струтуру, которая накладывается на нейроны. Результат данного отображения называется "картой" исходного пространства. Построение карты представляет собой процесс соревнования между нейронами, в результате которой алгоритм строит двумерную карту с такой же топологией как и в исходном пространстве.

Алгоритм был разработан известным финским учёным заслуженным академиком Финской Академии Наук Теуво Кохоненом в 1984 году.

Карты Кохонена отличаются от обычных нейронных сетей прямого распространения. Cамым значительным отличием является то, что карты Кохонена используют соревнование между нейронами в процессе обучения (competitive learning), в то время как сети прямого распространения используют градиентные методы для минимизации ошибки сети (error-correction learning).

Карты Кохенана находят успешное применение в задачах кластеризации и визуализации, а также для снижения размерности и детектирования аномалий в данных.

С точки зрения архитектуры сети, карты Кохонена представляют два полносвязных слоя из нейронов: первый слой (будем называть его [math]\displaystyle{ l_1 }[/math]) состоит из входных нейронов (их количество равно размерности исходного пространства), второй слой ([math]\displaystyle{ l_2 }[/math]) представляет собой регулярную (прямоугольную или шестиугольную) решётку из нейронов. Размеры сетки выбираются вручную до начала запуска алгоритма. Таким образом каждый нейрон слоя [math]\displaystyle{ l_2 }[/math] описывается двумя векторами: первый вектор --- вектор весов [math]\displaystyle{ \mathbf{m} }[/math], размерность которого совпадает с размерностью исходного пространства, а второй вектор [math]\displaystyle{ \mathbf{r} }[/math] определяет положение нейрона в регулярной сетке слоя [math]\displaystyle{ l_2 }[/math].