Для обучения сети Эльмана будем использовать градиентный метод наискорейшего спуска.
Для этого метода необходимо задать формулы, позволяющие рассчитывать градиент целевой функции в текущий момент времени. Целевая функция в момент времени t определяется как сумма квадратов разностей между значениями выходных сигналов сети и их ожидаемыми значениями для всех М выходных нейронов:
(6.26)
При дифференцировании целевой функции относительно весов выходного слоя получаем:
(6.27)
Связи между скрытым и выходным слоем однонаправленные, поэтому:
(6.28)
С учетом этого факта получим:
(6.29)
При использовании метода наискорейшего спуска веса уточняются по формуле:
, (6.30)
где (6.31)
Формулы уточнения весов скрытого слоя сети Эльмана более сложные по сравнению с персептронной сетью из-за наличия обратных связей между скрытым и контекстным слоями. Расчет компонентов вектора градиента целевой функции относительно весов скрытого слоя реализуется по формулам:
(6.32)
(6.33)
где - дельта Кронекера, то есть:
.
Из определения входного вектора (формула (6.21)) в момент времени следует выражение (6.34):
. (6.34)
Это выражение позволяет рассчитать производные целевой функции относительно весов скрытого слоя в момент времени . Следует отметить, что это рекуррентная формула, определяющая производную в момент времени в зависимости от ее значения в предыдущий момент . Начальные значения производных в момент считаются нулевыми:
. (6.35)
Таким образом, алгоритм обучения сети Эльмана можно представить в следующем виде:
1. Присвоить весам случайные начальные значения, имеющие, как правило, равномерное распределение в определенном интервале (например, между -1 и 1).
2. Для очередного момента определить состояние всех нейронов сети (сигналы и ). На этой основе можно сформировать входной вектор для произвольного момента .
3. Определить вектор погрешности обучения для нейронов выходного слоя как разность между фактическим и ожидаемым значениями сигналов выходных нейронов.
4. Сформировать вектор градиента целевой функции относительно весов выходного и скрытого слоя с использованием формул (6.29), (6.32) и (6.34).
5. Уточнить значения весов сети согласно правилам метода наискорейшего спуска:
· для нейронов выходного слоя сети по формуле (6.36)
· для нейронов скрытого слоя сети по формуле (6.37)
После уточнения значений весов перейти к пункту 2 алгоритма для расчета в очередной момент времени .
Практические реализации алгоритма обучения сети Эльмана строятся на методе наискорейшего спуска, усиленном моментом. Это значительно повышает эффективность обучения и вероятность достижения глобального минимума целевой функции. При использовании такого подхода уточнение вектора весов в момент времени выполняется в соответствии с формулой:
, (6.38)
где - коэффициент момента, выбираемый из интервала (0, 1). Первое слагаемое этого выражения соответствует обычному методу обучения, второе – учитывает фактор момента, отражающий последнее изменение весов и не зависящий от фактического значения градиента. Чем больше величина , тем большее влияние на подбор весов оказывает слагаемое момента. Его значение существенно возрастает на плоских участках целевой функции и около локального минимума, где значение градиента близко к нулю.
В окрестностях локального минимума фактор момента может вызвать изменение весов, ведущее к росту целевой функции и к выходу из зоны локального минимума с возобновлением поиска глобального минимума.