wc максимально, объявляется
«победителем». При этом образ, характеризующийся вектором x , будет отнесен к классу, который представляется нейроном-«победителем».
Рассмотрим алгоритм самообучения сетей Кохонена. Обозначим функцию
близости z
x w
. Выигрывает нейрон c
x wc
min x w j
. (7.1)
n
Близость x и w можно переделить, пользуясь скалярным произведени- ем, как
z j 1 (x, wj ) 1 xiwij . (7.2)
i1
На стадии самообучения сети Кохонена осуществляется коррекция весово- го вектора не только нейрона-«победителя», но и весовых векторов остальных активных нейронов слоя Кохонена, однако, естественно, в значительно мень- шей степени – в зависимости от удаления от нейрона-«победителя». При этом форма и величина окрестности вокруг нейрона-«победителя», весовые коэффи- циенты нейронов которой также корректируются, в процессе обучения изменя- ются. Сначала начинают с очень большой области – она, в частности, может включать все нейроны слоя Кохонена. Изменение весовых векторов осуществ- ляется по правилу
j j cj j
w (t 1) w (t) (t)d (t)[x(t) w (t)], j = 1,2,…, n, (7.3)
где
w j (t)
- значение весового вектора на шаге t самообучения сети,
dcj (t) -
функция близости между нейронами слоя Кохонена и
( t)
времени коэффициент шага коррекции. В качестве (t)
обычно выбирается мо-
нотонно убывающая функция (0<(t) <1), то есть алгоритм самообучения начи- нается сравнительно большими шагами адаптации и заканчивается относитель- но малыми изменениями.
В результате n-мерное входное пространство
Rn отобразится на m-мерную
сетку (слой Кохонена). Это отображение реализуется в результате рекуррент- ной (итеративной) процедуры самообучения ( unsupervised learning). Отличи- тельная особенность этого отображения – формирование кластеров (clusters) или классов. По завершении процесса самообучения на стадии реального ис- пользования сети Кохонена неизвестные входные образы относятся к одному из выявленных кластеров (классов) по близости к некоторому весу, принадлежа- щему определенному кластеру, выявленному на стадии самообучения.
Рисунок 7.1. Архитектура слоя Кохонена
Самоорганизующийся слой Кохонена – это однослойная нейронная сеть с конкурирующей передаточной функцией compet, которая анализирует выход- ные значения нейронов слоя и выдаёт в качестве результата наибольшее из этих значений (значение нейрона-победителя). Функция newc создает слой конкури- рующих нейронов (слой Кохонена):
net = newc(PR, S, KLR, CLR),
где PR – матрица минимальных и максимальных значений для R входных элементов; S – количество нейронов; KLR – уровень обученности Кохонена, по умолчанию 0,01; CLR – рекомендуемый уровень обученности, по умолчанию 0,001. Соперничающий слой представляет собой слой с функцией вычисления расстояний negdist, сетевой функцией суммирования netsum и функцией акти- вации compet. Слой имеет веса на входах и bias.
Эта функция формирует однослойную сеть с R нейронами и R входами. Веса входов устанавливаются равными половине диапазона соответствующего вектора входа для всех нейронов. Также для всех нейронов устанавливается од- но и то же смещение, равное e*s. Выходы нейронов поступают на конкуриру- ющую передаточную функцию compet, которая определяет победителя. Номер активного нейрона-победителя I* определяет ту группу (кластер), к которой наиболее близок входной вектор.
Для того чтобы сформированная таким образом сеть решала задачу кла- стеризации данных, необходимо предварительно настроить ее веса и смещения по обучающей последовательностью векторов с помощью функций настройки learnk и learncon соответственно, используя процедуру адаптации adapt или процедуру обучения train.
Функция learnk рассчитывает приращение весов dW в зависимости от век- тора входа p, выхода а, весов w и параметра скорости настройки lr в соответ- ствии с правилом Кохонена:
lr ( p w), a j
0;
|