Страница 3 из 4 Таким образом, процесс обратного распространения можно кратко описать, как показано ниже. • Вычислить значения Δ для выходных элементов с использованием наблюдаемой ошибки. • Начиная с выходного слоя, повторять следующие действия для каждого слоя в сети до тех пор, пока не будет достигнут самый первый скрытый слой: • распространять значения Δ обратно к предыдущему слою; • обновлять веса между этими двумя слоями. Подробный алгоритм приведен в листинге 20.2. Листинг 20.2. Алгоритм обратного распространения для обучения в многослойных сетях Теперь исходя из основных принципов выведем уравнения обратного распространения к радости читателей, интересующихся математикой. Квадратичная ошибка на одном примере определяется следующим образом: где сумма вычисляется по всем узлам выходного слоя. Чтобы определить градиент по отношению к конкретному весув выходном слое, достаточно развернуть только выражение для активации, поскольку все другие термы в этой операции суммирования не зависят от: гдеопределено, как указано выше. Чтобы получить градиент по отношению к весамсвязей, соединяющих входной слой со скрытым слоем, необходимо по-прежнему вычислять всю сумму по i, поскольку изменение в значенияхмогут повлиять на каждое выходное значение. При этом придется также развертывать выражение для активаций. Ниже показан ход вывода формулы во всех подробностях, поскольку любопытно понаблюдать за тем, как оператор производной распространяется в обратном направлении через сеть: гдеопределено, как показано выше. Таким образом, получено то же правило обновления, которое было сформулировано выше на основании интуитивных соображений. Очевидно также, что этот процесс может быть продолжен применительно к сетям, имеющим больше одного скрытого слоя, и это соображение является обоснованием для общего алгоритма, приведенного в листинге 20.2.
|