0
点赞
收藏
分享

微信扫一扫

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有什么联系和区别?_公众号_02


  • 先对比两者的输出:
    在LSTM中,单元状态 C t C_t Ct​经非线性变换 t a n h tanh tanh作用后,再经过输出门作用后得到整个单元的输出 h t h_t ht​;而在GRU中,融入新信息后的单元状态就直接作为了 整个单元的输出 H t H_t Ht​。因此在LSTM中,单元输出 h t h_t ht​可以看成是对单元状态 C t C_t Ct的再次筛选,而在GRU中去掉了这一步。
  • 再对比两者的遗忘门与输入门:
    在LSTM中,遗忘门是通过单元输出 h t h_t ht​与新输入 x t x_t xt​训练得到的;而在GRU中,遗忘门也是通过单元输出 H t H_t Ht​与新输入 x t x_t xt​训练得到的。不同点在于,LSTM通过 h t h_t ht​和 x t x_t xt​分别训练了一个遗忘门和输入门;而在GRU中这两者是互补的,也就是遗忘门和输入门在对信息进行筛选时有一种互补的效果。脑子想象出一个位置矩阵,在GRU中如果历史信息中某些位置的信息应该被减弱,那么在历史信息结合新输入的信息时,这些位置的信息就应该得到加强(并且从动机上来说也很有道理,同时还简化了模型)。
  • 最后对比两者对新输入的处理:
    在LSTM中,新的输入由当前时刻的输入 x t x_t xt​和历史单元输出 h t h_t ht​组成;而在GRU中,新的输入由当前时刻的输入 x t x_t xt​和经筛选后的历史单元输出 H t H_t Ht​组成。在GRU中, H t H_t Ht​经过再次筛选后才同 x t x_t xt​结合,而在LSTM中没有(但可以看成是LSTM在输出的时候就已经进行筛选了,即LSTM中的输出门可以等价的看成是GRU中的重置门)。两者在这方面差别不算太大。

总结就是,LSTM中的 C t C_t Ct和GRU中的 H t H_t Ht在整体形式上没有区别,都是先对历史信息就行筛选,然后再融入新的信息。但是,在细节上GRU通过同一个共用的门,以互补的形式来减弱和加强信息,这应该算得上是GRU中最核心的部分。至于最后在对新输入的处理,基本没有太大的差别。青山不改,绿水长流,月来客栈见!

LSTM与GRU有什么联系和区别?_线性变换_03



举报

相关推荐

0 条评论