门控循环单元(GRU)学习笔记

GRU原理

GRU是LSTM网络的一种变体,它较LSTM网络的结构更加简单,而且效果也很好。GRU 有两个门,一个是重置门(reset gate),另一个是更新门(update gate)。重置门决定了如何将新的输入信息与前面的记忆相结合,更新门定义了前面记忆保存到当前时间步的量。如果我们将重置门设置为 1,更新门设置为 0,那么我们将再次获得标准 RNN 模型。
我们先来看下两个门的输出: R t = σ ( X t W x r + H t − 1 W h r + b r ) R_t=\sigma(X_tW_{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_tW_{xz}+H_{t-1}W_{hz}+b_z) Zt=σ(XtWxz+Ht1Whz+bz)

门控循环单元(GRU)学习笔记_第1张图片

候选隐状态: H ~ t = t a n h ( X t W x h + ( R t ⨀ H t − 1 ) W h h + b h ) \tilde{H}_t=tanh(X_tW_{xh}+(R_t\bigodot{H}_{t-1})W_{hh}+b_h) H~t=tanh(XtWxh+(RtHt1)Whh+bh)
更新门帮助模型决定到底要将多少过去的信息传递到未来。极端情况下,当 R t R_t Rt里面全是0代表这一时刻起前面的信息都不要。另一个极端情况 R t R_t Rt里面全是1时就相当于把前面的信息拿来用,等价于RNN是如何算隐层状态的。

门控循环单元(GRU)学习笔记_第2张图片

隐状态: H t = Z t ⨀ H t − 1 + ( 1 − Z t ) ⨀ H ~ t H_t=Z_t\bigodot{H_{t-1}+(1-Z_t)\bigodot{\tilde{H}_t}} Ht=ZtHt1+(1Zt)H~t
( 1 − Z t ) ⨀ H ~ t (1-Z_t)\bigodot{\tilde{H}_t} (1Zt)H~t表示对包含当前节点信息的 H ~ t {\tilde{H}_t} H~t进行选择性”记忆“, Z t ⨀ H t − 1 Z_t\bigodot{H_{t-1}} ZtHt1表示对原本隐藏状态的 H t − 1 H_{t-1} Ht1 选择性“遗忘”,忘记维度中一些不重要的信息。
假设 Z t = 1 Z_t=1 Zt=1 H t = H t − 1 H_t=H_{t-1} Ht=Ht1,等于不更新过去状态,忽略掉这个元素。

门控循环单元(GRU)学习笔记_第3张图片

你可能感兴趣的:(gru,学习,lstm)