Теоретический материал к лабораторной работе №5 ДВУХСЛОЙНЫЙ ПЕРСЕПТРОН
1. Ограниченность однослойного персептрона
Как уже отмечалось ранее, Ф.Розенблатту удалось обучить свой пер- септрон распознавать буквы алфавита. Это был колоссальный успех: Элек-
т ронное уст ройст во, созданное по образу и подобию человеческого мозга, обученное подобно человеку, успешно моделировало инт еллект уальные функции человека. Это был успех в познании самой природы человеческого мышления. Мозг начал раскрывать свои тайны. Появилась возможность ис- следовать мозг методами моделирования, не прибегая к сложнейшим анти- гуманным и мало что дающим натурным экспериментам. Это была сенсация, приковавшая к себе внимание мыслящих людей всего мира. Казалось, что ключ к интеллекту был найден и полное воспроизведение человеческого моз- га и всех его функций – всего лишь вопрос времени.
Класс решаемых нейросетями задач расширялся. Но по мере расшире- ния фронта научных исследований появлялись трудности. Неожиданно ока- залось, что многие новые задачи персептрон решить не мог. П ричем эти но- вые задачи, внешне ничем не отличались от тех, с которыми персептрон ус- пешно справлялся ранее. Возникла необходимость объяснения парадоксов, глубокого анализа и создания теоретической базы нейроинформатики.
Следующий период истории искусственного интеллекта начался с по- явления в 1969 г. книги двух известных американских математиков М.Минского и С.Пайперт а «Персептроны». Авторы этой книги математиче- ски строго доказали, что использовавшиеся в то время однослойные персеп- троны в принципе не способны решать многие простые задачи. Одну из та- ких задач, вошедшую в историю нейроинформатики под названием пробле- мы «Исключающего ИЛИ», мы рассмотрим подробно.
«Исключающее ИЛИ» – это логическая функция двух аргументов, ка- ждый из которых может иметь значение «истинно» либо «ложно». Сама она принимает значение «истинно», когда только один из аргументов имеет зна- чение «истинно». Во всех остальных случаях эта функция принимает значе- ние «ложно». Если закодировать значение «истинно» единицей, а значение
«ложно» – нулем, то требуемое соответствие между аргументами x1 , x2 и самой функцией y можно представить в виде табл. 1, называемой таблицей истинности логической функции.
Т а б л и ц а 1 Таблица истинности логической функции «ИсключающееИЛИ»
x1 |
x2 |
y |
0 |
0 |
0 |
0 |
1 |
1 |
|
|
|
1 |
0 |
1 |
1 |
1 |
0 |
Задача состоит в том, чтобы научиться моделировать функцию «Ис- ключающее ИЛИ» с помощью однонейронного персептрона с двумя входами x1 и x2 и одним выходом y (рис. 1). При выполнении лабораторной работы №1 Вы уже пытались решить эту задачу путем подбора значений синаптиче- ских весов w1 , w2 и порога θ, однако сделать это Вам не удалось. Вам не
удалось это сделать, хотя в других случаях, при моделировании логических функций «И» и «ИЛИ», у Вас проблем не возникало.
Внешне функции «И», «ИЛИ» и «Исключающее ИЛИ» мало чем отли- чаются друг от друга, и Вам было не понятно, почему Ваш однонейронный персептрон успешно справлялся с моделированием двух первых функций, а с моделированием третьей функции он справиться не мог.
1 |
2 |
|
Рис. 1. Однонейронный персептрон с двумя входами и одним выходом
Для объяснения этого парадокса американскими математиками М.Минским и С.Пайпертом была предложена геометрическая интерпретация, состоящая в следующем. Они предложили изобразить на координатной плос- кости x1 , x2 все возможные комбинации входных сигналов в виде четырех
точек: A, B, C, D, как показано на рис. 2. Точка A имеет координаты x1 =0, x2 =0; точка B имеет координаты x1 =0, x2 =1 и т.д. согласно тал. 2.
Т а б л и ц а 2
Таблица истинности логической функции «Исключающее ИЛИ», дополненная тачкамиA, B, C, D
Точки |
x1 |
x2 |
y |
A |
0 |
0 |
0 |
B |
0 |
1 |
1 |
|
|
|
|
C |
1 |
0 |
1 |
D |
1 |
1 |
0 |
|
|
|
|
Тогда в точке A выход персептрона y должен быть равен нулю, в точ- ке B – единице, в точке C – единицеи в точке D – нулю.
2
1
1
0
1 |
+ |
2 |
2 |
= |
|
||
|
|
θ |
1
1
Рис. 2. Графическая интерпретация к объяснению проблемы «Исключающего ИЛИ»
Как нам известно (см. например лабораторную работу №1), математи- ческий нейрон
S = w1x1 +w2x2 ; |
(1) |
|
1, |
если S ≥θ; |
(2) |
y = |
если S <θ, |
|
0, |
|
Заменим в уравнении (1) S на θ:
w1x1 + w2 x2 = θ. |
(3) |
Если в этом уравнении величины x1 и x2 считать переменными, а θ, w1 и w2 – константами, то на координатной плоскости x1 , x2 рассматривае- мое уравнение изобразится в виде прямой линии, положение и наклон кото- рой определяются значениями коэффициентов w1 , w2 и порога θ. Для всех точек плоскости x1 , x2 , лежащих на этой линии, выполняется равенство S =θ и поэтому, согласно формуле (2), выход персептрона равен единице. Для точек, лежащих выше указанной линии сумма w1x1 + w2 x2 больше чем θ, и поэтому по формулам
выход персептрона равен нулю. Поэтому линию, изображающую уравнение
(3), называют пороговойпрямой.
А теперь посмотрим на табл. 2. Согласно этой таблице в точках A и D выход персептрона должен быть нулевым, а в точках B и C – единичным. Но для этого надо расположить пороговую прямую так, чтобы точки A и D ле- жали ниже этой линии, а точки B и C – выше, что невозможно. Это значит, что, сколько бы персептрон ни обучали, какие бы значения ни придавали его синаптическим весам и порогу, персептрон в принципе не способен воспро- извести соотношение между входами и выходом, требуемое таблицей истин- ности функции «Исключающее ИЛИ».
Помимо проблемы «Исключающего ИЛИ» М.Минский и С.Пайперт привели ряд других задач, в которых точки, изображающие входные сигна- лы, не могут быть разделены пороговой прямой (в многомерных случаях – плоскостью, гиперплоскостью). Такие задачи получили название линейно не-
разделимых.
После выхода в свет книги М.Минского и С.Пайперта «Персептроны» всем стало ясно, что активно предпринимавшиеся в то время попытки обу- чать персептроны решению многих задач, которые, как оказалось, относятся к классу линейно неразделимых, с самого начала были обречены на провал. Это была пустая трата времени, сил и финансовых ресурсов.
Однонейронный персептрон в принципе не позволяет моделировать ло- гическую функцию «Исключающее ИЛИ» и решать другие линейно неразде- лимые задачи.
2. Решение проблемы «Исключающего ИЛИ»
Появление книги М.Минского и С.Пайперта «Персептроны» вызвало шок в научном мире. Строгие математические доказательства М.Минского и С.Пайперта были неуязвимы. Всеобщий энтузиазм сменился не менее всеоб- щим пессимизмом. В газетах стали появляться критические статьи с сообще- ниями о том, что ученые мужи в своих исследованиях зашли в тупик, впус- тую израсходовав огромные государственные деньги. Правительство США немедленно прекратило финансирование нейропроектов и приступило к по- искам виновных. Бизнесмены, потерявшие надежду вернуть вложенные ка- питалы, отвернулись от ученых и нейроинформатикабылапредана забвению, длившемуся более 20 лет.
Тем не менее, работы в области нейросетевых и нейрокомпьютерных технологий продолжались отдельными энтузиастами. Работы продолжались в засекреченных
Советским ученым С.О.Мкртчаном было показано, что с помощью многослойных персептронов может быть смоделирована любая логическая функция, если только известна ее логическая формула. Более того, им был разработан специальный математический аппарат, позволяющий конструи- ровать такие персептроны. Оказалось, что проблема «Исключающего ИЛИ», явившаяся камнем преткновения для однонейронного персептрона, может быть разрешена с помощью нейронной сети, состоящей из трех нейронов – технейронного персептрона, изображенного на рис. 3.
1
2
=0,5 |
№1 |
|
|
|
|
= |
|
=-0,5
=0,5
№2
=1
=1
№3
Рис. 3. Нейронная сеть, моделирующая функцию «Исключающее ИЛИ»
Работа этого персептрона происходит по следующему алгорит-
му.
Нейрон № 1:
S1 =0,5×x1 +(−0,5)×x2;
1, если S1 ≥θ; y1 = 0, если S1 <θ.
Нейрон № 2:
S2 =(−0,5)×x1 +0,5×x2;
1, если S2 ≥θ; y2 = 0, если S2 <θ.
Нейрон № 3:
S3 =1× y1 +1× y2;
1, если S3 ≥θ; y3 = 0, если S3 <θ.
Задавшись значением порога θ = 0,5 и заполнив с помощью этих фор- мул табл. 3, легко убедиться, что трехнейронный персептрон успешно моде- лирует функцию «Исключающее ИЛИ».
Т а б л и ц а 3
Процесс формирования сигналов в трехнейронном персептроне
x1 |
x2 |
S1 |
S2 |
y1 |
y2 |
S3 |
y3 |
y |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0,5 |
0 |
1 |
1 |
1 |
1 |
|
1 |
0 |
0,5 |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Впоследствии было показано, что и другие линейно неразделимые за- дачи, приведенные в книге М.Минского и С.Пайперта, могут быть решены с помощью нейросетей, содержащих один или несколько скрытых нейронных слоев, т.е. слоев нейронов, расположенных между входным и выходным слоями.
Многие исследователи понимали, что нужно создавать нейросети более сложной архитектуры, содержащие скрытые слои нейронов, но не представ- ляли, как такие сети обучать. Правила Хебба и их обобщение – дельта- правило, годились только для корректировки синаптических весов нейронов выходного слоя, тогда как вопрос о настройке параметров скрытых нейрон- ных слоев оставался открытым.
Логическую функцию «Исключающее ИЛИ» может моделировать ней- ронная сеть, состоящая из трех нейронов, изображенная на рис. 3.
3. Алгоритм обратного распространения ошибки
Эффективный алгоритм обучения многослойных персептронов, от- крывший путь их широкому практическому применению, стал известен толь- ко в 1986 г. благодаря публикациям Д.Румельхарта, Г.Хилтона и Р.Вильямса. Идея этого алгоритма заключается в том, что ошибки нейронов выходного слоя εi = di − yi используются для вычисления ошибок нейронов, расположенных в скрытых слоях. Значения ошибок как бы распространяются от выходного слоя нейронов вовнутрь сети от последующих нейронных сло- ев к предыдущим. Отсюда название метода алгоритмом обратного распро-
страненияошибки (back propagation).
Интересно отметить, что алгоритм обратного распространения ошибки был предложен на один год ранее в работах А.Паркера и
тались незамеченными и работы советских ученых, еще раньше разрабаты- вавших подобные алгоритмы в своих засекреченных институтах и успешно применявших их при построении систем управления объектами военного на- значения.
Рассмотрим идею алгоритма обратного распространения ошибки, по- пытавшись обобщить
Алгоритм корректировки синаптических весов нейронов выходного слоя оставим таким же, как для однослойного персептрона (см. обобщенное
|
wij (t +1) = wij (t) +∆wij ; |
|
(4) |
|
∆wij =ηδi yj ; |
|
(5) |
|
δi = yi (1− yi )(di − yi ) . |
|
(6) |
|
1 |
1 |
1 |
1 |
|
||
|
|
|
|
2 |
2 |
2 |
2 |
|
Рис. 4. Двухслойный персептрон с N входами, I выходами
и скрытым слоем из J нейронов
Синаптические веса нейронов скрытого слоя попытаемся корректиро-
вать с помощью все тех же формул, в которых индекс i заменим на |
j , а ин- |
декс j заменим на индекс n : |
|
∆wjn =ηδj xn ; |
(7) |
δj = y j (1− y j )(d j − y j ). |
(8) |
При использовании этих формул возникает вопрос о вычислении ней- ронной ошибки (d j − y j ) , которая для скрытого слоя неизвестна. Идея авто-
ров рассматриваемого алгоритма состояла в том, чтобы в качестве этой ошибки использовать суммарные нейронные ошибки с выходного слоя, по- множенные на силы соответствующих синаптических связей, т.е.
(d j − yj ) =∑I δiwij . |
(9) |
i=1 |
|
Итак, для скрытого слоя окончательно имеем
∆wjn =ηδj xn; |
(10) |
δj = yj (1− yj )∑I δiwij . |
(11) |
i=1 |
|
Используя эту идею, несложно расписать алгоритм обратного распро- странения ошибки для обучения персептрона, имеющего произвольное коли- чество скрытых слоев. Однако прежде отметим, что мы будем использовать нейроны, имеющие сигмоидную активационную функцию (см. теоретиче- ский материал к лабораторной работе №4), и выполняющие операцию сум- мирования с учетом нейронного смещения (см. теоретический материал к ла- бораторной работе №1):
J |
|
Si = ∑wij xj . |
(12) |
j=0
Здесь wi0 – вес дополнительного входа i
1
2
=1 |
=2 |
= |
=0 |
1 |
1 |
1 |
2
2
2
1
2
1
2
-1
+1
+1 |
Рис. 5. Многослойный персептрон (MLP – MultiLayerPerseptron)
Алгоритм обратного распространения ошибки распишем для много- слойного персептрона, имеющего входной слой k =0 , несколько скрытых слоев k =1, 2, ..., K −1 и выходной слой k = K (рис. 5).
Нейроны входного слоя не выполняют математических преобразова- ний, а лишь передают входные сигналы нейронам первого слоя. Будем пола- гать, что каждый k
трон имеет N = H0 входов и M = HK выходов. В алгоритме будем использо- вать следующие обозначения: i – порядковый номер нейрона k
Шаг1. Инициализация синаптических весов и смещений.
В циклах по k =1, 2, ...,K ; i =1, 2, ...,Hk ; j =0,1, 2, ..., Hk−1 синаптиче- ским весам и смещениям wij(k) датчиком случайных чисел присваиваются ма-
лые величины, например, из интервала от
Шаг 2. Открытие цикла по q =1, 2, ...,Q . Представление из обучающего множества примеров очередного входного вектора Xq =(x1, x2, ..., xN )q и со- ответствующего ему желаемого выходного вектора Dq =(d1,d2, ...,dM )q , где q – номер примера вобучающем множестве.
Шаг 3. Прямой проход.
В циклах по k =1, 2, ...,K ; |
i =1, 2, ..., Hk вычисляются выходные сиг- |
||||||||||
налы i |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
Hk−1 |
|
|
(13) |
|
|
|
|
|
|
yi(k) = fσ |
∑wij(k) y(jk −1) , |
|
||||
|
|
|
|
|
|
|
|
j=0 |
|
|
|
где y(0) |
= x |
j |
; |
x =1; |
y(k −1) =1; выходные сигналы персептрона y = y(K ) . |
||||||
j |
|
|
0 |
0 |
|
|
|
|
i |
i |
|
Шаг4. Обратный проход. |
|
|
|
|
|
|
|||||
В циклах по k = K, K −1, ...,1; |
i =1, 2, ..., Hk ; |
j =0,1, 2,..., Hk−1 |
вычис- |
||||||||
ляются синаптические веса на новой эпохе |
|
|
|
||||||||
|
|
|
|
|
w(k) |
(t +1) = w(k) (t) +∆w(k) |
, |
(14) |
|||
|
|
|
|
|
ij |
|
|
ij |
ij |
|
|
где |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
∆w(k) |
= ηδ(k) y(k−1) , |
|
|
(15) |
||
|
|
|
|
|
|
ij |
|
i j |
|
|
|
причемдля выходного слоя k = K согласно (8)
δi(K ) = yi (1− yi )(di − yi ) ,
а для всех других скрытых слоев согласно (11)
Hk+1
δi(k) = yi(k) (1− yi(k) ) ∑δl(k +1)wli(k +1) . l=1
Шаг5. Закрытие цикла по q .
Шаг 6. Повторение шагов2 – 5 необходимое количество раз. Векторы обучающих примеров Xq и Dq на шаге 2 алгоритма обычно
представляются последовательно от первого до последнего, т.е. q =1,2, ..., Q , где Q – общее количество примеров. Например, в случае распознавания букв русского алфавита Q =33. После того, как для каждого обучающего примера будут скорректированы весовые коэффициенты персептрона, т.е. шаги
ε= |
1 |
∑∑Q M ((di − yi )2q ). |
(16) |
|
|||
|
QM q=1 i=1 |
|
Помимо среднеквадратичной ошибки может быть также оценена мак- симальная разность между желаемым и прогнозным (то, что вычислил пер- септрон) выходами персептрона:
ε = max(( |
|
di − yi |
|
)q ; i =1, 2, ..., M ; q =1, 2, ..., Q. |
(17) |
|
|
||||
|
|
|
Итерационный процесс, задаваемый шагом 6, заканчивается после то- го, как ошибка ε, вычисляемая по формулам (16) или (17), достигнет задан- ной величины, либо когда будет достигнуто предельное количество эпох обучения. В результате персептрон обучится выполнять нужное отображение любого входного вектора Xq на выходной вектор Yq , отличающийся от же-
лаемого вектора Dq на некоторую малую величину.
Первым алгоритмом обучения нейронной сети были правила Хебба, предназначенные для обучения однослойного персептрона с нейронами, имеющими ступенчатые активационные функции. Затем было введено поня- тие нейронной ошибки как разницы между требуемым выходом нейрона di и
его реальным значением yi . В результате алгоритм обучения персептрона с
помощью правил Хебба был обобщен в виде алгоритма
4. Виды активационных функций
В современных нейронных сетях и нейропакетах наиболее часто при- меняются следующие виды активационных функций.
Пороговые активационные функции
говые активационные
1 |
1 |
0 |
0 |
а б
Рис. 6. Пороговые активационные
Их аналитическое представление соответственно для рис. 6,а и рис. 6,б:
1, |
если S ≥0; |
1, |
если S ≥0; |
||
y = |
0, |
если S <0; |
y = |
−1, |
если S <0, |
|
|
где S =∑I xiwi , причем x0 =1 – величина сигнала дополнительного входа, а
i=0
w0 – его вес, имитирующий нейронное смещение b (которое равно порогу
чувствительности нейрона, взятому с противоположным знаком: b = −θ). Ступенчатые активационные функции обычно используются в задачах
распознавания образов. Персептроны со ступенчатыми активационными функциями могут обучаться с помощью правил Хебба и
Линейные активационные функции. На рис. 7,а представлен график линейной активационной функции
y = S .
Область изменения этой функции неограниченна.
Такие активационные функции обычно применяются в нейронах вход- ного слоя. Они также неплохо работают при решении простых линейно раз- делимых задач, причем с обучением таких персептронов могут справляться алгоритмы
Иногда применяют линейные активационные функции с ограниченной областью изменения (рис. 7, б):
−1, если S < −1 |
||
|
|
если −1≤ S ≤1 |
y = S, |
||
|
1, |
если S >1 |
|
1 |
1 |
|
|
а |
б |
Рис. 7. Линейные активационные функции с неограниченной (а) и ограниченной (б) областями изменения
Сигмоидные активационные функции.На рис. 8,а изображен график сигмоидной функции, заданной уравнением
y=1+e1−αS ,
ана рис. 8,б – график функции, заданной уравнением
y=1−e−αS .
1+e−αS
Вэтих уравнениях коэффициент α влияет на угол наклона линий к оси S . Аналогичный представленному на последнем графике вид имеют
функции арктангенса y = π2 arctgαS и гиперболического тангенса y = tanhαS ,
а также функция y =1+αSαS , которые тоже называют сигмоидными.
1 |
1 |
|
а |
||
б |
||
|
Рис. 8. Сигмоидные активационные функции с несимметричной (а)
и симметричной (б) областями изменения
Персептроны с сигмоидными активационными функциями хорошо обучаются с помощью алгоритма обратного распространения ошибки, а так- же с помощью дельта правила и обобщенного
Логарифмические активационные функции. На рис. 9 представлен график активационной функции, заданной уравнением
y =ln(S + |
|
|
|
S2 +1) . |
(18) |
В отличие от сигмоидной эта функция имеет неограниченную область изменения. Иногда это удобно, т.к. не требуется масштабирования выходных сигналов персептрона (подробнее об этом см. теоретический материал к ла- бораторной работе №8). Кроме того, логарифмические активационные функ- ции позволяют избегать нежелательного эффекта, называемого параличем сети – потерей чувствительности сети к вариациям весовых коэффициентов и, как следствие, замирание процесса обучения при попадании взвешенных сумм входных сигналов нейрона в область насыщения сигмоиды (см. также лабораторную работу №8).
Рис. 9. Логарифмическая активационная функция
y =e− 2Sσ22 ,
где S = X −C
– евклидово расстояние между входным вектором X и цен-
тром активационной функции C ; σ – параметр гауссовой кривой, называе- мый шириной окна. Такие активационные функции называют радиально- базисными (RBF), а соответствующие нейронные сети –
1 |
Рис. 10. |
Отметим, что все приведенные выше активационные функции, за ис- ключением пороговой и
преобразуют множество значений S в бинарные множества y =0 и y =1 или y = −1 и y =1. Остальные активационные функции преобразуют бесконечное
входное |
множество значений S в ограниченные выходные множества: |
y ∈(0,1) , |
y ∈(−1,1) и y ∈(0,1]. От вида используемых активационных функ- |
ций зависят функциональные возможности нейронных сетей, а также выбор способов их обучения.
Активационные функции осуществляют преобразование взвешенной суммы входных сигналов нейрона в его выходной сигнал. От вида активаци- онных функций зависят функциональные возможности нейронных сетей, а также выбор способов их обучения.