Е.В. СЕЛИВАНОВ, В.Н. КОРОБКОВ

 

Московский государственный инженерно - физический  институт

(технический университет)

 

НЕЙРОННЫЕ СЕТИ С ОБУЧЕНИЕМ ПО МЕТОДУ ОБРАТНОГО

РАСПРОСТРАНЕНИЯ ОШИБКИ И ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ

 

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

1. Алгоритм обратного распространения ошибки (back propagation)

2. Генетический алгоритм (genetic algorithm)

Алгоритм обратного распространения ошибки - это итерационны градиентный алгоритм. Алгоритм обратного распространения используется для обучения многослойных нейронных сетей с последовательными связями

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

В реализации данного алгоритма использовалась следующая функция активации:


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

В качестве критерия оценки ответов нейронной сети выбрана среднеквадратическая ошибка:


При тестировании метода была обучена трехслойная нейронная сеть. На нулевом уровне - 3 нейрона, на первом - 9 нейронов и выходной сигнал снимался с единственного нейрона на втором уровне.

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

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

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

Каждая итерация такого цикла порождает новое поколение. Первое поколение этого процесса - случайно сгенерированные особи. Генетические процедуры и мутации способствуют улучшению популяции.

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

Генетический алгоритм позволяет быстро найти область, в которой находится минимум функции ошибки. Двигаясь в области близкой к минимуму, алгоритм совершает малые шаги в сторону оптимума. При большом количестве итераций, характерных для генетического алгоритма, данный метод не эффективен в области близкой к минимуму. Здесь целесообразно применять градиентный алгоритм, который обеспечит, достаточную скорость сходимости к минимуму.

 

 

 

Список литературы

 

1.        1. Горбань А.Н. Обучение нейронных сетей. М.: СПб.: ПараГраф. 1990.

2.        2. Теория по нейронным сетям. Neural Bench Development http://www.neuralbench.ru 1997

3.        3. Шумский С.А. Избранные лекции по Нейрокомпьютингу

4.        4. Joerg Heitkoetter and David Beasley  The Hitch-Hiker's Guide to Evolutionary Computation ftp://ftp.sas.com/pub/neural/FAQ.html" 1998

5.        5. Горбань А.Н., Дунин-Барковский В.Л., Кирдин А.Н. Нейроинформатика