Самоорганизующаяся карта Кохонена

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Самоорганизу́ющаяся ка́рта Ко́хонена (англ. Self-organizing map — SOM) — нейронная сеть с обучением без учителя, выполняющая задачу визуализации и кластеризации. Идея сети предложена финским учёным Т. Кохоненом. Является методом проецирования многомерного пространства в пространство с более низкой размерностью (чаще всего, двумерное), применяется также для решения задач моделирования, прогнозирования и др. Является одной из версий нейронных сетей Кохонена.

Самоорганизующиеся карты Кохонена используются для решения таких задач, как моделирование, прогнозирование, выявление наборов независимых признаков, сжатие информации, а также для поиска закономерностей в больших массивах данных. Наиболее часто описываемый алгоритм применяется для кластеризации данных.[1]

Структура сети[править | править вики-текст]

Самоорганизующаяся карта состоит из компонентов, называемых узлами или нейронами. Их количество задаётся аналитиком. Каждый из узлов описывается двумя векторами. Первый — т. н. вектор веса m, имеющий такую же размерность, что и входные данные. Второй — вектор r, представляющий собой координаты узла на карте. Карта Кохонена визуально отображается с помощью ячеек прямоугольной или шестиугольной формы; последняя применяется чаще, поскольку в этом случае расстояния между центрами смежных ячеек одинаковы, что повышает корректность визуализации карты.

Изначально известна размерность входных данных, по ней некоторым образом строится первоначальный вариант карты. В процессе обучения векторы веса узлов приближаются к входным данным. Для каждого наблюдения (семпла) выбирается наиболее похожий по вектору веса узел, и значение его вектора веса приближается к наблюдению. Также к наблюдению приближаются векторы веса нескольких узлов, расположенных рядом, таким образом если в множестве входных данных два наблюдения были схожи, на карте им будут соответствовать близкие узлы. Циклический процесс обучения, перебирающий входные данные, заканчивается по достижении картой допустимой (заранее заданной аналитиком) погрешности, или по совершении заданного количества итераций. Таким образом, в результате обучения карта Кохонена классифицирует входные данные на кластеры и визуально отображает многомерные входные данные в двумерной плоскости, распределяя векторы близких признаков в соседние ячейки и раскрашивая их в зависимости от анализируемых параметров нейронов.

В результате работы алгоритма получаются следующие карты:
карта входов нейронов — визуализирует внутреннюю структуру входных данных путем подстройки весов нейронов карты. Обычно используется несколько карт входов, каждая из которых отображает один из них и раскрашивается в зависимости от веса нейрона. На одной из карт определенным цветом обозначают область, в которую включаются приблизительно одинаковые входы для анализируемых примеров.
карта выходов нейронов — визуализирует модель взаимного расположения входных примеров. Очерченные области на карте представляют собой кластеры, состоящие из нейронов со схожими значениями выходов.
специальные карты — это карта кластеров, полученных в результате применения алгоритма самоорганизующейся карты Кохонена, а также другие карты, которые их характеризуют.[2]

Работа сети[править | править вики-текст]

  • Инициализация карты, то есть первоначальное задание векторов веса для узлов.
  • Цикл:
    • Выбор следующего наблюдения (вектора из множества входных данных).
    • Нахождение для него лучшей единицы соответствия (best matching unit, BMU, или Winner) — узла на карте, вектор веса которого меньше всего отличается от наблюдения (в метрике, задаваемой аналитиком, чаще всего, евклидовой).
    • Определение количества соседей BMU и обучение — изменение векторов веса BMU и его соседей с целью их приближения к наблюдению.
    • Определение ошибки карты.

Алгоритм[править | править вики-текст]

  • Инициализация

Наиболее распространены три способа задания первоначальных весов узлов:

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

Пусть 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 — количество элементов набора входных данных.

Преимущества модели[править | править вики-текст]

Устойчивость к зашумленным данным, быстрое и неуправляемое обучение, возможность упрощения многомерных входных данных с помощью визуализации.[3]

Особенности и недостатки модели[править | править вики-текст]

Важным недостатком является то, что окончательный результат работы нейронных сетей зависит от начальных установок сети.

История[править | править вики-текст]

Метод был предложен финским учёным Теуво Кохоненом в 1984 году. Существует множество модификаций исходной модели.

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]

  • SOM-Research на сайте Хельсинкского технического университета
  • WEBSOM, a Kohonen network project
  • PCA, SOM and GSOM: applet, Е. М. Миркес и университет Лейстера. Метод главных компонент, самоорганизующиеся карты и растущие самоорганизующиеся карты. Глава онлайн учебника c программами, позволяющими проводить сравнительные исследования.

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

  • T. Kohonen, Self-Organizing Maps (Third Extended Edition), New York, 2001, 501 pages. ISBN 3-540-67921-9
  • Дебок Г., Кохонен Т. Анализ финансовых данных с помощью самоорганизующихся карт, Альпина Паблишер, 2001, 317 стр. ISBN 5-89684-013-6
  • Зиновьев А. Ю. Визуализация многомерных данных. — Красноярск: Изд. Красноярского государственного технического университета, 2000. — 180 с.
  • Чубукова И.А. Data Mining. — 2000. — 326 с.