文章目录

  1. 1. 梯度消失
  2. 2. 梯度爆炸
  3. 3. 参考资料


微信公众号

梯度消失

梯度消失,会导致前面的隐藏层学习正常,后面的隐藏层的权重基本上不进行更新,导致的是后面的隐藏层基本上学习不到东西。换句话说,在模型训练中,如果存在多个隐藏层,梯度的从第一个隐藏层传播到第二个隐藏层的时候,第二层学到的东西不够多,到了第三层,学习的效率就更低了。

事实上,每一个隐藏层的参数都是我们随机初始化后的参数,如果发生了梯度消失,那么在这种情况下,深度学习的效果就与浅层神经网络类似咯。

事实上,我们发现在 sigmoid 函数将负无穷到正无穷的数映射到 0 和 1 之间,而两个 0 到 1 之间的数相乘,得到的结果就会变得很小了。因此,神经网络的反向传播是逐层对函数偏导相乘,当神经网络层数非常深的时候,最后一层产生的偏差就因为乘了很多的小于 1 的数而越来越小,最终就会变为 0,从而导致层数比较浅的权重没有更新。所以,在这些层上的学习速度就会变得很慢了。

如果,我们使用 ReLU 函数等替代 sigmoid 函数会有更好的效果。

梯度爆炸

梯度爆炸,是由于初始化权值过大,前面的隐藏层会比后面的隐藏层变化的更快,就会导致权值越来越大。这种情况下,会导致误差梯度在更新中累积,变成非常大的梯度,然后导致网络权重的大幅更新,并因此使网络变得不稳定。

参考资料

文章目录

  1. 1. 梯度消失
  2. 2. 梯度爆炸
  3. 3. 参考资料