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

Таблица 5.3.

Входы и выходы нейронов сети,

реализующей функцию XOR

S

Y

0

1

0

1

0

0

1

1

0

1

1

2

0

1

1

2

0

1

1

1

0

0

0

1

0

1

1

0

0

1

1

0

Упражнения

5.1. Укажите возможные значения весов и порога однонейронного персептрона с двумя входами, реализующего логическую функцию AND.

5.2. Напишите программу, обучающую однонейронный персептрон распознаванию изображений «крестиков» и «ноликов». Входные обра­зы (10—15 штук) представляют собой графические изображения. Каждое изображение разбито на квадраты (или пиксели) и от каждого квадрата на персептрон подается вход. Если в квадрате имеется линия (или пиксель окрашен в черный цвет), то от него подается единица, в противном слу­чае—ноль. Множество квадратов на изображении задает, таким образом, множество нулей и единиц, которое и подается на входы персептрона (рис. 6.10). Цель состоит в том, чтобы научить персептрон давать единич­ный выход при подаче на него множества входов, задающих «крестик», и нулевой выход в случае «нолика».

Рис. 6.10. Модель персептрона, отделяющего «крестики» от «ноликов»

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

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

Рассмотренный в предыдущем параграфе алгоритм обучения однослойного персептрона очень прост. Однако долгие годы не удава­лось обобщить этот алгоритм на случай многослойных сетей, что спро­воцировало в научных кругах значительный спад интереса к нейронным сетям. Только в 1986 году Румельхарт (D. E. Rumelhart) разработал эффективный алгоритм корректировки весов, названный алгоритмом обратного распространения ошибок (back propagation).

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

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

Матрицу весовых коэффициентов от входов к скрытому слою обозна­чим W, а матрицу весов, соединяющих скрытый и выходной слой - V. Для индексов примем следующие обозначения: входы будем нумеровать только индексом i, элементы скрытого слоя — индексом j, а выходы — индексом k. Число входов сети равно n, число нейронов в скрытом слое — m, число нейронов в выходном слое – p. Пусть сеть обучается на выборке

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

,

где — полученное реальное значение k-го выхода нейросети при подаче на нее одного из входных образов обучающей выборки; — требуемое (целевое) значение k-го выхода для этого образа.

Рис. 6.11. Нейронная сеть обратного распространения

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

,

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

В качестве активационной функции в сети обратного распространения обычно используется сигмоидальная функция , где s - взвешенная сумма входов нейрона. Эта функция удобна для вычислений в градиентном методе, так как имеет простую производную:

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

,

где — взвешенная сумма входных сигналов k-го нейрона выходного слоя. Обозначим значение выхода j-го нейрона скрытого слоя. Тогда и .

Так как то

Наконец, . Таким образом, получили выражение для произ­водной:

Выведем теперь формулу для производной Аналогично запишем:

.

Здесь , поэтому ( - i-я компонента поданного на вход образа обучающей выборки); Так как функ­ция ошибки не зависит в явном виде от выходов скрытого слоя, то производная усложняется:

.

Воспользовавшись имеющимися выражениями для и , запишем:

Если ввести обозначение получим следующие выражения для производных:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]