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

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


对于在input-state和state-state的转变中加入卷积操作来获得历史信息以及当前输入信息图示过程如下所示:


既然在state-state与input-state的转化中加入了卷积操作,那么对应的更新公式也就要发生相对应的变化,更新后的公式如下所示,其中“*”代表着卷积操作:


ConvLSTM可以作为更加复杂网络的基石,在该篇论文中用于降水预测问题的网络结构如下图所示,它分为encoding network和forecasting network两部分:


encoding network将整个输入序列压缩成状态张量,forecasting network展开状态张量并且给出最终的预测结果。

“LSTM: A search space odyssey”

论文地址:http://www.jiqizhixin.com/wp-content/uploads/2015/11/5.-LSTM_-A-Search-Space-Odyssey-.pdf

      该篇论文分析了“Framewise phoneme classification with bidirectional LSTM and other neural network architectures”中LSTM的八种变形,这八种变形都是在计算部件上的变形,分析结果显示这八种在原LSTM上的变形都没能显著地提升LSTM的性能,并且证明了遗忘门和输出激活函数是最重要的部件。在进行比较时,以论文“Framewise phoneme classification with bidirectional LSTM and other neural network architectures”中的LSTM结构作为参照,并且将其称之为vanilla LSTM。vanilla LSTM的block结构如下所示:


最初始的LSTM(“Long Short Term Memory”)是没有遗忘门和peepholes的,而遗忘门的加入是在论文“Learning to forget: Continual prediction with LSTM”中提出的。而peepholes的提出是为了精准的时间控制,在论文“Recurrent nets that time and count”中被提出。论文“Framewise phoneme classification with bidirectional LSTM and other neural network architectures”提出了全梯度,这一方法使得LSTM的梯度可以通过有限的差异来获得,使得对LSTM的实现更加稳定可靠。

      并且该论文中的对于vanilla LSTM的八种变形都是在某一方面的修改、增加或删除,因此他们产生的效果能够被独立开来。这八种vanilla LSTM的变形如下所示:

1、没有输入门(NIG)

2、没有遗忘门(NFG)

3、没有输出门(NOG)

4、没有输入激活函数(NIAF)

5、没有输出激活函数(NOAF)

6、没有peepholes(NP)

7、耦合输入门和遗忘门(CIFG)

8、Full Gate Recurrent(FGR)

网络结构采用的是双向LSTM,前六个可以很容易地理解,就是简单地将对应的部件去除就完成了。CIFG通过仅仅使用一个门来控制输入和cell状态的递归自连接(“Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation”)。FGR通过增加LSTM(“Long Short Term Memory”)中所有门之间的递归连接,它增加了9个递归权值矩阵,因此大大增加了参数量。

“Recurrent nets that time and count”

论文地址:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=861302

      该论文通过将cells内部的peephole connections增广到各个门上,这样的操作使得LSTM更加容易区别不同的时间序列,例如一个序列被分为50个时间步和49个时间步,改进的LSTM能够明显地区分开两个时间序列。并且这项改进无需多余的训练、额外的设置、强制指导或者对先前LSTM性能的降低,同时该篇论文中的LSTM变体能够学习产生非常稳定的非线性序列以及准确的时间戳。

      在LSTM中,每个block含有一个或者多个cell;输入门、遗忘门、输出门是被block中所有cell所共享的。

      在保持原有各门完整的前提下,通过加入了peephole connections的LSTM block如下图所示:


在学习过程当中,为了保持CEC的完整,没有任何来自门的错误信号通过peephole-connection反向传递至CEC,在进行反向传递时是基于梯度的,改变的并不是cell state而是peephole-connection路径上的权值大小,或者说所有基于梯度的反向传播都改变的是路径上的权值大小而非输入数据本身的值。那么关于peephole LSTM的更新过程主要分为两大步骤,考虑到各个门的递归连接,步骤1又被细分为a,b,c三小步:

1、(a)输入门是否激活;(b)遗忘门是否激活;(c)cell的输入和cell的状态。

2、输出门是否激活以及cell的输出。

前向传递的更新公式如下所示:

Step 1a,1b. 输入门激活函数计算以及遗忘门激活函数计算:



Step 1c. cell的状态计算:


Step 2. 输出门激活函数计算以及cell output:



而反向传播则是基于梯度,因而只需要对“Learning to forget: Continual prediction with LSTM”中的反向传递做很小的修改就可以了。

“Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translationec”

论文地址:http://www.statnlp.org/wp-content/uploads/2016/02/rnn.pdf

      该论文提出了一个RNN Encoder-Decoder模型,该模型含有两个RNN网络。一个编码RNN网络将一个符号序列编码成一个固定长度的向量表示,另一个译码RNN网络则将这个编码后的向量表示译码成另一个符号序列,前后两个符号序列的长度可以是不同的。

      

编码器、译码器概念图

      编码器RNN按照符号序列中的符号顺序一个个读取符号,当读取完最后一个符号,RNN的隐藏状态是对整个输入序列的总结隐藏状态。编码器的隐藏状态更新公式、输入序列符号概率公式、输入序列概率公式如下所示:




      译码器RNN是在给定隐藏状态的前提下来预测下一个符号,当前时刻的预测符号和隐藏状态都依赖于上一时刻的预测符号和对输入符号序列的总结隐藏状态,因此,在时刻t译码器的隐藏状态计算公式如下所示:


同时,下一个符号的条件概率分布为:


编码器和译码器同时训练,为了最大化对数似然:


其中是模型参数,是一对训练样本,分别对应着输入符号序列和输出符号序列。当RNN Encoder-Decoder训练完成后,它可以被用在两方面:第一,给定一个输入序列生成另一个输出序列;第二,为一对输入、输出序列评分,分数就是概率

      该篇论文还提出了一种新的隐藏单元(上述公式的激活函数f)。该隐藏单元的图示如下:


z是一个更新门,决定是否采用新的隐藏状态来更新隐藏状态h;r是一个重置门,决定之前的隐藏状态是否被遗忘。第j个隐藏单元重置门计算公式:


      类似的,有更新门的计算公式:


      而第j个隐藏单元的实际激活公式:



一般常用的统计机器翻译系统的目标是找到一个概率(给定原始语句e以及翻译结果f)并且将其最大化:


在实践中,SMT的系统模型是一个对数线性模型,该模型具有额外的特征以及对应的权重:


等号右边的第一项是n个特征及其对应的权重,这些所谓的特征对应着匹配词组对(源词组和目标词组)的翻译概率,其权重w是根据最大化BLEU分数。并且该论文通过在一个词组对表格上训练RNN Encoder-Decoder来产生分数,将该分数作为上式当中的特征(注意不是权重)。

“Advances in optimizing recurrent networks”

论文地址:https://arxiv.org/pdf/1212.0901.pdf

该论文回顾了对于提高递归网络的可理解性和关于提高网络训练效率技术解决方案。所进行的实验包括:①使用梯度裁剪;②用漏洞集合来扩大时间跨度;③改进的动量技术;④使用更加强大的输出概率模型;⑤鼓励更加稀疏的梯度来帮助破坏对称性和置信度分配。

①:采用“Understanding the exploding gradient problem”,当梯度超过给定的阈值时,裁剪梯度。

②:通过“leaky integration”方法强制将一个子集内的单元变化速度变得很慢。“leaky integration”方法通过公式使得一些单元能够很快地产生反应,而另一些单元则被强制变化缓慢。标准的RNN对应着,在该论文中的实验中其取值从范围中随机采样。虽然采取了该方法,但是梯度消失问题还是存在,但是时间范围得到了扩张。

③:Nesterov accelerated gradient(NAG:“A method for unconstrained convex minimization problem with the rate of convergence )能够提升梯度下降的稳定性和收敛性,其计算公式可以写成以下表达式:


是模型参数,是速度,是动量,是学习率。标准的动量更新公式如下所示:


这两者的区别在于等号右边括号里的值,NAG通过在搜寻过程中事先考虑到实际的目标值,以平衡过高的速度。并且这一改进也使得RNN在许多任务上的表现有了很大的改善。该论文中所采取的更新公式如下所示:


与标准的相比,可以看出速度对于参数的贡献小于动量对于参数的贡献,因为

④:一种解决RNN欠拟合的方法是引进乘法交互作用到参数化的F中。该论文进行实验时采用的是NADE(“Modeling temporal dependencies in high-dimensional sequences: Application to polyphonic music generation and transcription”,“The Neural Autoregressive Distribution Estimator”)输出模型。当输出预测变量是多元变量时,RBM(“The recurrent temporal restricted Boltzmann machine”,“Modeling temporal dependencies in high-dimensional sequences: Application to polyphonic music generation and transcription)输出概率模型可以捕捉变量间的抽象依赖性。

⑤:“Learning deep architectures for AI”认为优化深度网络的困难在于一般神经网络的梯度随着层级而扩散,同时将置信度与惩罚也扩散到许多单元上。“Deep sparse rectifier neural networks”主张当隐层单元的梯度更加稀疏时,匀称性更加容易被打破从而置信度和惩罚的分配也就更加不一致。

  • 10
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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.csdn.net/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.csdn.net/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、付费专栏及课程。

余额充值