1 参数说明

反向传播以及梯度消失(爆炸)问题总结


2 反向传播

  为了弄清楚为何会出现消失的梯度,来看看一个极简单的深度神经网络(详细理论推导请看本博客第7节内容):每一层都只有一个单一的神经元。下面就是有三层隐藏层的神经网络:

反向传播以及梯度消失(爆炸)问题总结

σ表示sigmoid**函数,LLoss也可以用CCost表示

反向传播以及梯度消失(爆炸)问题总结
Note:导数值小于0.25

其中

z1=xw1+b1
a1=σ(z1)

z2=a1w2+b2
a2=σ(z2)

z3=a2w3+b3
a3=σ(z3)

z4=a3w4+b4
a4=y=σ(z4)

代入推导出:

y=a4=σ(z4)=σ(a3w4+b4)=σ(σ(a2w3+b3)w4+b4)=σ(σ(σ(a1w2+b2)w3+b3)w4+b4)=σ(σ(σ(σ(xw1+b1)w2+b2)w3+b3)w4+b4)

C=f(y)

eg:
C=(yy^)2


C=f(σ(σ(σ(σ(xw1+b1)w2+b2)w3+b3)w4+b4))

部分变量求导关系:

a4a3=σ(z4)w4

a3a2=σ(z3)w3

a2a1=σ(z2)w2

Cw1求导结果为:

Cw1=Ca4a4a3a3w1==Ca4a4a3a3a2a2a1a1w1

=Ca4σ(z4)w4σ(z3)w3σ(z2)w2σ(z1)x

同理Cb1求导结果为:

Cb1=Ca4σ(z4)w4σ(z3)w3σ(z2)w2σ(z1)

Cw2求导结果为:

Cw2=Ca4a4a3a3w2==Ca4a4a3a3a2a2w2

=Ca4σ(z4)w4σ(z3)w3σ(z2)a1

同理Cb2求导结果为:

Cb2=Ca4σ(z4)w4σ(z3)w3σ(z2)


3 梯度消失

反向传播以及梯度消失(爆炸)问题总结

反向传播以及梯度消失(爆炸)问题总结

比较一下Cb1Cb3可知,Cb1要远远小于Cb3

因此,梯度消失的本质原因是:wjσ(zj)<14的约束。


4 梯度爆炸(激增)

网络的权重设置的比较大且偏置使得 σ(zj) 项不会太小。


5 梯度不稳定

  不稳定的梯度问题:根本的问题其实并非是消失的梯度问题或者激增的梯度问题,而是在前面的层上的梯度是来自后面的层上项的乘积。当存在过多的层次时,就出现了内在本质上的不稳定场景。唯一让所有层都接近相同的学习速度的方式是所有这些项的乘积都能得到一种平衡。如果没有某种机制或者更加本质的保证来达成平衡,那网络就很容易不稳定了。简而言之,真实的问题就是神经网络受限于不稳定梯度的问题。所以,如果我们使用标准的基于梯度的学习算法,在网络中的不同层会出现按照不同学习速度学习的情况。

6 梯度消失、爆炸的解决方案

详解机器学习中的梯度消失、爆炸原因及其解决方法

  • 方案1 预训练加微调(Hinton)
  • 方案2 梯度剪切(设置阈值,控制爆炸)、正则(控制爆炸)
  • 方案3 relu、leakrelu、elu等**函数
  • 方案4 batchnormbatchnorm全名是batch normalization,简称BN,批规范化,通过规范化操作将输出信号x规范化到均值为0,方差为1保证网络的稳定性
  • 方案5 残差结构
  • 方案6 LSTM

7 反向传播公式推导

  第2节用一个简单的网络推导了反向传播公式,本节用复杂的网络进行详细的推导(内容来自Backpropagation

7.1 问题描述

反向传播以及梯度消失(爆炸)问题总结

7.2 Chain rule

反向传播以及梯度消失(爆炸)问题总结

  第二节我们采用Cw=Caaw链式法则,比较直观一点,此节,我们采用Cw=Czzw链式法则,大同小异!az都是中间变量而已,一个作为layer的输出,一个作为layer的输入!

反向传播以及梯度消失(爆炸)问题总结

7.2.1 First Term

  链式求导法则的第一部分,分两种情况,一种是layer大于1,一种是layer等于1时

反向传播以及梯度消失(爆炸)问题总结

反向传播以及梯度消失(爆炸)问题总结

7.2.2 Second Term

  用符号 δ 来代替链式求导的第二部分

反向传播以及梯度消失(爆炸)问题总结

  结合下图可以看出,Second Term的求解落脚到两个问题

  • How to compute δL
  • The relation of δl and δl+1

反向传播以及梯度消失(爆炸)问题总结

1) How to compute δL

反向传播以及梯度消失(爆炸)问题总结

2) The relation of δl and δl+1

反向传播以及梯度消失(爆炸)问题总结

  化简一下

反向传播以及梯度消失(爆炸)问题总结

  反向传播浮现庐山真面目

反向传播以及梯度消失(爆炸)问题总结

  进一步化简,用向量表示

反向传播以及梯度消失(爆炸)问题总结

7.3 Summary

反向传播以及梯度消失(爆炸)问题总结

7.4 Compare with forward propagation

反向传播以及梯度消失(爆炸)问题总结

7.5 Verification

反向传播以及梯度消失(爆炸)问题总结

第2节Cw1求导结果为:

Cw1=Ca4σ(z4)w4σ(z3)w3σ(z2)w2σ(z1)x

第7节Cw1求导结果为:

Cw1=Cz1z1w1=δ1x

=σ(z1)w2δ2x

=σ(z1)w2σ(z2)w3δ3x

=σ(z1)w2σ(z2)w3σ(z3)w4δ4x

=σ(z1)w2σ(z2)w3σ(z3)w4σ(z4)Cyx

=σ(z1)w2σ(z2)w3σ(z3)w4σ(z4)Ca4x

  结果一样,推导没问题,美滋滋!!!


参考资料

【1】[Machine Learning] 深度学习中消失的梯度

【2】神经网络梯度消失的解释

【3】梯度下降法解神经网络

【4】详解机器学习中的梯度消失、爆炸原因及其解决方法

【5】Backpropagation(李宏毅老师上课PPT)

相关文章:

  • 2021-12-23
  • 2022-12-23
  • 2022-01-11
  • 2021-08-10
  • 2021-12-01
  • 2021-10-13
猜你喜欢
  • 2021-05-18
  • 2022-12-23
  • 2021-07-26
  • 2021-08-12
  • 2021-11-14
  • 2021-05-17
相关资源
相似解决方案