4.5.1 梯度消失现象
在理论上的深度网络比浅层网络更加强大,但在实际中会发现深度神经网络并不能比浅层网络性能好太多,不同层的学习速度差异很大,根本的原因是的学习的速度下降了。</br>
在某些深度神经网络中,在隐藏层BP的时候梯度倾向于变小。这意味着在前面的隐藏层中的神经元学习速度要慢于后面的隐藏层。这个现象也被称作是消失的梯度问题。
4.5.2 梯度消失原因分析
假设一神经网络,有三层隐藏层且每一层都只有一个单一的神经元:\(w1,w_2,…\)是权重,
梯度消失模型
计算第一个隐藏神经元梯度 :
假设对偏置
梯度消失问题:
- S函数导数在
时达到最高。若使用标准方法来初始化网络中的权重,那么会使用一个均值为 0 标准差为 1 的高斯分布。因此所有的权重通常会满足 ,则 - 当进行了所有这些项的乘积时,最终结果肯定会指数级下降,项越多,乘积的下降的越快,即梯度消失。S型函数导数
梯度激增问题:
若项
- 首先将网络的权重设置得很大,比如
。 - 然后选择偏置使得
项不会太小:若保证每个神经元的带权输入是 。
4.5.3 梯度不稳定问题解决思路
本质原因:
- 在前面的层上的梯度是来自后面的层上项的乘积。当存在过多的层次时,就出现了内在本质上的不稳定场景。
- 若使用标准的基于梯度的学习算法,在网络中的不同层会出现按照不同学习速度学习的情况。sigmoid 网络中前面的层的梯度会以指数级地速度消失。
解决办法:
唯一让所有层都接近相同的学习速度的方式是所有这些项的乘积都能得到一种平衡。若没有某种机制或者更加本质的保证来达成平衡,那网络就很容易不稳定了。