LSTM(Long short term memory)

LSTM叫长短期记忆网络(Long short term memory),是RNN循环神经网络(Recurrent Neural Network)的一个变形。
LSTM的结如下:
LSTM(Long short term memory)LSTM的核心是细胞状态,用贯穿细胞的水平线表示。
LSTM(Long short term memory)
LSTM多了一个表示cell记忆的值。也就是我们不仅要更新当前cell的输出,我们还要思考,哪些东西可以记在我们的cell里,记多少?既然有了记忆,那么我们的输入不仅仅有上一时刻的输出,此刻的输入,还有cell本身存储的那部分信息。
LSTM内部分为三个门,遗忘门,输入门,输出门

遗忘门

遗忘门能决定应丢弃或保留哪些信息。f代表forget遗忘,h表示前一个状态隐藏状态的信息,进行Sigmoid计算,0表示全忘记,1表示全保留。
LSTM(Long short term memory)

输入门

输入门用来更新单元状态。C代表单元状态,i为input代表输入,h表示前一个状态隐藏状态的信息。先将先前隐藏状态的信息和当前输入的信息输入到Sigmoid函数,在0和1之间调整输出值来决定更新哪些信息,0表示不重要,1表示重要。也可将隐藏状态和当前输入传输给Tanh函数,并在-1和1之间压缩数值以调节网络,然后把Tanh输出和Sigmoid输出相乘,Sigmoid输出将决定在Tanh输出中哪些信息是重要的且需要进行保留。
tanh是双曲函数中的一个,tanh()为双曲正切。
LSTM(Long short term memory)
LSTM(Long short term memory)如图显示两个门是如何控制遗忘和记忆的。
LSTM(Long short term memory)

输出门

我们确定了当前的状态,那么当前状态的多少可以进行输出呢?控制Ct输出的门叫输出门,用Ot表示。
输出门能决定下个隐藏状态的值,隐藏状态中包含了先前输入的相关信息。当然,隐藏状态也可用于预测。首先把先前的隐藏状态和当前输入传递给Sigmoid函数;接着把新得到的单元状态传递给Tanh函数;然后把Tanh输出和Sigmoid输出相乘,以确定隐藏状态应携带的信息;最后把隐藏状态作为当前单元输出,把新的单元状态和新的隐藏状态传输给下个时间步。LSTM(Long short term memory)