Программирование - это просто
Advertisement
Главная
26.05.2022 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Теория нейронных сетей. Урок 6. Многослойный персептрон Печать E-mail
Автор megabax   
15.02.2014 г.
New Page 1

Теория нейронных сетей. Урок 6. Многослойный персептрон

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

Многослойный персептрон  - это персептрон (см. урок 4), который состоит из нескольких слоев нейронов с прямым распространением сигналов. Обучение многослойного персептрона производиться на основе алгоритма обратного распространения ошибки. Данный алгоритм получается на основе обобщения дельта правила на многослойную нейросеть (о дельта правиле подробнее см.  урок 5).

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

Теория нейронных сетей. Урок 6. Многослойный персептрон

Определим реакцию i-ого выходного слоя нейросети на входной вектор . Для этого нам сначала нужно определить реакцию промежуточных слоев.

И так, обозначим набор весов W(1)  (см. рис.), как v, тогда сетевая функция j-ого скрытого слоя для μ-ого входного вектора вычисляется по формуле:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.1)

               

где j=1,2,3...,l

Реакция j-ого нейронного слоя определяется из выражения:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.2)

Если набор весов W(2)  обозначить как w, то сетевая функция i-ого нейрона выходного слоя вычисляется по формуле:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.3)

Исходя из этого, мы можем вычислить реакцию i-ого нейрона выходного слоя на входящий вектор при помощи следующего выражения:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.4)

Выведенные формулы соответствуют прямому распространению сигналов в рассматриваемой нейросети.

Процесс обучения такого многослойного персептрона основан на минимизации ошибки, вычисленной методом градиента (см. предыдущий урок). Таким образом, изменение весов связей выходного слоя wij вычисляется по формуле:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.5)

         

где

Для изменения весов связей скрытого слоя vjk воспользуемся следующей схемой:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.7)

Отсюда:

Теория нейронных сетей. Урок 6. Многослойный персептрон

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.8)

 

где

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.9)

Стоит обратить внимание на тот факт, что выражения (6.5) и (6.8) имеют одну и ту же форму. Отличие заключается в способе вычисления ошибок δi(μ) и δj(μ). Часто эти выражения записываются в виде:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.10)

Выражение (6.10) называется обобщенным дельта правилом.  Согласно этому правилу, изменение веса связи между нейронами j и i пропорционально произведению ошибки δiвых(μ) на выходе нейрона i на его выходной сигнал, формируемый нейроном j. Предполагается, что слой, в котором находиться нейрон j, предшествует слою, в котором находиться нейрон i.  

Таким образом, для выходного слоя ошибка вычисляется по формуле (6.6) Для скрытых слоев ошибка вычисляется по формуле (6.9). То есть, ошибка каждого скрытого слоя вычисляется на основании ошибки предыдущего слоя. Это распространение ошибки в обратном направлении от входа к выходу.

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

1. Выполнить инициализацию весов связей небольшими случайными значениями. Задать максимальную среднеквадратическую ошибку Emax. Текущее значение среднеквадратической ошибки НС приять 0 (E=0).

2. Подать на вход сети μ-ый входной вектор x(μ).

3. Выполнить распространение сигналов в соответствии с прямыми связями.

4. Вычислить среднеквадратическую ошибку:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.11)

и ошибку нейронов входного слоя:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.12)

5. Выполнить распространение  ошибки в обратном направлении, руководствуясь правилом:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.13)

6. Обновить веса связей каждого слоя в соответствии с правилом:

Теория нейронных сетей. Урок 6. Многослойный персептрон

(6.14)

7. Если μ<p тогда μ:=μ+1 и переходим к пункту 2, иначе переходим к пункту 8.

8. Проверить значение ошибки E. Если E<Emax, тогда закончить вычисления, в противном случае E:=0, μ:=1 и переходим к пункту 2.

Рассмотренный алгоритм - это последовательный алгоритм. так как предполагает обновление весов при поступлении очередного входного вектора.  Возможен другой вариант, когда, когда веса связей обновляются после  поступления всех векторов обещающей выборки. Это будет уже блочный алгоритм.

 

 

 

 

Последнее обновление ( 15.02.2014 г. )
 
Пред. »
 
© 2022 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги