Ошибка
некоторого -го нейрона произвольного слоя сети зависит от ошибки нейронных элементов следующего слоя и определяется по формуле:где
и – выходное значение -го и -го нейрона соответственно; – взвешенная сумма -го нейрона.Принимая во внимание:
получаем, что для любого скрытого слоя i ошибка i-го нейронного элемента определяется рекурсивным образом через ошибки нейронов следующего слоя j по следующей формуле:
где m – число нейронов следующего слоя по отношению к слою i.
Аналогичным образом доказывается, что производные среднеквадратичной ошибки по весовым коэффициентам и порогам нейронных элементов для любых двух слоев i и j определяются по формулам:
Из последних формул очевидно, что для минимизации среднеквадратичной ошибки сети весовые коэффициенты и пороги нейронных элементов должны изменяться с течением времени следующим образом:
где a – скорость обучения.
Последние два выражения () и () определяют правило обучения многослойных нейронных сетей в общем виде, которое называют обобщенным дельта-правилом.
Недостатки алгоритма обратного распространения ошибки
Алгоритм обратного распространения ошибки, в основе которого лежит градиентный метод, создает ряд проблем при обучении многослойных нейронных сетей. К таким проблемам можно отнести следующие:
- неизвестность выбора числа слоев и количества нейронных элементов в слое для многослойных сетей;
- медленную сходимость градиентного метода с постоянным шагом обучения;
- сложность выбора подходящей скорости обучения a. Так, слишком малая скорость обучения увеличивает время обучения и приводит к скатыванию нейронной сети в локальный минимум. Большая скорость обучения может привести к пропуску глобального минимума и сделать процесс обучения расходящимся;
- невозможность определения точек локального и глобального минимумов, так как градиентный метод их не различает;
- влияние случайной инициализации весовых коэффициентов нейронной сети на поиск минимума функции среднеквадратичной ошибки.
Последний пункт отражает, что при разной инициализации синаптических связей могут получаться различные решения задачи. Это характеризует неустойчивость алгоритма обучения, когда нейронная сеть в одних случаях может обучаться до требуемой суммарной среднеквадратичной ошибки, а в других нет. То, что алгоритм обратного распространения ошибки не позволяет в общем случае достичь глобального минимума, не умаляет его достоинств, так как во многих практических задачах достаточно обучить нейронную сеть до требуемой среднеквадратичной ошибки. Является ли при этом найденный минимум локальным или глобальным, не имеет большого значения.
Адаптивный шаг обучения
Ранее отмечалось, что в стандартном алгоритме обратного распространения ошибки существует проблема выбора подходящего шага обучения, чтобы увеличить быстродействие и обеспечить сходимость алгоритма. Для выбора адаптивного шага обучения a можно использовать метод наискорейшего спуска [4]. В соответствии с ним на каждой итерации обучения нейронной сети необходимо выбирать шаг обучения для каждого слоя таким, чтобы минимизировать среднеквадратичную ошибку сети:
где
; — число нейронных элементов последнего слоя.Выходное значение j-го нейрона зависит от функции активации нейронных элементов и в общем случае определяется следующим образом:
При этом весовые коэффициенты и пороги нейронной сети модифицируются, как:
Среднеквадратичная ошибка нейронной сети:
Тогда для нахождения a(t) необходимо решить следующее уравнение:
Данное уравнение невозможно решить относительно a(t) аналитическим путем. Поэтому в ряде работ для определения адаптивного шага обучения предлагается использовать методы линейного поиска [14]. Однако это связано со значительными вычислениями. Поэтому можно предложить приближенный метод нахождения скорости обучения a(t). Он базируется на разложении функции активации нейронных элементов в ряд Тейлора.
Пусть выходное значение j-го нейрона последнего слоя нейронной сети
где
— выходное значение -го нейрона скрытого слоя.Для определения взвешенной суммы
-го нейрона в момент подставим в (111) выражения (222) и (333):Обозначим:
Тогда можно представить в следующем виде:
Выходное значение j-го нейрона в момент времени t+1:
Разложим по формуле Тейлора и ограничимся первыми двумя членами:
Тогда
Так как
то (888) можно переписать в виде
Для обеспечения адаптивного шага обучения необходимо обеспечить:
Тогда
Откуда
Так как
, то при данном обеспечивается минимум среднеквадратичной ошибки. Найдем выражение для . Для этого определим:получим:
Исходя из принципа независимости слоев, предполагаем, что
получим приближенное выражение для вычисления адаптивного шага обучения различных слоев нейронной сети:
где
— ошибка -го нейронного элемента..Следует отметить, что в приведенном выше выражении
вычисляется отдельно для каждого слоя нейронной сети. Как показывают эксперименты, при использовании адаптивного шага обучения могут получаться слишком большие значения . Это может привести к десинхронизации процесса обучения, когда весовые коэффициенты резко изменяются в определенном направлении. В результате изменение среднеквадратичной ошибки с течением времени будет иметь колебательный характер. Поэтому рекомендуется ограничивать по абсолютному значению. Полученное выше выражение для адаптивного шага обучения позволяет значительно повысить скорость обучения нейронной сети и избежать выбора подходящего шага. Это является существенным преимуществом по сравнению со стандартным алгоритмом обратного распространения ошибки. Хотя при удачном выборе постоянного шага обучения данный алгоритм будет сходиться не быстрее, чем метод градиентного спуска.