几句话总结一个算法之RNN、LSTM和GRU

RNN

一般神经网络隐层的计算是h=g(w * x),其中g是激活函数,相比于一般神经网络,RNN需要考虑之前序列的信息,因此它的隐藏h的计算除了当前输入还要考虑上一个状态的隐藏,h=g(w*x+w'*h'),其中h'是上一次计算的隐层,可见信息传递是通过隐层完成的。

LSTM

有上面普通RNN可以知道,每个状态下的RNN输入实际有两个,上一个隐藏h'以及当前输入x。RNN有个问题是对序列中的各个状态都是等同对待的,如果某个状态很重要,是无法长期影响后面的输出的。LSTM为了解决这个问题提出了类似于门控的想法,三个门控信号均有h'和x计算得到,分别是遗忘门、记忆门和输出门。遗忘门和记忆门用来融合当前候选隐层状态和上一时刻的隐层状态得到"传递信息",最后在输出门的控制下根据当前"传递信息"再计算一个隐层和输出层。

GRU

上面说的LSTM有好几个门,实际上有部分门是可以共用的,比如遗忘门和记忆门在GRU里面叫更新门;另外,输出门被移到下方用来计算候选隐藏状态,在GRU里面叫重置门,重置门有助于捕捉时间序列里短期的依赖关系,更新门有助于捕捉时间序列里长期的依赖关系。

posted on 2019-06-25 12:01  daniel-D  阅读(1184)  评论(0编辑  收藏  举报

导航