何时在LSTM上使用GRU?


95

GRU和LSTM之间的主要区别在于,GRU具有两个门(重置更新门),而LSTM具有三个门(即输入输出忘记门)。

当我们显然通过LSTM模型对网络具有更多控制权时(因为我们有三个闸门),为什么要使用GRU?在哪种情况下,GRU优于LSTM?


1
GRU的复杂性稍低一些,但在性能方面与LSTM差不多。TensorFlow中的实现可在以下位置找到:data-blogger.com/2017/08/27/gru-implementation-tensorflow
www.data-blogger.com

Answers:


64

GRU与LSTM有关,因为如果使用门控信息来防止梯度问题消失,两者都将采用不同的方式。以下是有关GRU与LSTM-的一些要点-

  • GRU像LSTM单元一样控制信息流,但不必使用存储单元。它只是暴露了完整的隐藏内容,而没有任何控制。
  • GRU相对较新,从我的角度来看,其性能与LSTM相当,但是计算效率更高指出的结构更简单)。因此,我们看到它越来越多地被使用。

有关详细说明,您可以浏览此研究论文-Arxiv.org。这篇论文很好地解释了这一切。

另外,您也可以浏览这些博客,以获得更好的主意-

希望能帮助到你!


1
除了您的答案外,还有一篇不错的论文,评估了GRU和LSTM及其各种排列之间的性能“ Google对递归网络架构的实证探索”,Google
矿物

38

*以补充上面已经很不错的答案。

  • 根据我的经验,如果您要进行语言建模(不确定其他任务),则GRU在更少的训练数据训练更快,并且比LSTM表现更好。

  • GRU更简单,因此更易于修改,例如,在网络有额外输入的情况下添加新的门。一般而言,这只是更少的代码。

  • 从理论上讲,LSTM应该比GRU 记住更长的序列,并且在需要对远距离关系建模的任务中要胜过它们。

*一些分析GRU和LSTM的其他论文。


9

这个答案实际上取决于数据集和用例。很难确定到底哪个更好。

  • 与LSTM不同,GRU公开了完整的内存,因此发挥优势的应用程序可能会有所帮助。另外,为什么还要使用GRU-它在计算上比LSTM容易,因为它只有2个门,如果它的性能与LSTM相当,那么为什么不呢?
  • 这种具有出色的图形演示门控网络在一个简单的RNN的优越性,但明确指出了它不能断定其中的任何更好。因此,如果您对使用哪种模型感到困惑,建议您对两者进行训练,然后再进行改进。

8

全格鲁单位

c~t=tanh(Wc[Grct1,xt]+bc)

Gu=σ(Wu[ct1,xt]+bu)

Gr=σ(Wr[ct1,xt]+br)

ct=Guc~t+(1Gu)ct1

at=ct

LSTM单位

c~t=tanh(Wc[at1,xt]+bc)

Gu=σ(Wu[at1,xt]+bu)

Gf=σ(Wf[at1,xt]+bf)

Go=σ(Wo[at1,xt]+bo)

ct=Guc~t+Gfct1

at=Gotanh(ct)

从方程式可以看出,LSTM具有单独的更新门和忘记门。显然,这使LSTM更复杂,但同时也更加复杂。没有简单的方法来决定针对特定用例使用哪个。您总是必须反复试验才能测试性能。但是,由于GRU比LSTM简单,因此GRU的训练时间要少得多,并且效率更高。

学分:吴安德


在手写的幻灯片之后的下一张幻灯片中,最后一个方程式不同:。这个公式在这里被证实是正确的。a<t>=Γotanh(c~<t>)
汤姆·黑尔

1

GRU比LSTM更好,因为它易于修改并且不需要存储单元,因此,比LSTM训练更快,性能更高。


12
请提供合理的参考来支持性能要求
Kari,

1

实际上,关键的区别不仅仅在于此:长期(LSTM)感知器是使用动量和梯度下降算法组成的。当您将LSTM感知器与其递归对应的RNN调和时,您会想到GRU,它实际上只是广义的递归单位或Gradient Recurrent Unit(取决于上下文),它更紧密地集成了动量和梯度下降算法。如果您是我,我将对AdamOptimizers进行更多研究。

顺便说一句,GRU是一个过时的概念。但是,如果您想对TF进行适度高级的深入了解,我可以理解您的研究。


8
我很好奇。您能解释一下为什么GRU是一个过时的概念吗?
random_user18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.