参考
华为云学院
概述
反向传播算法使用链式求导法则将输出层的误差反向传回给网络,使网络中的权重有了较简单的地图计算方法。像TensorFlow,Pytorch有现成的反向传播实现。
正向传播
首先定义一个简单的神经网络,正向传播的过程如下所示
以此类推,到达预测值y的位置如下。
误差的反向传播
接着计算预测值与真实值的误差
接着可算出上一层的误差,本层的误差由“下一层的误差”乘以“它们之间的权重”。
权重更新
然后权重的更新如下所示。
以此类推到最后一层的权重更新如下
梯度消失与梯度爆炸
对于链式求导来说,神经网络的层数越多,求导的结果就越小,因而导致梯度消失的情况。梯度爆炸指的是权重比较大的情况,但是对于sigmoid函数来说,这种情况比较少。