LSTM

循环神经网络RNN(Recurrent Neural Network)是一种用于处理序列数据的神经网络。RNN都具有一种重复神经网络模块的链式形式。在标准RNN中,重复的神经网络结构往往也非常简单,例如单个tanh层,它对于短期的输入非常敏感。

LSTM(long short term memory),是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。LSTM不同之处在于它的重复模块结构不同,是4个以特殊方式进行交互的神经网络。相比普通的RNN,能用RNN实现的东西,LSTM都能做,LSTM还能够在更长的序列中有更好的表现。

LSTM的关键是怎样控制长期状态c,思路是使用三个控制开关。第一个开关,负责控制继续保存长期状态c;第二个开关,负责控制把即时状态输入到长期状态c;第三个开关,负责控制是否把长期状态c作为当前的LSTM的输出。

LSTM的输入向量有三个:当前时刻网络的输入值、上一时刻LSTM的输出值、以及上一时刻的单元状态; LSTM的输出向量有两个:当前时刻LSTM输出值、和当前时刻的单元状态。