1. 链式法则

2. 反向传播算法 实例

计算前向传播:
比如:
你会发现,输入值就是前向传播中,要求求解的导数的值。

计算后向传播:

这里假设,一个样本造成的损失loss是:
(每个样本有两个输入x1,x2)
综上所述:

由上图可得,在反向传输中,在计算过程中,是先算出最末尾的 ∂C∂y1,∂C∂y2∂C∂y1,∂C∂y2,再算出倒数第二个的偏导 ∂C∂z‘,∂C∂z‘‘∂C∂z‘,∂C∂z‘‘ , 再才算到 最前面的 ∂C∂z∂C∂z。这就是反向传播。
过程就是:
1. 计算∂C∂y1,∂C∂y2∂C∂y1,∂C∂y2
2. 计算∂C∂z‘,∂C∂z‘‘∂C∂z‘,∂C∂z‘‘
3. 最终计算 ∂C∂z∂C∂z

如果是更多层的神经网络
如果是更多层的神经网络,那么为了计算方向传输的∂C∂z∂C∂z,就应该像上面那样,从最末尾的地方(输出神经元)开始算起,一步一步计算,一步一步向左边推进,直到计算到最左边的第一层神经元,就计算到了∂C∂z∂C∂z。

3. 总结


本文详细介绍了反向传播算法的工作原理及其实例计算过程。首先通过前向传播得到输出值,然后利用链式法则计算损失函数关于各层权重的梯度,最后通过这些梯度更新权重,实现神经网络训练。
599

被折叠的 条评论
为什么被折叠?



