Многослойный персептрон



9

 

Содержание:

Введение………………………………………………………………….…..3

Глава 1. Класс нейронных сетей многослойный персептрон……………....5

1.1.Многослойный персептрон…………………………………...5

1.2. Обучение многослойного персептрона …..6

Глава 2.Алгоритмы обучения………………..12

2.1. Улучшение работы алгоритма обратного распространения……12

2.2.Особенности архитектуры многослойный персептрон....................20

Заключение...........................................................................................................23

 

 

 

 

 

 

 

 

Введение

Актуальность. Эта курсовая работа посвящена важному классу нейронных сетей — многослойным сетям пря­мого распространения. Обычно сеть состоит из множества сенсорных элементов (входных узлов или узлов источника), которые образуют входной слой; одного или нескольких скрытых слоев(hiddenlayer) вычислительных нейронов и одного выход­ного слоя(outputlayer) нейронов. Входной сигнал распространяется по сети в прямом направлении, от слоя к слою. Такие сети обычно называют многослойными персептронами(multilayerpercetron). Они представляют собой обобщение однослойного персептрона.

Целью данной работы является изучение многослойного персептрона как класса нейронных сетей.

Поставленная цель решается посредством следующих задач:

- раскрыть понятие и характерные особенности  многослойного персептрона;

- охарактеризовать обучение нейронных сетей;

-рассмотреть возможности улучшения деятельности многослойного персептрона.

              Объектом работы является многослойные сети прямого распространения.

              Предметом исследования является рассмотрение класса нейронных сетей применение, обучение и особенности.

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

Структура работы. Работа состоит из введения, 2 глав, 4 параграфов,

5 рисунков.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Глава1. Класс нейронных сетей многослойный персептрон

1.1  .    Многослойный персептрон

 

Архитектура сети, многослойный персептрон используется сейчас наиболее часто. Она была предложена в работе Rumelhart, McClelland (1986). Обычно сеть состоит из множества сенсорных элементов (входных узлов), которые образуют входной слой; одного или нескольких скрытых слоев вычислительных нейронов и одного выходного слоя нейронов.

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

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

Среди многослойных нейронных сетей можно выделить четыре наиболее значимых и важных класса нейронных сетей:

1.      Сети прямого распространения – все связи направлены строго от входных нейронов к выходным. Такие сети еще называют многослойным персептроном, по аналогии с обычным персептроном Розенблатта, в котором только один слой;

2.      Реккурентные нейронные сети или сети обратного распространения – сигнал в таких сетях с выходных нейронов или нейронов скрытого слоя частично передается обратно на входы нейронов входного слоя;

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

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

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

Свойство 1. Каждый нейрон сети имеет нелинейную функцию активации

Важно подчеркнуть, что такая нелинейная функция должна быть гладкой (т.е. всюду дифференцируемой), в отличие от жесткой пороговой функции, используемой в персептроне Розенблатта. Самой популярной формой функции, удовлетворяющей этому требованию, является сигмоидальная. Примером сигмоидальной функции может служить логистическая функция, задаваемая следующим выражением:

 

где a – параметр наклона сигмоидальной функции. Изменяя этот параметр, можно построить функции с различной крутизной.

Наличие нелинейности играет очень важную роль, так как в противном случае отображение «вход-выход» сети можно свести к обычному однослойному персептрону.

Свойство 2. Несколько скрытых слоев

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

Свойство 3. Высокая связность

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

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

 

 

Глава 2. Алгоритмы обучения

2.1. Режимы обучения на основе алгоритма обратного распространения ошибки

 

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

Алгоритм обратного распространения ошибки можно реализовать двумя способами.

Последовательный режим

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

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

Пакетный режим

В пакетном режиме обучения на основе алгоритма обратного распространения ошибки корректировка весов проводится после подачи в сеть всех обучающих примеров одной эпохи

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

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

Если данные обучения являются избыточными (т.е. содержат по несколько копий одних и тех же примеров), то предпочтительнее использовать последовательный режим, так как примеры все равно подаются по одному. Это преимущество особенно заметно при больших наборах данных с высокой степенью избыточности.

В итоге можно сказать, что, несмотря, на многие недостатки последовательного режима алгоритма обратного распространения ошибки, он остается очень популярным (особенно при решении задач распознавания образов) по двум практическим причинам: этот алгоритм прост в реализации, и он обеспечивает эффективное решение сложных задач.

 

 

2.1. Алгоритм обратного распространения ошибки

 

Алгоритм обратного распространения ошибки является одним из методов обучения многослойных нейронных сетей прямого распространения, называемых также многослойными персептронами. Многослойные персептроны успешно применяются для решения многих сложных задач.

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

Рассмотрим работу алгоритма подробней. Допустим необходимо обучить следующую нейронную сеть, применив алгоритм обратного распространения ошибки.

В качестве активационной функции в многослойных персептронах, как правило, используется сигмоидальная активационная функция, в частности логистическая функция активации, представленная формулой (1.1) выше.

Сигмоид сужает диапазон изменения так, что значение  лежит между нулем и единицей. Многослойные нейронные сети обладают большей представляющей мощностью, чем однослойные, только в случае присутствия нелинейности. Сжимающая функция обеспечивает требуемую нелинейность. В действительности имеется множество функций, которые могли бы быть использованы. Для алгоритма обратного распространения ошибки требуется лишь, чтобы функция была всюду дифференцируема. Сигмоид удовлетворяет этому требованию. Его дополнительное преимущество состоит в автоматическом контроле усиления. Для слабых сигналов (т.е. когда  OUT близко к нулю)  кривая вход-выход имеет сильный наклон, дающий большое усиление. Когда величина сигнала становится больше, усиление падает. Таким образом, большие сигналы воспринимаются сетью без насыщения, а слабые сигналы проходят по сети без чрезмерного ослабления.

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

Алгоритм обратного распространения ошибки следующий:

1.      Инициализировать синаптические веса маленькими случайными значениями.

2.      Выбрать очередную обучающую пару из обучающего множества; подать входной вектор на вход сети.

3.      Вычислить выход сети.

4.      Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей пары).

5.      Подкорректировать веса сети для минимизации ошибки (как см. ниже).

6.      Повторять шаги с 2 по 5 для каждого вектора обучающего множества до тех пор, пока ошибка на всем множестве не достигнет приемлемого уровня.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.  Улучшение работы алгоритма обратного распространения

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

 

1.              Режим: последовательный или пакетный (sequentialversusbatchupdate). Последовательный режим обучения методом обратного распро­странения (использующий последовательное предоставление примеров эпохи с обновлением весов на каждом шаге) в вычислительном смысле оказывается значительно быстрее. Это особенно сказывается тогда, когда обучающее множество является большим и в высокой степени избыточным. (Избыточные данные вызы­вают вычислительные проблемы при оценке Якобиана, необходимой для пакетного режима.)

2.               Максимизация информативности (maximizinginformationcontent). Как правило, каждый обучающий пример, предоставляемый алгоритму обратного распространения, нужно выбирать из соображений наибольшей информационной насыщенности в области решаемой задачи. Для этого существуют два общих метода.

              -Использование примеров, вызывающих наибольшие ошибки обучения.

              -Использование примеров, которые радикально отличаются от ранее использованных.

Эти два эвристических правила мотивированы желанием максимально расширить область поиска в пространстве весов.

В задачах классификации, основанных на последовательном обучении методом обратного распространения, обычно применяется метод случайного изменения порядка следования примеров, подаваемых на вход многослойного персептрона, от одной эпохи к другой. В идеале такая рандомизация приводит к тому, что успешно обрабатываемые примеры будут принадлежать к различным классам. Более утонченным приемом является схема акцентирования(emphasizingscheme), согласно которой более сложные примеры подаются в систему чаще, чем более легкие. Простота или сложность отдельных примеров выявляется с помо­щью анализа динамики ошибок (в разрезе итераций), генерируемых системой при обработке обучающих примеров. Однако использование схемы акцентирования приводит к двум проблемам, которые следует учесть.

              -Распределение примеров в эпохе, представляемой сети, искажается.

              -Наличие исключений или немаркированных примеров может привести к ката­строфическим последствиям с точки зрения эффективности алгоритма. Обуче­ние на таких исключениях подвергает риску способность сети к обобщению в наиболее правдоподобных областях пространства входных сигналов.

3.              Функция активации(activationfunction). Многослойный персептрон,

обучаемый по алгоритму обратного распространения, может в принципе

обучаться быстрее (в терминах требуемого для обучения количества

итераций), если сигмоидальная функция активации нейронов сети является

антисимметричной, а не симметрич­ной.

Функция актива­цииназывается антисимметричной (т.е. четной функцией своего аргумента), если

,

что показано на рисунке 3, а. Стандартная логистическая функция не удовлетворяет этому условию (рисунок 3, б).

Известным примером антисимметричной функции активации является сигмои­дальная нелинейная функция гиперболического тангенса(hyperbolictangent)

где а иb — константы. Удобными значениями для констант а и b являются следу­ющие:

а = 1,7159, b = 2/3.

Определенная таким образом функция гиперболического тангенса имеет ряд по­лезных свойств.

                            - (1) = 1 и (-1) = -1.

              -В начале координат тангенс угла наклона (т.е. эффективный угол)    функции активации близок к единице:

(0) = ab= 1,7159 × 2/3 = 1,1424.

-Вторая производнаядостигает своего максимального значения

приv= 1.

4.               Целевые значения (targetvalue). Очень важно, чтобы целевые значения выбирались из области значений сигмоидальной функции активации. Более точно, желаемый отклик нейрона jвыходного слоя многослойного персептрона должен быть сме­щен на некоторую величину ɛ от границы области значений функции активации в сторону ее внутренней части. В противном случае алгоритм обратного распро­странения будет модифицировать свободные параметры сети, устремляя их в бес­конечность, замедляя таким образом процесс обучения и доводя скрытые нейроны до предела насыщения. В качестве примера рассмотрим антисимметричную функ­цию активации, показанную на рисунке 3, а. Для предельного значения +а выберем

Аналогично, для предельного значения -а установим

 

где — соответствующая положительная константа. Для выбранного ранее значе­ния a = 1,7159  установим = 0,7159. В этом случае желаемый отклик будет находиться в диапазоне от —1 до +1 рисунок 3, а).

Рисунок 3.Границы решений, построенные для скрытого ней­рона 1 сети, показанной на рисунке (а); границы решений для скрытого нейрона 2 сети (б) и для всей сети (в)

5.               Нормализация входов (normalizingtheinputs). Все входные переменные должны быть предварительно обработаны так, чтобы среднее значение по всему обу­чающему множеству было близко к нулю, иначе их будет сложно сравнивать со стандартным отклонением . Для оценки практической значимости этого правила рассмотрим экстремальный случай, когда все входные переменные по­ложительны. В этом случае синаптические веса нейрона первого скрытого слоя могут либо одновременно увеличиваться, либо одновременно уменьшаться. Сле­довательно, вектор весов этого нейрона будет менять направление, что приведетк зигзагообразному движению по поверхности ошибки. Такая ситуация обычно замедляет процесс обучения и, таким образом, неприемлема.

Рисунок 4. Асимметричная (а) и антисимметричная (б) функции активации

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

- Входные переменные, содержащиеся в обучающем множестве, должны быть некоррелированны(uncorrelated). Этого можно добиться с помощью анализа главных компонентов.

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

На рисунке 5 показан результат трех шагов нормализации: смещения среднего, декорреляции и выравнивания ковариации, примененных в указанном порядке.

Рисунок 5. Результаты трех шагов нормализации: смещения среднего, декорреляции и выравнивания ковариации

6.              Инициализация(initialization). Хороший выбор начальных значений синаптиче­ских весов и пороговых значений (threshold) сети может оказать неоценимую по­мощь в проектировании.

Если синаптические веса принимают большие начальные значения, то нейроны, скорее всего, достигнут режима насыщения. Если такое случится, то локальные градиенты алгоритма обратного распространения будут принимать малые значе­ния, что, в свою очередь, вызовет торможение процесса обучения. Если же синаптическим весам присвоить малые начальные значения, алгоритм будет очень вяло работать в окрестности начала координат поверхности ошибок. В частности, это верно для случая антисимметричной функции активации, такой как гиперболиче­ский тангенс. К сожалению, начало координат являетсяседловой точкой(saddlepoint), т.е. стационарной точкой, где образующие поверхности ошибок вдоль од­ной оси имеют положительный градиент, а вдоль другой — отрицательный. По этим причинам нет смысла использовать как слишком большие, так и слишком маленькие начальные значения синаптических весов. Как всегда, золотая середина находится между этими крайностями.

              Для примера рассмотрен многослойный персептрон, в котором в качестве функ­ции активации используется гиперболический тангенс. Пусть пороговое значение, применяемое к нейронам сети, равно нулю. Исходя из этого, индуцированное ло­кальное поле нейронаjможно выразить следующим образом:

Предположим, что входные значения, передаваемые нейронам сети, имеют нуле­вое среднее значение и дисперсию, равную единице, т.е.

Далее предположим, что входные сигналы некоррелированны:

 

и синаптические веса выбраны из множества равномерно распределенных чисел с нулевым средним

7.              Обучение по подсказке(hints). Обучение на множестве примеров связано с аппрок­симацией неизвестной функцией отображения входного сигнала на выходной. В процессе обучения из примеров извлекается информация о функциии строит­ся некоторая аппроксимация этой функциональной зависимости. Процесс обуче­ния на примерах можно обобщить, добавив обучение по подсказке, которое реали­зуется путем предоставления некоторой априорной информации о функции. Такая информация может включать свойства инвариантности, симметрии и прочие знания о функции, которые можно использовать для ускорения поиска ее аппроксимации и, что более важно, для повышения качества конечной оценки. Использование соотношения является одним из примеров такого подхода.

8.               Скорость обучения (learningrates). Все нейроны многослойного персептрона в идеале должны обучаться с одинаковой скоростью. Однако последние слои обыч­но имеют более высокие значения локальных градиентов, чем начальные слои сети. Исходя из этого параметру скорости обучения следует назначать мень­шие значения для последних слоев сети и большие — для первых. Чтобы время обучения для всех нейронов сети было примерно одинаковым, нейроны с боль­шим числом входов должны иметь меньшее значение параметра обучения, чем нейроны с малым количеством входов.

 

 

2.3.  Особенности обучения методом обратного распространения

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

   • Локальность метода изменения синаптических весов и порогов      многослойном персептроне.

   • Эффективность метода вычисления всех частных производных функциистоимости по свободным параметрам.

В течение каждой отдельно взятой эпохи данных обучения алгоритм обратногораспространения работает в одном из двух режимов: последовательном…или…пакетном.
…В последовательном режиме все синаптические веса всех нейронов сети перссчитываются при подаче каждого примера обучения. Отсюда следует, что…оценка вектора градиента поверхности ошибок, используемая во всех вычислениях, является стохастической (случайной) по своей природе. Поэтому такой режим (как, в общем, и весь метод) получил название "стохастического обратного распространения". С другой стороны, в пакетном режиме изменение синаптических весов и порогов выполняется один раз за всю эпоху. Это приводит к более точной оценке вектора градиента, используемого при вычислениях. Несмотря на свои недостатки, последовательная (стохастическая) форма обучения методом обратного распространения при создании нейронных сетей используется гораздо чаще, особенно в больших задачах. Для того чтобы добиться наилучшего результата, требуется основательная настройка алгоритма.

Многослойный персептрон