Прогнозирование на основе аппарата нейронных сетей

4.2.2. Описание НС и алгоритма обратного распространения

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

Чтобы реализовать этот алгоритм, мы сначала должны дать математическое описание нейронной сети. Предположим, что элемент j — типичный элемент выходного слоя, а элемент i — типичный элемент слоя, который предшествует выходному. Активность элемента выходного слоя определяется двухшаговой процедурой. Сначала вычисляется суммарный взвешенный вход Xj с помощью формулы Xj = S (Yi * Wij), (4.1) i где Yi — уровень активности i-го элемента в предшествующем слое и Wij — вес связи между i-м и j-м элементами.

Далее, элемент вычисляет активность Yj с помощью некоторой функции от суммарного взвешенного входа. Обычно применяется сигма-функция: Yj = 1 / (1 + e^(-Xj)). (4.2) После того как активности всех выходных элементов определены, сеть вычисляет ошибку, которая определяется выражением E = ½ * S (Yj — Dj)2, (4.3) j где Yj — уровень активности j-го элемента в верхнем слое, а Dj желаемый выход j-го элемента.

Алгоритм обратного распространения состоит из четырех шагов.

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

dE EAj = ---- = Yj — Dj. (4.4) dYj 2) Вычислить, насколько быстро изменяется ошибка по мере изменения суммарного входа, получаемого выходным элементом. Эта величина (EI) есть результат шага 1, умноженный на скорость изменения выходного элемента с изменением его суммарного входа.

dE dE dYj EIj = = --- * --= EIj Yj (1 — Yj). (4.5) dXj dYj dXj 3) Вычислить, как быстро изменяется ошибка по мере изменения веса на входной связи выходного элемента. Эта величина (EW) есть результат шага 2, умноженный на уровень активности элемента, из которого исходит связь.

dE dE dXj EWij = ---- = --- * --- = EIj Yi. (4.6) dWij dXj dXij 4) Вычислить, как быстро изменяется ошибка с изменением активности элемента из предыдущего слоя. Этот ключевой шаг позволяет применять обратное распространение к многослойным сетям. Когда активность элемента из предыдущего слоя изменяется, это влияет на активности всех выходных элементов, с которыми он связан. Поэтому, чтобы подсчитать суммарное воздействие на ошибку, мы складываем все эти воздействия на выходные элементы. Но эти воздействия нетрудно подсчитать. Этот результат шага 2, умноженный на вес связи к соответствующему выходному элементу.