Накопленная ошибка: .
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. Решение задачи кластеризации |