Основы ИИ

Что такое обратное распространение ошибки?

mm
Добавьте Unite.AI в избранные источники в Google

Что такое обратное распространение ошибки?

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

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

Цель обратного распространения ошибки

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

Обучение глубокой нейронной сети

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

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

Активация = сумма(вес * вход) + смещение

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

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

Обратное распространение ошибки в сети

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

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

ошибка = (ожидаемый_выход – фактический_выход) * наклон выходного значения нейрона

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

После того, как рассчитаны ошибки сети, веса в сети необходимо обновить. Как упоминалось ранее, расчет ошибки включает определение наклона выходного значения. После того, как рассчитан наклон, можно использовать процесс, называемый градиентным спуском, для регулирования весов в сети. Градиент представляет собой наклон, чей угол/крутизна можно измерить. Наклон рассчитывается путем построения “y над” или “восхождения” над “бегом”. В случае нейронной сети и скорости ошибки “y” представляет собой рассчитанную ошибку, а “x” представляет собой параметры сети. Параметры сети имеют отношение к рассчитанным значениям ошибки, и по мере регулирования весов сети ошибка увеличивается или уменьшается.

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

Блогер и программист с специализацией в Machine Learning и Deep Learning темах. Daniel надеется помочь другим использовать силу ИИ для социального блага.