GRU概述

来源:人人都能看懂的GRU - 知乎

GRU

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

GRU与LSTM在实际表现上相差无几,但是由于GRU更便于计算,更容易进行训练,能够在很大程度上提高模型的训练效率,所以被提出来了。

GRU的输入输出结构

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

当前的输入x_t,上一节点传递下来的隐状态(hidden state)h_t-1,这个隐状态包含了之前节点的相关信息。

结合上面两个数据就可以得到当前节点的输出y_t和传递给下一个节点的隐状态h_t。

GRU的内部结构

首先我们会从上一个节点传递下来的状态h_t-1以及当前的输入x_t来获取两个门控状态,如下图,r控制重置的门控,z为控制更新的门控。

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

得到门控信号之后,首先我们先用重置门“重置”h_t-1,,再让h_t-1与x_t进行拼接,再通过一个tanh激活函数来将数据放缩到-1~1的范围中。得到下面h'。

这里的 h' 主要是包含了当前输入的 x_t 数据。有针对性地对 h' 添加到当前的隐藏状态,相当于”记忆了当前时刻的状态“。类似于LSTM的选择记忆阶段。

最后GRU最重要的一个步骤,可以称之为“更新记忆”阶段。

这个阶段我们同时进行记忆和遗忘两个步骤。使用之前得到的门控z。

如果z中的值越靠近0,则对上个cell传过来的状态选择遗忘的越多,对这次的输入生成的h'记忆的越多。

GRU很聪明的一点就在于,我们使用了同一个门控 z 就同时可以进行遗忘和选择记忆(LSTM则要使用多个门控)equation?tex=zuploading.4e448015.gif转存失败重新上传取消(可以看到这里的遗忘z和选择(z-1)是联动的,就是说我们对于传递过来的信息我们会选择性的遗忘,但是遗忘了多少我们则会通过选择来弥补,这里两个动作是相互平衡的)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值