对于方向传播的理解记录
简单易懂的理解:
1.机器学习:一步步教你理解反向传播方法
2.一文弄懂神经网络中的反向传播法——BackPropagation
上面两个的例子:
在反向传播的过程中,就是根据输出层的误差来跟新前面的权重
1.隐含层---->输出层的权值更新:
对于图中,我们可以根据计算出的误差和来计算每个前置项的影响程度,也就是通过偏导数的运算
因此,例如例子中,我们想知道每个权重对于最终误差和的影响,即通过链式法则来求得偏导数。
但是,在得到计算结果的时候,我们为什么定义delta为
我自己的理解是,定义delta为输出层的加权输入影响总误差的程度
(但是为什么要这样定义。不明白)
因此,下一系列推导中,可以得隐含层出到输出层权重w的更新公式
2.隐含层---->隐含层的权值更新
其中的一个 作者说的很明白,
方法其实与上面说的差不多,但是有个地方需要变一下,在上文计算总误差对w5的偏导时,是从out(o1)---->net(o1)---->w5,但是在隐含层之间的权值更新时,是out(h1)---->net(h1)---->w1,而out(h1)会接受E(o1)和E(o2)两个地方传来的误差,所以这个地方两个都要计算。
因此,隐含层的权重收到下游节点的影响,我们要计算下游节点的相关
,最后的到隐含层到隐含层的权重跟新公式。
我门定义delta为隐含层的加权输入影响总误差的程度,
即
可以得到此层delta和下游节点delta的关系
总结
为什么在之前的理解感到困难?我因为在之前的过程中,我没有理解到神经网络中,除了输入层,其他每一层都有激活函数,因为他们都是 神经元。每一个神经元都有一个输入和输出,也就是特征响应的过程。