【深度学习】一文读懂LSTM

本文深入浅出地介绍了LSTM网络,解释了RNN的长期依赖问题,详细阐述了LSTM的核心思想、工作原理及变体,旨在帮助读者全面理解LSTM在深度学习中的应用。
摘要由CSDN通过智能技术生成

一文带你理解LSTM网络

csdn:https://blog.csdn.net/qq_36645271

github:https://github.com/aimi-cn/AILearners

本文翻译自Christopher Olah的博客,另外加入了一些自己的理解

本文的翻译参考了朱小虎Neil的翻译,链接:https://www.jianshu.com/p/9dc9f41f0b29


循环神经网络(Recurrent Neural Networks)

人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。比如让我们从头唱一首歌,会非常容易,但是要让我们从这首歌中间的一句歌词开始唱,我们可能不会一下子就能反应过来,而需要从歌曲的开头来“回忆”。

传统的神经网络并不能做到这点,这也是其一种巨大的弊端。但RNN 解决了这个问题。RNN是一类用于处理序列数据的神经网络,它包含循环的网络,允许信息的持久化
在这里插入图片描述
在上面的示例图中,神经网络的模块, A A A,正在读取某个输入 x i x_i xi,并输出一个值 h i h_i hi。循环可以使得信息可以从当前步传递到下一步。

这些循环使得 RNN 看起来非常神秘。然而,如果你仔细想想,理解RNN也不比理解一个神经网络要难。我们从基础的神经网络中知道,神经网络包含输入层、隐层、输出层,通过激活函数控制输出,层与层之间通过权值连接。激活函数是事先确定好的,那么神经网络模型通过训练“学“到的东西就蕴含在“权值“中。 基础的神经网络只在层与层之间建立了权连接,RNN最大的不同之处就是在层之间的神经元之间也建立的权连接。循环展开如下图所示:
在这里插入图片描述
链式的特征揭示了 RNN 本质上是与序列和列表相关的。他们是对于这类数据的最自然的神经网络架构。并且 RNN 也已经被人们成功的应用了!在过去几年中,已经成功的将RNN 应用在语音识别,语言建模,翻译,图片描述等问题上,并且其应用的领域也正在变得越来越广。而这些成功应用的关键之处就是 LSTM 的使用,这是一种特别的 RNN,比标准的 RNN 在很多的任务上都表现得更好。几乎所有的令人振奋的关于 RNN 的结果都是通过 LSTM 达到的。这篇文章也会就 LSTM 进行展开。

长期依赖(Long-Term Dependencies)问题

RNN 的关键点之一就是他们可以用来连接先前的信息到当前的任务上,例如使用过去的视频段来推测对当前段的理解。如果 RNN 可以做到这个,他们就变得非常有用。但是真的可以么?答案是,还有很多依赖因素。

有时候,我们仅仅需要知道先前的信息而无需知道上下文来执行当前的任务。例如,我们有一个语言模型用来基于先前的词来预测下一个词。如果我们试着预测 “the clouds are in the sky” 这句话中"sky"这个词,我们并不需要任何其他的上下文信息 ,仅根据当前的信息就可以预测出这个词就应该是"sky"。在这样的场景中,相关的信息和预测的词位置之间的间隔是非常小的,RNN 可以学会使用先前的信息。
在这里插入图片描述
但是让我们来看一个复杂的场景。假设我们试着去预测“I grew up in France…I speak fluent French”这句话最后的"French"这个词。当前的信息预测下一个词可能是一种语言的名字,但是如果我们想要弄清楚是什么语言,我们需要先前提到的离当前位置很远的 France 的上下文的。在这种情况下,相关信息和当前预测位置之间的间隔就肯定变得相当的大

不幸的是,在这个间隔不断增大时,RNN 会丧失学习到连接如此远的信息的能力。
在这里插入图片描述
在理论上,RNN 绝对可以处理这样的长期依赖问题。人们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN 肯定不能够成功学习到这些知识。然而,幸运的是,LSTM 并没有这个问题

LSTM网络

Long Short Term 网络—— 一般就叫做 LSTM ——是RNN的一种特殊的类型,可以学习长期依赖信息。LSTM 由Hochreiter & Schmidhuber (1997)提出,并在近期被Alex Graves进行了改良和推广。在解决很多问题方面,LSTM 都取得相当巨大的成功,并得到了广泛的使用。

LSTM 通过刻意的设计来避免长期依赖问题。在实践中记住长期的信息是 LSTM 的默认行为,而非需要付出很大代价才能获得的能力

所有RNN 都具有一种重复神经网络模块的链式的形式。在标准的 RNN 中,这个重复的模块只有一个非常简单的结构,例如一个 t a n h tanh tanh层。
在这里插入图片描述
LSTM 同样是这样的结构,但是重复的模块拥有与标准RNN不同的结构。不同于单一神经网络层,整体上除了输出 h h h在随时间流动,细胞状态 c c c也在随时间流动。这里,细胞状态 c c c就代表着长期记忆
在这里插入图片描述
不必担心这里的细节。我们会一步一步地剖析 LSTM 解析图。现在,我们先来熟悉一下图中使用的各种元素的图标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值