RNN、LSTM、GRU 的梯度消失及梯度爆炸

本文详细探讨了RNN、LSTM和GRU在梯度消失和梯度爆炸问题上的表现,分析了RNN梯度消失的数学原理,并介绍了LSTM和GRU如何通过其独特结构缓解这一问题。同时提到了梯度截断、非饱和激活函数等解决方案。
摘要由CSDN通过智能技术生成

RNN、LSTM、GRU 的梯度消失及梯度爆炸

RNN

RNN 结构

加粗样式
RNN 所有的隐层共享参数 ( U , V , W ) (U, V, W) (U,V,W)

前向传播

假设 t t t 时刻的输入为 x t x_t xt, 隐藏状态为 s t s_t st,输出为 o t o_t ot,那么
s t = f ( W s t − 1 + U x t ) s_t = f(Ws_{t-1} + Ux_t) st=f(Wst1+Uxt) o t = g ( V s t ) o_t = g(Vs_t) ot=g(Vst)
其中, f , g f, g f,g 为激活函数, f f f 常取 t a n h tanh tanh g g g 用于预测,常取 s o f t m a x softmax softmax

损失函数

假设用于序列建模,输入为 ( x 1 , x 2 , . . . , x T ) (x_1, x_2, ..., x_T) (x1,x2,...,xT) ,标签为 ( y 1 , y 2 , . . . , y T ) (y_1, y_2, ..., y_T) (y1,y2,...,yT),模型的输出为 ( o 1 , o 2 , . . . , o T ) (o_1, o_2, ..., o_T) (o1,o2,...,oT)。那么该样本的损失一般可写为 :
L = ∑ t = 1 T L t L = \sum_{t=1}^TL_t L=t=1TLt L t = l o s s _ f u n c t i o n ( y t , o t ) L_t = loss\_function(y_t, o_t) Lt=loss_function(yt,ot)

后向传播(BPTT)

RNN 使用梯度下降更新参数 ( W , V , U ) (W, V, U) (W,V,U)。参数 V V V 的更新较为简单:
∂ L ∂ V = ∑ t = 1 T ∂ L t ∂ V = ∑ t = 1 T ∂ L t ∂ o t ∂ o t ∂ V \frac{\partial L}{\partial V} = \sum_{t=1}^{T} \frac{\partial L_t}{\partial V} = \sum_{t=1}^{T} \frac{\partial L_t}{\partial o_t} \frac{\partial o_t}{\partial V} VL=t=1TVLt=t=1TotLtVot

其中, ∂ L t ∂ o t \frac{\partial L_t}{\partial o_t} otLt 可以根据损失函数的形式以及 L t , o t , y t L_t, o_t, y_t Lt,otyt 的值进行计算, ∂ o t ∂ V \frac{\partial o_t}{\partial V} Vot 可以根据激活函数 g g g 的形式以及 o t , s t , V o_t, s_t, V ot,st,V的值进行计算。

对于参数 W , U W, U W,U s t s_t st W , U W, U W,U 的函数, s t = f ( W s t − 1 + U x t ) s_t = f(Ws_{t-1} + Ux_t) st=f(Wst1+Uxt)。但是RNN所有隐层共享参数,在这个函数中, s t − 1 s_{t-1} st1 也是 W , U W, U W,U 的函数。

对于参数 W W W U U U 同理) :
∂ L ∂ W = ∑ t = 1 T ∂ L t ∂ W = ∑ t = 1 T ∂ L t ∂ o t ∂ o t ∂ s t ∂ s t ∂ W \frac{\partial L}{\partial W} = \sum_{t=1}^{T} \frac{\partial L_t}{\partial W} = \sum_{t=1}^{T} \frac{\partial L_t}{\partial o_t} \frac{\partial o_t}{\partial s_t} \frac{\partial s_t}{\partial W}

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值