美文网首页机器学习
直观理解LSTM(长短时记忆网络)

直观理解LSTM(长短时记忆网络)

作者: yuanCruise | 来源:发表于2017-05-30 21:24 被阅读1344次

长短时神经网络是一种特殊的递归神经网络,所谓递归神经网络就是网络能够解决时间序列问题的预测。所谓递归神经网络就是网络中具有循环结构。递归神经网路从某种程度来说和传统的神经网络并非完全不同。可以将递归神经网络想象成有多层相同网络结构的神经网络,每一层将信息传递给下一层(以下借鉴一些十分易懂的图片):

展开的递归神经网络

上述是为了便于理解网络送展示的示意图,实际上网络结构只是上图左边的一小块。

普通的RNNs存在的问题

普通的RNN没有办法解决需要长时记忆的功能。比如试图预测“I grew up in France… I speak fluent French.”中最后一个词。最近信息显示下一个词可能是一门语言的名字,但是如果我们想要缩小选择范围,我们需要包含“法国”的那段上下文,从前面的信息推断后面的单词。相关信息与预测位置的间隔很大是完全有可能的。然而RNNs并没有办法解决这种问题。

Paste_Image.png
从理论上来说呢,RNNs是存在这种处理“长期依赖关系”的能力的。我们可以仔细挑选参数来解决这种简单的问题。不幸的是。实际上RNNs没有办法学习这个问题。至于为什么不可以,该问题被前人论证过Hochreiter (1991)【德国】Bengio等人
LSTM可以解决长短时的时间序列问题

LSTM作为效果比较好的递归神经网络,拥有者对长时时间序列问题很好的解决能力。

标准RNN中的重复模块单个层的内部链接状态

LSTM也有这样的链式结构,但其重复模块内部的机构不同。具体如下:

LSTM中重复模块内部的四个网络状态层

之下说明一下内部四个网络的具体意义。
主要分为: 单元状态 + 门限。
单元状态:让信息以不变的方式向下流动,相当于一个传送带,但传送带上的东西会随着他通过每一个重复模块基于当时的输入有所增减。


单元状态

门限:有能力向单元状态增加或者剔除信息的管理机构,相当于传送带上放东西或者拿走东西的那个人。在LSTM中由sigmoid函数和乘法加法来控制这个过程。

剖析最基础LSTM的三个信息传输机构。
1.遗忘门限层
遗忘门限层

上图通过当前时间的输入和前一个时间的输出来通过sigmoid函数来使得单元状态乘以这个sigmoid函数的输出。若sigmoid函数输出0则该部分信息需要被遗忘,反之该部分信息继续在单元状态中继续传下去。

2.输入门限层
输入门限层

该门限功能是更新旧的单元状态。之前的遗忘门限层决定了遗忘或者添加哪些信息,由该门限层来执行实现。

3.输出门限层
输出门限层

最后,我们需要决定需要输出什么。这个输出将会建立在单元状态的基础上,但是个过滤版本。首先,我们运行一个sigmoid层来决定单元状态中哪些部分需要输出。然后我们将单元状态输入到tanh函数(将值转换成-1到1之间)中,然后乘以输出的sigmoid门限值,所以我们只输出了我们想要输出的那部分。

其他变形的LSTM网络

上面提到的是非常常规的LSTM网络,LSTM有许多不同的变种,下面来介绍几种。

1.窥视孔连接LSTM
窥视孔链接
一种流行的LSTM变种,由Gers和Schmidhuber (2000)提出,加入了“窥视孔连接”(peephole connections)。这意味着门限层也将单元状态作为输入。
2.耦合遗忘输入门限的LSTM
耦合遗忘输入门限

就是使用耦合遗忘和输入门限。我们不单独决定遗忘哪些、添加哪些新信息,而是一起做出决定。在输入的时候才进行遗忘。在遗忘某些旧信息时才将新值添加到状态中。

3.门限递归单元
门限递归单元

它将遗忘和输入门限结合输入到单个“更新门限”中。同样还将单元状态和隐藏状态合并,并做出一些其他变化。所得模型比标准LSTM模型要简单,这种做法越来越流行。

相关文章

网友评论

    本文标题:直观理解LSTM(长短时记忆网络)

    本文链接:https://www.haomeiwen.com/subject/jzwrfxtx.html