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

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

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

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

 = ( T – A )

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

i = хi (2.4)

wi(n + 1) = wi (n)+ i, (2.5)

где i - коррекция, связанная с 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 обучающих пар. Такая группа обучающих пар называется обучающим множеством. Перед началом обучения всем весам должны быть присвоены небольшие начальные значения, выбранные слу­чайным образом. Это гарантирует, что в сети не произой­дет насыщения большими значениями весов, и предотвраща­ет ряд других патологических случаев. Например, если всем весам придать одинаковые начальные значения, а для требуемого функционирования нужны неравные значения, то сеть не сможет обучиться. Обучение сети обратного распространения требует выполнения следующих операций:

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

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

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

4. Подкорректировать веса сети так, чтобы миними­зировать ошибку.

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

Операции, выполняемые шагами 1 и 2, сходны с теми, которые выполняются при функционировании уже обученной сети, т.е. подается входной вектор и вычисляется полу­чающийся выход. Вычисления выполняются послойно. На рис. 3.3 сначала вычисляются выходы нейронов слоя j, затем они используются в качестве входов слоя k, вычис­ляются выходы нейронов слоя k, которые и образуют выхо­дной вектор сети. На шаге 3 каждый из выходов сети, которые на рис. 3.3 обозначены OUT, вычитается из соответствующей компоненты целевого вектора, чтобы получить ошибку. Эта ошибка используется на шаге 4 для коррекции весов сети, причем знак и величина изменений весов определяются алгоритмом обучения (см. ниже). После достаточного числа повторений этих четырех шагов разность между действительными выходами и целевы­ми выходами должна уменьшиться до приемлемой величины, при этом говорят, что сеть обучилась. Теперь сеть ис­пользуется для распознавания и веса не изменяются. На шаги 1 и 2 можно смотреть как на «проход впе­ред», так как сигнал распространяется по сети от входа к выходу. Шаги 3, 4 составляют «обратный проход», здесь вычисляемый сигнал ошибки распространяется обратно по сети и используется для подстройки весов. Эти два про­хода теперь будут детализированы и выражены в более математической форме.

Проход вперед. Шаги 1 и 2 могут быть выражены в вектор­ной форме следующим образом: подается входной вектор Х и на выходе получается вектор Y. Векторная пара вход-цель Х и Т берется из обучающего множества. Вычисления проводятся над вектором X, чтобы получить выходной вектор Y. Как мы видели, вычисления в многослойных сетях выполняются слой за слоем, начиная с ближайшего к входу слоя. Величина NET каждого нейрона первого слоя вычис­ляется как взвешенная сумма входов нейрона. Затем активационная функция F «сжимает» NET и дает величину OUT для каждого нейрона в этом слое. Когда множество выхо­дов слоя получено, оно является входным множеством для следующего слоя. Процесс повторяется слой за слоем, пока не будет получено заключительное множество выходов сети. Этот процесс может быть выражен в сжатой форме с помощью векторной нотации. Веса между нейронами могут рассматриваться как матрица W. Например, вес от нейрона 8 в слое 2 к нейрону 5 слоя 3 обозначается w8,5. Тогда NET-вектор слоя N может быть выражен не как сумма про­изведений, а как произведение Х и W. В векторном обоз­начении N = XW. Покомпонентным применением функции F к NET-вектору N получается выходной вектор О. Таким обра­зом, для данного слоя вычислительный процесс описывает­ся следующим выражением:

О = F(XW). (3.3)

Выходной вектор одного слоя является входным век тором для следующего, поэтому вычисление выходов после­днего слоя требует применения уравнения (3.3) к каждому слою от входа сети к ее выходу.

Обратный проход. Подстройка весов выходного слоя. Так как для каждого нейрона выходного слоя задано целевое значение, то подстройка весов легко осуществляется с использованием модифицированного дельта-правила из гл. 2. Внутренние слои называют «скрытыми слоями», для их выходов не имеется целевых значений для сравнения. Поэтому обучение усложняется. На рис. 3.5 показан процесс обучения для одного веса от нейрона р в скрытом слое j к нейрону в q выход­ном слое k. Выход нейрона слоя k, вычитаясь из целевого значения (Target), дает сигнал ошибки. Он умножается на производную сжимающей функции [OUT(1 - OUT)], вычислен­ную для этого нейрона слоя k, давая, таким образом, величину .

 = OUT(1 - OUT)(Target - OUT). (3.4)

Затем  умножается на величину OUT нейрона, из которого выходит для рассматриваемый вес. Это произве­дение в свою очередь умножается на коэффициент скорости обучения  (обычно от 0,01 до 1,0), и результат прибав­ляется к весу. Такая же процедура выполняется каждого веса от нейрона скрытого слоя к нейрону в выходном слое. Следующие уравнения иллюстрируют это вычисление:

wpq,k=q,kOUTp,j, (3.5)

wpq,k(n+1) = wpq,k(n) + wpq,k, (3.6)

где wpq,k {n) - величина веса от нейрона n в скрытом, слое к нейрону q в выходном слое на шаге п (до корре­кции); отметим, что индекс k относится к слою, в котором заканчивается данный вес, т.е., согласно принятому в этой книге соглашению, с которым он объединен; wpq,k (n+1)- величина веса на шаге п + 1 (после коррекции); q,k- величина  для нейрона q в выходном слое k, OUTp,j - величина OUT для нейрона р в скрытом слое j.

Рис.3.5. Настройка веса в выходном слое.

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

p,q = OUTp,j (1 - OUTp,j)(p,kwpq,k) (3.7)

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

Рис.З.6. Настройка веса в скрытом слое.

Для каждого нейрона в данном скрытом слое должно быть вычислено  и подстроены все веса, ассоциированные с этим слоем. Этот процесс повторяется слой за слоем по направлению к входу, пока все веса не будут подкорректированы. С помощью векторных обозначений операция обратного распространения ошибки может быть записана значительно компактнее. Обозначим множество величин  выходного слоя через Dk и множество весов выходного слоя как массив W’k . Чтобы получить Dj, -вектор выходного слоя, достаточно следующих двух операций:

1. Умножить  - вектор выходного слоя Dk на транспо­нированную матрицу весов W’k, соединяющую скрытый уро­вень с выходным уровнем.


Информация о работе «Нейрокомпьютерные системы»
Раздел: Информатика, программирование
Количество знаков с пробелами: 243425
Количество таблиц: 1
Количество изображений: 0

Похожие работы

Скачать
145786
1
2

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

Скачать
15022
0
0

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

Скачать
27268
0
0

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

Скачать
38834
4
8

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

0 комментариев


Наверх