Ответ 1
Рассмотрим a node в сети обратного распространения (BP). Он имеет несколько входов и производит выходное значение. Мы хотим использовать коррекцию ошибок для обучения, поэтому она также обновит весы на основе оценки ошибок для node.
Каждый node имеет значение смещения, θ. Вы можете думать об этом как о весе внутреннего, постоянного значения с 1,0-значным значением.
Активация представляет собой суммирование взвешенных входов и значение смещения. Давайте рассмотрим наш node интерес как j, узлы в предыдущем слое со значениями я и узлы в последующем слое со значениями k. Активация нашего node j:
net j= Σ i (o i × w ij) + θ jсуб >
То есть, значение активации для j представляет собой сумму продуктов вывода из node я и соответствующего веса, связывающего node я и j, плюс значение смещения.
Выход нашей node j является передаточной функцией активации:
o j= f (net j)
f обычно является сигмоидной функцией.
f (net j) = 1/(1 + e -net j)
Сигмоидная функция имеет легкую спецификацию первой производной:
f '(net j) = f (net j) × (1.0 - f (net j))
Какую бы функцию передачи мы ни использовали, нам нужно знать, как вычислить ее первую производную. BP работает с помощью градиентного спуска через Chain Rule, так что это важно. Уравнение выше будет отличаться с другой передаточной функцией.
До сих пор мы знаем, как получить входные значения, вычислить активацию, вычислить вывод и вычислить первую производную от активации. Теперь нам нужно иметь дело с ошибками и корректировкой веса.
Значение, используемое для оценки ошибки node в BP, называется δ. Δ для a node пропорционален первой производной активации node и полученному ей числу ошибок. Для принятого условия ошибки есть две формулировки: одна для выходных узлов и одна для скрытых узлов.
В общем,
δ = f '(net) × (полученная ошибка)
Для вывода node,
δ output= f '(net) × (t - o)
где t - ожидаемое значение на этом выходе node, а o - фактическое выходное значение этого выхода node.
Для нашего скрытого node j это примерно так:
δ j= f '(net j) × Σ k (δ k × w JKсуб > )
δ для нашего node j, δ j, является произведением первой производной нашей передаточной функции, заданной временем активации суммы дельт в следующем слое (ближе к выходу), умноженное на каждое значение веса соединения. С учетом этого мы можем рассчитать, как настроить весы, идущие на предыдущий уровень узлов (ближе к входу).
dw ij= L × o i × δ j
dw здесь представляет собой "изменение веса", так что уравнение говорит, что изменение веса от node я до нашего node j равно произведению параметра обучения L (как правило, такое же значение для всех узлов в сети), выходное значение node я и δ (коэффициент ошибок) для нашего node j.
Регулировка значения смещения аналогична настройке веса.
dθ j= L × f (θ j) × δ j
dθ здесь представляет собой "изменение в θ". Мы должны применить передаточную функцию к значению смещения θ j, чтобы получить такой же термин, как вывод из node. В противном случае это выглядит так же, как и другое уравнение.
Я должен отметить, что вычисление изменений веса должно производиться по всей сети, а затем применять изменения после того, как все они рассчитаны.