Нейронные сети Кохонена

Многослойные нейронные сети прямого распространения, для обучения которых, как правило, применяется алгоритм обратного распространения ошибки, можно охарактеризовать как базовые нейронные сети. Они успешно применяются при решении большого круга задач, но в некоторых областях либо их использование невозможно, либо просто неэффективно из-за очень длительного времени обучения.

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

Для применения нейронных сетей Кохонена в задачах классификации требуется некоторая формализация. Каждый объект, который требуется классифицировать, представляется в виде некоторого вектора, подающегося на вход нейронной сети. Количество нейронов во входном слое определяется количеством компонентов этого входного вектора. Количество же выходов определяется количеством классов, т.е. если всего M классов, то количество нейронов в выходном слое тоже будет M. Таким образом, каждый нейрон в выходном слое «отвечает» за свой класс. Значения, которые принимают нейроны в выходном слое, отображают насколько вектор классифицируемого объекта на входе близок, по мнению нейронной сети Кохонена, к тому или иному классу. Чем больше «уверенность», что объект принадлежит к тому или иному классу, тем больше значение принимает нейрон соответствующего класса. Иногда применяют специальную функцию активацию, которая делает сумму выходов со всех нейронов равной единице. В таком случае каждый выход можно трактовать, как вероятность того, что объект принадлежит к данному классу.

Стоит отметить, что существует или более простая реализация нейронной сети Кохонена, которая называется «победитель забирает все». В таком случае каждый нейрон выходного слоя может принимать значение либо ноль, либо единица. При этом для одного входного вектора единице может быть равен один и только один нейрон выходного слоя, т.е. один объект не может относиться сразу к двум классам.

Рассмотрим следующую простую нейронную сеть Кохонена с тремя входами и двумя выходами, т.е. нейронную сеть для классификации всего по двум классам:

Нейронная сеть Кохонена

Принцип работы уже обученной нейронной сети Кохонена следующий. Нейроны входного слоя (на рис. 1 обозначены кружочками) не выполняют никаких вычислений и служат лишь точками разветвления. Каждый нейрон входного слоя A соединен с каждым нейроном скрытого слоя B, который называют слоем Кохонена, отдельным весом, так, например, первый нейрон входного слоя соединен с первым нейроном слоя Кохонена весом w_{A1-B1}. Нейроны слоя Кохонена складывают поступающие значения и подают их на нейроны выходного слоя C: один нейрон слоя Кохонена – один нейрон выходного слоя.

OUT_{k}~=~w_{A1-Bk}*x_{1}~+~w_{A2-Bk}*x_{2}~+~w_{A3-Bk}*x_{3}

или:

OUT_{k}~=~sum{n}{n~=1..3}{w_{An-Bk}*x_{n}}

где:

  • OUT_k – это выход k-нейрона слоя Кохонена;
  • X_{1}..X_{3} – сигналы входного вектора X.

Как правило, на выходе нейронной сети еще устанавливают некоторый интерпретатор: нейроны слоя Кохонена генерируют сигналы OUT_{k}, интерпретатор выбирает максимальный сигнал и выдает номер класса M, к которому следует отнести классифицируемый объект.

Обучение нейронной сети Кохонена является обучением без учителя.

Это интересно

Смотрите также