当前位置:   article > 正文

门控循环单元

门控循环单元

门控循环单元

经典的神经网络很难捕捉时间序列中时间间隔较长的依赖,因为通常会产生梯度消失或者梯度爆炸的现象,梯度消失更加常见。梯度裁剪虽然可以有效解决梯度爆炸的问题,但无法处理梯度消失。

门控循环神经网络(gated recurrent neural network)的提出,解决了捕捉时间序列里时间距离较大的依赖关系。它通过可以学习的门来控制信息流动,门控神经单元是最常用的门控循环神经网络之一。

在经典的RNN中,通常通过如下方式来计算隐藏状态和输出:
H t = ϕ ( X t W x h + H t − 1 W h h + b h ) O t = H t W h q + b q . \boldsymbol{H}_t = \phi(\boldsymbol{X}_t \boldsymbol{W}_{xh} + \boldsymbol{H}_{t-1} \boldsymbol{W}_{hh} + \boldsymbol{b}_h)\\ \boldsymbol{O}_t = \boldsymbol{H}_t \boldsymbol{W}_{hq} + \boldsymbol{b}_q. Ht=ϕ(XtWxh+Ht1Whh+bh)Ot=HtWhq+bq.
门控神经单元则是通过引入重置门(reset gate)和更新门(update gate)的概念来改变隐藏状态的计算方式。

门控神经单元的示意图:

在这里插入图片描述

更新门和更新门的计算方式如下式所示:
R t = σ ( X t W x r + H t − 1 W h r + b r ) , Z t = σ ( X t W x z + H t − 1 W h z + b z ) ,

Rt=σ(XtWxr+Ht1Whr+br),Zt=σ(XtWxz+Ht1Whz+bz),
Rt=σ(XtWxr+Ht1Whr+br),Zt=σ(XtWxz+Ht1Whz+bz),

随后门控神经单元同通过计算候选隐藏状态(candidate activation)来辅助隐藏状态的计算。

H ~ t = tanh ( X t W x h + ( R t ⊙ H t − 1 ) W h h + b h ) H t = Z t ⊙ H t − 1 + ( 1 − Z t ) ⊙ H ~ t . \tilde{\boldsymbol{H}}_t = \text{tanh}(\boldsymbol{X}_t \boldsymbol{W}_{xh} + \left(\boldsymbol{R}_t \odot \boldsymbol{H}_{t-1}\right) \boldsymbol{W}_{hh} + \boldsymbol{b}_h)\\ \boldsymbol{H}_t = \boldsymbol{Z}_t \odot \boldsymbol{H}_{t-1} + (1 - \boldsymbol{Z}_t) \odot \tilde{\boldsymbol{H}}_t. H~t=tanh(XtWxh+(RtHt1)Whh+bh)Ht=ZtHt1+(1Zt)H~t.

其中, H ~ t \tilde{\boldsymbol{H}}_t H~t 表示候选隐藏状态。可以看到,重置门控制了上一步隐藏状态如何流入到当前的候选隐藏状态更新门控制了包含当前时间步信息的候选隐藏状态如何更新当前隐藏状态

总的来看,重置门有助于GRU捕捉时间序列里短期的依赖关系,更新门有助于捕捉时间序列里长期的依赖关系。

参考文献

[1] Chung, J., Gulcehre, C., Cho, K., & Bengio, Y. (2014). Empirical evaluation of gated recurrent neural networks on sequence modeling. arXiv preprint arXiv:1412.3
555.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/342359
推荐阅读
相关标签
  

闽ICP备14008679号