本文是学习LSTMs入门知识的总结。
LSTM(Long-Short Term Memory)是递归神经网络(RNN:Recurrent Neutral Network)的一种。
RNNs也叫递归神经网络序列,它是一种根据时间序列或字符序列(具体看应用场景)自我调用的特殊神经网络。将它按序列展开后,就成为常见的三层神经网络。常应用于语音识别。
虽然前馈神经网络取得很大成功,但它无法明确模拟时间关系,并且所有数据点都是固定长度的向量。所以就诞生了递归神经网络,递归即自我调用,递归神经网络与其他网络的不同之处在于它的隐含层是能够跨越时间点的自连接隐含层,隐含层的输出不仅进入输出端,还进入了下一个时间步骤的隐含层,所以它能够持续保留信息,能够根据之前状态推出后面的状态。
RNN每个时间状态的网络拓扑结构相同,在任意t时间下,包含输入层、隐含层、输出层。RNN的隐含层的输出一分为二,一份传给输出层,一份与下一时刻输入层的输出一起作为隐含层的输入。RNN的激活函数仍为sigmoid函数或tanh函数。
举一个应用RNN预测单词的案例:
假设我们只有四种字母的词汇“helo”,然后我们想要用训练序列“hello”训练一个RNN。这个训练序列实际上是来自于4个独立的训练案例:
1. 字母e应该在字母h出现的情况下才可能出现,
2. 字母l应该出现在he出现的情况下,