Предварительная обработка входных векторов

Весьма желательно (хотя и не обязательно) нормализовать входные векторы перед тем, как предъявлять их сети. Это выполняется с помощью деления каждой компоненты входного вектора на длину вектора. Эта длина находит-ся извлечением квадратного корня из суммы квадратов компонент вектора. В алгебраической записи

(28)

Это превращает входной вектор в единичный вектор с тем же самым на-правлением, т. е. в вектор единичной длины в n-мерном пространстве.

При обучении слоя Кохонена на вход подается входной вектор и вычис-ляются его скалярные произведения с векторами весов, связанными со всеми нейронами Кохонена. Нейрон с максимальным значением скалярного произ-ведения объявляется «победителем» и его веса подстраиваются. Так как ска-лярное произведение, используемое для вычисления значения величины net, является мерой сходства между входным вектором и вектором весов, то про-цесс обучения состоит в выборе нейрона Кохонена с весовым вектором, наи-более близким к входному вектору, и дальнейшем приближении весового вектора к входному. Снова отметим, что процесс является самообучением, выполняемым без учителя. Сеть самоорганизуется таким образом, что дан-ный нейрон Кохонена имеет максимальный выход для данного входного век-тора. Уравнение, описывающее процесс обучения имеет следующий вид:

(29)

где wijн – новое значение веса, соединяющего входную компоненту хj с вы-игравшим нейроном; wijс – предыдущее значение этого веса; a– коэффици-ент скорости обучения, который может варьироваться в процессе обучения или в векторной форме

 

, (30)

где - новое значение вектора весовых коэффициентов, определяемое на текущем шаге, - старое значение вектора весовых коэффициентов, опре-деленное на предыдущем шаге, Х – вектор входного сигнала, для которого проводится коррекция весовых коэффициентов i – того нейрона.

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

Переменная a является коэффициентом скорости обучения, который вначале обычно равен ~ 0,7 и может постепенно уменьшаться в процессе обу-чения. Это позволяет делать большие начальные шаги для быстрого грубого обучения и меньшие шаги при подходе к окончательной величине. Если бы с каждым нейроном Кохонена ассоциировался один входной вектор, то слой Кохонена мог бы быть обучен с помощью одного вычисления на вес. Веса нейрона-победителя приравнивались бы к компонентам обучающего вектора (a = 1). Как правило, обучающее множество включает много сходных между собой входных векторов, и сеть должна быть обучена активировать один и тот же нейрон Кохонена для каждого из них. В этом случае веса этого нейро-на должны получаться усреднением входных векторов, которые должны его активировать. Постепенное уменьшение величины a уменьшает воздействие каждого обучающего шага, так что окончательное значение будет средней величиной от входных векторов, на которых происходит обучение. Таким образом, веса, ассоциированные с нейроном, примут значение вблизи «цент-ра» входных векторов, для которых данный нейрон является «победителем».