Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СППР_Часть1.doc
Скачиваний:
87
Добавлен:
11.11.2019
Размер:
2.14 Mб
Скачать

2.1.2 Обучение

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

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

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

Рисунок 2.3. Метод обратного распространения ошибки для многослойной полносвязанной нейронной сети

Конечно, при таком обучении нейронной сети нет уверенности, что она обучилась наилучшим образом, поскольку всегда существует возможность попадания алгоритма в локальный минимум (рис. 2.4). Для этого используются специальные приемы, позволяющие «выбить» найденное решение из локального экстремума. Если после нескольких таких действий нейронная сеть сходится к тому же решению, то можно сделать вывод о том, что найденное решение, скорее всего, оптимально.

Рисунок 2.4 - Метод градиентного спуска при минимизации ошибки

2.1.3. Нейронные сети обратного распространения

Такое название – сети обратного распространения (back propagation) они получили из-за используемого алгоритма обучения, в котором ошибка распространяется от выходного слоя к входному, т.е. в направлении, противоположном направлению распространения сигнала при нормальном функционировании сети.

Нейронная сеть обратного распространения состоит из нескольких слоев нейронов, причем каждый нейрон слоя i связан с каждым нейроном слоя i+1, т.е. речь идет о полносвязной НС.

При обучении ставится задача минимизации целевой функции ошибки НС, которая находится по методу наименьших квадратов – формула (2.6).

Мы будем реализовывать стохастический градиентный спуск, то есть будем подправлять веса после каждого обучающего примера и, таким образом, "двигаться" в многомерном пространстве весов. Чтобы "добраться" до минимума ошибки, нам нужно "двигаться" в сторону, противоположную градиенту, то есть, на основании каждой группы правильных ответов, добавлять к каждому весу wi,j :

(2.7)

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

(2.8)

где yj – значение выхода j-го нейрона;

Sj – взвешенная сумма входных сигналов, определяемая по формуле (2.5).

При этом множитель (2.9)

где xi – значение i-го входа нейрона.

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

Далее рассмотрим определение первого множителя формулы (2.8)

(2.10)

где k – число нейронов в слое n+1.

Введем вспомогательную переменную .

Тогда мы сможем определить рекурсивную формулу для вычисления n-ного из величин слоя :

(2.11)

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

(2.12)

И наконец, запишем формулу (2.7) в раскрытом виде

(2.13)

Рассмотрим теперь полный алгоритм обучения нейросети:

  1. Подать на вход НС один из требуемых образов и определить значения выходов нейронов нейросети.

  2. Рассчитать для выходного слоя НС по формуле (2.12) и рассчитать изменения весов выходного слоя N по формуле (2.13).

  3. Рассчитать по формулам (2.11) и (2.13) соответственно и для остальных слоев НС, n = N-1..1

  4. Скорректировать все веса НС

    (2.14)

  5. Если ошибка существенна, то перейти на шаг 1

На этапе 2 сети поочередно в случайном порядке предъявляются вектора из обучающей последовательности.

Рисунок 2.5 – Схема обучения нейронной сети