Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИИС_лекции / Лекции / Лекции 9-11.docx
Скачиваний:
281
Добавлен:
01.03.2016
Размер:
335.21 Кб
Скачать

Алгоритмы обучения одного нейрона

1. Алгоритм обучения Хебба

В 1949 году Дональд Хебб, исследуя механизмы функционирования центральной нервной системы, предположил, что обучение нервных клеток мозга происходит путем усиления связей между теми нейронами, которые синхронно возбуждаются. Другими словами, между одновременно активированными нейронами сети пороги синаптических связей снижаются. В результате образуются «нейронные ансамбли», которые все быстрее активируются при каждом очередном повторении входа. Это наблюдение легло в основу одного из первых правил обучения нейронной сети, известного как правило Хебба. И хотя в биологических системах этот механизм не всегда выполняется, при обучении искусственных нейронных сетей он оказался очень эффективным.

Предположим, что требуется настроить один нейрон на распознавание образов двух классов. Другими словами, для заданного множества векторов обучающей выборки Ξ={x1,...,xN}, часть из которых принадлежит первому классу ϖ1, а часть – второму ϖ2 , требуется так настроить синапсы этого нейрона, чтобы он давал на выходе правильные отклики при предъявлении сети векторов обучающей выборки. Эталонным выходом сети должно быть значение yi =1, если xi∈ϖ1 и yi =−1, если xi∈ϖ2 . Таким образом, имеем множество Y ={y1,..., yN} эталонных откликов нейрона. Будем считать, что входные сигналы являются биполярными, т.е. xi =(xij ), xij∈{−1,1}, а в качестве функции активации нейронов используется функция сигнум sgn(t). Применительно к обучению одного нейрона правило Хебба формулируется следующим образом: если нейрон правильно классифицирует вектор, то порог синаптических связей снижается пропорционально этому вектору.

Алгоритм Хебба обучения одного нейрона

1. Инициируются начальные значения весового вектора – вектора синапсов: (0) w .

2. Для всех пар (xi, yi), xi∈Ξ, yi∈Y выполняется коррекция весового вектора по формуле w(k+1) =w(k) +xiyi .

3. Проверяется условие останова для найденного весового вектора w, а именно, для каждой пары (xi, yi), xi∈Ξ, yi∈Y вычисляются значения si =sgn((w,xi)). Если si = yi для всех i =1,...,N, то алгоритм прекращает свою работу, в противном случае – переход к пункту 2.

Пример.Пусть x1 =(1,1,−1)T , x2 =(1,−1,−1)T , x3 =(−1,−1,−1)T ,

x =(−1,1,1)T . Причем x1,x2∈ϖ1, а x3,x4∈ϖ2 . Требуется обучить нейрон правильно распознавать эти векторы.

Решение. Имеем y1 = y2 =1, y3 = y4 =−1. Выполним шаги алгоритма:

1) w(0) =0;

2) w(1) =w(0) +x1y1 =x1;

3) w(2) =w(1) +x2y2 =x1 +x2 =(2,0,−2)T ;

4) w(3) =w(2) +x3y3 =(2,0,−2)T −x3 =(3,1,−1)T ;

5) w(4) =w(3) +x4y4 =(3,1,−1)T −x4 =(4,0,−2)T ;

6) проверяем условие останова: (w(4),x1)=6>0, (w(4),x2)=6>0, (4)

(w ,x )=−2<0, (w(4),x4)=−6<0. Условие останова выполняется.

Нейрон обучен, w(4) =(4,0,−2)T – результирующий вектор синапсов.

Заметим, что в общем случае, также как и в алгоритме обучения персеп-

трона, для нахождения разделяющей гиперплоскости (если она существует) в

n-мерном пространстве необходимо вводить смещение: рассматривать

(n+1)-мерные векторы x=(1,x1,...,xn)T и искать (n+1)-мерный вектор весов

w=(w0,w1,...,wn)T .

Возникает вопрос, минимизации какого функционала соответствует алгоритм обучения Хебба? Рассмотрим функционал

F(w)=−∑sgn((w,xk ))yk .

x ∈Ξk

Понятно, что минимальное значение функционала F(w) будет достигаться на том векторе w, который соответствует линейной решающей функции, правильно разделяющей элементы обучающей выборки Ξ на два класса. И это минимальное значение будет равно −m. В функционале F(w) используется недифференцируемая функция sgn(t) . Заменим эту функцию ее «гладкой аппроксимацией» – функцией гиперболического тангенса th(t) , получим функционал F(w)=−∑x∈Ξth((w,xi))yi . Тогда

∂F ∂wj =−∑th′((w,xi))yixij и gradF =−∑ch−2((w,xi))yixi .

x∈Ξ xi∈Ξ

Заметим, что th′(t)=ch−2(t)>0. Поэтому на знак градиента эта функция не влияет и минимизацию функционала F(w) методом градиентного спуска можно осуществлять по формуле w(k+1) =w(k) +∑x∈Ξ yixi или, реализуя метод стохастического градиента, по формуле w(k+1) =w(k) + yixi , что и дает алгоритм обучения Хебба.

Замечание. По аналогии с алгоритмом обучения слоя из m персептронов линейно разделять выборку на m классов (см. пункт 6.1.3), можно обучить алгоритмом Хебба слой из m нейронов правильно классифицировать выборку по m классам.

2. Персептронный метод обучения

В алгоритме обучения персептрона для унифицированных векторов обучающей выборки Ξ′={x1′,...,x′N} (т.е. x′i =xi , если xi∈ϖ1 и x′i =−xi , если

x ∈ϖ ) минимизируется функционал ошибки F(w) =−∑x′∈E(w)(w,x′) , где

i 2 E(w) – подмножество векторов обучающей выборки, которые классифицируются неправильно для данного вектора w, т.е. (w,x′)≤0. Тогда

∂F ∂w =−∑x′∈w x′ и grad(F)=−∑x′∈E(w)x′= −∑x′∈Ξ′x′η(−(w,x′)), где η – i E( ) i

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

3. Адаптивное обучение нейрона. Формула Уидроу

Алгоритм обучения персептрона можно обобщить на случай двух линейно неразделимых классов и, вообще, на решение следующей общей задачи, рассмотренной Уидроу и Хоффом (Widrow B., Hoff M.E.) в 1960 году.

Предположим, что имеется множество прецедентов в виде обучающей выборки Ξ={x1,...,xN} и множества правильных откликов y1,..., yN : при предъявлении вектора xi правильным откликом нейрона должен быть сигнал yi .

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

F(w)=∑(ϕ((w,xi))− yi )2→min.

Соседние файлы в папке Лекции