Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diplom1.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
2.73 Mб
Скачать

Метод обратного распространения ошибки

Используется для обучения с учителем многомерных нейронных сетей. Входные данные в многомерной сети поступают на первый слой, а эталонный результат известен для выходных значений последнего слоя. Основная идея метода состоит в том, что сигнал ошибки, вычисленный для последнего слоя, распространяется по синапсам в обратном направлении, от последнего слоя к первому. Оптимизация весов направлена на минимизацию ошибки в каждом нейроне, и алгоритм основан на методе градиентного спуска. Из-за этого для метода обратного распространения ошибки требуется дифференцируемая функция активации.

Вначале сети на вход подается обучающий образец. Вычисляются значения сигналов всех нейронов сети, начиная от первого и заканчивая последним слоем. Для последнего слоя вычисляется функция ошибки (погрешность), равная отклонению полученного выходного сигнала от эталонного:

,

где yi(n) – выходное значение последнего слоя в i нейроне, y'i(n) – эталонное значение этого выхода, Ei(n) – погрешность на n цикле обучения.

Затем ошибка распространяется во внутренние слои, где ее значение считается по формулам:

где

n – цикл обучения;

Ei(k-1) – значение погрешности в i нейроне слоя k;

F'(i, k, n) – производная от функции активации нейрона i на слое k;

Wij – весовой коэффициент синапса между нейроном i слоя k-1 и нейроном j слоя k.

На каждом слое изменения весов вычисляются из значения функции ошибки:

Здесь

q– скорость обучения, q>0

xj(k) – значение нейрона j слоя k

δi(k) – погрешность в направлении градиента функции активации

Таким образом алгоритм разделяется на два этапа: прямой (распространение возбуждения от первого слоя к последнему) и обратный (распространение ошибки от последнего слоя к первому и коррекция весов). При таком методе все слои нейронной сети обучаются на одном и том же шаге обучения.

Градиентные методы

Можно рассматривать обучение с учителем нейронной сети как задачу минимизации функции ошибки в целом. Предполагается, что функция ошибки известна и ее легко посчитать для каждого образца. Если у сети несколько выходных нейронов, то E(w), где w обозначает входной образец – это функция нескольких переменных. Для решения такой задачи можно использовать методы из теории оптимизации. Основная идея состоит в разложении целевой функции E(w) в ряд Тейлора в окрестности некоторой исходной точки в направлении вектора p, зависящего от текущей точки. Точка, в которой достигается минимум целевой функции, а градиент равен 0, является точкой локального минимума. В этой точка, wk, выполняется E(w­k) < E(wk-1), то есть она соответствует требованию уменьшения погрешности. Операция повторяется, пока норма градиента не будет меньше заданной точности либо пока не будет проведено заданное количество шагов обучения.

В общем случае вектор p может быть любым, должно лишь выполняться условие уменьшения целевой функции. Для метода наискорейшего спуска вектор направления p равен по величине и противоположен по направлению градиенту в текущей точке.

Приращение весов считается по формуле

Где

q – скорость обучения

α – коэффициент момента, принимающий значения в промежутке [0; 1], и влияющий на обучение на участках функции, где градиент близок к нулю.

Существует также метод на основе метода Ньютона для задачи оптимизации: алгоритм переменной метрики. Через гессиан (матрицу производных второго порядка функции E(w)) и градиент функции E(w) вычисляется оптимальный по длине и направлению вектор pk.

Также есть другие градиентные методы, в частности метод Левенберга-Марквардта, а также метод сопряженных градиентов.

Существуют также различные методы определения оптимального шага (q) в направлении вектора pk. Простейшим способом является фиксировать q на протяжении всего обучения, но для оптимизации обучения используются способы расчета q из значения суммарной погрешности на данной итерации.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]