美文网首页
深度学习 | 梯度消散/爆炸

深度学习 | 梯度消散/爆炸

作者: yuanCruise | 来源:发表于2018-12-29 19:51 被阅读42次

    1.梯度消散/爆炸

    原因
    • 梯度消散:反向传播是逐层对函数偏导相乘,因此网络很深时,最后的偏差会越来越小直到为0。
    • 梯度爆炸:由于初始化权重过大,以及拟合的过程中部分权重会由于样本的波动剧烈而导致梯度过大。

    所以根据上述的梯度消散和梯度爆炸的现象,我们可以知道产生梯度消散/爆炸的主要原因有:

    • 网络过深:越靠近输入波动越小,靠近输出波动越大。
    • 采用了不合适的激活函数

    用sigmoid激活函数时,其梯度不超过0.25,因此当链式求导时会更易发生梯度消散。因此tanh要比sigmoid好,但其梯度仍然不到1,而relu激活函数的梯度值为1,可以预防梯度消散。

    解决办法
    • 剪切梯度,正则化能防止梯度爆炸
    • relu:梯度为1,防止梯度消散。但由于负数部分恒为0,导致部分神经元不激活。
    • leakrelu:解决了relu负数部分恒为0的问题。
    • BatchNorm:Google团队提出的策略,利用批归一化有效抑制了梯度问题。
    • 残差网络:resnet中的shortcut策略也能有效解决梯度回传问题。

    相关文章

      网友评论

          本文标题:深度学习 | 梯度消散/爆炸

          本文链接:https://www.haomeiwen.com/subject/caiplqtx.html