由于LSTM和双向LSTM很多博客都已经有了详细的说明,这里就不再介绍了。
这篇博客主要的是关于LSTM的一些变体的综述,每个综述都会附有论文下载链接。
LSTM是一种特殊的RNN,它对RNN进行了改进,拥有输入门、遗忘门、输出门,从而使得网络可以记住更加久远的历史信息。
论文:
“Multi-Dimensional Recurrent Neural Networks ”:
论文下载地址:http://wwwknoll.informatik.tu-muenchen.de/pub/Main/Publications/Graves2007a.pdf
传统的RNN在一维序列学习问题上有着很好的表现,例如演讲和在线书写识别。但是在多维问题上却没有很好的应用,但同时在多维问题中对于RNN这种能够使用上下文信息的优点又是特别需要的,这篇论文将RNN拓展到多维问题上,这样RNN就可以应用于图像处理、视频处理等领域上。
有许多统计模型被提出来用于解决多维数据问题,最显著的是多维HMMs,然而多维HMMs主要有两个严重的问题:(1)跑Viterbi算法的时间,时间随着数据样本呈现指数增长。(2)转变概率的个数和因此而要求的内存都随着数据维度的增加而呈指数爆炸增长形式。有许多算法被提出用于减轻上述一个或者两个问题,包括2D和3D HMMs(“Facial expression recognition with pseudo-3d hidden markov models”);独立元素(“Image classification by a two-dimensional hidden markov model”);近似Viterbi算法(“Parameter estimation of multi-dimensional hidden markov models: A scalable approach”);依赖树HMMs(“Multi-dimensional dependency-tree hidden Markov models”)。
该论文的基本思想是,将单个递归连接替换为多个递归连接,如下图所示的是二维前向传递的RNN:
反向传递RNN的形式如下图所示:
Backward pass将输出单元误差梯度反向传播到隐层。Forward pass当前隐层单元所接收到的信息有:①在此之前所激活的隐层单元值;②对应的当前输入单元。Backward pass当前隐层单元所接收到的信息有:①在此之后所激活的隐层单元值;②对应的输出单元的误差梯度。Forward pass和Backward pass的算法流程图如下所示:
就拿Forward pass来简单地解释一下,前四行相当于把输入的所有情况进行遍历,第五行开始对每个隐层进行更新操作。第六行的意思是当前的输入向量x与权值向量w相乘。第九行的意思是将所有与之相连的之前时刻的隐层节点乘上权值向量,再加上第六行的结果。这与LSTM中的更新公式是类似的,只不过没有了门的控制(毕竟LSTM是一种特殊的RNN)。
“Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting ”
论文下载地址:https://papers.nips.cc/paper/5955-convolutional-lstm-network-a-machine-learning-approach-for-precipitation-nowcasting.pdf
该篇论文从机器学习的角度出发,对降水量预测的问题进行研究。它将降水量预测看作是一个时空序列预测问题,并且是按照“Sequence to sequence learning with neural networks”中的学习框架。它通过对FC-LSTM进行拓展,该篇论文提出的LSTM的变体是ConvLSTM,其在input-state和state-state转变中加入了卷积结构。
通过已经收集到的历史雷达图像来预测局部地区未来一段时间的降水量。雷达图的结构如下所示: