前面我们介绍了GRU,得到了很多公式,具体表示如下:c~<t>=tanh(Wc[Γr∗c<t−1>,x<t>]+bc)Γu=σ(Wu[c<t−1>,x<t>]+bu)Γr=σ(Wr[c<t−1>,x<t>]+br)c<t>=Γu∗c~<t>+(1−Γu)∗c<t−1>c<t>=a<t>对于GRU我们有c<t>=a<t>,还有两个门,更新门Γu和相关门Γr,c~<t>是代替记忆细胞的候选值,然后我们使用更新门Γu来决定是否要用c~<t>更新c<t>。
LSTM甚至是一个比GRU更加强大和通用的版本,介绍一下LSTM的主要公式,我们继续回到记忆细胞c<t>和更新它的c~<t>上,其公式如下所示:c~<t>=tanh(Wc[a<t−1>,x<t>]+bc)注意在LSTM中不再有a<t>=c<t>的情况,这是现在我们用的公式,我们不再用Γr。
我们像以前那样,有一个更新门Γu和表示更新的参数Wu,公式表示如下:Γu=σ(Wu[a<t−1>,x<t>]+bu)一个LSTM的新特性是不只有一个更新门控制,我们将用不同的项来替代它们,要用别的项来取代公式c<t>=Γu∗c~<t>+(1−Γu)∗c<t−1>中的Γu和1−Γu,这里我们用Γu和Γf,所以这个Γf门就是一个sigmoid函数,其计算公式为Γf=σ(Wf[a<t−1>,x<t>]+bf)然后我们有一个新的sigmoid的输出门,其计算公式为Γo=σ(Wo[a<t−1>,x<t>]+bo)于是记忆细胞的更新值。
于是记忆细胞的更新公式为c<t>=Γu∗c~<t>+(Γf)∗c<t−1>所以这给了记忆细胞选择权去维持旧的值c<t−1>或者加上新的值c~<t>,所以这里用了单独的更新门和遗忘门。
最后的c<t>=a<t>公式变为a<t>=Γo∗tanh c<t>以上就是LSTM的主要的式子了。LSTM中有三个门而不是两个门,整理一下,LSTM中用到的所有式子如下图所示.

用下面的图片稍微解释一下

以上就是LSTM,你可能会想到,这里和一般使用的版本会有所不同,最常用的版本可能是,门值不仅取决于a<t−1>和x<t>,有时候也可以偷窥一下c<t−1>的值,这叫做窥视孔连接。窥视孔连接,其实意思就是门值不仅仅取决于a<t−1>和x<t>,也取决于上一个记忆细胞的值,然后窥视孔连接就可以结合这三个门来计算了。
如你所见,LSTM主要的区别在于一个技术上的细节,比如有一个100维的向量,有一个100维的隐藏的记忆细胞单元,然后比如第50个c<t−1>元素只会影响第50个元素对应的那个门,所以关系是一对一的,于是并不是任意的这100维的c<t−1>可以影响所有的门元素,相反的,第一个c<t−1>元素只能影响门的第一个元素,第二个元素影响对应的第二个元素,如此类推。