李宏毅深度学习_Backpropagation

本文是李宏毅深度学习 (2015)的学习笔记,主要介绍了神经网络Backpropagation算法的推导过程。本文所用到的图示均来自课堂ppt。

原视频地址:李宏毅深度学习 (2015)

Background

【李宏毅深度学习】Backpropagation

为了使用Gradient Descent对网络参数进行训练,我们就要求出Cost Function对每一层参数的梯度,由于本质上wijlbil差别不大(可将bil看作wijl中的一项),因此我们这里仅对Cr/wijl进行推导,Cr/bil推导类似。

链式法则

【李宏毅深度学习】Backpropagation

这里使用求导链式法则先将这个问题拆解成两部分,然后分别对每一部分的求导进行计算。

计算链式法则中拆解的两部分

1. 计算zil/wijl

【李宏毅深度学习】Backpropagation

第一部分的求导分为两种情况:

  • l>1。即当权值不是第一层时,导数为ajl1
  • l=1。即权值为第一层时,导数为xjr

2. 计算Cr/zil

【李宏毅深度学习】Backpropagation

为了描述方便将Cr/zil描述为δil。此时利用BP的思想,先求出最后一层的δL,再找出后一层δl+1与前一层δl的关系,以此求出所有的δl

【李宏毅深度学习】Backpropagation

同样根据链式求导法则可以得出

δnL=σ(znL)Crynr

其中Crynr与Cost Function的选取有关。

【李宏毅深度学习】Backpropagation
【李宏毅深度学习】Backpropagation

zil的变化Δzil会对ail造成影响进而影响到下一层的zl+1

【李宏毅深度学习】Backpropagation

向量化后得到

δl=σ(zl)(Wl+1)Tδl+1

总结

【李宏毅深度学习】Backpropagation

至此,我们已经完成了对Cr/wijl的推导,并且实现了向量化。Cr/bil推导类似。

相关文章: