GRU门控循环单元
Last updated
Last updated
LSTM的一个稍微更显着的变化是由Cho介绍的门控循环单元(GRU)。 它将忘记和输入门组合成一个单一的“更新门”。它还将单元格状态(memory cell,即)和隐藏状态()合并,并进行了一些其他更改。 所得到的模型比标准LSTM模型更简单,并且越来越受欢迎。
如下图所示,GRU就是把LSTM的输入门和遗忘门组合在一起,少了一个门,参数量降了一些,但是性能和LSTM几乎一样。下图的条状物就是参数量,红线就是准确率。
在看GRU之前,我们先回顾一下LSTM,可见LSTM有两个向量会循环传递,一个是memory cell的和隐藏状态。其中,经历的步骤比较少,变化较慢,后一个和前一个比较像,而经历的步骤很多,所以变化较大。
而GRU的框架如下所示,它只传递,不再有。
那GRU里面的具体结构是什么呢?
我们把上一时刻的和当前的输入拼接在一起,这里和LSTM差不多。
然后分别经过两个神经网络,分别得到两个不同的向量和,即reset gate
和update gate
。
然后把向量和逐元素相乘,得到的向量结果再和进行拼接,然后经过神经网络得到向量。
然后如下图所示,把向量一个人当两个人来用,即同时会用在两个地方。
如果的值接近1,则对的影响比较大,对结果的影响比较小,和是互相拮抗的,一个多,另一个就少。
在GRU里,的角色比较像LSTM中的,不妨再看下LSTM中计算的公式,如下图所示,GRU里的update gate()的角色,就相当于LSTM里遗忘门()的角色。而相当于LSTM中的输入门(),所以GRU中的遗忘门和输入门是联动的。具体就是说,如果有新的信息进来,才会忘掉之前的信息,而如果没有新信息进来,就不会忘记信息;当你忘记信息的时候,就会有新的信息进来,这个逻辑听上去也是颇为合理的。
前面已经讲过,LSTM中的变化是慢的,的变化是快的。所以,GRU传递到下一个状态的信息,和LSTM中的一样,是可以保留得比较久的。
由下图可见,LSTM的参数有四组,而GRU的参数只有三组,所以GRU的参数量是比LSTM少的。
本文参考该视频。
===