lstm网络_理解LSTM 网络

循环神经网络

我们不会每一秒都从头开始思考问题,就好像阅读本篇文章,你是在对先前单词理解的基础上来理解每个单词。我们大可不必扔掉所有的东西,再次从头开始,因为思想是具有连贯性的。

传统的神经网络不具有这样的思维方式,这也似乎是其主要的缺陷之一。假如,你想把电影中每一时刻正发生的事情进行分类,传统神经网络怎样利用基于事件的先验知识来推断后续事件还尚未清晰。

循环神经网络解决了此问题,网路中包含有环路结构,可以使信息留存。

401540fcb7b1dc569209e291cb7c8d6f.png

上图是神经网络的单元模块A 有着相同的输入Xt ,输出Ht。 循环使得信息可以从网络的一步传递到下一步。

这些的环路使得循环神经网络似乎有些神秘。但是再进一步的思考,环路与普通的神经网络并无不同。一个循环神经网络可以看作是多个相同网络结构的拷贝,每个将信息传递给它的下一个。如果把他展开,你就知道发生了生么。

7daaae1b9de8e0adb45e76aa9fcb4bfc.png

链式的结构说明循环神经网络的和序列以及列表密切相关。它们就是为处理这样的数据的天然神经网络结构。

RNN的确被使用!再过去的一些年,大量的问题应用了RNN网络,并取得了不可思议的成功,例如语音识别,语言模型,翻译,图像字幕 等等。我将讨论一个由Andrej Karpathy 发表的一个由RNN实现网络实现,叫做RNN神经网络不可思议的高效,这真的很让人吃惊!

这些成功案例的本质上都是使用了LSTM,这是一种特殊的RNN神经网络,对于许多的任务,它要比标准的RNN网络更加的有效。基于RNN的几乎多有令人兴奋的结果,都是LSTM实现的。这就是本篇文章所探讨的主题LSTM。

长依赖问题

RNN 网络的吸引力之一就是,可以将之前的信息和现在的任务进行连接,例如使用先前的视频帧信息来理解当前视频帧。如果RNN具有这样的能力,这将会极其的有效。但是它能够做到这样吗?这要视情况而定。

有时,我们仅需要参照最近的信息来执行任务。例如,考虑一个语言模型根据先前的信息去预测接下来的单词。比如,预测‘the cloud are in the sky’的最后一个单词, 我们不需要任何更多的信息,很显然,下一个单词是 sky。 在这个例子中,相关信息和预测位置之间的距离很短,RNN能够学习去利用先前的信息。

1d2c7eb521d6184ea2b5a6854c1e574c.png

但是也有需要更多上下文的例子。 考虑去预测这样一句话的最后一个单词“I grew up in France… I speak fluent French.”近距离的信息建议可能是一种语言的名字,但是我们要想进一步的知道是那种的语言,这还需要有法语的上下语境。相关信息和预测位置之间的距离很远,这还是有很大的可能的。

很不巧的是,随着距离的增大,RNN不能很好的对信息进行连接。

7980575c1fb0750db3bc36a6ed3c91c7.png

理论上,RNN框架绝对有能力处理这种长依赖的问题。人可以通过仔细的选取相应的参数来解决这种类型的问题。但是在实际的问题中,RNN似乎不可能这样来进行学习。问题的深层次问题的探究可以参见 Hochreiter (1991) [German] and Bengio, et al. (1994), 他找到了一些为什么困难的原因。

LSTM 网络

长短时记忆网络-通常也叫做‘LSTMS’是一种特殊的RNN网络,可以解决长依赖问题。它由Hochreiter & Schmidhuber (1997) 首次提出,并在后来人的工作中重新的定义并变的流行。LSTM网络在能在多数的问题上得到很好的结果,所以被广泛的应用。

LSTMS设计的初衷就是要解决长依赖问题。记忆长段时间的信息是它的固有属性,并没有什么困难。所有的循环神经网络都具有,重复的神经模块形式的链式结构。在标准的RNN中,这种重复的神经模块有非常简单的结构,例如一个单一的tanh层。

38a4bc49de051fa3e41c62e5aedbac94.png

LSTM 也有这样的链式结构,但是其重复的单元模块却有不同的结构。不是单一的神经网络层,而是以特殊方式交互的四个门结构。

ba820462611f1fd2830107979f2b90f6.png

不要担心具体的细节是怎样的。稍后将会进行分布的讲解。现在仅介绍一些让你感觉到舒服的符号使用。

ff47da68518f9b16f218991d32831d17.png

在上面的图中,每行代表一个完整的向量,从一个节点的输出到另一个节点的输入。粉色的圆圈代表逐点操作,例如向量相加,黄色的盒子是一个学习好的神经网络层。线条的合并代表连接,然而分叉的节点表示拷贝分别去向不同的位置。

LSTM之后的核心思想

LSTM的关键是细胞的状态,水平信息线贯穿始终。

细胞状态像是一个传送机。信息直接通过带有几个线性信息交互点的信息链。

6e7befbf5fda33543221645e3722fb51.png

通过叫做门的结构,LSTM 可以将信息去除或是加到细胞的状态上。门是一种可选择的让信息通过的方式,由sigmoid 神经网络和点成操作组成。

630cd9368a014d3c279ea3af4d07864f.png

Sigmoid 输出层为0 或是1,表示每个部分怎样的处理信息。 0值代表着阻止信息通过‘忘掉信息’,0就表示着让信息通过,‘记忆信息’。一个LSTM有这三种的门去保护和控制门状态。

分部的理解LSTM

LSTM 的第一步是决定将要在细胞的状态中去除怎样的信息。此决定由叫做‘忘记门’的sigmoid 层给出。具体的由h_{t-1} 和x_t点乘为每一个的细胞状态C_{t-1} 给出0 或是1 的数字输出。1 代表着完全的保留,0代表完全的忘记信息。

我们回到语言模型基于之前的信息预测未来单词的例子。 在本例子中,细胞的状态信息可能包括当前主语的性别,这样的话正确的代词信息可能就会被用到。当遇到新的主语时候,我们希望忘记之前主语的性别信息。

0ad950472fca78efd83a35e5ead077ff.png

接下来步骤中决定,将什么新信息添加到细胞的状态中。这包括两个步骤,第一, 被叫做‘输入门’的sigmoid层决定怎样的信息被更新。接下来,tanh 创造一个新的后选值的向量,{C}_t, 其会被加入到细胞的状态中,接下来,我们会合并这两个步骤更新细胞状态。

在本例的语言模型中,我们希望用新主语的性别信息,代替旧主语的性别信息,从而实现更新。

7a91a2532f288fe1a3c8b906897ee9c1.png

是时候更新旧细胞状态C_{t-1} 到新细胞状态C_t了,之前的步骤已经决定了怎样去做,我们仅需要去实现就好了。

我们用旧的状态乘以f_t, 忘掉之前决定忘记的信息。然后加上i_t*{C}_t。这是新的后选值,其按照我们决定的以怎样的比例更新每个状态的值

在本例的语言模型中,像在之前步骤中决策的那样,这是我们真正丢掉旧主语性别信息加上新信息操作的地方。

b5cc30b13086cde8b79e28666005bc4c.png

最后,需要决定输出怎样的信息。根据细胞的状态进行输出,但是一个过滤性的版本。首先,运行一个sigmoid层,决定细胞那一部分将会输出。然后通过tanh函数将值整合到-1到1 之间,最后与sigmoid门的输出相乘,确保最后仅输出我们决定输出的部分。

对于语言模型例子,因为其仅看到一个主语,它可能想输出与动词相关的信息,这就是接下来讨论的。例如,可能输出主语是单数还是复数,以至于在动词的形式上,就会知道接下来的形式。

9a1fcf097d90c95c9ac3e39758bfa1cb.png

长短时记忆网络的变体

到现在为止,我们讨论的都是标准的LSTM网络。并不是所有的LSTM网络都像上面介绍的一样。实际上,每一篇的包含LSTM的网络都使用了稍微不同的版本。差别是很小的,但是也是值得去讲一下的。第一个流行的LSTM变体是由Gers & Schmidhuber 在2000 年提出来的,其加上了被叫做小孔连接的结构。 就是说可以让门控层看见细胞的状态。

1fcebac2d380e00a600948c4ce44fe72.png

上面图中,窥视管被加到所有的门控中,有些文章这样做了,但是有些没有。

另外的一种变体是使用双忘记门可输入门。不是单独的决定忘记什么信息和添加什么信息,而是一块的放在一起进行决定。我们将会忘掉信息当我们想起位置输入信息时候,同时也会忘掉信息当想忘掉旧的信息。

e4330b377920ac7c2f0581d0ae32d510.png

LSTM的一个变化不大但是效果明显的变体叫做门控循环单元,或者GRU 在2014年Cho 等提出。 它把忘记和输入门合成一个更新门。它也把细胞的状态和隐藏层的状态融合并且做了些其他的变化。最后的模型要比标准的LSTM模型简单,从而变的更加流行。

5ce051c8275641aaad4b8891dd0bab21.png

仍然有一些其他值得留意的LSTM变体、 比如,2015年Yao提出的深度门控网络。也有一些完全不同的方法处理长依赖问题的模型,例如2014年Koutnik提出的时钟RNN网络。

结论:

之前,我提到一些用RNN实现的不可思议的结果。实际上那些是用LSTM实现的,它对于多数的任务还是很高效的!

因为列出的一系列的公式,LSTM看起来吓人的。希望,通过以上的分步骤的讲解会使它变的可接受一点。

LSTM 是利用RRN实现任务的一大步!很自然的会想,是否有另外的一大步?另外的一大步是注意力机制,这是研究者们的共识。其思想就是让RNN的每一步,都在大数据集中选择数据。例如,使用RNN去为图像生成字幕,它会选择某一部分的图片进行单词的输出。Xu 等在2015年将其实现,如果你想要进行注意力机制的探索,这可能是一个很有趣的开始。有很多令人激动的例子使用注意力机制实现的,还会有更多的精彩即将来临。

注意力机制并不是RNN研究中的单只方向。Kalchbrenner, et al. (2015) 介绍的网格LSTM似乎更有前景。使用RNN做生成网络模型似乎也很有意思,例如 Gregor, et al. (2015), Chung, et al. (2015), or Bayer & Osendorfer 在2015年发表的文章。最近的几年是RNN研究的繁荣时期,未来RNN将会更加的令人期待。


文章翻译标题为:Understanding LSTM Networks 连接 click here

感谢原英文作者colah,仅用于学习交流。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值