Главная страница » Что такое обратное распространение ошибки

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

  • автор:

Как работает обратное распространение в нейронных сетях

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

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

Данные и архитектура

Набор данных содержит три признака, а целевой класс имеет только два значения — 1 для прохода и 0 для ошибки. Задача состоит в том, чтобы отнести точку данных к одной из двух категорий, т. е. выполнить двоичную классификацию. Мы будем использовать только один обучающий пример для большей понятности.

На рисунке 1 показаны данные и архитектура нейронной сети, которые мы будем использовать. Обучающий пример помечен соответствующим фактическим значением 1. Эта нейронная сеть 3-4-1 является сетью с плотной связью: каждый узел в текущем слое связан со всеми нейронами в предыдущем слое, за исключением входного. Однако мы исключили некоторые связи, чтобы излишне не нагружать рисунок. Прямой проход дает на выходе 0,521.

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

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

Прямой проход дает прогноз ( yhat ) цели ( y ) с потерями, которые фиксируются функцией затрат (E), определенной как:

Здесь m — количество примеров обучения, а L — ошибка/потери, возникающие при предсказании моделью значения yhat вместо фактического значения y . Целью является минимизация затрат E . Это достигается путем дифференцирования E относительно параметров (wrt, весов и параметров) и регулировки параметров в направлении, противоположном градиенту (поэтому алгоритм оптимизации называется градиентным спуском).

В этой статье мы рассматриваем обратное распространение на примере обучения 1 ( m=1 ). При таком рассмотрении E сводится к следующему уравнению:

Выбор функции потерь L

Функция потерь L определяется в зависимости от поставленной задачи. Для задач классификации подходящими функциями потерь являются кросс-энтропия (также известная как логарифмическая функция потерь) и кусочно-линейная функция потерь, тогда как для задач регрессии подходят такие функции потерь, как средняя квадратичная ошибка (MSE) и средняя абсолютная ошибка (MAE).

Кросс-энтропия — функция, подходящая для данной задачи двоичной классификации (данные имеют два класса, 0 и 1 ). Кросс-энтропия как функция потерь для двоичной классификации может быть применена к данному примеру прямого прохода на Рисунке 1, как показано ниже:

Здесь t=1 — истинная метка, yhat=0,521 — выход модели, а ln — натуральный логарифм по основанию 2.

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

Данные и параметры

В таблице ниже приведены данные по всем слоям нейронной сети 3–4–1 . На 3 -нейронном входе указаны значения из данных, которые мы предоставляем модели для обучения. Второй/скрытый слой содержит веса ( w ) и смещения ( b ), которые нужно обновить, а выход ( f ) на каждом из 4 нейронов во время прямого прохода. Выход содержит параметры ( w и b ) и выход модели ( yhat ) — это значение фактически является прогнозом модели на каждой итерации обучения модели. После одного прохода вперед yhat=0,521 .

A. Уравнения обновления и функция потерь

Важно! Вспомните информацию из предыдущего раздела: E(θ)=L(y, yhat) , где θ — это параметры (веса и смещения). То есть, E — это функция от y и yhat , а yhat=g(wx+b) , следовательно, yhat — это функция от w и b . x — переменная данных, а g — функция активации. E является функцией w и b и, следовательно, может быть дифференцирована относительно этих параметров.

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

Здесь t — шаг обучения, ϵ — скорость обучения (гиперпараметр, задаваемый пользователем). Он определяет скорость обновления весов и смещений. Мы будем использовать ϵ=0,5 (это произвольный выбор).

Из уравнений 4 получаются следующие обновленные суммы

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

Мы будем использовать сигмоидную активацию для всех слоев:

Здесь z=wx+b — взвешенный вход в нейрон плюс смещение.

B. Обновление параметров на выходном скрытом слое

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

Цепное правило дифференцирования гласит, что если y=f(u) и u=g(x), т. е. y=f(g(x))), то производная от y в отношении x будет равна:

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

В нашем случае мы имеем:

Возьмем в работу пример обновления w²₁₁ и b²₁ . Будем следовать маршрутам, показанным ниже.

B1. Вычисление производных для весов

По цепному правилу дифференцирования имеем:

Примечание: при оценке приведенных выше производных относительно w²₁₁ все остальные параметры рассматриваются как константы, т. е. w²₁₂, w²₁₃, w²₁₄ и b²₁. Производная от константы равна 0 , поэтому некоторые значения были исключены в приведенной выше производной.

Далее приведена производная сигмоидной функции.

Далее — производная функции потерь кросс-энтропии.

Производные по отношению к трем другим весам на выходном слое следующие (можете проверить):

B2. Вычисление производных для смещения

Нам нужно вычислить:

В предыдущих разделах мы уже вычислили ∂E и ∂yhat , осталось только выполнить следующие действия:

Мы использовали те же аргументы, что и раньше. Все остальные переменные, кроме b²₁, считаются константами, поэтому при дифференцировании они уменьшают 0 .

До сих пор мы вычисляли градиенты относительно всех параметров на слоях “выход-вход”.

На данном этапе мы уже готовы обновить все веса и смещения на слоях “выход-вход”.

B3. Обновление параметров на слоях “выход-вход”

Вычислите остальные значения таким же образом и сверьте их с таблицей ниже.

C. Обновление параметров на слое “скрытый-выход”

Как и раньше, нам нужны производные E относительно всех весов и смещений на этих слоях. Всего у нас есть 4×3=12 весов для обновления и 4 смещения. В качестве примера возьмем w¹₄₃ и b¹₂. Маршруты показаны на рисунке ниже.

C1. Градиенты весов

Для весов нам нужно вычислить производную (следуйте по маршруту на Рисунке 6, если следующее уравнение покажется вам слишком сложным):

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

Алгоритм обратного распространения ошибки (Back propagation algorithm)

Алгоритм обратного распространения ошибки — популярный алгоритм обучения плоскослоистых нейронных сетей прямого распространения (многослойных персептронов). Относится к методам обучения с учителем, поэтому требует, чтобы в обучающих примерах были заданы целевые значения. Также является одним из наиболее известных алгоритмов машинного обучения.

В основе идеи алгоритма лежит использование выходной ошибки нейронной сети

E = 1 2 k ∑ i = 1 ( y − y ′ ) 2

для вычисления величин коррекции весов нейронов в ее скрытых слоях, где k — число выходных нейронов сети, y — целевое значение, y ′ — фактическое выходное значение. Алгоритм является итеративным и использует принцип обучения «по шагам» (обучение в режиме on-line), когда веса нейронов сети корректируются после подачи на ее вход одного обучающего примера.

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

Δ w j , i ( n ) = − η ∂ E a v ∂ w i j , (1)

где w j , i — вес i-й связи j-го нейрона, η — параметр скорости обучения, который позволяет дополнительно управлять величиной шага коррекции Δ w j , i с целью более точной настройки на минимум ошибки и подбирается экспериментально в процессе обучения (изменяется в интервале от 0 до 1).

Учитывая, что выходная сумма j-го нейрона равна

S j = n ∑ i = 1 w i j x i ,

можно показать, что

∂ E ∂ w i j = ∂ E ∂ S j ∂ S j ∂ w i j = x i ∂ E ∂ S j .

Из последнего выражения следует, что дифференциал ∂ S j активационной функции нейронов сети f ( s ) должен существовать и не быть равным нулю в любой точке, т.е. активационная функция должна быть дефференцируема на всей числовой оси. Поэтому для применения метода обратного распространения используют сигмоидальные активационные функции, например, логистическую или гиперболический тангенс.

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

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

В настоящее время разработано множество модификаций алгоритма обратного распространения. Например, используется обучение не «по шагам» (когда выходная ошибка вычисляется, а веса корректируются на каждом примере), а «по эпохам» в режиме off-line (когда изменение весов производится после подачи на вход сети всех примеров обучающего множества, а ошибка усредняется по всем примерам).

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

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

  • неопределенно долгий процесс обучения;
  • возможность «паралича сети», когда при больших значениях рабочая точка активационной функции оказывается в области насыщения сигмоиды и производная в выражении (1) становится близкой к 0, а коррекции весов практически не происходит и процесс обучения «замирает»;
  • уязвимость алгоритма к попаданию в локальные минимумы функции ошибки.

Впервые алгоритм был описан в 1974 г. А.И. Галушкиным, а также, независимо и одновременно, Полом Дж. Вербосом. Далее существенно развит в 1986 г. Дэвидом И. Румельхартом.

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

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

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

Общее описание алгоритма обратного распространения ошибки

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

4-20219-e537a8.png

2-20219-7f9b72.png

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

3-20219-2ac7f4.png

Причём «альфа» здесь означает параметр наклона сигмоидальной функции. Меняя его, мы получаем возможность строить функции с разной крутизной.

Сигмоид может сужать диапазон изменения таким образом, чтобы значение OUT лежало между нулем и единицей. Нейронные многослойные сети характеризуются более высокой представляющей мощностью, если сравнивать их с однослойными, но это утверждение справедливо лишь в случае нелинейности. Нужную нелинейность и обеспечивает сжимающая функция. Но на практике существует много функций, которые можно использовать. Говоря о работе алгоритма обратного распространения ошибки, скажем, что для этого нужно лишь, чтобы функция была везде дифференцируема, а данному требованию как раз и удовлетворяет сигмоид. У него есть и дополнительное преимущество — автоматический контроль усиления. Если речь идёт о слабых сигналах (OUT близко к нулю), то кривая «вход-выход» характеризуется сильным наклоном, дающим большое усиление. При увеличении сигнала усиление падает. В результате большие сигналы будут восприниматься сетью без насыщения, а слабые сигналы будут проходить по сети без чрезмерного ослабления.

Цель обучения сети

Цель обучения нейросети при использовании алгоритма обратного распространения ошибки — это такая подстройка весов нейросети, которая позволит при приложении некоторого множества входов получить требуемое множество выходов нейронов (выходных нейронов). Можно назвать эти множества входов и выходов векторами. В процессе обучения предполагается, что для любого входного вектора существует целевой вектор, парный входному и задающий требуемый выход. Эту пару называют обучающей. Работая с нейросетями, мы обучаем их на многих парах.

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

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

Пошаговая реализация метода обратного распространения ошибки

Необходимо выполнить следующие действия: 1. Инициализировать синаптические веса случайными маленькими значениями. 2. Выбрать из обучающего множества очередную обучающую пару; подать на вход сети входной вектор. 3. Выполнить вычисление выходных значений нейронной сети. 4. Посчитать разность между выходом нейросети и требуемым выходом (речь идёт о целевом векторе обучающей пары). 5. Скорректировать веса сети в целях минимизации ошибки. 6. Повторять для каждого вектора обучающего множества шаги 2-5, пока ошибка обучения нейронной сети на всём множестве не достигнет уровня, который является приемлемым.

Виды обучения сети по методу обратного распространения

Сегодня существует много модификаций алгоритма обратного распространения ошибки. Возможно обучение не «по шагам» (выходная ошибка вычисляется, веса корректируются на каждом примере), а «по эпохам» в offline-режиме (изменения весовых коэффициентов происходит после подачи на вход нейросети всех примеров обучающего множества, а ошибка обучения neural сети усредняется по всем примерам).

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

Преимущества и недостатки метода

К плюсам можно отнести простоту в реализации и устойчивость к выбросам и аномалиям в данных, и это основные преимущества. Но есть и минусы: • неопределенно долгий процесс обучения; • вероятность «паралича сети» (при больших значениях рабочая точка функции активации попадает в область насыщения сигмоиды, а производная величина приближается к 0, в результате чего коррекции весов почти не происходят, а процесс обучения «замирает»; • алгоритм уязвим к попаданию в локальные минимумы функции ошибки.

Значение метода обратного распространения

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

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

Метод обратного распространения ошибок (англ. backpropagation) — метод вычисления градиента, который используется при обновлении весов в нейронной сети.

Содержание

Обучение как задача оптимизации

Изначально веса задаются случайно. Затем, нейрон обучается с помощью тренировочного множества, которое в этом случае состоит из множества троек [math](x_1, x_2, t)[/math] где [math]x_1[/math] и [math]x_2[/math] — это входные данные сети и [math]t[/math] — правильный ответ. Начальная сеть, приняв на вход [math]x_1[/math] и [math]x_2[/math] , вычислит ответ [math]y[/math] , который вероятно отличается от [math]t[/math] . Общепринятый метод вычисления несоответствия между ожидаемым [math]t[/math] и получившимся [math]y[/math] ответом — квадратичная функция потерь:

[math]E=(t-y)^2, [/math] где [math]E[/math] ошибка. В качестве примера, обучим сеть на объекте [math](1, 1, 0)[/math] , таким образом, значения [math]x_1[/math] и [math]x_2[/math] равны 1, а [math]t[/math] равно 0. Построим график зависимости ошибки [math]E[/math] от действительного ответа [math]y[/math] , его результатом будет парабола. Минимум параболы соответствует ответу [math]y[/math] , минимизирующему [math]E[/math] . Если тренировочный объект один, минимум касается горизонтальной оси, следовательно ошибка будет нулевая и сеть может выдать ответ [math]y[/math] равный ожидаемому ответу [math]t[/math] . Следовательно, задача преобразования входных значений в выходные может быть сведена к задаче оптимизации, заключающейся в поиске функции, которая даст минимальную ошибку.

В таком случае, выходное значение нейрона — взвешенная сумма всех его входных значений:

где [math]w_1[/math] и [math]w_2[/math] — веса на ребрах, соединяющих входные вершины с выходной. Следовательно, ошибка зависит от весов ребер, входящих в нейрон. И именно это нужно менять в процессе обучения. Распространенный алгоритм для поиска набора весов, минимизирующего ошибку — градиентный спуск. Метод обратного распространения ошибки используется для вычисления самого «крутого» направления для спуска.

Дифференцирование для однослойной сети

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

[math]E = \tfrac 1 2 (t — y)^2,[/math] где [math]E[/math] — квадратичная ошибка, [math]t[/math] — требуемый ответ для обучающего образца, [math]y[/math] — действительный ответ сети.

Множитель [math]\textstyle\frac<1><2>[/math] добавлен чтобы предотвратить возникновение экспоненты во время дифференцирования. На результат это не повлияет, потому что позже выражение будет умножено на произвольную величину скорости обучения (англ. learning rate).

Для каждого нейрона [math]j[/math] , его выходное значение [math]o_j[/math] определено как

[math]o_j = \varphi(\text_j) = \varphi\left(\sum_^n w_o_k\right).[/math]

Входные значения [math]\text_j[/math] нейрона — это взвешенная сумма выходных значений [math]o_k[/math] предыдущих нейронов. Если нейрон в первом слое после входного, то [math]o_k[/math] входного слоя — это просто входные значения [math]x_k[/math] сети. Количество входных значений нейрона [math]n[/math] . Переменная [math]w_[/math] обозначает вес на ребре между нейроном [math]k[/math] предыдущего слоя и нейроном [math]j[/math] текущего слоя.

Функция активации [math]\varphi[/math] нелинейна и дифференцируема. Одна из распространенных функций активации — сигмоида:

[math] \varphi(z) = \frac 1 <1+e^<-z>>[/math]

у нее удобная производная:

Находим производную ошибки

Вычисление частной производной ошибки по весам [math]w_[/math] выполняется с помощью цепного правила:

Только одно слагаемое в [math]\text_j[/math] зависит от [math]w_[/math] , так что

Если нейрон в первом слое после входного, то [math]o_i[/math] — это просто [math]x_i[/math] .

Производная выходного значения нейрона [math]j[/math] по его входному значению — это просто частная производная функции активации (предполагается что в качестве функции активации используется сигмоида):

По этой причине данный метод требует дифференцируемой функции активации. (Тем не менее, функция ReLU стала достаточно популярной в последнее время, хоть и не дифференцируема в 0)

Первый множитель легко вычислим, если нейрон находится в выходном слое, ведь в таком случае [math]o_j = y[/math] и

Тем не менее, если [math]j[/math] произвольный внутренний слой сети, нахождение производной [math]E[/math] по [math]o_j[/math] менее очевидно.

Если рассмотреть [math]E[/math] как функцию, берущую на вход все нейроны [math]L = [/math] получающие на вход значение нейрона [math]j[/math] ,

и взять полную производную по [math]o_j[/math] , то получим рекурсивное выражение для производной:

Следовательно, производная по [math]o_j[/math] может быть вычислена если все производные по выходным значениям [math]o_\ell[/math] следующего слоя известны.

Если собрать все месте:

Чтобы обновить вес [math]w_[/math] используя градиентный спуск, нужно выбрать скорость обучения, [math]\eta \gt 0[/math] . Изменение в весах должно отражать влияние [math]E[/math] на увеличение или уменьшение в [math]w_[/math] . Если [math]\frac<\partial E><\partial w_> \gt 0[/math] , увеличение [math]w_[/math] увеличивает [math]E[/math] ; наоборот, если [math]\frac<\partial E><\partial w_> \lt 0[/math] , увеличение [math]w_[/math] уменьшает [math]E[/math] . Новый [math]\Delta w_[/math] добавлен к старым весам, и произведение скорости обучения на градиент, умноженный на [math]-1[/math] , гарантирует, что [math]w_[/math] изменения будут всегда уменьшать [math]E[/math] . Другими словами, в следующем уравнении, [math]- \eta \frac<\partial E><\partial w_>[/math] всегда изменяет [math]w_[/math] в такую сторону, что [math]E[/math] уменьшается:

[math] \Delta w_ = — \eta \frac<\partial E><\partial w_> = — \eta \delta_j o_i[/math]

Алгоритм

  • [math]\eta[/math] — скорость обучения
  • [math]\alpha[/math] — коэффициент инерциальности для сглаживания резких скачков при перемещении по поверхности целевой функции
  • [math]\_^[/math] — обучающее множество
  • [math]\textrm[/math] — количество повторений
  • [math]network(x)[/math] — функция, подающая x на вход сети и возвращающая выходные значения всех ее узлов
  • [math]layers[/math] — количество слоев в сети
  • [math]layer_i[/math] — множество нейронов в слое i
  • [math]output[/math] — множество нейронов в выходном слое

Недостатки алгоритма

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

Паралич сети

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

Локальные минимумы

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *