АЛГОРИТМЫ ОБУЧЕНИЯ НЕЙРОННОЙ СЕТИ ПРИМЕНИТЕЛЬНО К ЗАДАЧАМ ПРОГНОЗИРОВАНИЯ ЦЕН НА НЕФТЬ И ПРИРОДНЫЙ ГАЗ

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

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

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

Алгоритм обратного распространения ошибки

Пронумеруем все слои многослойного персептрона от 0 (входной слой) до L (выходной слой). Обозначим через N, количество нейронов в слое с номером / и пронумеруем их числами от 1 до N,. Кроме того, добавим в каждый слой, кроме выходного, так называемый нейрон смещения под номером 0. Отметим, что введение такого нейрона равносильно введению фиктивного входного сигнала, тождественно равного 1, для следующего слоя нейронов. Как было отмечено ранее, это делается для возможности учета смещения нейронов. Через Wy обозначим вес входа /-го нейрона из слоя /, идущего от выходау'-го нейрона (/ - 1) -го слоя.

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

Прямой проход. Значения хьх2,... ,xNq из обучающего примера подаются на вход нейросети. Начиная с 0-го слоя последовательно рассчитываются значения так называемого локального поля у/ ивы- хода у для каждого /'-го нейрона сети из слоя /:

где ср — функция активации нейрона.

По окончании прямого прохода для каждого выходного нейрона сети вычисляется сигнал ошибки

где dt ожидаемый отклик на /-м выходе нейросети.

Величина

где e(w) вектор сигналов ошибки нейросети, является ошибкой функционирования нейронной сети для рассматриваемого обучающего примера, минимизация которой проводится на данном шаге. Коэффициент '/2 взят для удобства дальнейшего изложения и представления формул и не влияет на итоговый результат.

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

Чем больше коэффициент штрафа d , тем сильнее ограничивается рост весов при обучении нейросети. Как правило, коэффициент d полагается равным не менее 0,001. Меньшие значения коэффициента d могут привести к переучиванию нейронной сети. Отметим, что, по сути, задача минимизации функционала (8.7) на основе вычисления частных производных эквивалентна задаче минимизации функционала (8.6) в силу аддитивности производной: первое слагаемое в выражении (8.7) совпадает с выражением (8.6), а производная от второго слагаемого вычисляется тривиально:

Обратный проход. Для каждого нейрона, начиная с выходного слоя и по первый скрытый слой, вычисляется локальный градиент

Для нейронов выходного слоя данная формула имеет вид

а для всех остальных слоев

Далее производится корректировка всех весов в направлении градиента (антиградиента). Величина изменения веса wj задается формулой

где т| > 0 — параметр скорости обучения.

В классическом алгоритме наискорейшего спуска параметр г| остается постоянным на всем протяжении процесса обучения, а изменения весов зависят только от первой производной (градиента), что соответствует спуску по касательной плоскости к поверхности функционала E(w). Это приводит к тому, что в районе локального минимума скорость сходимости резко замедляется. Для ускорения сходимости используются различные эвристические методы регулировки Г| в зависимости от шага алгоритма, а иногда и индивидуально для каждого веса.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >