Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МиСОИ лекции.docx
Скачиваний:
13
Добавлен:
01.03.2025
Размер:
3 Мб
Скачать
☆

28. Модель нейронной сети. Обучающий алгоритм для перцептрона

При разбиении на два класса реализация классификатора может быть осуществлена с помощью порогового устройства

Рис. 28.1

Эти две выходные величины(реакции порогового устройства ) обычно обозначаются как 1 и -1 соответственно

Если заданы два множества образов, принадлежащих соответственно классам , то решение ищется в виде вектора весов W , обладающего тем свойством, что для всех образов класса выполняется условие , а для всех образов класса - условие . Если образы класса умножить на -1 ,то эквивалентное условие становится общим для всех образов.

Причём класс устройств, предложенных в начале 80-х годов американским учёным Розенблаттом и называемых перцептронами , представляет естественную и обладающую большими возможностями модель процесса обучения машин.

Основная модель пецептрона, обеспечивающая отнесение образа к одному из заданных классов приведена на рис. 28.2.

Устройство состоит из сетчатки S сенсорных элементов , которые случайным образом соединены с ассоциативными элементами второй сетчатки A . Каждый из элементов второй сетчатки воспроизводит выходной сигнал только в том случае ,если достаточное число сенсорных элементов, соединённых с его входом, находится в возбуждённом состоянии. Сенсорные элементы можно рассматривать в качестве устройств, с помощью которых вся система воспринимает из внешней среды стимулы ,т.е. как некие измерительные устройства ,а ассоциативные элементы –как входную часть системы.

Реакция всей системы пропорциональна сумме взятых с определёнными весами реакций элементов ассоциативной сетчатки .Таким образом, обозначив через xi реакцию i-го ассоциативного элемента и через wi - соответствующий вес ,реакцию системы можно записать как

Если R>0 , значит предъявленный системе образ принадлежит классу , если R<0 ,то образ относится к классу .

Отметим ,что перцептронная модель представляет собой за исключением сенсорной сетчатки не что иное, как реализацию линейной решающей функции.

Схему ,приведённую на рис 28.2, легко распространить на случай разделения на несколько классов посредством увеличения числа реагирующих элементов в R- сетчатке.

Классификация проводится обычным способом: рассматриваются значения реакций R1,R2,…,RM, где M- число классов и образ причисляется к классу ,если Ri>Rj для всех .

Основную модель можно также легко распространить на случай нелинейных решающих функций введением соответствующих нелинейных преобразователей между сетчатками A и R.

Обучающий алгоритм для перцептрона сводится к простой схеме итеративного определения вектора весов W.Дадим краткое определение этой схемы,которую обычно называют алгоритмом перцептрона. Заданы два обучающие множества, представляющие классы и соответственно.

Пусть W(1) начальный вектор весов, который выбирается произвольно. В таком случае k-ый шаг обучения выглядит следующим образом

Если x(k) и (k)x(k) 0, то вектор весов W(k) заменяется вектором

W(k+1)=W(k)+cx(k),(1) (28.1)

где c-корректирующее приращение

Если x(k) и (k)x(k) 0, то W(k) заменяется вектором

W(k+1)=W(k)-cx(k), (28.2)

в противном случае W(k) не изменяется ,т.е.

W(k+1)=W(k)

Иными словами, алгоритм вносит изменения в вектор весов W в том и только том случае ,если образ предъявленный на k-м шаге был при выполнении этого шага неправильно классифицирован с помощью соответствующего вектора весов . Причём корректирующее приращение должно быть положительным .

Очевидно, что алгоритм перцептрона является процедурой типа «подкрепление - наказание» ,причём подкреплением за правильную классификацию образа служит отсутствие наказания .Иными словами, если образ классифицирован правильно, то система подкрепляется тем, что в вектор весов W не вносится никаких изменений.

С другой стороны если образ классифицирован неправильно и произведение (k)x(k) оказывается меньше нуля , когда оно должно быть больше нуля, система наказывается увеличением значения вектора весов W(k) на величину, пропорциональную x(k) .Точно так же, если произведение (k)x(k) оказывается больше нуля , когда оно должно быть меньше нуля, система наказывается противоположным образом.

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

Пример: рассмотрим образы представленные на рис. 28.1 и 28.2

Рис. 28.1 Рис. 28.2

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

До начала работы алгоритма пополним все образы. При этом рассматриваемые классы обратятся

: {0 0 1} :{1 0 1}

: {0 1 1} :{1 1 1}

Задав c=1 , W(1)=0 и предъявив образы в указанном выше порядке , получим (по шагам)

W’(1)x(1)= =0

W(2)=W(1)+x(1)=

W’(2)x(2)= =1

W(3)=W(2)=

W’(3)x(3)= =1

W(4)=W(3)-x(3)=

W’(4)x(4)= =-1

W (5)=W(4)=

В связи с ошибками классификации коррекция вектора весов производилась на 1-м и 3-м в соответствии с формулами (28.1) и (28.2).

Так как получаемый результат можно считать искомым решением только в том случае, когда алгоритм осуществит без ошибок полный цикл итераций по всем образам, обучающее множество следует предъявить ещё раз. Процесс обучения системы продолжается при x5=x1,x6=x2,x7=x3,x8=x4.

Второй цикл итерации приводит к следующим результатам:

W’(5)x(5)= =0

W(6)=W(5)+x(5)=

W’(6)x(6)= =1

W(7)=W(6)=

W’(7)x(7)= =-1+0+1=0

W(8)=W(7)-x(7)= - =

W’(8)x(8)= =-2

W(9)=W(8)=

Поскольку в данном цикле итерации совершено две ошибки, все образы предъявляются ещё раз.

W’(9)x(9)= =0

W(10)=W(9)+x(9)= + =

W’(10)x(10)= =-2 0+0 1+1 1=1

W(11)=W(10)=

W’(11)x(11)= =-2 1+0 0+1 1=-1

W(12)=W(11)=

W’(12)x(12)= =-1

W(13)=W(12)=

Поскольку в данном цикле итераций совершена одна ошибка, все образы предъявляется ещё раз.

W’(13)x(13)= =1

W(14)=W(13)=

W’(14)x(14)= =1

W(15)=W(14)=

W’(15)x(15)= =-2 1+1 1=-1

W(16)=W(15)=

W’(16)x(16)= =-2 1+1 1=-1

W(17)=W(16)=

Итак за четыре итерации все образы классифицируются правильно. Вектор решения имеет вид

W=

Соответствующей решающей функцией будет

d(x)=-2x1+1

Приравнивание этой функции к нулю даёт уравнение разделяющей границы.

Умножив все образы класса на -1 ,алгоритм перцептрона можно записать как

W(k+1)=

где с-положительное корректирующее приращение.

Обобщающий алгоритм перцептрона

Рассмотрим M классов .

Пусть на k-ой итерации процедуры обучения системе предъявляется образ x(k) , принадлежащий классу .Вычисляются значения M решающих функций

dj[x(k)]=Wj’(k)x(k); j=1,2,…,M.

Затем если выполняются условия

di[x(k)]> dj[x(k)], j= i j

то векторы весов не изменяются, т.е.

Wj(k+1)=Wj(k),

Допустим с другой стороны , что для некоторого l

di[x(k)] dl[x(k)]

В этом случае производятся следующие коррекции весов

Wi(k+1)=Wi(k)+cx(k

Wl(k+1)=Wl(k)-cx(k)

Wj(k+1)=Wj(k)

j=1,2,…,M; j i;j l

где с-положительная константа.

Если при рассмотрении этого случая классы разделимы, то этот алгоритм сходится за конечное число итераций при произвольных начальных векторах Wi (1).