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

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

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

Структура сети[править | править исходный текст]

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

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

Работа сети[править | править исходный текст]

  • Инициализация карты, то есть первоначальное задание векторов веса для узлов.
  • Цикл:
    • Выбор следующего наблюдения (вектора из множества входных данных).
    • Нахождение для него лучшей единицы соответствия (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 - количество элементов набора входных данных.

История[править | править исходный текст]

Метод был предложен финским учёным Теуво Кохоненом в 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 с.