Long Short-Term Memory (LSTM)原文前半部分理解+个人学习路径

论文地址:https://www.researchgate.net/publication/12292425_Learning_to_Forget_Continual_Prediction_with_LSTM

搜索到这篇文章才知道原来早在1997年就已经发布了LSTM的概念,而对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一

摘要

通过循环反向传播(recurrent backpropagation) 学习存储一段时间间隔的信息 需要很长时间,大多数是由于不充分的,错误回流导致的。本文简单的回顾了Hochreiter在1991年对这个问题的分析(但是这篇文章是俄语)。在此基础上,作者提出了一种新颖,高效,基于梯度的方法来解决这个问题——LSTM。通过 截断梯度不会造成伤害的地方,LSTM可以通过在特殊单元内通过“constant error carrousels”来学习跨越超过1000个时间步长的最小时间滞后。乘法门单元学习打开和关闭访问的恒定误差乘法门控单元学会打开或关闭访问恒定的误差流。LSTM在实践和空间上都是局部的local(这句什么意思)每个时间步长和权值的计算复杂度为0(1)。我们对人工数据的实验涉及局部、分布式、实值和噪声模式表示。与RTRL,BPTT,递归级联相关、Elman网和神经序列分块相比,LSTM的运行成功率更高,学习速度也更快。LSTM还解决了复杂的、人工的、长时间滞后的任务,这些任务是以前的循环网络算法无法解决的。

第一章:介绍

循环网络 原则上 可以使用反馈连接(将上一个时间的输出作为下一个时间的输入)来存储最近输入事件的表示(也叫短期记忆,与权重变化缓慢的长期记忆相反)。这在语音处理,非马尔可夫控制,音乐作曲方面有很多潜在的意义。

当前存在的主要问题:在短时记忆中学习的最广泛使用的算法需要花费太多的时间或根本没有效果。特别是当输入和相应的教师信号之间的最小时间差很长时。如 在有限的时间窗的前馈网络中反响传播

非马尔科夫控制:下一步的结果 考虑了更长时间范围内的历史信息,而不仅仅是 依赖于当前状态。因为循环网络可以考虑更长时间范围内的关系,所以可以使用循环网络来解决这类问题。

有限的时间窗的前馈网络中反响传播输入序列被分割成固定长度的时间窗口,每个时间窗口内的数据被用作神经网络的输入。网络被训练来预测每个时间窗口结束时的目标值。与此同时,反向传播算法被用来更新网络参数以最小化预测值与实际值之间的误差。因此不需要在整个序列上进行反向传播。这降低了计算复杂度,并且使得网络能够处理较长的序列数据。

The Problem

BPTT和RTRL这两种方法在时间上梯度下降的过程中可能导致梯度爆炸或梯度消失问题。梯度爆炸可能导致权重一直震荡,而梯度小时导致长时间的学习仍然不起作用。(具体原因可见bilibili视频)

The Remedy 解决方法

而LSTM的设计就是为了解决这些问题。该方法可以学习超过1000步长的时间间隔,即使在有噪声,输入序列不可压缩的情况下也不会损失short time lag capabilities。

之后在第二节回顾了之前的工作,第三节讲述引起消失误差的详细分析。第四节描述了LSTM的结构。第五节进行了大量的实验,第六节是LSTM的局限性和优点。

第二章:Related Work

梯度下降法

之前的很多方法如:Elman,Fahlman,Williams,Schmidhuber,Pearlmutter都和BPTT及RTRL存在这同样的问题。(看到这里准备看看Elman网络是什么,之后发现了一篇关于deep learning的综述,决定先看看这个 on the origin of the deep learning

时间延迟:

另一个似乎可以用于短时间间隔的是1990年提出的:Time-Delay Neural Networks(TDNN)和 Plate的方法。他们是通过之前激活部分的权重和来更新激活单元。之后还提出了time delay网络的变体叫NARX网络。

时间常数:

为了处理长时间延迟,Mozer ( 1992 )使用时间常数来影响单位激活的变化。实际上可以看作TDNN和时间常数的混合物)。然而,对于长时间延迟,时间常数需要外部fine tuning( Mozer 1992 )。Sun等人的另一种方法( 1993年)通过把旧的激活部分  和  当前网络输入 相加 来更新循环单元的激活。然而,网络输入倾向于扰动存储的信息,这使得长期存储变得不切实际。

Ring的方法

Ring(1993)也提出了一种桥接长时间滞后的方法。每当他的网络中的一个单元接收到冲突的错误信号时,他就增加一个高阶单元可以对正确的连接产生影响。虽然他的方法有时可能非常快,但要跨越涉及100个步骤的时间滞后可能需要添加100个单位。此外,Ring的网络不能推广到看不见的延迟持续时间。

Bengio等的方法

Bengio等人(1994)研究了模拟退火、多网格随机搜索、时间加权伪牛顿优化和离散误差传播等方法。他们的“锁存器”和“2序列”问题与问题3a非常相似,具有最小的时间滞后100(见实验3)。Bengio和Frasconi(1994)也提出了一种用于传播目标的EM方法。对于n个所谓的“状态网络”,在给定时间,它们的系统只能处于n种不同状态中的一种。参见第5节的开头。但是为了解决诸如“添加问题”(第5.4节)之类的连续问题,他们的系统将需要不可接受的状态数(即状态网络)

卡尔曼滤波器(Kalman Filters)

Puskorius和Feldkamp(1994)使用卡尔曼滤波技术来提高循环网络的性能。由于他们使用“一个衍生品折扣因子来以指数方式衰减过去动态衍生品的影响”’,因此没有理由相信他们的卡尔曼滤波训练循环网络将对非常长的最小时间滞后有用。

Second order Nets

我们将看到LSTM使用乘法单元(multiplicative units:mu)来保护错误流免受不必要的扰动。不过,这并不是第一个使用MUs的循环网络方法。例如,Watrous和Kuhn(1992)在二阶网络中使用了MU。与LSTM的不同之处在于:

(1)Watrous和Kuhn的体系结构没有强制恒定的错误流,并且没有设计用于解决长时间滞后的问题。

(2)它具有完全连接的二阶sigma-pi单元,而LSTM体系结构的mu仅用于对恒定误差流的门控访问。(3)Watrous和Kuhn算法每时间步花费0(W2)次运算,我们的算法只需0(W)次运算,其中W为权值的个数。参见Miller和Giles(1993)对MUs的进一步研究。

SImple Weight guessing

为了避免基于梯度的方法的长时间滞后问题,我们可以简单地随机初始化所有网络权重,直到结果网络恰好正确分类所有训练序列。事实上,最近我们发现(Schmidhuberand Hochreiter 1996,Hochreiter and Schmidhuber 1996,1997),简单的权重猜测解决了(Bengio 1994,Bengio and Frasconi 1994Miler and Giles 1993,Lin etal.1995)中的许多问题,比其中提出的算法更快。这并不意味着权重猜测是一个好的算法。它只是说明问题很简单。更现实的任务需要许多自由参数(例如,输入权重)或高权重精度(例如,连续值参数),这样猜测就变得完全不可行。

Adaptive sequence chunkers

Schmidhuber的分层分块器系统(1992b,1993)确实具有跨越任意时间滞后的能力,但前提是导致时间滞后的子序列具有局部可预测性(参见Mozer 1992)。例如,在他的博士后论文(1993年)中,Schmidhuber使用分层递归网络(hierarchical recurrent nets)快速解决某些语法学习任务,涉及的时间滞后最小,超过1000步。然而,分块系统的性能随着噪声水平的增加和输入序列的可压缩性降低而下降。LSTM不存在这个问题。

第三章:恒定误差反向传播(constant error backprop)

误差的指数级衰减:

这部分内容在bilibili中有介绍!也就是BPTT会导致梯度消失和梯度爆炸的原因。

之后看了李沐老师的GRU和LSTM的讲解对LSTM的整体结构有了概念,便于理解后续模型的发展。

长短期记忆网络(LSTM)_哔哩哔哩_bilibili

  • 36
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值