Накопленная ошибка: .

Aлгоритм обучения однослойных НС с нелинейной функцией активации

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

Рассмотрим в качестве функции активации функцию 1/(1+ exp(- WTXK)).

Ошибка для одного образца: ЕK = 1/2(YK - OK)2 = 1/2(YK - 1/(1 + exp(-WTXK)))2,

где Y - желаемый выход, О - текущий выход.

Разновидность функции активации в формуле изменения весов уточняет значение градиента от общей функции ошибки Wn+1 = Wn - z(EK(W)/W).

Рассмотрим пример. Для униполярной сигмоидальной функции правила весов уточняются следующим образом. Если вычислить градиент от EK(W), то получим преобразованную формулу: W = W + z(YK - OK)OK(1 - OK)ХK,

где d = - (YK - OK)OK(1 - OK), т. е. W =W + zdX. Если функция активации нейронов - это биполярная сигмоида, то формула изменения весов будет следующей:

W = W+ 1/2z(1 - OK )(YK - OK)2ХK.

Алгоритм "победитель получает все"

Самоорганизующиеся карты решают задачу классификации. У нее есть сколько-то центров и после обучения к каждому этому центру она будет относить объекты по принципу ближайшего соседства. Обучается алгоритмом без учителя.

Простейшая сеть Кохонена – нелинейная однослойная сеть. Каждый выходной нейрон назначается на определенный кластер. При каждом срабатывании только 1 нейрон активен. Определение активного нейрона осуществляется с помощью сравнения вектора входов с векторами весов всех выходных нейронов. Сеть Кохонена называют соревновательным слоем, если она входить в состав другой нейронной сети.

Среди алгоритмов обучения нейросети выделяют два вида: без учителя и с учителем. Обучение без учителя заключается в том, что образцы данных делятся на классы по степени похожести. Такое обучение называют кластеризацией. Рассмотрим однослойную нейронную сеть, представленную на рис. 4.10. Пусть необходимо выделить m кластеров. Решая задачу кластеризации, используют нормализованные вектора, т.е. Wi = Wi / ||W||. Затем расстояния между векторами ||X - Wi|| сравниваются и ищется минимальное. Найденный минимальный выход объявляется победителем. Обозначим его Wr. В дальнейшем модифицируются только веса нейрона-победителя: Wr = Wr + || X-Wr||,

Wr = Wr / || Wr||,

а веса остальных нейронов остаются постоянными: Wi = Wi, oi = 0, i0.

Таким образом, входные данные сортируются по классам с помощью меры похожести, в качестве которой выступает расстояние между векторами: Wr = Wr + || X-Wr ||.

Финалом работы алгоритма "победитель забирает все" является набор векторов, каждый из которых указывает на центр гравитации кластера (рис. 4.12).

W2   W1   W1 W2   W3   Рис. 4.12. Решение задачи кластеризации