梯度下降(Gradient Descent)
深度学习使用反向传播计算梯度。
链式法则(Chain Rule)
链式法则通常有两种情形:
- Case 1:x对z的微分通过y拆成两项
- Case 2:s对z的的微分通过x和y拆成两项
反向传播(Backpropagation)
反向传播过程中,我们要算每一个输出结点的损失,因此损失函数是每个输出结点关于标签的损失之和。
反向传播梯度计算又可以分为两个部分:Forward pass 和 Backward pass。
Forward Pass
在Forward pass中我们的目标是计算权重w对z的微分,它就等于这个权重w前面的神经元(neuron)的输出。
Backward Pass
在Backward pass中,计算z对小写L的微分。通过将激活函数(图中激活函数是:Sigmoid函数。详见:常见激活函数及其导数)拆分出来而把z对L的微分拆成两部分:z对a的微分;a对L的微分。其中z对a的微分,z在forward pass中已经计算出了,因此z对a的微分是常量。
其中,z’ 对小写L的微分和z’'对小写L的微分可能有两种情形:一种是作为输出层;一种是不作为输出层。
整体计算思想是:从输出层往前一层一层计算,直到到达输入层。
总结
计算某个权重w,就是用正向传播的w前一个神经元的输出(w对w后面输出值z的偏微分)乘w后面输出值z对小写L(损失函数)的偏微分。
偏置b的计算只是在forward pass中 b对z的微分等于1不同外,backward pass中与权值w的计算方法相同。
参考资料 :台大李宏毅教授机器学习课程
图片来源:台大李宏毅教授机器学习课程PPT