Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

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

Определение 1

Метод обратного распространения ошибки — это метод определения градиента, используемый при реализации обновления весов в нейронных сетях.

Введение

Обратное распространение ошибки – это метод, применяемый при обучении нейронных сетей. Целями обратного распространения являются следующие моменты:

  1. Осуществление регулировки всех весов пропорционально тому, насколько они способствуют общей ошибке.
  2. Если пользователь станет в итеративном режиме выполнять уменьшение ошибки каждого веса, то в конце концов он получит ряд весов, которые способны дать хорошие прогнозы.

Прямое распространение может рассматриваться в виде длинного ряда вложенных уравнений. При таком представлении прямого распространения, обратное распространение является просто приложением правила цепочки, то есть, дифференцирования сложной функции, для нахождения производных потерь по каждой переменной во вложенном уравнении. Функции прямого распространения имеет следующий вид:

f(x)=A(B(C(x)))

Здесь A, B, и C являются функциями активации на разных слоях.

Используя правило цепочки, можно легко вычислить производную функции f(x) по x:

f′(x)=f′(A)⋅A′(B)⋅B′(C)⋅C′(x)

А для того чтобы определить производную по B, можно предположить, что B (C(x)) является константой, выполнить замену ее переменной-заполнителем B, а далее следует продолжить определение производной по B в стандартном режиме:

f′(B)=f′(A)⋅A′(B)

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

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

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

«Метод обратного распространения ошибки» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Уравнения. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Уравнения. Автор24 — интернет-биржа студенческих работ

Если учитывать сеть, которая состоит из одного нейрона, то общую потерю нейросети можно определить как:

Cost=C(R(Z(XW)))

Если использовать правило цепочки, то можно легко вычислить производную потери относительно веса W:

C′(W)=C′(R)⋅R′(Z)⋅Z′(W)=(y^−y)⋅R′(Z)⋅X

Далее, учитывая тот факт, что сформировано уравнение для вычисления производной потери по любому весу, можно рассмотреть пример с нейронной сетью, представленной на рисунке ниже.

Нейронная сеть. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Нейронная сеть. Автор24 — интернет-биржа студенческих работ

Производная от потери по Wo может быть представлена следующим образом:

C′(WO)=C′(y^)⋅y^′(ZO)⋅Z′O(WO)=(y^−y)⋅R′(ZO)⋅H

А для того чтобы определить производную от потери по Wh, следует просто продолжать возвращаться в рассматриваемую функцию, рекурсивно используя правило цепочки, пока не подойдет очередь функции, имеющей элемент Wh:

C′(Wh)=C′(y^)⋅O′(Zo)⋅Z′o(H)⋅H′(Zh)⋅Z′h(Wh)=(y^−y)⋅R′(Zo)⋅Wo⋅R′(Zh)⋅X

А если предположить, что в рассматриваемой сети имеется десять скрытых слоев, то производная потери для первого веса w1 может быть представлена следующим образом:

Производная потери для первого веса. Автор24 — интернет-биржа студенческих работ

Рисунок 3. Производная потери для первого веса. Автор24 — интернет-биржа студенческих работ

Здесь следует подчеркнуть одну закономерность, а именно, число вычислений, которые необходимы для расчета производных потерь, возрастает по мере углубления рассматриваемой сети. Кроме того следует отметить избыточность в выполняемых расчетах производных. Производная потерь каждого слоя вызывает добавление двух новых элементов к элементам, которые уже были определены слоями над ним. Но существуют способы, сохраняющие проделанные вычисления и позволяющие избежать повторяющихся вычислений.

Мемоизация является термином из области информатики, который имеет достаточно простое определение, а именно, этот термин означает, что не нужно пересчитывать одно и то же снова и снова. Мемоизация подразумевает сохранение ранее вычисленных результатов, позволяющее избежать пересчета одной и той же функции. Этот способ является удобным для ускорения рекурсивных функций, одной из которых выступает обратное распространение. Следует обратить внимание на закономерности в уравнениях производных, которые приведены ниже.

Закономерности в уравнениях производных. Автор24 — интернет-биржа студенческих работ

Рисунок 4. Закономерности в уравнениях производных. Автор24 — интернет-биржа студенческих работ

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

Уравнения. Автор24 — интернет-биржа студенческих работ

Рисунок 5. Уравнения. Автор24 — интернет-биржа студенческих работ

Математика та же самая, но уравнения позволяют значительно сократить объем вычислений, что можно использовать для отслеживания тех вычислений, которые уже были исполнены, и сохранения проделанной работы по мере продвижения назад по сети.

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

Для того чтобы рассчитать ошибку выходного слоя, следует определить производную потерь по входу выходному слою, Zo. Формула для вычисления производной имеет следующий вид:

C′(Zo)=(y^−y)⋅R′(Zo)

Для упрощения записи можно заменить последовательность (y^−y)∗R'(Zo) термином Eo. Тогда формула для ошибки выходного слоя будет выглядеть так:

Eo=(y^−y)⋅R′(Zo)

Для того чтобы вычислить ошибку скрытого слоя, необходимо определить производную потерь по входу скрытого слоя, Zh, следующим образом:

C′(Zh)=(y^−y)⋅R′(Zo)⋅Wo⋅R′(Zh).

Дата написания статьи: 01.07.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot