有人可以解释反向传播算法吗?[重复]


Answers:


14

反向传播算法是用于拟合神经网络模型的梯度下降算法。(如@Dikran所述)让我解释一下。

形式上:在下面公式[1]中使用此桩末的梯度计算(即梯度下降的定义),可以将反向传播算法作为使用梯度下降的一种特殊情况。

神经网络模型 正式地,我们用一个简单的单层模型来修复思想:

f(x)=g(A1(s(A2(x))))
g:RRs:RMRMm=1,Ms(x)[m]=σ(x[m])A1:RMRA2RpRMσ:RR

(x1,,xn)Rp(y1,,yn)R

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

反向传播是一种计算误差函数相对于权重的导数的方法,因此可以通过梯度下降优化方法来训练模型-基本上,这只是“链式规则”的应用。其实没有什么比这更多的了,因此,如果您对微积分感到满意​​,那基本上就是看待它的最佳方法。

如果您对微积分不满意,则更好的方法是说我们知道输出单元的工作状况,因为我们有一个期望的输出可用来与实际输出进行比较。但是我们没有隐藏单元的期望输出,那么我们该怎么办?反向传播规则基本上是一种将输出单元错误归咎于隐藏单元的方法。隐藏单元对特定输出单元的影响越大,该错误就应归咎于它。然后,与隐藏单元相关的总责备表示需要更改输入到隐藏层的权重。控制归咎于多少责任的两件事是连接隐藏层权重和输出层权重(显然)和隐藏单元的输出(如果是喊而不是窃窃私语,则可能会产生更大的影响)。剩下的只是数学上的细微之处,这些直觉将其转变为训练准则的派生。

我也建议主教书以适当的答案!; o)


2

这是一种用于训练前馈多层神经网络(多层感知器)的算法。网上有几个不错的Java小程序,它们说明了正在发生的事情,例如:http : //neuron.eng.wayne.edu/bpFunctionApprox/bpFunctionApprox.html。另外,Bishop的关于NN的书是与NN相关的标准桌面参考。


在尝试以问题和答案的形式建立永久的高质量统计信息存储库时,我们尝试避免仅链接的答案。如果可以,是否可以通过在链接上提供信息摘要来扩展此范围?
Glen_b-恢复莫妮卡2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.