ПЕРСЕПТРОН Розенблатта.
Несложная нейронная сеть — ПЕРСЕПТРОН Розенблатта. теорема и Линейная разделимость об обучении персептрона.
ПЕРСЕПТРОН Розенблатта.
Одной из первых неестественных сетей, способных к перцепции (восприятию) и формированию реакции на воспринятый стимул, явился PERCEPTRON Розенблатта (F.Rosenblatt, 1957). Персептрон рассматривался его автором не как конкретное техническое вычислительное устройство, а как модель работы мозга. Необходимо подметить, что по окончании многих лет изучений современные работы по неестественным нейронным сетям редко преследуют такую цель.
Рис. 4.1. Элементарный персептрон Розенблатта.
Несложный хороший персептрон содержит нейрободобные элементы трех типов (см. Рис. 4.1), назначение которых в целом соответствует нейронам рефлекторной нейронной сети, рассмотренной в прошлой лекции. S-элементы формируют сетчатку сенсорных клеток, принимающих бинарные сигналы от внешнего мира. Потом сигналы поступают в слой ассоциативных либо A-элементов (для упрощения изображения часть связей от входных S-клеток к A-клеткам не продемонстрирована). Лишь ассоциативные элементы, воображающие собой формальные нейроны, делают нелинейную обработку информации и имеют изменяемые веса связей. R-элементы с фиксированными весами формируют сигнал реакции персептрона на входной стимул.
Розенблатт именовал такую нейронную сеть трехслойной, но по современной терминологии, применяемой в данной книге, представленная сеть в большинстве случаев именуется однослойной, поскольку имеет лишь один слой нейропроцессорных элементов. Однослойный персептрон характеризуется матрицей синаптических связей W от S- к A-элементам. Элемент матрицы отвечает связи, ведущей от i-го S-элемента к j-му A-элементу.
В Корнельской авиационной лаборатории была создана электротехническая модель персептрона MARK-1, которая содержала 8 выходных R-элементов и 512 A-элементов, каковые возможно было соединять в разных комбинациях. На этом персептроне была совершена серия опытов по распознаванию геометрических образов и букв алфавита.
В работах Розенблатта был сделано заключение о том, что нейронная сеть рассмотренной архитектуры будет способна к воспроизведению любой логической функции, но, как было продемонстрировано позднее М.Минским и С.Пейпертом (M.Minsky, S.Papert, 1969), данный вывод был неточным. Были распознаны принципиальные неустранимые ограничения однослойных персептронов, и в последствии стал по большей части рассматриваться многослойный вариант персептрона, в котором имеются пара слоев процессорных элементов.
С сегодняшних позиций однослойный персептрон воображает скорее интерес историков, но на его примере смогут быть изучены простые алгоритмы и основные понятия обучения нейронных сетей.
Обучение нейронной сети с преподавателем, как задача многофакторной оптимизации.
Задача
Синаптические весовые коэффициенты однослойного персептрона с двумя одним выходом и входами смогут принимать значения -1 либо 1. Значение порога равняется нулю. Разглядеть задачу обучения для того чтобы персептрона логической функции “и”, как задачу многофакторной комбинаторной оптимизации. Для обучающей выборки применять все комбинации бинарных входов.
ЛЕКЦИЯ 6. Многослойный ПЕРСЕПТРОН.
Ограничения однослойных нейронных сетей. Необходимость иерархической организации нейронной совокупности. Многослойный ПЕРСЕПТРОН. Метод обратного распространения неточностей.
Многослойный ПЕРСЕПТРОН.
Разглядим иерархическую сетевую структуру, в которой связанные между собой нейроны (узлы сети) об’единены в пара слоев (Рис. 6.1). На возможность построения таких архитектур указал еще Ф.Розенблатт, но им не была решена неприятность обучения. Межнейронные синаптические связи сети устроены так, что любой нейрон на данном уровне иерархии принимает и обрабатывает сигналы от каждого нейрона более низкого уровня. Так, в данной сети имеется выделенное направление распостранения нейроимпульсов — от входного слоя через один (либо пара) скрытых слоев к выходному слою нейронов. Нейросеть таковой топологии мы будем именовать обобщенным многослойным персептроном либо, в случае, если это не будет вызывать недоразумений, легко персептроном.
Рис.6.1. Структура многослойного персептрона с пятью входами, тремя нейронами в скрытом слое, и одним нейроном выходного слоя.
Персептрон является сетью , складывающуюся из нескольких последовательно соединенных слоев формальных нейронов МакКаллока и Питтса. На низшем уровне иерархии находится входной слой, складывающийся из сенсорных элементов, задачей которого есть лишь распространение и приём по сети входной информации. Потом имеются один либо, реже, пара скрытых слоев. Любой нейрон на скрытом слое имеет пара входов, соединенных с выходами нейронов прошлого слоя либо конкретно со входными сенсорами X1..Xn, и один выход. Нейрон характеризуется неповторимым вектором весовых коэффициентов w. Веса всех нейронов слоя формируют матрицу, которую мы будем обозначать V либо W. Функция нейрона пребывает в вычислении взвешенной суммы его входов с предстоящим нелинейным преобразованием ее в выходной сигнал:
(6.1)
Выходы нейронов последнего, выходного, слоя обрисовывают итог классификации Y=Y(X). Особенности работы персептрона пребывают в следующем. Любой нейрон суммирует поступающие к нему сигналы от нейронов прошлого уровня иерархии с весами, определяемыми состояниями синапсов, и формирует ответный сигнал (переходит в возбужденное состояние), в случае, если полученная сумма выше порогового значения. Персептрон переводит входной образ, определяющий степени возбуждения нейронов самого нижнего уровня иерахии, в выходной образ, определяемый нейронами самого верхнего уровня. Число последних, в большинстве случаев, относительно мало. Состояние возбуждения нейрона на верхнем уровне говорит о принадлежности входного образа к той либо другой категории.
Традиционно рассматривается аналоговая логика, при которой допустимые состояния синаптических связей определяются произвольными настоящими числами, а степени активности нейронов — настоящими числами между 0 и 1. Время от времени исследуются кроме этого модели с дискретной математикой, в которой синапс характеризуется двумя булевыми переменными: активностью (0 либо 1) и полярностью (-1 либо +1), что соответствует трехзначной логике. Состояния нейронов смогут наряду с этим описываться одной булевой переменной. Этот дискретный подход делает конфигурационное пространство состояний нейронной сети конечным (не говоря уже о преимуществах при аппаратной реализации).
Тут будет по большей части описываться хороший вариант многослойной сети с аналоговыми синапсами и сигмоидальной передаточной функцией нейронов, определяемой формулой (6.1).
ЛЕКЦИЯ 8. Модель Хопфилда.
устойчивость и Конфигурация сетей с обратными связями. Модель Хопфилда. Правило обучения Хебба. Ассоциативная память. Распознавание образов.
Модель Хопфилда (J.J.Hopfield, 1982) занимает особенное место в последовательности нейросетевых моделей. В ней в первый раз удалось установить связь между нелинейными нейронными сетями и динамическими системами. Образы памяти сети соответствуют устойчивым предельным точкам (аттракторам) динамической совокупности. Особенно серьёзной была возможность переноса математического аппарата теории нелинейных динамических совокупностей (и статистической физики по большому счету) на нейронные сети. Наряду с этим стало возмможно теоретически оценить об’ем памяти сети Хопфилда, выяснить область параметров сети, в которой достигается наилучшее функционирование.
В данной лекции мы последовательно начнем рассмотрение с неспециализированных особенностей сетей с обратными связями, установим правило обучения для сети Хопфилда (правило Хебба), и после этого перейдем к дискуссии ассоциативных особенностей памяти данной нейронной сети при ответе задачи распознавания образов.
Сети с обратными связями
Рассмотренный нами ранее ПЕРСЕПТРОН относится к классу сетей с направленным потоком распространения информации и не содержит обратных связей. На этапе функционирования любой нейрон делает собственную функцию — передачу возбуждения вторым нейронам — ровно один раз. Динамика состояний нейронов есть безитерационной.
Пара более сложной есть динамика в сети Кохонена. Конкурентное соревнование нейронов достигается методом итераций, в ходе которых информация многократно передается между нейронами.
В общем случае возможно рассмотрена нейронная сеть (см. Рис. 8.1), содержащая произвольные обратные связи, по которым переданное возбуждение возвращается к данному нейрону, и он повторно делает собственную функцию. Наблюдения за биологическими локальными нейросетями говорят о наличии множественных обратных связей. Нейродинамика в таких совокупностях делается итерационной. Это свойство значительно расширяет множество типов нейросетевых архитектур, но в один момент ведет к появлению новых неприятностей.
Рис. 8.1. Фрагменты сетей с прямым рапространением (A) и с наличием обратных связей (B).
Безитерационная динамика состояний нейронов есть, разумеется, в любой момент устойчивой. Обратные связи смогут приводить к происхождению неустойчивостей, подобно тем, каковые появляются в усилительных радитехнических совокупностях при хорошей обратной связи. В нейронных сетях неустойчивость проявляется в блуждающей смене состояний нейронов, не приводящей к происхождению стационарных состояний. В общем случае ответ на вопрос об устойчивости динамики произвольной совокупности с обратными связями очень сложен и сейчас есть открытым.
Ниже мы остановимся на ответственном частном случае нейросетевой архитектуры, для которой свойства устойчивости детально изучены.
Правило обучения Хебба
Правило обучения для сети Хопфилда опирается на изучения Дональда Хебба (D.Hebb, 1949), что высказал предположение, что синаптическая сообщение, соединяющая два нейрона будет усиливатьося, в случае, если в ходе обучения оба нейрона согласованно испытывают возбуждение или торможение. Несложный метод, реализующий таковой механизм обучения, стал называться правила Хебба. Разглядим его детально.
Пускай задана обучающая выборка образов x a, a = 1..p. Требуется выстроить процесс получения матрицы связей W, таковой, что соответствующая нейронная сеть будет иметь в качестве стационарных состояний образы обучающей выборки (значения порогов нейронов T в большинстве случаев надеются равными нулю).
При одного обучающего образа правило Хебба ведет к требуемой матрице:
Продемонстрируем, что состояние S=x есть стационарным для сети Хопфилда с указанной матрицей. Вправду, для любой пары нейронов i и j энергия их сотрудничества в состоянии x достигает собственного минимально вероятного значения Eij = -(1/2) x i x j x i x j = -1/2.
Наряду с этим Е -полная энергия равна E = -(1/2) N 2, что отвечает глобальному минимуму.
Для запоминания вторых образов может используется итерационный процесс:
что ведет к полной матрице связей в форме Хебба:
Устойчивость совокупности образов не столь очевидна, как при одного образа. Последовательность изучений говорит о том, что нейронная сеть, обученная по правилу Хебба, может в среднем, при громадных размерах сети N, хранить не более чем p » 0.14 N разных образов. Устойчивость возможно продемонстрирована для совокупности ортогональных образов, в то время, когда
В этом случае для каждого состояния x a произведение суммарного входа i-го нейрона hi на величину его активности Si = x ai оказывается хорошим, следовательно само состояние xa есть состоянием притяжения (устойчивым аттрактором):
Так, правило Хебба снабжает устойчивость сети Хопфилда на заданном комплекте довольно маленького числа ортогональных образов. В следующем пункте мы остановимся на изюминках памяти взятой нейронной сети.
ПРИЛОЖЕНИЕ 1. Компьютерное моделирование нейросетей.
Правила разработки ПО, делающего имитационное моделирование нейросетей. функции и Структура блоков программы. Пример программной реализации метода обучения персептрона.
Большая часть всех приложений нейронных сетей приходится на применение их программных моделей, в большинстве случаев именуемых нейроимитаторами. Разработка программы в большинстве случаев стоит дешевле, а приобретаемый продукт представляется более наглядным, мобильным и эргономичным, нежели специальная аппаратура. В любом случае, разработке аппаратной реализации нейросети в любой момент обязана предшествовать ее всесторонняя отработка на базе теории с применением компьютерной модели.
В этом разделе книги описываются самые общие правила разработки довольно маленьких нейропрограмм, в большинстве случаев личного применения. С целью большого упрощения изложения выбрана несложная архитектура нейронной сети — однослойный ПЕРСЕПТРОН. Теоретические базы данной сети были рассмотрены в четвертой лекции.
В завершении раздела приведены полные листинги обрисовываемых программ, каковые читатель, привычный с программированием на ТУРБО ПАСКАЛЕ для ПК IBM PC, может применять в учебных целях и модифицировать по собственному жажде.
Анализ результатов.
Это одна из самых серьёзных фаз ответа задачи. Для полноты анализа направляться позаботиться о нагладности результатов, применяя представление их в графическом виде. В случае, если результаты будут употребляться в предстоящих вычислениях с примененим ЭВМ, целесообразно сходу представить их в формате, осознаваемом вторыми программами. Для обмена между программами маленькими таблицами разрешённых можно использовать текстовое представление. Для громадных количеств лучше применить стандартные форматы, к примеру, формат dbf-разработки фирмы и файлов системы Ashton-Tate. Это машинально разрешит применять вам средства данной (и многих вторых) совокупности для представления, редактирования и хранения данных.
В случае, если полученные результаты значительно отличаются от ожидаемых, вероятнее нужно будет вернуться к постановке задачи.
Но быть может, что вы на пороге нового открытия…
Описание программы PERC.
В этом пункте будет обрисована несложная программа PERC, реализующая обучение однослойного ПЕРСЕПТРОНА. Как пример была выбрана следующая задача. Нейронной сети предъявляется вектор, складывающийся из 10 копмонент, любая из которых возможно нулем либо единицей. Сеть обязана обучиться определять, чего больше — нулей либо единиц.
Для решения таковой задачи нужен по крайней мере один нейрон с десятью одним выходом и входами (не смотря на то, что программа разрешает применять пара нейронов). Воображаемая функция относится к классу линейно разделимых, исходя из этого этого одного нейрона достаточно для ответа.
В качестве обучающей выборки употребляются 200 векторов, компоненты которых разыгрываются с применением датчика псевдослучайных чисел ПАСКАЛЯ. Верный ответ определяется ярким сравнением единиц и числа нулей.
Обучение сети проводится по дельта-правилу Ф.Розенблатта, детально рассмотренному в лекции 4. По завершении обучения программа выдает число выполненных итераций и значение достигнутой неточности обучения. В конце этого пункта приведен полный листинг программы PERC и результаты ее работы (Внимание! Если вы совершите расчет по программе на вашем компьютере, то полученные значения смогут легко различаться от приведенных из-за разных последовательностей случайных чисел).
Для тестирования качества обучения создана отдельная программа TEST (результаты и текст работы которой также приводятся). Структуры применяемых данных и работа программы подобны программе PERC. Для тестирования кроме этого употребляются случайные вектора.
Результаты теста очень удовлетворительны, нейронная сеть удачно справляется с задачей с точностью до неточностей во 2-3 символе ответа. Интерпритация этих неточностей не вызывает затруднений либо недоразумений.
Текст программы PERC.
PROGRAM PERC; (* P E R C — Учебная программа, реализующая однослойный PERCEPTRON. *) CONST CMaxInp = 20; (* Предельное количество входов *) CMaxOut = 10; (* Предельное количество выходов *) CMaxImages = 200; (* Предельное количество образов *) CEta = 0.75; (* Темп обучения *) CError = 5.0e-3; (* Граница требуемой неточности *) CCounter = 1000; (* Предельное количество итераций *) CInitWeight = 5.0; (* Большое начальное значение случайных синаптических весов *) CBiasNeuron = 1.0; (* Активность нейрона-порога *) TYPE TMatrix = ARRAY[0..CMaxInp,1..CMaxOut] OF REAL; (* Нулевой столбец содержит значения порогов *) TInpVector = ARRAY[1..CMaxInp] OF REAL; TOutVector = ARRAY[1..CMaxOut] OF REAL; (* Структура сети *) TPerceptron = RECORD NInp : INTEGER; (* Число входов *) NOut : INTEGER; (* Число выходов *) Inp : TInpVector; (* Текущий вектор входов *) Out : TOutVector; (* Текущий вектор выходов *) W : Tmatrix; (* Матрица связей *) END; (* Запись в базе данных — обучающей выборке *) TBaseRecord = RECORD X : TInpVector; Y : TOutVector; END; (* Структура базы данных *) TBase = RECORD NImages : INTEGER; (* Число обучающих образов *) Images : ARRAY[1..CMaxImages] OF TBaseRecord; END; VAR VNet : TPerceptron; VBase : TBase; VOK : BOOLEAN; VError, VTemp, VDelta : REAL; VCounter, Vi, Vj, Vk : INTEGER; VFile : FILE OF TPerceptron; PROCEDURE InitAll;(* Инициализация нейронной сети с 10 одним выходом и входами, задание начальных случайных значений матрицы связей *)VAR Li, Lj, Lk : INTEGER;BEGIN WITH VNet, VBase DO BEGIN NInp := 10; NOut := 1; FOR Li := 0 TO NInp DO FOR Lj := 1 TO NOut DO W[Li,Lj] := CInitWeight*(RANDOM-0.5); END; VOK := TRUE;END; PROCEDURE GetDataBase;(* Генерация обучающей выборки из 200 случайных образов. При определении верного числа единиц употребляется прямой подстчет *)VAR Li, Lj, Lk : INTEGER;BEGIN VOK := TRUE; WITH VBase, VNet DO BEGIN NImages := 200; FOR Li:= 1 TO NImages DO BEGIN Lk := 0; FOR Lj:=1 TO NInp DO BEGIN (* Случайно 0 либо 1 *) Images[Li].X[Lj] := RANDOM( 2 ); (* Подсчет единиц *) IF ( Images[Li].X[Lj] 0 ) THEN Lk := Lk + 1; END; (* Выход равен единице, в случае, если в данном входном векторе число единиц больше числа нулей *) IF ( Lk (NInp-Lk) ) THEN Images[Li].Y[1] := 1 ELSE Images[Li].Y[1] := 0 END; END;END; PROCEDURE SaveNet;(* Запись параметров нейронной сети в файл SAMPLE.DAT. Производится контроль за операциями вывода с применением ключа I+ и I- компилятора ТУРБО ПАСКАЛЯ *)BEGIN ASSIGN( VFile, ‘SAMPLE.DAT’ ); {$I-} REWRITE( VFile ); {$I+} VOK := (IOResult = 0); IF VOK THEN BEGIN {$I-} WRITE( VFile, VNet ); CLOSE ( VFile ); {$I+} VOK := (IOResult = 0); END;END; FUNCTION Sigmoid( Z: REAL ): REAL;(* Сигмоидальная переходная функция нейрона *)BEGIN Sigmoid := 1.0/(1.0+EXP(-Z));END; (* Главная программа *)BEGIN WRITELN(‘ (Нейроимитатор) ‘); WRITELN(‘—————————————— ‘); VOK := TRUE; (* Инициализация с контролем неточности *) RANDOMIZE; InitAll; IF (NOT VOK) THEN BEGIN WRITELN(‘Неточность инициализации’); HA END; (* Генерация базы данных *) VOK := TRUE; GetDataBase; IF (NOT VOK) THEN BEGIN WRITELN(‘Неточность при генерации базы данных’); HA END; (* Цикл обучения *) VOK := TRUE; VCounter := 0; WITH VNet, VBase DO REPEAT VError := 0.0; (* Цикл по обучающей выборке *) FOR Vi := 1 TO NImages DO BEGIN (* Подача очередного образа на входы сети *) FOR Vj := 1 TO NInp DO BEGIN Inp[Vj] := Images[Vi].X[Vj]; END; (* Цикл по нейронам. При аппаратной реализации будет выполняться параллельно !!! *) FOR Vk := 1 TO NOut DO BEGIN (* Состояние очередного нейрона *) VTemp := CBiasNeuron*W[0,Vk]; FOR Vj := 1 TO NInp DO BEGIN VTemp := VTemp + Inp[Vj]*W[Vj,Vk]; END; Out[Vk] := Sigmoid( VTemp ); (* Накопление неточности *) VDelta := Images[Vi].Y[Vk]-Out[Vk]; VError := VError + 0.5*SQR( VDelta ); (* Обучение по дельта-правилу Розенблатта *) W[0,Vk] := W[0,Vk] + CEta*CBiasNeuron*VDelta; FOR Vj := 1 TO NInp DO BEGIN W[Vj,Vk] := W[Vj,Vk] + CEta*Inp[Vj]*VDelta; END; END; END; VCounter := VCounter + 1; UNTIL ( (VCounter = CCounter) OR (VError (Нейроимитатор) —————————————— Выполнено 243 итераций Неточность обучения 4.9997994218E-03Нейронная сеть научена, параметры записаны в файлSAMPLE.DAT Текст программы TEST.PROGRAM TEST; (* T E S T — Тестирующая программа длянейроимитатора PERC *) CONST CMaxInp = 20; CMaxOut = 10; CMaxImages = 15; CBiasNeuron = 1.0; TYPE TMatrix = ARRAY[0..CMaxInp,1..CMaxOut] OF REAL; TInpVector = ARRAY[1..CMaxInp] OF REAL; TOutVector = ARRAY[1..CMaxOut] OF REAL; TPerceptron = RECORD NInp : INTEGER; NOut : INTEGER; Inp : TInpVector; Out : TOutVector; W : TMatrix; END; VAR VNet : TPerceptron; VTemp : REAL; VCorrect : REAL; Vi, Vj, Vk : INTEGER; VOK : BOOLEAN; VFile : FILE OF TPerceptron; PROCEDURE LoadNet;(* Чтение параметров нейронной сети из файла SAMPLE.DAT. Производится контроль за операциями ввода с применением ключа I+ и I- компилятора ТУРБО ПАСКАЛЯ *) BEGIN ASSIGN( VFile, ‘SAMPLE.DAT’ ); {$I-} RESET( VFile ); {$I+} VOK := (IOResult = 0); IF VOK THEN BEGIN {$I-} READ( VFile, VNet ); CLOSE ( VFile ); {$I+} VOK := (IOResult = 0); END;END; FUNCTION Sigmoid( Z: REAL ): REAL;BEGIN Sigmoid := 1.0/(1.0+EXP(-Z));END; BEGIN VOK := TRUE; RANDOMIZE; (* Чтение параметров обученной нейросети *) LoadNet; IF (NOT VOK) THEN BEGIN WRITELN(‘Неточность при чтении файла’); HA END; VOK := TRUE; WITH VNet DO BEGIN WRITELN(‘ (Тестирующая программа)’); WRITELN(‘————————————————‘); WRITELN(‘ ВОПРОС ОТВЕТ ВЕРНЫЙ ОТВЕТ ‘); WRITELN(‘————————————————‘); FOR Vi := 1 TO CMaxImages DO BEGIN (* Подача на вход случайного образа *) Vk := 0; FOR Vj:=1 TO NInp DO BEGIN (* Случайно 0 либо 1 *) Inp[Vj] := RANDOM( 2 ); (* Подсчет единиц *) IF ( Inp[Vj] 0 ) THEN Vk := Vk + 1; END; (* Верный ответ известен ! *) IF ( Vk (NInp-Vk) ) THEN VCorrect := 1.0 ELSE VCorrect := 0.0; (* Ответ выдает нейросеть *) FOR Vk := 1 TO NOut DO BEGIN VTemp := CBiasNeuron*W[0,Vk]; FOR Vj := 1 TO NInp DO BEGIN VTemp := VTemp + Inp[Vj]*W[Vj,Vk]; END; Out[Vk] := Sigmoid( VTemp ); END; (* Выдача результатов *) FOR Vj := 1 TO NInp DO WRITE( Inp[Vj]:2:0 ); WRITELN(‘ ‘,Out[1]:4:2,’ ‘, VCorrect:2:0); END; END; WRITELN(‘————————————————-‘);END. Итог работы программы TEST. (Тестирующая программа)———————————————— ВОПРОС ОТВЕТ ВЕРНЫЙ ОТВЕТ———————————————— 0 0 0 0 1 1 1 1 0 0 0.00 0 0 0 1 0 0 0 0 1 0 1 0.00 0 1 1 0 0 0 0 0 1 0 0 0.00 0 1 1 1 1 0 1 0 1 1 1 1.00 1 0 1 1 1 0 1 1 0 0 0 0.01 0 1 0 1 0 1 0 1 1 1 0 0.99 1 1 0 1 1 1 0 0 1 1 0 0.98 1 1 0 1 1 1 1 0 0 1 1 1.00 1 1 1 0 1 1 1 1 0 1 0 1.00 1 1 1 0 1 1 1 0 0 0 1 1.00 1 0 0 0 0 1 1 0 1 0 1 0.00 0 1 0 0 1 0 0 0 0 0 1 0.00 0 1 0 0 1 0 0 0 1 1 0 0.00 0 0 1 0 1 1 1 0 1 0 0 0.02 0 1 1 1 1 1 1 0 1 1 0 1.00 1———————————————
Задачи.
1. При помощи программы PERC возможно изучить связь между объёма и решения данных обучающей выборки. Это достигается трансформацией значения переменной Nimages в подпрограмме GetDataBase. Попытайтесь растолковать ухудшение результатов теста при обучении с постепенным уменьшением числа образов.
2. Модифицируйте программы PERC и TEST, поменяв тип переходной функции нейрона. Сравните результаты.
3. Совершите изучение зависимости скорости обучения от темпа (значение CEta) и начального значения весов (значение CInitWeight). Объясните полученные вами результаты.
ПЕРСЕПТРОН Розенблатта.
Несложная нейронная сеть — ПЕРСЕПТРОН Розенблатта. теорема и Линейная разделимость об обучении персептрона.
ПЕРСЕПТРОН Розенблатта.
Одной из первых неестественных сетей, способных к перцепции (восприятию) и формированию реакции на воспринятый стимул, явился PERCEPTRON Розенблатта (F.Rosenblatt, 1957). Персептрон рассматривался его автором не как конкретное техническое вычислительное устройство, а как модель работы мозга. Необходимо подметить, что по окончании многих лет изучений современные работы по неестественным нейронным сетям редко преследуют такую цель.
Рис. 4.1. Элементарный персептрон Розенблатта.
Несложный хороший персептрон содержит нейрободобные элементы трех типов (см. Рис. 4.1), назначение которых в целом соответствует нейронам рефлекторной нейронной сети, рассмотренной в прошлой лекции. S-элементы формируют сетчатку сенсорных клеток, принимающих бинарные сигналы от внешнего мира. Потом сигналы поступают в слой ассоциативных либо A-элементов (для упрощения изображения часть связей от входных S-клеток к A-клеткам не продемонстрирована). Лишь ассоциативные элементы, воображающие собой формальные нейроны, делают нелинейную обработку информации и имеют изменяемые веса связей. R-элементы с фиксированными весами формируют сигнал реакции персептрона на входной стимул.
Розенблатт именовал такую нейронную сеть трехслойной, но по современной терминологии, применяемой в данной книге, представленная сеть в большинстве случаев именуется однослойной, поскольку имеет лишь один слой нейропроцессорных элементов. Однослойный персептрон характеризуется матрицей синаптических связей W от S- к A-элементам. Элемент матрицы отвечает связи, ведущей от i-го S-элемента к j-му A-элементу.
В Корнельской авиационной лаборатории была создана электротехническая модель персептрона MARK-1, которая содержала 8 выходных R-элементов и 512 A-элементов, каковые возможно было соединять в разных комбинациях. На этом персептроне была совершена серия опытов по распознаванию геометрических образов и букв алфавита.
В работах Розенблатта был сделано заключение о том, что нейронная сеть рассмотренной архитектуры будет способна к воспроизведению любой логической функции, но, как было продемонстрировано позднее М.Минским и С.Пейпертом (M.Minsky, S.Papert, 1969), данный вывод был неточным. Были распознаны принципиальные неустранимые ограничения однослойных персептронов, и в последствии стал по большей части рассматриваться многослойный вариант персептрона, в котором имеются пара слоев процессорных элементов.
С сегодняшних позиций однослойный персептрон воображает скорее интерес историков, но на его примере смогут быть изучены простые алгоритмы и основные понятия обучения нейронных сетей.
Теорема об обучении персептрона.
Обучение сети пребывает в подстройке весовых коэффициентов каждого нейрона. Пускай имеется комплект пар векторов (xa, ya), a = 1..p, именуемый обучающей выборкой. Будем именовать нейронную сеть обученной на данной обучающей выборке, в случае, если при подаче на входы сети каждого вектора xa на выходах всегда получается соответсвующий вектор ya
Предложенный Ф.Розенблаттом способ обучения пребывает в итерационной подстройке матрицы весов, последовательно уменьшающей неточность в выходных векторах. Метод включает пара шагов:
Ход 0. | Начальные значения весов всех нейронов надеются случайными. |
Ход 1. | Сети предъявляется входной образ xa, в следствии формируется выходной образ |
Ход 2. | Вычисляется вектор неточности , делаемой сетью на выходе. Предстоящая мысль пребывает в том, что изменение вектора весовых коэффициентов в области малых неточностей должно быть пропорционально неточности на выходе, и равняется нулю в случае, если неточность равна нулю. |
Ход 3. | Вектор весов модифицируется по следующей формуле: . Тут — темп обучения. |
Ход 4. | Шаги 1-3 повторяются для всех обучающих векторов. Один цикл последовательного предъявления всей выборки именуется эрой. Обучение завершается по окончании нескольких эр, а) в то время, когда итерации сойдутся, т.е. вектор весов перестает измеяться, либо б) в то время, когда полная просуммированная по всем векторам безотносительная неточность станет меньше некоего малого значения. |
Применяемая на шаге 3 формула учитывает следующие события: а) модифицируются лишь компоненты матрицы весов, отвечающие ненулевым значениям входов; б) символ приращения веса соответствует символу неточности, т.е. хорошая ощибка (d 0, значение выхода меньше требуемого) проводит к усилению связи; в) обучение каждого нейрона происходит независимо от обучения остальных нейронов, что соответсвует ответственному с биологической точки зрения, принципу локальности обучения.
Этот способ обучения был назван Ф.Розенблаттом “способом коррекции с обратной передачей сигнала неточности”. Позднее более обширно стало известно наименование “d -правило”. Представленный метод относится к широкому классу методов обучения с преподавателем, потому, что известны как входные вектора, так и требуемые значения выходных векторов (имеется преподаватель, талантливый оценить правильность ответа ученика).
Доказанная Розенблаттом теорема о сходимости обучения по d -правилу показывает, что персептрон способен обучится любому обучающему комплекту, что он способен представить. Ниже мы более детально обсудим возможности персептрона в соответствии с представлением информации.