GRU简介

循环神经网络的隐含层变量梯度可能出现衰减或爆炸,虽然梯度裁剪可以应对梯度爆炸,但无法解决梯度衰减的问题。

门控循环神经网络(gated recurrent neural network)是为了更好地捕捉时序数据中间隔较大的依赖关系,门控循环单元(gated recurrent unit, GRU)是一种常用的门控循环神经网络。

GRU(Gate Recurrent Unit)是循环神经网络的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。

1.GRU的输入输出结构

GRU的输入输出结构与普通的RNN是一样的。

输入:t时刻的输入 x t x^{t} xt,和t-1时刻的隐藏层状态 h t − 1 h^{t-1} ht1 ,这个隐藏层状态包含了之前节点的相关信息。
输出:t时刻隐藏节点的输出 y t y^{t} yt和传递给下一个节点的隐状态 h t h^{t} ht
在这里插入图片描述

2. GRU 的内部结构

通过上一个传输下来的状态 H t − 1 H_{t-1} Ht1 和当前节点的输入 x t x_{t} xt 来获取两个门控状态。
重置门 r t = σ ( x t W x r + H t − 1 W h r + b r ) r_{t}=\sigma (x_{t}W_{xr}+H_{t-1}W_{hr}+b_{r}) rt=σ(xtWxr+Ht1Whr+br)
更新门 z t = σ ( x t W x z + H t − 1 W h z + b z ) z_{t}=\sigma (x_{t}W_{xz}+H_{t-1}W_{hz}+b_{z}) zt=σ(xtWxz+Ht1Whz+bz)

σ \sigma σ为sigmoid函数,通过这个函数可以将数据变换为0-1范围内的数值,从而来充当门控信号。

在这里插入图片描述

重置门:

候选隐藏层状态 H ~ = t a n h ( x t W h x + R t ⨀ H t − 1 W h h + b h ) \widetilde{H}=tanh(x_{t}W_{hx}+R_{t}\bigodot H_{t-1}W_{hh}+b_{h}) H =tanh(xtWhx+RtHt1Whh+bh)
其中 h t − 1 h^{t-1} ht1 包含了过去的信息, R t R_{t} Rt 为重置门, ⨀ \bigodot 为按元素相乘。

这里 R t R_{t} Rt h t − 1 h^{t-1} ht1 按元素相乘(过去的信息对预测未来有没有帮助):

R t R_{t} Rt趋近于零的时候,模型会把过去隐藏信息丢弃,只留下当前输入的信息。 当 R t R_{t} Rt趋近于1的时候,认为过去的信息都有作用,并将其添加到当前信息中。

这里的 H ~ \widetilde{H} H 主要是包含了t时刻输入的 x t x_{t} xt的信息和有针对性地对t-1时刻的隐藏层状态 H t − 1 H_{t-1} Ht1的保留。

更新门:

最终隐藏状态
H t = ( 1 − Z t ) ⨀ H t − 1 + Z t ⨀ H t ~ H_{t}=(1-Z_{t})\bigodot H_{t-1}+Z_{t}\bigodot \widetilde{H_{t}} Ht=1ZtHt1+ZtHt
其中 H t − 1 H_{t-1} Ht1包含了过去的信息, H t ~ \widetilde{H_{t}} Ht 为候选隐藏状态,Z_{t}为更新门。这一步的操作就是忘记传递下来的 H t − 1 H_{t-1} Ht1 中的某些维度信息,并加入当前节点输入的某些维度信息。

Z t Z_{t} Zt的范围为0~1,门控信号越接近1,代表”记忆“下来的过去的数据越多;而越接近0则代表”遗忘“的过去数据越多(如何组合过去隐藏状态和当前候选信息)。

( 1 − Z t ) ⨀ H t − 1 (1-Z_{t})\bigodot H_{t-1} (1Zt)Ht1,表示对原本隐藏状态的选择性“遗忘”, Z t ⨀ H t ~ Z_{t}\bigodot \widetilde{H_{t}} ZtHt ,表示对当前节点的候选隐藏状态进行选择性“记忆”(同样也会忘记一些不重要的东西)。
Z t Z_{t} Zt趋于1时,表示长期的依赖一直存在
Z t Z_{t} Zt趋于0时,表示忘记隐藏信息中一些不重要的信息

重置门决定了如何将新的输入信息与前面的记忆相结合,更新门定义了前面记忆保存到当前时间步的量。

  • 43
    点赞
  • 317
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值