В результате работы алгоритма центр кластера устанавливается в определенной позиции, удовлетворительным образом кластеризующей примеры, для которых данный нейрон является "победителем". В результате обучения сети необходимо определить меру соседства нейронов, т.е. окрестность нейрона-победителя, которая представляет собой несколько нейронов, которые окружают нейрон-победитель.
Сначала к окрестности принадлежит большое число нейронов, далее ее размер постепенно уменьшается. Сеть формирует топологическую структуру, в которой похожие примеры образуют группы примеров, близко находящиеся на топологической карте.
Рассмотрим это более подробнее. Кохонен существенно упростил решение задачи, выделяя из всех нейронов слоя лишь один с-й нейрон, для которого взвешенная сумма входных сигналов максимальна:
. (2.1)Отметим, что весьма полезной операцией предварительной об работки входных векторов является их нормализация:
(2.2)превращающая векторы входных сигналов в единичные с тем же направлением.
(2.3)В этом случае вследствие того, что сумма весов каждого нейрона одного слоя
для всех нейронов этого слоя одинакова и , условие (2.1) эквивалентно условию: .(2.4)Таким образом, будет активирован только тот нейрон, вектор весов которого w наиболее близок к входному вектору х. А так как перед началом обучения неизвестно, какой именно нейрон будет активироваться при предъявлении сети конкретного входного вектора, сеть обучается без учителя, т. е. самообучается. Вводя потенциальную функцию — функцию расстояния
(«соседства») между i-м и j-м нейронами с местоположениями и соответственно, монотонно убывающую с увеличением расстояния между этими нейронами, Кохонен предложил следующий алгоритм коррекции весов: ,(2.5)где
- изменяющийся во времени коэффициент усиления (обычно выбирают на первой итерации, постепенно уменьшая в процессе обучения до нуля); - монотонно убывающая функция. , (2.6)Где
и - векторы, определяющие положение нейронов i и j в решетке. При принятой метрике функция с ростом времени стремится к нулю. На практике вместо параметра времени используют параметр расстояния , задающий величину области «соседства» и уменьшающийся с течением времени до нуля. Выбор функции также влияет на величины весов всех нейронов в слое. Очевидно, что для нейрона-победителя : .(2.7)На рисунке 2.2 показан пример изменения двумерных весов карты
, образующей цепь. При появлении входного образа наиболее сильно изменяется весовой вектор нейрона-победителя 5, менее сильно — веса расположенных рядом с ним нейронов 3, 4, 6, 7. А так как нейроны 1, 2, 8, 9 лежат вне области «соседства», их весовые коэффициенты не изменяются.Рисунок– 2.2 Изменение весов карты Кохонена
Таким образом, алгоритм обучения сети Кохонена может быть описан так:
1. Инициализация
Весовым коэффициентам всех нейронов присваиваются малые случайные значения и осуществляется их нормализация. Выбирается соответствующая потенциальная функция
и назначается начальное значение коэффициента усиления .2. Выбор обучающего сигнала
Из всего множества векторов обучающих входных сигналов в соответствии с функцией распределения
выбирается один вектор , который представляет «сенсорный сигнал», предъявляемый сети.3. Анализ отклика (выбор нейрона)
По формуле (2.1) определяется активированный нейрон.
4. Процесс обучения
В соответствии с алгоритмом (2.5) изменяются весовые коэффициенты активированного и соседних с ним нейронов до тех пор, пока не будет получено требуемое значение критерия качества обучения или не будет предъявлено заданное число обучающих входных векторов. Окончательное значение весовых коэффициентов совпадает с нормализованными векторами входов.
Поскольку сеть Кохонена осуществляет проецирование N-мерного пространства образов на М-мерную сеть, анализ сходимости алгоритма обучения представляет собой довольно сложную задачу.
Если бы с каждым нейроном слоя ассоциировался один входной вектор, то вес любого нейрона слоя Кохонена мог бы быть обучен с помощью одного вычисления, так как вес нейрона-победителя корректировался бы с
(в соответствии с (2.5) для одномерного случая вес сразу бы попадал в центр отрезка [а, b]). Однако обычно обучающее множество включает множество сходных между собой входных векторов, и сеть Кохонена должна быть обучена активировать один и тот же нейрон для каждого из них. Это достигается усреднением входных векторов путем уменьшения величины, а не при предъявлении каждого последующего входного сигнала. Таким образом, веса, ассоциированные с нейроном, усреднятся и примут значение вблизи «центра» входных сигналов, для которых данный нейрон является «победителем».2.3 Выбор функции «соседства»
На рисунке 2.3 показан слой нейронов с нейроном-победителем, отмеченным черным кружком. Поскольку веса всех затемненных нейронов изменяются по-разному, в зависимости от их удаленности от нейрона-победителя, наиболее простым является выбор в качестве
некоторой величины, равной единице при , меньшей единицы для затемненных нейронов, т. е. нейронов, лежащих в непосредственной близости от активированного нейрона, и нулю для остальных, отмеченных светлыми кружками.Рисунок 2.3 – Слой нейронов Кохонена
На практике же в качестве
выбирают функции, использующие евклидову метрику: , (2.8)где
, — координаты i-гo и j-го нейронов.К числу наиболее широко используемых потенциальных функций относятся:
а) колоколообразная функция Гаусса
, (2.9)где
- дисперсия отклонения;Рисунок 2.4 – Колоколообразная функция Гаусса
б) функция «мексиканская шляпа»
, (2.10)Рисунок 2.5 – Функция «мексиканская шляпа»
в) косинусоидная функция
(2.11)Рисунок 2.6 – Косинусоидная функция
г) конусообразная функция
(2.12)Рисунок 2.7 – Конусообразная функция
д) цилиндрическая функция