GRU(门控循环单元)
GRU是2014年提出的一种LSTM改进算法. 它将忘记门和输入门合并成为一个单一的更新门, 同时合并了数据单元状态和隐藏状态, 使得模型结构比之于LSTM更为简单.
门控循环神经网络可以更好地捕捉时间序列中时间步距离较大的依赖关系,通过引入了门的概念,修改循环神经网络中隐藏状态的计算方式,它包括重置门、更新门、候选隐藏状态和隐藏状态。
重置门有助于捕捉时间序列里短期的依赖关系。更新门有助于捕捉时间序列里长期的依赖关系。
重置门和更新门
门控循环单元中的重置门(reset gate)和更新门(update gate)的输入均为当前时间步输入 $x_t$ 与上一时间步隐藏状态 $h_(t−1)$,输出由激活函数为 sigmoid 函数的全连接层计算得到。
候选隐藏状态
门控循环单元将计算候选隐藏状态来辅助稍后的隐藏状态计算。将当前时间步重置门的输出与上一时间步隐藏状态做按元素乘法(符号为 ⊙)。
如果重置门中元素值接近 0,那么意味着重置对应隐藏状态元素为 0,即丢弃上一时间步的隐藏状态。如果元素值接近 1,那么表示保留上一时间步的隐藏状态。
然后,将按元素乘法的结果与当前时间步的输入连结,再通过含激活函数 tanh 的全连接层计算出候选隐藏状态,其所有元素的值域为 [−1,1]。
隐藏状态
候选隐藏状态只是为了更新新的隐藏状态,而并不是隐藏状态。所以接下来时间步t的隐藏状态计算需要用当前的时间步更新$z_t$来对上一步的隐藏状态$h_(t−1)$和当前时间步的候选隐藏状态做组合。
计算结构图如下图所示:
和 LSTM 比较
GRU 少一个门,同时少了细胞状态$C_t$
在 LSTM 中,通过遗忘门和传入门控制信息的保留和传入;GRU 则通过重置门来控制是否要保留原来隐藏状态的信息,但是不再限制当前信息的传入。
在 LSTM 中,虽然得到了新的细胞状态 $C_t$,但是还不能直接输出,而是需要经过一个过滤的处理:$h_{t}=o_{t}∗tanh(C_t)$;同样,在 GRU 中, 虽然我们也得到了新的隐藏状态$ĥ$ , 但是还不能直接输出,而是通过更新门来控制最后的输出:$h_{t}=(1−z_{t})∗h_{t-1}+z_{t}∗ĥ_{t}$
相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型