LSTM及其变体

由于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转变中加入了卷积结构。

      通过已经收集到的历史雷达图像来预测局部地区未来一段时间的降水量。雷达图的结构如下所示:

LSTM是一种循环神经网络(RNN)的变体,广泛应用于序列数据处理任务中。根据引用中提供的信息,以下是几种常见的LSTM及其变体的性能对比: 1. BasicLSTMCell:这是最基本的LSTM单元,由标准的LSTM结构组成。它具有较低的计算复杂度和内存消耗,适用于大多数任务。 2. static_rnn:这是一个静态循环网络,它使用BasicLSTMCell构建。静态循环网络适用于序列长度固定的情况,但对于变长序列需要进行填充处理。 3. dynamic_rnn:这是一个动态循环网络,也使用BasicLSTMCell构建。相比静态循环网络,动态循环网络能够处理变长序列,不需要进行填充处理。 4. LSTMBlockCell和LSTMBlockFusedCell:这两个变体是为了提高性能而设计的。LSTMBlockCell使用基于计算图的操作,而LSTMBlockFusedCell使用基于计算图的操作和GPU加速。它们在计算速度和内存效率方面相对较高,适用于大规模数据集和复杂任务。 5. contrib.cudnn_rnn:这是TensorFlow的一个贡献库,提供了与NVIDIA的cuDNN库集成的高性能LSTM实现。该实现能够利用GPU进行加速,适用于需要大规模并行计算的任务。 根据引用中提供的信息,理解LSTM的基本结构对于理解其变体的结构是非常重要的。一旦掌握了基本结构,理解和应用不同的变体就会相对容易。 另外,引用提到了双向LSTM,它由一个正向的LSTM和一个逆序的LSTM组成。双向LSTM能够同时利用过去时刻和未来时刻的信息,因此在预测任务上通常比单向LSTM更准确。 综上所述,现有的LSTM及其变体在性能方面有所区别。选择适合特定任务和数据集的LSTM变体需要考虑计算资源、数据特征和性能要求等因素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [TensorFlow 学习笔记 - 几种 LSTM 对比](https://blog.youkuaiyun.com/myonelotus/article/details/80199373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [长短期记忆网络(Long Short-Term Memory,LSTM及其变体双向LSTM和GRU](https://blog.youkuaiyun.com/weixin_42111770/article/details/80900575)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值