深度学习第39讲:RNN之门控循环单元GRU

     早在此前介绍普通深度神经网络时,我们就谈到了当网络加深时可能会存在梯度爆炸或者梯度消失的情形。梯度爆炸就是梯度得到疯狂更新的现象,而梯度消失则是网络加深时前层网络的权重得不到更新的现象,二者都对神经网络的性能有着极大的伤害。通过前面的学习我们知道,针对梯度爆炸采用梯度修剪的方法即可,对于梯度消失我们更愿意尝试使用像 ReLu 这样的激活函数。对于 RNN 来说同样存在类似的问题。当 RNN 网络加深时,因为梯度消失的问题使得前层的网络权重得不到更新,RNN 的记忆性就很难生效。

     但 RNN 的一大优势就在于捕捉网络之间的长期依赖性,网络之间的记忆性使得我们能够能用其来处理序列建模问题,但梯度消失使得 RNN 各层网络之间的依赖性变弱,RNN 的优势就难以发挥出来。针对这种问题,笔者继续向大家介绍两种变体的 RNN 结构,它们能够很好的处理梯度消失的情况,使得网络之间的记忆性得到保证。这两种 RNN 结构就是门控循环单元 GRU 和长短期记忆单元 LSTM。本节笔者先和大家学习门控循环单元 GRU,下一节再继续学习长短期记忆单元 LSTM。

     经典的 RNN 结构如下图所示:

640?wx_fmt=png

     简单概述一下上图中的 RNN 结构:当前隐状态同时接受当前网络输入和前层网络的隐状态值进行激活计算,再将计算得到的结果再次进行激活作为输出。相较于上述经典的 RNN 结构,门控循环单元 GRU 又是在经典结构上如何做改进的呢?

     简单来说,GRU 的变化主要有两个,第一个在于 GRU 提供了一个新的变量 c,细胞 cell,也就是咱们的记忆细胞。记忆细胞提供了记忆的功能,在网络结构加深时仍能传递前后层的网络信息。假设第 t 个时间步的记忆细胞值为 ct,在 GRU 中,我们将 ct 等同于此前的隐状态激活值 at,所以在 GRU 单元的输出中我们有 ct=at。所以总结一下,首先我们有个新的变量 c,在第 t 个时间步上单元输出就是 at。

     然后就是在每个 GRU 单元上我们都有个 ct_hat 作为 ct 的候选值来准备更新 ct,ct_hat 的计算公式如下:

640?wx_fmt=png

     可以看到当前时间步候选值 ct_hat 的计算结合了上一个时间步的记忆细胞值和当前时间步的输入,然后再做激活处理即可。

     第二个变化在于 gated(门控)。既然叫做门控循环单元,特色肯定在于这个门控的概念了。那在 RNN 结构中,究竟啥是门?我们可以从神经网络本身的角度来理解这个门。假设门的输入是一种信息控制依据,输出则为 0-1 之间的值,表示如何调节控制数据。在 GRU 中有两种这样的门,其中最重要的一种就是更新门,更新门的计算公式如下:

640?wx_fmt=png

     对于前述计算更新 ct 的 ct_hat 公式,我们用上式这个门计算公式来觉得是否要对 ct 进行更新。可以看到的是,门计算公式总体就是将各种参数和输入都塞进了 sigmoid 激活函数,这使得门计算结果要么接近于 1 要么接近于 0。

     有了细胞记忆更新和门计算公式之后,GRU 单元需要将其放到一起使用:

640?wx_fmt=png

    观察上述计算公式:当门值结果为 1 的时候,公式的后半部分为 0 ,细胞记忆值用 ct_hat 候选值进行更新,当门值结果为 0 的时候,公式的前半部分为 0 ,细胞记忆值仍延用上一个时间步的值,表示不更新记忆值。

     以上便是简化版的 GRU 单元。

640?wx_fmt=png

     这样一个简化版的 GRU 单元最大的优点就是通过门来决定记忆。假设我们呢要输入一个句子序列的时候,是否要在某个时机更新记忆细胞都由这个门控来决定。我们再来看一下完整版的 GRU 单元。

     此前我们说 GRU 单元包括了两个门控,其中一个是记忆细胞是否更新的更新门,另一个则是完整版 GRU 中的重置门。这个重置门加在记忆细胞值是否更新的公式里面:

640?wx_fmt=png

     重置门的计算公式如下:

640?wx_fmt=png

     这个重置门我们可以将其理解为下一个记忆细胞的候选值 ct_hat 与 ct-1之间的相关性如何。

640?wx_fmt=png

     完整版的 GRU 示意图如下:

640?wx_fmt=jpeg

     以上便是循环门控单元 GRU 的简单介绍。

参考资料:

deeplearningai.com

https://towardsdatascience.com/understanding-gru-networks-2ef37df6c9be

往期精彩:


一个数据科学从业者的学习历程

640?

640?wx_fmt=jpeg

长按二维码.关注机器学习实验室

640?wx_fmt=jpeg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值