Смекни!
smekni.com

Нейрокомпьютерные системы (стр. 8 из 32)

3. Перейти на шаг 1.

За конечное число шагов сеть научится разделять карты на четные и нечетные при условии, что множество цифр линейно разделимо. Это значит, что для всех нечет­ных карт выход будет больше порога, а для всех четных - меньше. Отметим, что это обучение глобально, т.е. сеть обучается на всем множестве карт. Возникает вопрос о том, как это множество должно предъявляться, чтобы минимизировать время обучения. Должны ли элементы мно­жества предъявляться последовательно друг за другом или карты следует выбирать случайно? Несложная теория слу­жит здесь путеводителем.

Дельта-правило

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

d = ( TA )

Случай, когда d = 0, соответствует шагу 2а, когда выход правилен и в сети ничего не изменяется. Шаг 26 соответствует случаю d > 0, а шаг 2в случаю d < 0. В любом из этих случаев персептронный алгоритм обучения сохраняется, если 5 умножается на величину каждого входа х. и это произведение добавляется к соот­ветствующему весу. С целью обобщения вводится коэффици­ент «скорости обучения» h, который умножается на dхi, что позволяет управлять средней величиной изменения весов. В алгебраической форме записи

Di = hdхi (2.4)

wi(n + 1) = wi (n)+ Di, (2.5)

где Di - коррекция, связанная с i-м входом хi; wi(n + 1) - значение веса i после коррекции; wi (n) -значение веса i до коррекции.

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

Трудности с алгоритмом обучения персептрона

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

Глава 3 Процедура обратного распространения

ВВЕДЕНИЕ В ПРОЦЕДУРУ ОБРАТНОГО РАСПРОСТРАНЕНИЯ

Долгое время не было теоретически обоснованного алгоритма для обучения многослойных искусственных ней­ронных сетей. А так как возможности представления с помощью однослойных нейронных сетей оказались весьма ограниченными, то и вся область в целом пришла в упа­док. Разработка алгоритма обратного распространения сыграла важную роль в возрождении интереса к искусст­венным нейронным сетям. Обратное распространение - это систематический метод для обучения многослойных искусс­твенных нейронных сетей. Он имеет солидное математичес­кое обоснование. Несмотря на некоторые ограничения, процедура обратного распространения сильно расширила область проблем, в которых могут быть использованы искусственные нейронные сети, и убедительно продемонст­рировала свою мощь. Интересна история разработки процедуры. В [7] было дано ясное и полное описание процедуры. Но как только эта работа была опубликована, оказалось, что она была предвосхищена в [4]. А вскоре выяснилось, что еще рань­ше метод был описан в [12]. Авторы работы [7] сэкономи­ли бы свои усилия, знай они о работе [12]. Хотя подоб­ное дублирование является обычным явлением для каждой научной области, в искусственных нейронных сетях положение с этим намного серьезнее из-за пограничного ха­рактера самого предмета исследования. Исследования по нейронным сетям публикуются в столь различных книгах и журналах, что даже самому квалифицированному исследова­телю требуются значительные усилия, чтобы быть осведом­ленным обо всех важных работах в этой области.

ОБУЧАЮЩИЙ АЛГОРИТМ ОБРАТНОГО РАСПРОСТРАНЕНИЯ

Сетевые конфигурации

Нейрон. На рис. 3.1 показан нейрон, используемый в каче­стве основного строительного блока в сетях обратного распространения. Подается множество входов, идущих либо извне, либо от предшествующего слоя. Каждый из них умножается на вес, и произведения суммируются. Эта сумма, обозначаемая NET, должна быть вычислена для каждого нейрона сети. После того, как величина NET вычислена, она модифицируется с помощью активационной функции и получается сигнал OUT.

На рис. 3.2 показана активационная функция, обычно используемая для обратного распространения.

OUT = 1 / (1 + e –NET ) . (3.1)

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

(3.2)

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

Многослойная сеть. На рис. 3.3 изображена многослойная сеть, которая может обучаться с помощью процедуры обра­тного распространения. (Для ясности рисунок упрощен.) Первый слой нейронов (соединенный с входами) служит лишь в качестве распределительных точек, суммирования входов здесь не производится. Входной сигнал просто проходит через них к весам на их выходах. А каждый нейрон последующих слоев выдает сигналы NET и OUT, как описано выше. В литературе нет единообразия относительно того, как считать число слоев в таких сетях. Одни авторы

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

Обзор обучения

Целью обучения сети является такая подстройка ее весов, чтобы приложение некоторого множества входов приводило к требуемому множеству выходов. Для краткости эти множества входов и выходов будут называться векторами. При обучении предполагается, что для каждого входного вектора существует парный ему целевой вектор, задающий требуемый выход. Вместе они называются обучающей парой. Как правило, сеть обучается на многих парах. Например, входная часть обучающей пары может состоять из набора нулей и единиц, представляющего двоичный образ некоторой буквы алфавита. На рис. 3.4 показано множество входов для буквы. А, нанесенной на сетке. Если через квадрат проходит линия, то соответст­вующий нейронный вход равен единице, в противном случае он равен нулю. Выход может быть числом, представляющим букву А, или другим набором из нулей и единиц, который может быть использован для получения выходного образа. При необходимости распознавать с помощью сети все буквы алфавита, потребовалось бы 26 обучающих пар. Такая группа обучающих пар называется обучающим множеством. Перед началом обучения всем весам должны быть присвоены небольшие начальные значения, выбранные слу­чайным образом. Это гарантирует, что в сети не произой­дет насыщения большими значениями весов, и предотвраща­ет ряд других патологических случаев. Например, если всем весам придать одинаковые начальные значения, а для требуемого функционирования нужны неравные значения, то сеть не сможет обучиться. Обучение сети обратного распространения требует выполнения следующих операций: