RNN神经网络的梯度消失和梯度爆炸

时间序列的反向传播算法
得到:
∂ h t ∂ h s = ∂ h t ∂ h t − 1 ∂ h t − 1 ∂ h t − 2 . . . ∂ h s + 1 ∂ h s \frac{\partial h_t}{\partial h_s} = \frac{\partial h_t}{\partial h_{t-1}} \frac{\partial h_{t-1}}{\partial h_{t-2}} ... \frac{\partial h_{s+1}}{\partial h_{s}} hsht=ht1htht2ht1...hshs+1

注意到:
h t = W f ( h t − 1 ) + U x t h_t=Wf(h_{t-1})+Ux_t ht=Wf(ht1)+Uxt

计算jacobian 矩阵
∂ h t ∂ h s = ∏ k = s + 1 t W T d i a g [ f ′ ( W h k − 1 ) ] \frac{\partial h_t}{\partial h_s} = \prod^t_{k=s+1}W^Tdiag[f^{'}(Wh_{k-1})] hsht=k=s+1tWTdiag[f(Whk1)]

在这里插入图片描述
根据柯西-西瓦兹不等式
∂ h t ∂ h t − 1 ≤ ∣ ∣ W T ∣ ∣ ∣ ∣ d i a g [ f ′ ( W h t − 1 ) ] ∣ ∣ ≤ σ m a x γ \frac{\partial h_t}{\partial h_{t-1}} \leq ||W^T||||diag[f^{'}(Wh_{t-1})]|| \leq \sigma_{max} \gamma ht1htWTdiag[f(Wht1)]σmaxγ

σ m a x \sigma_{max} σmax W T W^T WT矩阵的最大奇异值, γ \gamma γ ∣ ∣ d i a g [ f ′ ( W h t − 1 ) ] ∣ ∣ ||diag[f^{'}(Wh_{t-1})]|| diag[f(Wht1)]上界, γ \gamma γ依赖激活函数f, ∣ t a n h ( x ) ′ ∣ ≤ 1 |tanh(x)^{'}|\leq 1 tanh(x)1, σ ( x ) ′ ≤ 1 4 \sigma(x)^{'} \leq \frac{1}{4} σ(x)41
所以
∂ h t ∂ h s = ∂ h t ∂ h t − 1 ∂ h t − 1 ∂ h t − 2 . . . ∂ h s + 1 ∂ h s ≤ ( σ m a x γ ) t − s \frac{\partial h_t}{\partial h_s} = \frac{\partial h_t}{\partial h_{t-1}} \frac{\partial h_{t-1}}{\partial h_{t-2}} ... \frac{\partial h_{s+1}}{\partial h_{s}} \leq (\sigma_{max}\gamma)^{t-s} hsht=ht1htht2ht1...hshs+1(σmaxγ)ts
由于参数共享 W W W,RNN存在梯度消失或者梯度爆炸。

解决办法:

梯度爆炸:

  • 权重惩罚 Weight Penalty (不work)
    ∣ ∣ W ∣ ∣ 2 ≤ I ||W||_2 \leq I W2I
    不足:
    (1)W约束比较小的范围内,建模不足
    (2)信息比较快的衰减(梯度消失)
    (3)没办法长时序的建模

  • 梯度裁剪Gradient Clipping (work)

高曲率墙的存在造成了困难
虚线:当范数高于一个值的时候,梯度重新表定为固定的打小,引入了额外的裁剪。

在这里插入图片描述在这里插入图片描述

其他的方法
当W是正交矩阵的时候, W T W = I W^TW=I WTW=I,
( W T v ) T ( W T v ) = v T W W T v = v T v (W^Tv)^T(W^Tv) = v^TWW^Tv = v^Tv (WTv)T(WTv)=vTWWTv=vTv
初始化的时候W可以是正交的矩阵,但是训练的时候W会发生变化,无法保证是正交矩阵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝鲸123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值