梯度消失问题

科技工作者之家  |   2020-11-17 18:03

在神经网络中,当前面隐藏层的学习速率低于后面隐藏层的学习速率,即随着隐藏层数目的增加,分类准确率反而下降了。这种现象叫做消失的梯度问题。

梯度消失问题下图是神经网络在训练过程中, 随epoch增加时各种隐藏层的学习率变化。

两个隐藏层:[784,30,30,10]

三个隐藏层:[784,30,30,30,10]

四个隐藏层:[784,30,30,30,30,10]

可以看到:前面的隐藏层的学习速度要低于后面的隐藏层。这种现象普遍存在于神经网络之中, 叫做消失的梯度问题(vanishing gradient problem)。更加一般地说,在深度神经网络中的梯度是不稳定的,在前面的层中或会消失,或会激增。这种不稳定性才是深度神经网络中基于梯度学习的根本问题1。

产生梯度消失问题的原因下图是一个极简单的深度神经网络:每一层都只有一个单一的神经元。

代价函数C对偏置b1的偏导数的结果计算如下:

sigmoid 函数导数的图像如图:

该导数在σ′(0) = 1/4时达到最高。现在,如果我们使用标准方法来初始化网络中的权重,那么会使用一个均值为0 标准差为1 的高斯分布。因此所有的权重通常会满足|wj|