RNN 真的会梯度消失么

学过RNN的想必都听过下面的言论,

“RNN容易产生梯度消失和梯度爆炸”,“RNN不能捕获长期记忆”,那么

RNN为什么不能捕获长期记忆?RNN真的就会发生梯度消失和爆炸吗?

先来个答案,当序列很长的时候,RNN确实不能捕获长期依赖关系,也确实容易梯度爆炸,但是否容易梯度消失,却要好好分析下,亦或者说,RNN梯度消失不同于我们往常理解的“MLP、CNN等里面的梯度消失”。详细解说请往下看~

一切要从BPTT说起~

目录

(1) RNN中的梯度消失与梯度爆炸

(2) 梯度消失为什么会成为一个问题?

(3)怎么看待RNN不能捕获长期依赖关系?


(1) RNN中的梯度消失与梯度爆炸

RNN中loss对某个参数的梯度由2部分相加组成,一部分是横向沿着时间轴传播的,另一部分是纵向沿着网络层数传播的,一般而言,RNN的网络层数不会太深,但时间轴却可能很长。所以纵向部分的不会出现梯度消失或爆炸的,横向部分会梯度爆炸,但不会梯度消失(因为RNN的各个时间步是共享参数的,所以梯度=各个时间步的梯度之和,即使梯度越传越弱,那也只是远距离的梯度很小,但近距离的梯度依旧有),两者相加之后,梯度不会消失,但依旧会爆炸(只要横向或纵向一者爆炸则爆炸)。

其实我们常说的RNN容易梯度消失,这里的梯度消失不同于我们“MLP、CNN”等里面的梯度消失,这里的梯度消失的含义是在时间轴上,梯度被近距离的梯度主导。如下图,

                                            

                                                                RNN梯度消失(图片来自CS224n的ppt)

[矩阵的二范数||W||_2=\sqrt{\lambda_{max}(W^TW) }=\lambda_{max}W(因为令W=UDV^T,则W^TW=UD^2U,所以等式成立)]

当w的最大特征值大于1的时候,会发生梯度爆炸,小于1则会发现梯度消失。

(2) 梯度消失为什么会成为一个问题?

梯度消失会导致RNN不能捕获长期依赖关系,如下图(图片来自CS224n的ppt))

                             

(3)怎么看待RNN不能捕获长期依赖关系?

从正向传播来看,在时间轴上,不断的连乘使得较远的消息几乎为0,所以在生成单词词,几乎没有参考到前面的信息,所以存在捕捉长距离依赖的问题。

从反向传播来看,见(2)。

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值