您好,欢迎访问三七文档
了解LSTM网络递归神经网络人类不会每一秒都从头开始思考。当你读这篇文章的时候,你根据你对前面的单词的理解来理解每个单词。你不要把所有东西都扔掉,重新开始思考。你的想法有坚持。传统的神经网络无法做到这一点,这似乎是一个主要的缺点。例如,想象一下你想分类电影中每一点发生什么样的事件。目前还不清楚传统的神经网络如何利用其对电影中以往事件的推理来告知后来的事件。递归神经网络解决了这个问题。他们是网络中的循环,允许信息坚持。有循环的递归神经网络在上图中,一大块神经网络AA查看一些输入xt并输出一个值ht。一个循环允许信息从网络的一个步骤传递到另一个步骤。这些循环使循环神经网络看起来有点神秘。然而,如果你再想一想,事实证明,它们与正常的神经网络并不完全不同。经常性的神经网络可以被认为是同一个网络的多个副本,每个网络都传递一个消息给后继者。考虑如果我们展开循环会发生什么:一个展开的递归神经网络这种链状性质揭示了递归神经网络与序列和列表密切相关。它们是用于这种数据的神经网络的自然架构。而且他们当然使用!在过去的几年中,RNN应用于各种问题方面取得了令人难以置信的成功:语音识别,语言建模,翻译,图像字幕......这个名单还在继续。我将讨论可以通过RNN获得的惊人壮举的讨论到AndrejKarpathy的优秀博客文章“循环神经网络的不合理有效性”。但他们真的很惊人这些成功的关键是使用“LSTM”,这是一种非常特殊的递归神经网络,对许多任务来说,它比标准版本要好得多。几乎所有基于循环神经网络的令人兴奋的结果都可以通过它们来实现。这篇文章将探讨这些LSTM。长期依赖的问题RNN的吸引力之一是他们可能能够将先前的信息连接到当前的任务,例如使用先前的视频帧可以通知对当前帧的理解。如果RNN可以做到这一点,他们将是非常有用的。但他们可以吗?这取决于。有时候,我们只需要看最近的信息来完成目前的任务。例如,考虑一个语言模型试图根据以前的语言来预测下一个词。如果我们试图预测“云在天空”中的最后一个单词,我们不需要任何进一步的背景-很明显,下一个单词将是天空。在这种情况下,相关信息与需要的地方之间的差距很小,RNN可以学习使用过去的信息。但也有些情况下我们需要更多的上下文。考虑试图预测“我在法国长大......我会说流利的法语”这个文本中的最后一句话。最近的信息表明,下一个单词可能是一种语言的名称,但是如果我们想要缩小哪种语言,我们需要法国的背景下,从更远的背后。相关信息之间的差距和需要变得非常大的程度完全可能。不幸的是,随着差距的扩大,RNN变得无法学习连接信息。从理论上讲,RNN绝对有能力处理这种“长期依赖”。人类可以仔细挑选参数来解决这种形式的玩具问题。不幸的是,在实践中,RNN似乎无法学习它们。Hochreiter(1991)[德文]和Bengio等人深入探究了这个问题。(1994),他发现了一些可能很困难的根本原因。谢天谢地,LSTMs没有这个问题!LSTM网络长期短期记忆网络(通常被称为“LSTM”)是一种特殊的RNN,能够学习长期的依赖关系。他们是由Hochreiter&Schmidhuber(1997)介绍的,在接下来的工作中被许多人提炼和推广。1他们在各种各样的问题上工作非常好,现在被广泛使用。明确设计LSTM是为了避免长期依赖性问题。记住长时间的信息实际上是他们的默认行为,而不是他们难以学习的东西!所有经常性的神经网络都具有神经网络重复模块链的形式。在标准RNN中,这个重复模块将具有非常简单的结构,例如单一的双层。标准RNN中的重复模块包含单个图层LSTM也有这样的链式结构,但重复模块有不同的结构。而不是有一个单一的神经网络层,有四个,在一个非常特殊的方式进行交互。LSTM中的重复模块包含四个交互层不要担心发生了什么事情的细节。稍后我们将逐步浏览LSTM图。现在,让我们试着去熟悉我们将要使用的符号。在上面的图中,每行包含一个完整的向量,从一个节点的输出到另一个节点的输入。粉色圆圈表示逐点运算,如向量加法,而黄色方框表示学习神经网络层。合并行表示拼接,而分叉表示其内容被复制,副本将转到不同的位置。LSTMs背后的核心理念LSTMs的关键是细胞状态,水平线贯穿图的顶部。电池状态有点像传送带。它贯穿整个链条,只有一些次要的线性交互作用。信息非常容易地不变地流过。LSTM确实有能力去除或增加细胞状态的信息,由称为门的结构仔细调控。盖茨是一种可以让信息通过的方法。它们由S形神经网络层和逐点乘法运算组成。sigmoid层输出0到1之间的数字,描述每个组件应该通过多少。值为零意味着“让任何事情无法通过”,而一个值意味着“让一切通过!”一个LSTM有三个这些门,以保护和控制细胞状态。循序渐进的LSTMht−1xt01Ct−110让我们回到我们的一个语言模型的例子,试图根据以前所有的语言来预测下一个单词。在这样的问题中,细胞状态可能包括当前对象的性别,因此可以使用正确的代词。当我们看到一个新的主题时,我们想忘记旧主题的性别。C~t在我们的语言模型的例子中,我们希望将新主题的性别添加到单元状态,以替换我们遗忘的旧主题。Ct−1Ctftit∗C~t就语言模型而言,这是我们实际放弃旧主题性别的信息并添加新信息的地方,正如我们在之前的步骤中所决定的那样。tanh−11对于语言模型的例子,因为它只是看到一个主题,所以它可能要输出与动词相关的信息,以防接下来会发生什么。例如,它可以输出主语是单数还是复数,以便我们知道如果接下来是什么,动词应该是什么形式的。长期短期记忆的变种到目前为止我所描述的是一个非常正常的LSTM。但并不是所有的LSTM都与上述相同。事实上,似乎几乎所有涉及LSTM的论文都使用了一个稍微不同的版本。差异很小,但值得一提的是其中的一些。Gers&Schmidhuber(2000)介绍的一种流行的LSTM变体是增加了“窥孔连接”,这意味着我们让栅极层看到单元状态。上图给所有的大门增加了窥视孔,但是很多文章会给出一些窥视孔而不是其他的。另一个变化是使用耦合的忘记和输入门。我们不是分别决定要忘记什么,应该增加什么新的信息,而是一起做出这些决定。我们只会忘记我们什么时候要输入什么东西。当我们忘记一些更旧的东西的时候,我们只能为这个状态输入新的值LSTM稍微更加剧烈的变化是由Cho等人引入的门控循环单元(GRU)。(2014年)。它将忘记和输入门结合成一个“更新门”,它还合并了单元状态和隐藏状态,并做了一些其他更改。由此产生的模型比标准的LSTM模型更简单,并且越来越受欢迎。这些只是一些最显着的LSTM变种。还有很多其他的,比如Yao等人的DepthGatedRNNs。(2015年)。还有一些完全不同的方法来解决长期的依赖问题,比如Koutnik等人的“发条RNN”。(2014年)。哪个变种最好?差异很重要吗?Greff等人(2015)对流行的变体进行了很好的比较,发现它们大致相同。Jozefowicz等人(2015)测试了超过一万个RNN架构,发现一些在某些任务上比LSTM更好。结论早些时候,我提到了人们用RNN实现的显着成果。基本上所有这些都是使用LSTMs实现的。对于大多数任务他们确实工作得更好!写成一套方程式,LSTM看起来非常吓人。希望在这篇文章中一步一步地走过他们,让他们更加平易近人。LSTM是我们可以用RNN完成的一大步。很自然地想知道:还有一大步吗?研究人员普遍认为:“是的!下一步,这是关注!“这个想法是让RNN的每一步从更大的信息集合中挑选信息。例如,如果您正在使用RNN创建描述图像的标题,则可能会选取图像的一部分来查看其输出的每个单词。事实上,徐等人(2015年)做到这一点-如果你想探索注意,这可能是一个有趣的起点!有一些真正令人兴奋的结果使用注意力,似乎还有更多的是在拐角处...注意力不是RNN研究中唯一令人兴奋的线索。例如,Kalchbrenner等人的GridLSTM(2015年)似乎非常有前途。在生成模型中使用RNN进行工作-例如Gregor等人(2015),Chung,etal。(2015年),还是拜耳和Osendorfer(2015年)-也似乎很有趣。过去的几年对于经常性的神经网络来说是一个激动人心的时刻,接下来的几年只会更加如此!我很感谢一些人帮助我更好地理解LSTM,对可视化进行评论,并对这篇文章提供反馈。在这篇文章之前,我曾经在神经网络教授的两个研讨会系列中练习解释LSTM。感谢所有参与这些对我耐心的人,并感谢他们的反馈。除此之外,很多人对现代LSTM做出了贡献。一份非全面的名单是:费利克斯·格斯,弗雷德·康明斯,圣地亚哥·费尔南德斯,贾斯汀·拜尔,达恩·维尔斯特拉,朱利安·托格柳斯,福斯蒂诺·戈麦斯,加泰罗洛利亚和亚历克斯·格雷夫斯。更多的帖子注意和增广循环神经网络Conv网神经网络,流形和拓扑深度学习,NLP和表示在Distill模块化的视角(注:点击图片进入相关帖子)
本文标题:了解LSTM网络
链接地址:https://www.777doc.com/doc-6223651 .html