Может кто-нибудь объяснить, пожалуйста, алгоритм обратного распространения? [Дубликат]

13

Что такое алгоритм обратного распространения и как он работает?

Ami
источник
1
Я собрал ответ на этот вопрос здесь, если кому-то интересно (я не хотел делать репост).
Филлида

Ответы:

14

Алгоритм обратного распространения представляет собой алгоритм градиентного спуска для подгонки модели нейронной сети. (как упомянуто @Dikran) Позвольте мне объяснить, как.

Формально: Использование вычисления градиента в конце этого поста в уравнении [1] ниже (то есть определение градиентного спуска) дает алгоритм обратного распространения как частный случай использования градиентного спуска.

Модель нейронной сети Формально мы фиксируем идеи с помощью простой однослойной модели:

где g : RR и s : R MR M известны при всех m = 1 , M , s ( x ) [ м ] = σ ( х [ м ] ) и

f(x)=g(A1(s(A2(x))))
g:RRs:RMRMm=1,Ms(x)[m]=σ(x[m]) , A 2 R pR M - неизвестные аффинные функции. Функция σ : RR называется функцией активации в рамках классификации.A1:RMRA2RpRMσ:RR

Квадратичная функция потерь используется для фиксации идей. Следовательно , вход векторы R р может быть установлен на реальный объем производства ( у 1 , ... , у п ) из R (может быть векторами) путем минимизации эмпирической потери: R п ( А 1 , A 2 ) = n i = 1 ( y i - f ( x)(x1,,xn)Rp(y1,,yn)R относительно выбора A 1 и A 2 .

Rn(A1,A2)=i=1n(yif(xi))2[1]
A1A2

R

al+1=alγlR(al), l0.
(γl)lRal=(Al1,Al2)

R1RRA12RRA2zi=A1(s(A2(xi)))

1R[1:M]=2×i=1nzig(zi)(yif(xi))
m=1,,M
2R[1:p,m]=2×i=1nxig(zi)zi[m]σ(A2(xi)[m])(yif(xi))

x[a:b]xab

Робин Жирар
источник
11

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

Если вы не знакомы с исчислением, лучше сказать, что мы знаем, как плохо работают единицы вывода, потому что у нас есть желаемый результат, с которым можно сравнивать фактический результат. Однако у нас нет желаемого выхода для скрытых юнитов, так что же нам делать? Правило обратного распространения - это, в основном, способ объяснить вину за ошибку выходных единиц на скрытых единицах. Чем больше влияние скрытый блок оказывает на конкретный выходной блок, тем больше вины за ошибку. Общее обвинение, связанное со скрытым модулем, затем дает представление о том, насколько нужно изменить веса входного / скрытого слоя. Две вещи, которые управляют тем, сколько ответственности передается обратно, - это вес, соединяющий вес скрытого и выходного слоев (очевидно) и выход скрытого юнита (если он кричит, а не шепчет, он, вероятно, окажет большее влияние). Все остальное - математические тонкости, которые превращают эту интуицию в производную от критерия обучения.

Я также рекомендую книгу епископов для правильного ответа! ; О)

Дикран Сумчатый
источник
2

Это алгоритм обучения прямой связи многослойных нейронных сетей (многослойных персептронов). В Интернете есть несколько хороших java-апплетов, иллюстрирующих происходящее, например: http://neuron.eng.wayne.edu/bpFunctionApprox/bpFunctionApprox.html . Кроме того, книга Бишопа о NN является стандартным настольным справочником для всего, что связано с NN.

Стивен Тернер
источник
Пытаясь создать постоянное хранилище высококачественной статистической информации в форме вопросов и ответов, мы стараемся избегать ответов только по ссылкам . Если вы можете, не могли бы вы расширить это, возможно, предоставив краткое изложение информации по ссылке?
Glen_b