门控循环单元 GRU 是什么?比 LSTM 更简洁的循环网络
门控循环单元(Gated Recurrent Unit,GRU)是循环神经网络的一种变体,由 Kyunghyun Cho 等人在 2014 年提出,最早出现在论文《用 RNN 编码器-解码器学习短语表示以进行统计机器翻译》中。同年,Chung 等人在论文《门控循环神经网络在序列建模上的经验评估》中,系统比较了 GRU、LSTM 和传统 RNN 的表现。
它要解决的问题
传统的循环神经网络在处理长序列时会遇到梯度消失问题:信息在一步步传递中逐渐衰减,网络很难记住很久以前的内容。1997 年提出的长短期记忆网络(LSTM)用三个门(遗忘门、输入门、输出门)和一个单独的记忆单元来解决这个问题,效果很好,但结构比较复杂、参数较多。GRU 的设计目标是用更简单的结构达到类似的效果。
两个门
GRU 只有两个门,也没有单独的记忆单元,直接用隐藏状态来传递信息。
更新门:决定在多大程度上保留过去的信息,又在多大程度上用新信息替换。它的作用相当于把 LSTM 的遗忘门和输入门合二为一:更新门的值接近 1 时,基本保留旧的状态;接近 0 时,主要采用新计算出的状态。这让网络能够在需要的时候把重要的信息一直传递下去,不被冲淡。
重置门:决定在计算新的候选状态时,要忽略多少过去的信息。当重置门接近 0 时,网络会“忘掉”之前的状态,只根据当前的输入来计算,这有助于捕捉序列中短期的依赖关系。
和 LSTM 比
GRU 的参数比 LSTM 少,计算速度更快,在数据量不大的情况下也更不容易过拟合。在很多任务上,两者的效果相差不大,没有一个绝对胜出:Chung 等人的实验显示,门控的循环网络都明显优于传统的 RNN,而 GRU 和 LSTM 之间的优劣取决于具体的任务和数据。实践中,GRU 常被用于对效率要求较高的场景。在 Transformer 兴起之前,GRU 和 LSTM 一起,是语音识别、机器翻译、文本生成、时间序列预测等任务中最常用的序列模型。如今,GRU 的门控思想仍然出现在一些新的高效架构中。