本文基于Understanding-LSTMs进行归纳整理,对LSTM进行一个简单的介绍git
LSTM(Long Short Term Memory networks)能够解决传统RNN的长期依赖(long-term dependencies)问题。它对传统RNN的隐层进行告终构上的改进。github
这是传统的RNN的结构,内部有一个tanh层
LSTM和传统RNN结构相似,然而内部结构却有所不一样网络
图中所示的水平线就是LSTM中的状态信息,能够把这个理解为记忆(memory)post
下面介绍门的概念,LSTM中的门能够选择性的控制信息的流动,一般由一个sigmoid神经网络层和一个point wise(或者叫element wise)的乘法操做组成。
spa
LSTM中有三种门:blog
遗忘门:
能够看到这里的\(f_{t}\)由输入的\(x_t\)和\(h_{t-1}\)获得,用来控制\(C_{t-1}\)中的信息的遗忘程度。\(f_{t}\)中的每一个值都是0-1中的一个数,下界0表明彻底遗忘,上界1表明彻底不变。ci
输入门:
遗忘门决定了历史状态信息的遗忘程度,那么输入门的做用就是往状态信息中添加新东西。一样,由输入的\(x_t\)和\(h_{t-1}\)获得当前的\(i_t\)用以控制新状态信息的更新程度。这里新状态信息\(\tilde{C}\)也是经过输入的\(x_t\)和\(h_{t-1}\)计算得出。element
那么当前新的状态信息\(C_t\)就很显然能够经过上式计算得出,通俗的说就是遗忘一些旧信息,更新一些新信息进去。get
归纳一下:it
Gers & Schmidhuber (2000)提出的增长peephole connections
图中所示,在全部的门以前都与状态线相连,使得状态信息对门的输出值产生影响。但一些论文里只是在部门门前加上这样的链接,而不是全部的门
这一种变体是将遗忘门和输入门耦合在一块儿,简单来讲就是遗忘多少就更新多少新状态,没有遗忘就不更新状态,所有遗忘那就新状态所有更新进去。
这是目前比较流行的LSTM变种,不只将遗忘门和输入门统一为更新们,并且将h和c也给合并了。可参考Cho, et al. (2014)