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

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 11: Строка 11:
 
'''Самоорганизующаяся карта Кохонена''' (англ. Self-Organizing Map или сокращено SOM) - это разновидность нейронных сетей, относящаяся к алгоритмам обучения без учителя. Основная цель - найти скрытые закономерности в данных по средством снижения размерности исходного пространства. Важным свойством карт Кохонена является то, что они строят отображение в пространство низкой размерности (обычно двумерное) таким образом, что топология исходного пространства сохраняется. Результат данного отображения - правильная решетка из обученных нейронов -  называется "картой" исходного пространства. Алгоритм был разработан известным финским учёным, заслуженным академиком Финской Академии Наук Теуво Кохоненом в 1984(2) году. Карты Кохенана находят успешное применение в задачах кластеризации и визуализации, а также для снижения размерности и детектирования аномалий в данных.
 
'''Самоорганизующаяся карта Кохонена''' (англ. Self-Organizing Map или сокращено SOM) - это разновидность нейронных сетей, относящаяся к алгоритмам обучения без учителя. Основная цель - найти скрытые закономерности в данных по средством снижения размерности исходного пространства. Важным свойством карт Кохонена является то, что они строят отображение в пространство низкой размерности (обычно двумерное) таким образом, что топология исходного пространства сохраняется. Результат данного отображения - правильная решетка из обученных нейронов -  называется "картой" исходного пространства. Алгоритм был разработан известным финским учёным, заслуженным академиком Финской Академии Наук Теуво Кохоненом в 1984(2) году. Карты Кохенана находят успешное применение в задачах кластеризации и визуализации, а также для снижения размерности и детектирования аномалий в данных.
  
Карты Кохонена и по своей архитектуре, и по методу обучения отличаются от обычных нейронных сетей прямого распространения. C точки зрения метода обучения карты Кохонена не используют градиентные методы для минимизации ошибки (как это делается в сетях прямого распространения), поскольку являются алгоритмом обучения без учителя и никак не могут учитывать информацию и метках классов. Поэтому нейронная сеть обучается через соревнование между нейронами: на каждом шаге алгоритма для случайного объекта из обучающей выборки выбирается нейрон-победитель (best matching unit, BMU), который в определенном смысле похож на данный объект. А архитектура карты Кохонена представляет два полносвязных слоя из нейронов: первый слой (будем называть его <math>l_1</math>) состоит из входных нейронов (их количество равно размерности исходного пространства), второй слой (<math>l_2</math>) представляет собой регулярную (прямоугольную или шестиугольную) решётку из нейронов. Размеры сетки выбираются вручную до начала запуска алгоритма. Таким образом каждый нейрон слоя <math>l_2</math> описывается двумя векторами: первый вектор - вектор весов <math>\mathbf{w}</math>, размерность которого совпадает с размерностью исходного пространства, а второй вектор <math>\mathbf{r}</math> определяет положение нейрона в регулярной сетке слоя <math>l_2</math>. Процесс обучения состоит в настройке векторов <math>\mathbf{w}</math>, а положение нейрона в решететке - вектор <math>\mathbf{r}</math> остается неизменым на протяжении всего обучения.
+
Карты Кохонена и по своей архитектуре, и по методу обучения отличаются от обычных нейронных сетей прямого распространения. C точки зрения метода обучения карты Кохонена не используют градиентные методы для минимизации ошибки (как это делается в сетях прямого распространения), поскольку являются алгоритмом обучения без учителя и никак не могут учитывать информацию и метках классов. Поэтому нейронная сеть обучается через соревнование между нейронами: на каждом шаге алгоритма для случайного объекта из обучающей выборки выбирается нейрон-победитель (best matching unit, BMU), который в определенном смысле похож на данный объект. А архитектура карты Кохонена представляет два слоя из нейронов: первый слой состоит из входных нейронов (их количество равно размерности исходного пространства), второй слой (его еще называют слоем Кохонена) представляет собой прямоугольную матрицу из нейронов, соедененных со всеми входами сети. Размеры матрицы выбираются вручную до начала запуска алгоритма.  
 +
 
 +
Таким образом каждый нейрон слоя Кохонена описывается: вектором весов <math>\mathbf{w}</math>, размерность которого совпадает с размерностью исходного пространства, и его положением в слое Кохонена (индексы).  
 +
Процесс обучения состоит в настройке векторов <math>\mathbf{w}</math>.
  
 
== Математическое описание алгоритма ==
 
== Математическое описание алгоритма ==
  
 
Пусть <math>\mathcal{L} = \left\{  \mathbf{x}_i \right\}_{i=1}^{N}</math> - некоторое подмножество точек пространства <math>\mathbb{R}^D</math>, <math>\mathbf{x}_i = \left(  x_{i1}, \dots, x_{iD} \right) \in \mathbb{R}^D</math>. В машинном обучении множество <math>\mathcal{L}</math> называют обучающей выборкой. Кроме того, задана структура слоя <math>l_2</math>: выбрана прямоугольная или шестиугольная связность между нейронами, задано общее количество нейронов (обозанчим его через <math>L = X \times Y</math>, где <math>X</math> и <math>Y</math> - количество нейронов в строках и столбцах соответственно), а также для каждого <math>i</math>-го нейрона определено его положение в решетке - вектор <math>\mathbf{r}_i</math>
 
Пусть <math>\mathcal{L} = \left\{  \mathbf{x}_i \right\}_{i=1}^{N}</math> - некоторое подмножество точек пространства <math>\mathbb{R}^D</math>, <math>\mathbf{x}_i = \left(  x_{i1}, \dots, x_{iD} \right) \in \mathbb{R}^D</math>. В машинном обучении множество <math>\mathcal{L}</math> называют обучающей выборкой. Кроме того, задана структура слоя <math>l_2</math>: выбрана прямоугольная или шестиугольная связность между нейронами, задано общее количество нейронов (обозанчим его через <math>L = X \times Y</math>, где <math>X</math> и <math>Y</math> - количество нейронов в строках и столбцах соответственно), а также для каждого <math>i</math>-го нейрона определено его положение в решетке - вектор <math>\mathbf{r}_i</math>

Версия 20:58, 21 сентября 2016


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

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

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

Рисунок 1. Структура самоогранизующейся карты Кохонена с шестиугольной решеткой

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

Карты Кохонена и по своей архитектуре, и по методу обучения отличаются от обычных нейронных сетей прямого распространения. C точки зрения метода обучения карты Кохонена не используют градиентные методы для минимизации ошибки (как это делается в сетях прямого распространения), поскольку являются алгоритмом обучения без учителя и никак не могут учитывать информацию и метках классов. Поэтому нейронная сеть обучается через соревнование между нейронами: на каждом шаге алгоритма для случайного объекта из обучающей выборки выбирается нейрон-победитель (best matching unit, BMU), который в определенном смысле похож на данный объект. А архитектура карты Кохонена представляет два слоя из нейронов: первый слой состоит из входных нейронов (их количество равно размерности исходного пространства), второй слой (его еще называют слоем Кохонена) представляет собой прямоугольную матрицу из нейронов, соедененных со всеми входами сети. Размеры матрицы выбираются вручную до начала запуска алгоритма.

Таким образом каждый нейрон слоя Кохонена описывается: вектором весов [math]\mathbf{w}[/math], размерность которого совпадает с размерностью исходного пространства, и его положением в слое Кохонена (индексы). Процесс обучения состоит в настройке векторов [math]\mathbf{w}[/math].

1.2 Математическое описание алгоритма

Пусть [math]\mathcal{L} = \left\{ \mathbf{x}_i \right\}_{i=1}^{N}[/math] - некоторое подмножество точек пространства [math]\mathbb{R}^D[/math], [math]\mathbf{x}_i = \left( x_{i1}, \dots, x_{iD} \right) \in \mathbb{R}^D[/math]. В машинном обучении множество [math]\mathcal{L}[/math] называют обучающей выборкой. Кроме того, задана структура слоя [math]l_2[/math]: выбрана прямоугольная или шестиугольная связность между нейронами, задано общее количество нейронов (обозанчим его через [math]L = X \times Y[/math], где [math]X[/math] и [math]Y[/math] - количество нейронов в строках и столбцах соответственно), а также для каждого [math]i[/math]-го нейрона определено его положение в решетке - вектор [math]\mathbf{r}_i[/math]