8.3.2. Алгоритм обучения сети Эльмана
Для обучения сети Эльмана будем использовать градиентный метод наискорейшего спуска, основанный на работах Р. Вильямса и Д. Зипсера [171]. Для этого метода необходимо задать формулы, позволяющие рассчитывать градиент целевой функции в текущий момент времени. Целевая функция в момент
определяется как сумма квадратов разностей между значениями выходных сигналов сети и их ожидаемыми значениями для всех М выходных нейронов:
При дифференцировании целевой функции относительно весов выходного слоя получаем:
С учетом выражений (8.23) и (8.24) зависимость (8.26) можно представить в виде
Связи между скрытым и выходным слоем однонаправленные (см. рис. 8.9), поэтому
. С учетом этого факта
При использовании метода наискорейшего спуска веса уточняются по формуле
где
Простое сравнение с персептронной сетью показывает, что веса выходного слоя сети Эльмана подвергаются точно такой же адаптации, как и веса выходных нейронов персептрона.
Формулы уточнения весов скрытого слоя сети Эльмана более сложны из-за наличия обратных связей между скрытым и контекстным слоями. Расчет компонентов вектора градиента целевой функции относительно весов скрытого слоя требует выполнения значительно большего количества математических операций.
В частности,
С учетом зависимости (8.22) получаем:
Из определения входного вектора
(формула (8.20)) в момент
следует, что
Это выражение позволяет рассчитать производные целевой функции относительно весов скрытого слоя в момент
Следует отметить, что это рекуррентная формула, определяющая производную в момент
в зависимости от ее значения в предыдущий момент
Начальные значения производных в
исходный момент
считаются нулевыми:
Таким образом, алгоритм обучения сети Эльйана можно представить в следующем виде.
1. Начать обучение с присвоения весам случайных начальных значений, имеющих, как правило, равномерное распределение в определенном интервале (например, между -1 и 1).
2. Для очередного момента
определить состояние всех нейронов сети (сигналы
и
). На этой основе можно сформировать входной вектор
для произвольного момента
3. Определить вектор погрешности обучения
для нейронов выходного слоя как разность между фактическим и ожидаемыми значениями сигналов выходных нейронов.
4. Сформировать вектор градиента целевой функции относительно весов выходного и скрытого слоя с использованием формул (8.28), (8.30) и (8.32).
5. Уточнить значения весов сети согласно правилам метода наискорейшего спуска:
• для нейронов выходного слоя сети
• для нейронов скрытого слоя сети
После уточнения значений весов вернуться к пункту 2 алгоритма для расчетов в очередной момент
Для упрощения вычислений при выводе формул (8.33) и (8.34) была предложена онлайн-версия алгоритма обучения, согласно которой значения весов уточнялись после предъявления каждой обучающей пары
Обычный офф-лайн-алгоритм несколько более эффективен, поскольку при его выполнении значения весов уточняются только после предъявления всех обучающих пар. Реализация такой версии алгоритма аналогична рассмотренной выше с той разницей, что в ней суммируются компоненты градиента последовательно предъявляемых обучающих пар, а процесс изменения весов выполняется
каждом цикле только один раз.
Представленный алгоритм считается нелокальным, поскольку уточнение каждого отдельного веса требует знания значений всех остальных весов сети и сигналов конкретных нейронов. Его требования к размерам памяти компьютер дополнительно повышаются в связи с необходимостью хранить все значения