当前位置:   article > 正文

为什么sigmoid会造成梯度消失?_sigmoid梯度消失

sigmoid梯度消失

这里仅仅做一些数学上的简单分析,首先看sigmoid的公式:

sigmoid=σ(z)=11+ez

它的导数:

σ(z)=ez(1+ez)2=σ(z)(1σ(z))

σ(z)的图像如下:

也就是说任何输入都会被缩放到0到1,如果隐层的所有layer都使用sigmoid,除了第一层的输入,最后一层的输出,其他层的输入输出都是0到1,看看σ(z)的完整图像:

z大概在-5到5之间,σ(z)才有值,而除第一层隐层的输入都在0到1之间,所以σ(z)的图像如下:

σ(z)最终取值大概0.2到0.25之间,下面以一个简单的神经原结构举例:

Lz=σ(z)(w1Lz+w2Lz)

Lw=Lzzw=aLz

由于σ(z)会把Lz缩小4至5倍,而这个Lz又会影响前一层的Lz,反向下去,每一层的Lz在不断被缩小,深度越深这种连锁反应越明显,越靠近输入层越小,Lw中a又是0到1之间的梯度再次被整体缩小,这里主要考虑了σ(z)以及Lz的传递性以及输入a带来的影响,我认为权重w只会对局部的Lz带来影响,而σ(z)带来的这种连续缩小的影响将传递到计算前层的Lz中。

梯度消失带来的影响,靠近输入层的参数几乎不能被更新,靠近输入层的layer预测结果不准确,产生对整个后面的影响,最后无法训练。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/308328
推荐阅读
相关标签
  

闽ICP备14008679号