Рефераты

Нейрокомпьютерные системы

коррекции.

Дельта-правило модифицирует веса в соответствии с требуемым и

действительным значениями выхода каждой полярности как для непрерывных,

так и для бинарных входов и выходов. Эти свойства открыли множество

новых приложений.

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

Может оказаться затруднительным определить, выполнено ли условие

разделимости для конкретного обучающего множества. Кроме того, во многих

встречающихся на практике ситуациях входы часто меняются во времени и

могут быть разделимы в один момент времени и неразделимы в другой. В

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

том, сколько шагов требуется для обучения сети. Мало утешительного в

знании того, что обучение закончится за конечное число шагов, если

необходимое для этого время сравнимо с геологической эпохой. Кроме

того, не доказано, что персептронный алгоритм обучения более быстр

по сравнению с простым перебором всех возможных значений весов, и в

некоторых случаях этот примитивный подход может оказаться лучше. На

эти вопросы никогда не находилось удовлетворительного ответа, они

относятся к природе обучающего материала. В различной форме они

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

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

удовлетворительны, чем для персептрона. Эти проблемы являются важной

областью современных исследований.

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

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

Долгое время не было теоретически обоснованного алгоритма для

обучения многослойных искусственных нейронных сетей. А так как

возможности представления с помощью однослойных нейронных сетей

оказались весьма ограниченными, то и вся область в целом пришла в

упадок. Разработка алгоритма обратного распространения сыграла

важную роль в возрождении интереса к искусственным нейронным сетям.

Обратное распространение - это систематический метод для обучения

многослойных искусственных нейронных сетей. Он имеет солидное

математическое обоснование. Несмотря на некоторые ограничения,

процедура обратного распространения сильно расширила область

проблем, в которых могут быть использованы искусственные нейронные

сети, и убедительно продемонстрировала свою мощь. Интересна

история разработки процедуры. В [7] было дано ясное и полное описание

процедуры. Но как только эта работа была опубликована, оказалось, что

она была предвосхищена в [4]. А вскоре выяснилось, что еще раньше метод

был описан в [12]. Авторы работы [7] сэкономили бы свои усилия, знай они

о работе [12]. Хотя подобное дублирование является обычным явлением для

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

этим намного серьезнее из-за пограничного характера самого предмета

исследования. Исследования по нейронным сетям публикуются в столь

различных книгах и журналах, что даже самому квалифицированному

исследователю требуются значительные усилия, чтобы быть осведомленным

обо всех важных работах в этой области.

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

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

Нейрон. На рис. 3.1 показан нейрон, используемый в качестве основного

строительного блока в сетях обратного распространения. Подается

множество входов, идущих либо извне, либо от предшествующего слоя.

Каждый из них умножается на вес, и произведения суммируются. Эта

сумма, обозначаемая NET, должна быть вычислена для каждого нейрона

сети. После того, как величина NET вычислена, она модифицируется с

помощью активационной функции и получается сигнал OUT.

[pic]

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

обратного распространения.

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

Как показывает уравнение (3.2), эта функция, называемая сигмоидом,

весьма удобна, так как имеет простую производную, что используется при

реализации алгоритма обратного распространения.

[pic][pic] (3.2)

[pic]

Сигмоид, который иногда называется также логистической, или

сжимающей, функцией, сужает диапазон изменения NET так, что значение OUT

лежит между нулем и единицей. Как указывалось выше, многослойные

нейронные сети обладают большей представляющей мощностью, чем

однослойные, только в случае присутствия нелинейности. Сжимающая

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

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

алгоритма обратного распространения требуется лишь, чтобы функция была

всюду дифференцируема. Сигмоид удовлетворяет этому требованию. Его

дополнительное преимущество состоит в автоматическом контроле усиления.

Для слабых сигналов (величина NET близка к нулю) кривая вход-выход

имеет сильный наклон, дающий большое усиление. Когда величина сигнала

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

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

без чрезмерного ослабления.

Многослойная сеть. На рис. 3.3 изображена многослойная сеть, которая

может обучаться с помощью процедуры обратного распространения. (Для

ясности рисунок упрощен.) Первый слой нейронов (соединенный с

входами) служит лишь в качестве распределительных точек, суммирования

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

них к весам на их выходах. А каждый нейрон последующих слоев выдает

сигналы NET и OUT, как описано выше. В литературе нет

единообразия относительно того, как считать число слоев в таких

сетях. Одни авторы

[pic]

используют число слоев нейронов (включая несуммирующий входной слой),

другие - число слоев весов. Так как последнее определение

функционально описательнее, то оно будет использоваться на протяжении

книги. Согласно этому определению, сеть на рис. 3.3 рассматривается как

двухслойная. Нейрон объединен с множеством весов, присоединенных к его

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

первого слоя. Вход распределительного слоя считается нулевым слоем.

Процедура обратного распространения применима к сетям с любым

числом слоев. Однако для того, чтобы продемонстрировать алгоритм,

достаточно двух слоев. Сейчас будут рассматриваться лишь сети

прямого действия, хотя обратное распространение применимо и к сетям с

обратными связями. Эти случаи будут рассмотрены в данной главе

позднее.

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

Целью обучения сети является такая подстройка ее весов, чтобы

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

выходов. Для краткости эти множества входов и выходов будут

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

входного вектора существует парный ему целевой вектор, задающий

требуемый выход. Вместе они называются обучающей парой. Как

правило, сеть обучается на многих парах. Например, входная часть

обучающей пары может состоять из набора нулей и единиц,

представляющего двоичный образ некоторой буквы алфавита. На рис. 3.4

показано множество входов для буквы. А, нанесенной на сетке. Если

через квадрат проходит линия, то соответствующий нейронный вход равен

единице, в противном случае он равен нулю. Выход может быть числом,

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

может быть использован для получения выходного образа. При

необходимости распознавать с помощью сети все буквы алфавита,

потребовалось бы 26 обучающих пар. Такая группа обучающих пар

называется обучающим множеством. Перед началом обучения всем весам

должны быть присвоены небольшие начальные значения, выбранные

случайным образом. Это гарантирует, что в сети не произойдет насыщения

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

случаев. Например, если всем весам придать одинаковые начальные

значения, а для требуемого функционирования нужны неравные значения, то

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

требует выполнения следующих операций:

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

подать входной вектор на вход сети.

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

3. Вычислить разность между выходом сети и требуемым выходом (целевым

вектором обучающей пары).

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

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

множества до тех пор, пока ошибка на всем множестве не достигнет

приемлемого уровня.

[pic]

Операции, выполняемые шагами 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.

[pic]

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

Подстройка весов скрытого слоя. Рассмотрим один нейрон в скрытом

слое, предшествующем выходному слою. При проходе вперед этот нейрон

передает свой выходной сигнал нейронам в выходном слое через соединяющие

их веса. Во время обучения эти веса функционируют в обратном порядке,

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

этих весов умножается на величину ( нейрона, к которому он присоединен в

выходном слое. Величина (, необходимая для нейрона скрытого слоя,

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

производную сжимающей функции:

(p,q = OUTp,j (1 - OUTp,j)([pic] (p,kwpq,k) (3.7)

(см. рис.3.6). Когда значение ( получено, веса, питающие первый скрытый

уровень, могут быть подкорректированы с помощью уравнений (3.5) и (3.6),

где индексы модифицируются в соответствии со слоем.

[pic]

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

Для каждого нейрона в данном скрытом слое должно быть вычислено

( и подстроены все веса, ассоциированные с этим слоем. Этот процесс

повторяется слой за слоем по направлению к входу, пока все веса не

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

обратного распространения ошибки может быть записана значительно

компактнее. Обозначим множество величин ( выходного слоя через Dk

и множество весов выходного слоя как массив W’k . Чтобы получить Dj,

(-вектор выходного слоя, достаточно следующих двух операций:

1. Умножить ( - вектор выходного слоя Dk на транспонированную матрицу

весов W’k, соединяющую скрытый уровень с выходным уровнем.

2. Умножить каждую компоненту полученного произведения на производную

сжимающей функции соответствующего нейрона в скрытом слое.

В символьной записи

Dj = DkW ‘k $ [Оj $(1- Oj)], (3.8)

где оператор $ в данной книге обозначает покомпонентное произведение

векторов. О. - выходной вектор слоя j и 1 - вектор, все компоненты

которого равны 1.

Добавление нейронного смещения. Во многих случаях желательно наделять

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

отсчета логистической функции, давая эффект, аналогичный подстройке

порога персептронного нейрона, и приводит к ускорению процесса

обучения. Эта возможность может быть легко введена в обучающий

алгоритм с помощью добавляемого к каждому нейрону веса,

присоединенного к +1. Этот вес обучается так же, как и все остальные

веса, за исключением того, что подаваемый на него сигнал всегда равен

+1, а не выходу нейрона предыдущего слоя.

Импульс. В работе [7] описан метод ускорения обучения для алгоритма

обратного распространения, увеличивающий также устойчивость процесса.

Этот метод, названный импульсом, заключается в добавлении к

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

веса. Как только происходит коррекция, она «запоминается» и служит для

модификации всех последующих коррекций. Уравнения коррекции модифицируются

следующим образом:

[pic](wpq,k(n+1) = ( ((q,kOUTp,j) + (((wpq,k(n)), (3.9)

[pic](wpq,k(n+1) = (wpq,k(n) + (wpq,k(n+1)), (3.10)

где ( - коэффициент импульса, обычно устанавливается около

0,9.Используя метод импульса, сеть стремится идти по дну узких оврагов

поверхности ошибки (если таковые имеются), а не двигаться от склона

к склону. Этот метод, по-видимому, хорошо работает на некоторых задачах,

но дает слабый или даже отрицательный эффект на других. В работе [8]

описан сходный метод, основанный на экспоненциальном сглаживании, который

может иметь преимущество в ряде приложений.

[pic](wpq,k(n+1) = ( (wpq,k(n) + ( 1- ( )(q,kOUTp,j . (3.11)

[pic](wpq,k(n+1) = (wpq,k(n) + ((wpq,k(n+1)), (3.12)

где ( коэффициент сглаживания, варьируемый и диапазоне от 0,0 до 1,0.

Если ( равен 1,0, то новая коррекция игнорируется и повторяется

предыдущая. В области между 0 и 1 коррекция веса сглаживается величиной,

пропорциональной (. По-прежнему, ( является коэффициентом скорости

обучения, служащим для управления средней величиной изменения веса.

ДАЛЬНЕЙШИЕ АЛГОРИТМИЧЕСКИЕ РАЗРАБОТКИ

Многими исследователями были предложены улучшения и обобщения

описанного выше основного алгоритма обратного распространения. Литература

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

Кроме того, сейчас еще слишком рано давать окончательные оценки.

Некоторые из этих подходов могут оказаться действительно

фундаментальными, другие же со временем исчезнут. Некоторые из

наиболее многообещающих разработок обсуждаются в этом разделе. В

[5] описан метод ускорения сходимости алгоритма обратного

распространения. Названный обратным распространением второго порядка,

он использует вторые производные для более точной оценки требуемой

коррекции весов. В [5] показано, что этот алгоритм оптимален в том

смысле, что невозможно улучшить оценку, используя производные более

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

с обратным распространением первого порядка, и необходимы дальнейшие

эксперименты для доказательства оправданности этих затрат. В

[9] описан привлекательный метод улучшения характеристик обучения сетей

обратного распространения. В работе указывается, что общепринятый от 0

до 1 динамический диапазон входов и выходов скрытых нейронов

неоптимален. Так как величина коррекции веса (wpq,k пропорциональна

выходному уровню нейрона, порождающего OUTp,q, то нулевой уровень

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

половина входов в среднем будет равна нулю, и веса, с которыми они

связаны, не будут обучаться! Решение состоит в приведении входов к

значениям ±1/2 и добавлении смещения к сжимающей функции, чтобы она

также принимала значения ±1/2. Новая сжимающая функция выглядит следующим

образом:

OUT =-1/2 + 1 / (exp(-NET) + 1). (3.13)

С помощью таких простых средств время сходимости сокращается в среднем

от 30 до 50%. Это является одним из примеров практической модификации,

существенно улучшающей характеристику алгоритма. В [6] и [1]

описана методика применения обратного распространения к сетям с

обратными связями, т.е. к таким сетям, у которых выходы подаются

через обратную связь на входы. Как показано в этих работах, обучение в

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

легко удовлетворяются.

ПРИМЕНЕНИЯ

Обратное распространение было использовано в широкой сфере прикладных

исследований. Некоторые из них описываются здесь, чтобы

продемонстрировать мощь этого метода. Фирма NEC в Японии объявила

недавно, что обратное распространение было ею использовано для

визуального распознавания букв, причем точность превысила 99%. Это

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

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

В работе [8] достигнут впечатляющий успех с NetTalk, системой,

которая превращает печатный английский текст в высококачественную речь.

Магнитофонная запись процесса обучения сильно напоминает звуки

ребенка на разных этапах обучения речи. В [2] обратное

распространение использовалось в машинном распознавании рукописных

английских слов. Буквы, нормализованные по размеру, наносились на сетку,

и брались проекции линий, пересекающих квадраты сетки. Эти проекции

служили затем входами для сети обратного распространения. Сообщалось о

точности 99,7% при использовании словарного фильтра. В [3]

сообщалось об успешном применении обратного распространения к сжатию

изображений, когда образы представлялись одним битом на пиксель, что

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

ПРЕДОСТЕРЕЖЕНИЕ

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

распространения, оно не является панацеей. Больше всего неприятностей

приносит неопределенно долгий процесс обучения. В сложных задачах для

обучения сети могут потребоваться дни или даже недели, она может и вообще

не обучиться. Длительное время обучения может быть результатом

неоптимального выбора длины шага. Неудачи в обучении обычно

возникают по двум причинам: паралича сети и попадания в локальный

минимум.

Паралич сети

В процессе обучения сети значения весов могут в результате

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

тому, что все или большинство нейронов будут функционировать при очень

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

очень мала. Так как посылаемая обратно в процессе обучения ошибка

пропорциональна этой производной, то процесс обучения может практически

замереть. В теоретическом отношении эта проблема плохо изучена. Обычно

этого избегают уменьшением размера шага т), но это увеличивает время

обучения. Различные эвристики использовались для предохранения от

паралича или для восстановления после него, но пока что они могут

рассматриваться лишь как экспериментальные.

Локальные минимумы

Обратное распространение использует разновидность градиентного

спуска, т.е. осуществляет спуск вниз по поверхности ошибки,

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

ошибки сложной сети сильно изрезана и состоит из холмов, долин,

складок и оврагов в пространстве высокой размерности. Сеть может попасть

в локальный минимум (неглубокую долину), когда рядом имеется гораздо

более глубокий минимум. В точке локального минимума все направления

ведут вверх, и сеть неспособна из него выбраться. Статистические

методы обучения могут помочь избежать этой ловушки, но они медленны.

В [10] предложен метод, объединяющий статистические методы машины Коши

с градиентным спуском обратного распространения и приводящий к системе,

которая находит глобальный минимум, сохраняя высокую скорость обратного

распространения. Это обсуждается в гл. 5.

Размер шага

Внимательный разбор доказательства сходимости в [7] показывает,

что коррекции весов предполагаются бесконечно малыми. Ясно, что это

неосуществимо на практике, так как ведет к бесконечному времени

обучения. Размер шага должен браться конечным, и в этом вопросе

приходится опираться только на опыт. Если размер шага очень мал, то

сходимость слишком медленная, если же очень велик, то может возникнуть

паралич или постоянная неустойчивость. В [II] описан адаптивный алгоритм

выбора шага, автоматически корректирующий размер шага в процессе

обучения.

Временная неустойчивость

Если сеть учится распознавать буквы, то нет смысла учить Б, если

при этом забывается А. Процесс обучения должен быть таким, чтобы сеть

обучалась на всем обучающем множестве без пропусков того, что уже

выучено. В доказательстве сходимости [7] это условие выполнено, но

требуется также, чтобы сети предъявлялись все векторы обучающего

множества прежде, чем выполняется коррекция весов. Необходимые

изменения весов должны вычисляться на всем множестве, а это требует

дополнительной памяти; после ряда таких обучающих циклов веса сойдутся к

минимальной ошибке. Этот метод может оказаться бесполезным, если сеть

находится в постоянно меняющейся внешней среде, так что второй раз

один и тот же вектор может уже не повториться. В этом случае

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

осциллируя. В этом смысле обратное распространение не похоже на

биологические системы. Как будет указано в гл.8 это несоответствие

(среди прочих) привело к системе ART , принадлежавшей Гроссбергу.

Глава 4 Сети встречного распространения

ВВЕДЕНИЕ В СЕТИ ВСТРЕЧНОГО РАСПРОСТРАНЕНИЯ

Возможности сети встречного распространения, разработанной в [5-

7], превосходят возможности однослойных сетей. Время же обучения по

сравнению с обратным распространением может уменьшаться в сто раз.

Встречное распространение не столь общо, как обратное распространение, но

оно может давать решение в тех приложениях, где долгая обучающая

процедура невозможна. Будет показано, что помимо преодоления

ограничений других сетей встречное распространение обладает

собственными интересными и полезными свойствами. Во встречном

распространении объединены два хорошо известных алгоритма:

самоорганизующаяся карта Кохонена [8] и звезда Гроссберга [2-4] (см.

приложение Б). Их объединение ведет к свойствам, которых нет ни у

одного из них в отдельности. Методы, которые подобно встречному

распространению, объединяют различные сетевые парадигмы как строительные

блоки, могут привести к сетям, более близким к мозгу по архитектуре,

чем любые другие однородные структуры. Похоже, что в мозгу именно

каскадные соединения модулей различной специализации позволяют

выполнять требуемые вычисления. Сеть встречного распространения

функционирует подобно столу справок, способному к обобщению. В

процессе обучения входные векторы ассоциируются с соответствующими

выходными векторами. Эти векторы могут быть двоичными, состоящими из

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

входного векторе приводит к требуемому выходному вектору. Обобщающая?

способность сети позволяет получать правильный выxoд даже при

приложении входного вектора, который являете; неполным или слегка

неверным. Это позволяет использовать данную сеть для распознавания

образов, восстановления образов и усиления сигналов.

СТРУКТУРА СЕТИ

На рис. 4.1 показана упрощенная версия прямого действия сети

встречного распространения. На нем иллюстрируются функциональные свойства

этой парадигмы. Полная двунаправленная сеть основана на тех же

принципах, она обсуждается в этой главе позднее. Нейроны слоя 0

(показанные кружками) служат лишь точками разветвления и не выполняют

вычислений. Каждый нейрон слоя 0 соединен с каждым нейроном слоя 1

(называемого слоем Кохонена) отдельным весом wmn . Эти веса в целом

рассматриваются как матрица весов W. Аналогично, каждый нейрон в слое

Кохонена (слое 1) соединен с каждым нейроном в слое Гроссберга (слое 2)

весом vnp . Эти веса образуют матрицу весов V. Все это весьма

напоминает другие сети, встречавшиеся в предыдущих главах, различие,

однако, состоит в операциях, выполняемых нейронами Кохонена и Гроссберга.

Как и многие другие сети, встречное распространение функционирует

в двух режимах: в нормальном режиме, при котором принимается входной

вектор Х и выдается выходной вектор Y, и в режиме обучения, при

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

требуемый выходной вектор.

[pic]

НОРМАЛЬНОЕ ФУНКЦИОНИРОВАНИЕ

Слои Кохоненна

В своей простейшей форме слой Кохонена функционирует в духе

«победитель забирает все», т.е. для данного входного вектора один и

только один нейрон Кохонена выдает на выходе логическую единицу,

все остальные выдают ноль. Нейроны Кохонена можно воспринимать как

набор электрических лампочек, так что для любого входного вектора

загорается одна из них. Ассоциированное с каждым нейроном Кохонена

множество весов соединяет его с каждым входом. Например, на рис.4.1

нейрон Кохонена К1 имеет веса w11, w21, ...,wm1 составляющие

весовой вектор W1. Они соединяются через входной слой с входными

сигналами х1, х2 , ...,хm, составляющими входной вектор X. Подобно

нейронам большинства сетей выход NET каждого нейрона Кохонена является

просто суммой взвешенных входов. Это может быть выражено следующим

образом:

NETj = w1j x1+ w2j x2 + … + wm j xm (4.1)

где NETj - это выход NET-го нейрона Кохонена j ,

NETj = [pic] (4.2)

или в векторной записи N = XW (4.3)

где N - вектор выходов NET слоя Кохонена. Нейрон Кохонена с

максимальным значением NET является «победителем». Его выход равен

единице, у остальных он равен нулю.

Слой Гроссберга

Слой Гроссберга функционирует в сходной манере. Его выход NET

является взвешенной суммой выходов k1 ,k2, ..., kn слоя Кохонена,

образующих вектор К. Вектор соединяющих весов, обозначенный через

V, состоит из весов v11,v21 , ..., vnp . Тогда выход NET каждого

нейрона Гроссберга есть

[pic] (4.4)

где NETj - выход j-го нейрона Гроссберга, или в векторной форме

Y = KV, (4.5)

где Y - выходной вектор слоя Гроссберга, К - выходной вектор слоя

Кохонена, V - матрица весов слоя Гроссберга. Если слой Кохонена

функционирует таким образом, что лишь у одного нейрона величина NET

равна единице, а у остальных равна нулю, то лишь один элемент вектора К

отличен от нуля, и вычисления очень просты. Фактически каждый нейрон

слоя Гроссберга лишь выдает величину веса, который связывает этот

нейрон с единственным ненулевым нейроном Кохонена.

ОБУЧЕНИЕ СЛОЯ КОХОНЕНА

Слой Кохонена классифицирует входные векторы в группы схожих.

Это достигается с помощью такой подстройки весов слоя Кохонена, что

близкие входные векторы активируют один и тот же нейрон данного

слоя. Затем задачей слоя Гроссберга является получение требуемых

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

учителя. Поэтому трудно (и не нужно) предсказывать, какой именно нейрон

Кохонена будет активироваться для заданного входного вектора. Необходимо

лишь гарантировать, чтобы в результате обучения разделялись несхожие

входные векторы.

Предварительная обработка входных векторов

Весьма желательно (хотя и не обязательно) нормализовать входные

векторы перед тем, как предъявлять их сети. Это выполняется с помощью

деления каждой компоненты входного вектора на длину вектора. Эта

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

компонент вектора. В алгебраической записи

[pic] (4.6)

Это превращает входной вектор в единичный вектор с тем же самым

направлением, т.е. в вектор единичной длины в n-мерном пространстве.

Уравнение (4.6) обобщает хорошо известный случай двух измерений,

когда длина вектора равна гипотенузе прямоугольного треугольника,

образованного его х и у компонентами, как это следует из известной

теоремы Пифагора. На рис. 4.2а такой двумерный вектор V

представлен в координатах х-у, причем координата х равна четырем, а

координата х - трем. Квадратный корень из суммы квадратов этих

компонент равен пяти. Деление каждой компоненты V на пять дает

вектор V' с компонентами 4/5 и 3/5, где V' указывает в том же

направлении, что и V, но имеет единичную длину. На рис. 4.26

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

единичной окружности (окружности единичного радиуса), что имеет место,

когда у сети лишь два входа. В случае трех входов векторы

представлялись бы стрелками, оканчивающимися на поверхности единичной

сферы. Эти представления могут быть перенесены на сети, имеющие

произвольное число входов, где каждый входной вектор является стрелкой,

оканчивающейся на поверхности единичной гиперсферы (полезной

абстракцией, хотя и не допускающей непосредственной визуализации).

[pic]

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

вычисляются его скалярные произведения с векторами весов, связанными со

всеми нейронами Кохонена. Нейрон с максимальным значением скалярного

произведения объявляется «победителем» и его веса подстраиваются. Так

как скалярное произведение, используемое для вычисления величин NET,

Страницы: 1, 2, 3, 4, 5, 6, 7, 8


© 2010 Современные рефераты