lstm如何解决梯度消失\爆炸

RNN梯度消失的原因是,随着梯度的传导,梯度被近距离梯度主导,模型难以学习到远距离的信息。具体原因也就是∏Tk=t+1∂h(k)∂h(k−1)部分,在迭代过程中,每一步∂h(k)∂h(k−1)始终在[0,1]之间或者始终大于1。 

tanh的导数总是小于1 的, 如果Ws也是一个大于0小于1的值, 那么随着t的增大, 上述公式的值越来越趋近于0, 这就导致了梯度消失问题。 那么如果Ws很大, 上述公式会越来越趋向于无穷, 这就产生了梯度爆炸.

 

LSTM遗忘门值可以选择在[0,1]之间(sigmoid激活函数),让LSTM来改善梯度消失的情况。可以选择接近1,让遗忘门饱和,此时远距离信息梯度不消失,梯度能够很好的在LSTM中传递,很大程度上减轻了梯度消失发生的概率。也可以选择接近0,此时模型是故意阻断梯度流,遗忘之前信息,说明上一时刻的信息对当前时刻没有影响。那么整体∏Tk=t+1∂C(k)∂C(k−1)也就不会一直减小,远距离梯度不至于完全消失,也就能够解决RNN中存在的梯度消失问题。

LSTM虽然能够解决梯度消失问题,但并不能够避免梯度爆炸问题,仍有可能发生梯度爆炸。但是,由于LSTM众多门控结构,和普通RNN相比,LSTM发生梯度爆炸的频率要低很多。梯度爆炸可通过梯度裁剪解决。

 

参考:

https://www.cnblogs.com/bonelee/p/10475453.html

https://weizhixiaoyi.com/archives/491.html

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部