Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
719
Добавлен:
19.03.2015
Размер:
1.78 Mб
Скачать

§ 3.14.2. Многослойный персептрон и алгоритм обратного

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

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

Тем не менее, работы в области нейросетевых и нейрокомпьютерных технологий продолжались отдельными наиболее настойчивыми исследователями. Многие понимали, что надо усложнять структуру персептронов, т. е. продолжать приближать компьютерную модель к оригиналу — человеческому мозгу. Оказалось, что проблему «Исключающее ИЛИ» можно решить с помощью двухслойного персептрона, изображенного на рис.3.26.

Рис.3.26. Двухслойный персептрон, реализующий функцию

«Исключающее ИЛИ»

Работа этого персептрона происходит по следующему алгоритму.

Нейрон № 1: S1=0,5х1 + (-0,5)х2; y1= 1, если S1θ; y1= 0, если S1<θ.

Нейрон № 2: S2 =(-0,5)x1 +0,5x2; у2 = 1, если S2θ; у2 = 0, если S2 <θ.

Нейрон № 3: S3=lxl+lx2; y3 = 1, если S3 θ; y3= 0, если S3 <θ.

С помощью этих формул легко проверить таблицу истинности персептрона, составленную при задании порога θ= 0,5 (табл.3.9).

Таблица 3.9

Таблица истинности двухслойного персептрона (см. рис.3.26)

x1

x2

S1

S2

y1

y2

S3

y3

y

0

0

0

0

0

0

0

0

0

0

1

-0,5

0,5

0

1

1

1

1

1

0

0,5

-0,5

1

0

1

1

1

1

1

0

0

0

0

0

0

0

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

Многие исследователи понимали, что объединение нейронов в нейронные сети расширяет класс задач, решаемых персептроном, но не представляли, как такие сети обучать. Простые и изящные правила Хебба и их обобщение — дельта-правило — годились только для корректировки синаптических весов нейронов выходного слоя, тогда как вопрос о настройке параметров внутренних нейронных слоев оставался открытым.

Эффективный алгоритм обучения многослойных персептронов, открывший путь для их широкого практического применения, стал известен только в 1986 г., благодаря работе Румельхарта, Хилтона и Вильямса. Интересно, что данный фундаментальный алгоритм, называемый алгоритмом обратного распространения ошибки (back propagation), был предложен на один год ранее в работах Паркера и Ле-Кана, изданных независимо одна от другой. Более того, еще в 1974 г. этот простой и изящный алгоритм обратного распространения ошибки был защищен Вербосом в его докторской диссертации. Однако тогда он остался незамеченным и только спустя более десяти лет был «переоткрыт» заново и получил всеобщее признание и применение.

Рассмотрим идею алгоритма обратного распространения ошибки, попытавшись обобщить дельта-правило для случая обучения двухслойного персептрона, имеющего N входов, I выходов и скрытый слой из J нейронов (рис.3.27). Алгоритм корректировки синаптических весов нейронов выходного слоя оставим таким же, как для однослойного персептрона, заменив xj на уj.

wij(t+1) = wij(t) + Δwij; (3.11)

Δwij=ηδiyj; (3.12)

(3.13)

Рис. 3.27. Двухслойный персептрон с N входами, I выходами и скрытым слоем из J нейронов

Синаптические веса нейронов скрытого слоя попытаемся корректировать с помощью тех же самых формул, в которых индекс i заменим на j, а индекс j - на n: (3.14)

(3.15)

Понятно, что в последнем выражении в качестве уn следует использовать хn. Однако неясным здесь остается вопрос о вычислении нейронной ошибки (dj - yj), которая для скрытого слоя неизвестна. Идея авторов рассматриваемого алгоритма состояла в том, чтобы в качестве этой ошибки использовать суммарные ошибки с выходного слоя, помноженные на силы соответствующих синаптических связей, т.е. (3.16)

Итак, для скрытого слоя окончательно имеем: (3.17)

(3.18)

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

(3.19)

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

(3.20)

Алгоритм обратного распространения ошибки распишем для многослойного персептрона, имеющего входной слой k= 0, несколько скрытых слоев k=1,2,...,К-1 и выходной слой k=K (рис.3.28). Нейроны входного слоя математических преобразований не выполняют, а лишь передают входные сигналы нейронам первого слоя.

Рис.3.28. Многослойный персептрон (MLP — MultiLayerPerseptron)

Будем полагать, что каждый k-й слой содержит Hk нейронов. Таким образом, персептрон имеет N =H0 входов и М= HК выходов. В алгоритме будем использовать следующие обозначения: i - порядковый номер нейрона k-го слоя; j - порядковый номер нейрона (k-1)-го слоя; l - порядковый номер нейрона (k+1)-го слоя.

Шаг 1. Инициализация синаптических весов и смещений.

В циклах по k=1,2,...,К; i=1,2,...,Hk; j =1,2,...,Нk-1 синаптическим весам и смещениям wij(k) датчиком случайных чи­сел присваиваются малые величины, например, из интервала от -1 до 1.

Шаг 2. Представление из обучающей выборки очередного входного вектора Xq=(х12,...,xN)q и соответствующего ему желаемого выходного вектора Dq=(d1,d2, ...,dM)q, где q - номер примера в обучающей выборке.

Шаг 3. Прямой проход.

В циклах по k=1,2,...,К; i=1,2,...,Нk вычисляются выходные сигналы i-го нейрона в k-м слое

(3.21)

где yj(0) =xj, x0=1, yj(k-1) = 1 и выходные сигналы персептрона yi=yi(K).

Шаг 4. Обратный проход.

В циклах по k= К,К-1,...,1; i=1,2,...,Hk;j=1,2, ...,Hk-1 вычисляются синаптические веса на новой эпохе

(3.22)

где (3.23)

причем для выходного слоя k= К согласно (3.13)

а для всех других случаев согласно (3.18)

(3.24)

Шаг 5. Повторение шагов 2 - 4 необходимое число раз.

Входные векторы обучающих примеров Хq и Dq на втором шаге алгоритма обычно представляются последовательно от первого до последнего, т.е. q=1,2,...,Q, где Q - общее число примеров. Например, в случае распознавания букв русского алфавита Q=33. После того как для каждого обучающего примера будут скорректированы весовые коэффициенты персептрона, т.е. шаги 2-4 будут повторены 33 раза, на пятом шаге алгоритма вычисляется среднеквадратичная ошибка, усредненная по всем обучающим примерам:

(3.25)

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

(3.26)

Итерационный процесс заканчивается после того, как погрешность ε, вычисляемая по формулам (3.25) или (3.26), достигнет заданной величины, либо при достижении предельного числа эпох обучения. В результате персептрон обучится выполнять нужное отображение любого входного вектора Хq на выходной вектор Yq, отличающийся от желаемого вектора Dq на некоторую малую величину.

Теперь представим себе, что на входное табло фотоэлементов попала карточка с какой-либо буквой, выполненной другим шрифтом. Фотоэлементы сформируют входной вектор X, не совпадающий ни с одним из векторов из использованной обучающей выборки. Если шрифт, которым выполнена входная буква не слишком отличается от шрифта обучающей выборки, а персептрон хорошо спроектирован и обучен, то он вычислит вектор Y, в котором выход нейрона, соответствующего представленной на вход букве, будет иметь максимальное значение. Таким образом, персептрон, несмотря на помехи и искажения входного образа, выдаст правильное заключение о его принадлежности к тому или иному классу. Свойство персептрона правильно реагировать на входные образы, которых не было в обучающей выборке, называется свойством обобщения.

Соседние файлы в папке ОСИИ учебное пособие