一、GRU算法

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

  在LSTM中引入了三个门函数:输入门、遗忘门和输出门来控制输入值、记忆值和输出值。而在GRU模型中只有两个门:分别是更新门和重置门。具体结构如下图所示:    

GRU算法原理-冯金伟博客园

  图中的zt和rt分别表示更新门和重置门。更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门控制前一状态有多少信息被写入到当前的候选集 ̃t上,重置门越小,前一状态的信息被写入的越少。

  GRU组合了遗忘门和输入门到一个单独的更新门当中,也合并了细胞状态​ C和隐藏状态h​,并且还做了一些其他的改变,使得其模型比标准LSTM​模型更简单,其数学表达式为:

[公式]

  其中,门控信号zt的范围为0~1。门控信号越接近1,代表”记忆“下来的数据越多;而越接近0则代表”遗忘“的越多。

二、总结

  GRU输入输出的结构与普通的RNN相似,其中的内部思想与LSTM相似。

  与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能。考虑到硬件的计算能力和时间成本,因而很多时候我们也就会选择更加”实用“的GRU。

 

参考:

https://zhuanlan.zhihu.com/p/32481747

https://www.cnblogs.com/jiangxinyang/p/9376021.html

https://zhuanlan.zhihu.com/p/72500407

https://zhuanlan.zhihu.com/p/97027947