GRU原理
GRU是LSTM网络的一种变体,它较LSTM网络的结构更加简单,而且效果也很好。GRU 有两个门,一个是重置门(reset gate),另一个是更新门(update gate)。重置门决定了如何将新的输入信息与前面的记忆相结合,更新门定义了前面记忆保存到当前时间步的量。如果我们将重置门设置为 1,更新门设置为 0,那么我们将再次获得标准 RNN 模型。
我们先来看下两个门的输出:Rt=σ(XtWxr+Ht−1Whr+br)R_t=\sigma(X_tW_{xr}+H_{t-1}W_{hr}+b_r)Rt=σ(XtWxr+Ht−1Whr+br)、
Zt=σ(XtWxz+Ht−1Whz+bz)Z_t=\sigma(X_tW_{xz}+H_{t-1}W_{hz}+b_z)Zt=σ(XtWxz+Ht−1Whz+bz)
候选隐状态:H~t=tanh(XtWxh+(Rt⨀Ht−1)Whh+bh)\tilde{H}_t=tanh(X_tW_{xh}+(R_t\bigodot{H}_{t-1})W_{hh}+b_h)H~t=tanh(XtWxh+(Rt⨀Ht−1)Whh+bh)
更新门帮助模型决定到底要将多少过去的信息传递到未来。极端情况下,当RtR_tRt里面全是0代表这一时刻起前面的信息都不要。另一个极端情况RtR_tRt里面全是1时就相当于把前面的信息拿来用,等价于RNN是如何算隐层状态的。
隐状态:Ht=Zt⨀Ht−1+(1−Zt)⨀H~tH_t=Z_t\bigodot{H_{t-1}+(1-Z_t)\bigodot{\tilde{H}_t}}Ht=Zt⨀Ht−1+(1−Zt)⨀H~t
(1−Zt)⨀H~t(1-Z_t)\bigodot{\tilde{H}_t}(1−Zt)⨀H~t表示对包含当前节点信息的H~t{\tilde{H}_t}H~t进行选择性”记忆“,Zt⨀Ht−1Z_t\bigodot{H_{t-1}}Zt⨀Ht−1表示对原本隐藏状态的Ht−1H_{t-1}Ht−1 选择性“遗忘”,忘记维度中一些不重要的信息。
假设Zt=1Z_t=1Zt=1,Ht=Ht−1H_t=H_{t-1}Ht=Ht−1,等于不更新过去状态,忽略掉这个元素。
本文详细介绍了GRU(Gate Recurrent Unit)的工作原理,包括其重置门和更新门的作用,以及如何结合输入信息和历史记忆。通过这两个门的控制,GRU提供了一种高效且结构简单的RNN替代方案。
653

被折叠的 条评论
为什么被折叠?



