首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LSTM和GRU有什么联系和区别?

各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。

LSTM结构中的C(cell),和GRU结构中的H(隐藏单元),有什么联系和区别?

LSTM中的C和GRU中的H都是经过了遗忘和输入门(GRU中的更新们也是由遗忘和输入门组成的),也都是未经过输出门而直接往后传递的。他们有什么区别呢?

我自己的猜想:GRU的重置门就相当于LSTM中的更新门。

LSTM中的C经过输出门之后形成了H,因为有输出门所以H更关注当前状态的信息,而C携带着之前的所有状态的信息。GRU中的H就相当于LSTM中的C同样也携带着之前状态的信息,GRU中的重置门就相当于LSTM中的输出门,重置之后的H就相当于LSTM中更关注当前状态的H。

如图所示,左边为第一种形式也是网上常见的GRU画法。但是为了方便和LSTM对比,掌柜画成了右边的形式,请先行对比。

然后我们再来将LSTM与上面右边的GRU结构放到一起进行对比。

先对比两者的输出:

在LSTM中,单元状态

经非线性变换

作用后,再经过输出门作用后得到整个单元的输出

;而在GRU中,融入新信息后的单元状态就直接作为了 整个单元的输出

。因此在LSTM中,单元输出

可以看成是对单元状态

的再次筛选,而在GRU中去掉了这一步。

再对比两者的遗忘门与输入门:

在LSTM中,遗忘门是通过单元输出

与新输入

训练得到的;而在GRU中,遗忘门也是通过单元输出

与新输入

训练得到的。不同点在于,LSTM通过

分别训练了一个遗忘门和输入门;而在GRU中这两者是互补的,也就是遗忘门和输入门在对信息进行筛选时有一种互补的效果。脑子想象出一个位置矩阵,在GRU中如果历史信息中某些位置的信息应该被减弱,那么在历史信息结合新输入的信息时,这些位置的信息就应该得到加强(并且从动机上来说也很有道理,同时还简化了模型)。

最后对比两者对新输入的处理:

在LSTM中,新的输入由当前时刻的输入

和历史单元输出

组成;而在GRU中,新的输入由当前时刻的输入

和经筛选后的历史单元输出

组成。在GRU中,

经过再次筛选后才同

结合,而在LSTM中没有(但可以看成是LSTM在输出的时候就已经进行筛选了,即LSTM中的输出门可以等价的看成是GRU中的重置门)。两者在这方面差别不算太大。

总结就是,LSTM中的

和GRU中的

在整体形式上没有区别,都是先对历史信息就行筛选,然后再融入新的信息。但是,在细节上GRU通过同一个共用的门,以互补的形式来减弱和加强信息,这应该算得上是GRU中最核心的部分。至于最后在对新输入的处理,基本没有太大的差别。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220214A011FU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券