GRU门控循环单元
GRU门控循环单元
什么是GRU
LSTM的一个稍微更显着的变化是由Cho介绍的门控循环单元(GRU)。 它将忘记和输入门组合成一个单一的“更新门”。它还将单元格状态(memory cell,即Ct)和隐藏状态(ht)合并,并进行了一些其他更改。 所得到的模型比标准LSTM模型更简单,并且越来越受欢迎。
如下图所示,GRU就是把LSTM的输入门和遗忘门组合在一起,少了一个门,参数量降了一些,但是性能和LSTM几乎一样。下图的条状物就是参数量,红线就是准确率。

GRU的运作方式
在看GRU之前,我们先回顾一下LSTM,可见LSTM有两个向量会循环传递,一个是memory cell的Ct和隐藏状态ht。其中,Ct经历的步骤比较少,变化较慢,后一个和前一个比较像,而ht经历的步骤很多,所以变化较大。

而GRU的框架如下所示,它只传递ht,不再有Ct。

那GRU里面的具体结构是什么呢?
我们把上一时刻的ht−1和当前的输入Xt拼接在一起,这里和LSTM差不多。
然后分别经过两个神经网络,分别得到两个不同的向量r和z,即reset gate和update gate。

然后把向量r和ht−1逐元素相乘,得到的向量结果再和xt进行拼接,然后经过神经网络得到向量h′。

然后如下图所示,把向量z一个人当两个人来用,即同时会用在两个地方。
如果z的值接近1,则ht−1对ht的影响比较大,h′对结果的影响比较小,ht−1和h′是互相拮抗的,一个多,另一个就少。

在GRU里,ht的角色比较像LSTM中的Ct,不妨再看下LSTM中计算Ct的公式,如下图所示,GRU里的update gate(z)的角色,就相当于LSTM里遗忘门(zf)的角色。而1−z相当于LSTM中的输入门(zi),所以GRU中的遗忘门和输入门是联动的。具体就是说,如果有新的信息进来,才会忘掉之前的信息,而如果没有新信息进来,就不会忘记信息;当你忘记信息的时候,就会有新的信息进来,这个逻辑听上去也是颇为合理的。
前面已经讲过,LSTM中Ct的变化是慢的,ht的变化是快的。所以,GRU传递到下一个状态的信息ht,和LSTM中的Ct一样,是可以保留得比较久的。

由下图可见,LSTM的参数有四组,而GRU的参数只有三组,所以GRU的参数量是比LSTM少的。

参考资料
本文参考该视频。
===
Last updated