李宏毅深度学习_Backpropagation
本文是李宏毅深度学习 (2015)的学习笔记,主要介绍了神经网络Backpropagation算法的推导过程。本文所用到的图示均来自课堂ppt。
原视频地址:李宏毅深度学习 (2015)
Background
为了使用Gradient Descent对网络参数进行训练,我们就要求出Cost Function对每一层参数的梯度,由于本质上 wlij w i j l 与 bli b i l 差别不大(可将 bli b i l 看作 wlij w i j l 中的一项),因此我们这里仅对 ∂Cr/∂wlij ∂ C r / ∂ w i j l 进行推导, ∂Cr/∂bli ∂ C r / ∂ b i l 推导类似。
链式法则
这里使用求导链式法则先将这个问题拆解成两部分,然后分别对每一部分的求导进行计算。
计算链式法则中拆解的两部分
1. 计算 ∂zli/∂wlij ∂ z i l / ∂ w i j l
第一部分的求导分为两种情况:
- l>1 l > 1 。即当权值不是第一层时,导数为 al−1j a j l − 1 。
- l=1 l = 1 。即权值为第一层时,导数为 xrj x j r 。
2. 计算 ∂Cr/∂zli ∂ C r / ∂ z i l
为了描述方便将 ∂Cr/∂zli ∂ C r / ∂ z i l 描述为 δli δ i l 。此时利用BP的思想,先求出最后一层的 δL δ L ,再找出后一层 δl+1 δ l + 1 与前一层 δl δ l 的关系,以此求出所有的 δl δ l 。
同样根据链式求导法则可以得出
其中 ∂Cr∂yrn ∂ C r ∂ y n r 与Cost Function的选取有关。
zli z i l 的变化 Δzli Δ z i l 会对 ali a i l 造成影响进而影响到下一层的 zl+1 z l + 1 ,
向量化后得到
总结
至此,我们已经完成了对 ∂Cr/∂wlij ∂ C r / ∂ w i j l 的推导,并且实现了向量化。 ∂Cr/∂bli ∂ C r / ∂ b i l 推导类似。