LSTM长短期记忆网络理解

LSTM长短期记忆网络:

它是一种特殊的RNN网络,可以很好的解决长时依赖问题,与常规神经网络有什么不同?
传统的RNN为
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到它的处理层非常简单,通常是一个单tanh层,通过当前输入及上一时刻的输出来得到当前输出。这样就可以利用上一时刻学习到的信息进行当前时刻的学习了。例如处理语音识别,语言模型,机器翻译等

LSTM的结构和上面相似:
在这里插入图片描述
在这里插入图片描述
LSTM可以通过门控单元可以对细胞添加和删除信息。通过门可以有选择地决定信息是否通过,它有一个sigmoid(自变量为负无穷到正无穷,值域为0到1)神经网络层和一个乘法操作组成,如下:
在这里插入图片描述
该层的输出是一个介于0到1的数,表示允许信息通过的多少,0 表示完全不允许通过,1表示允许完全通过。
第一步,遗忘门,是用来决定什么信息可以通过细胞层。这个决定由“forget gate”层通过sigmoid来控制,它会根据上一时刻的输出通过或部分通过。如下:
在这里插入图片描述
在这里插入图片描述
第二步,输入门,是产生我们需要更新的新信息。这一步包含两部分,第一个是一个“input gate”层通过sigmoid来决定哪些值用来更新(将前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数中去。将值调整到 0,1 之间来决定要更新哪些信息。0 表示不重要,1 表示重要),第二个是一个tanh层用来生成新的候选值相加,得到了候选值。最后将 sigmoid 的输出值与 tanh 的输出值相乘,sigmoid 的输出值将决定 tanh 的输出值中哪些信息是重要且需要保留下来的。这两个加起来就是丢掉不需要的信息,添加新信息的过程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
01遗忘门
在这里插入图片描述
02输入门
在这里插入图片描述
03细胞状态
在这里插入图片描述
04输出门
在这里插入图片描述