LSTM,GRUandNeuralTuringMachine:详解深度学习中最流行的递归神经网络(网络图)为了保持一个内部状态。将状态添加到神经网络的好处是它们将能够明确地学习和利用序列预测问题中的上下文,包括那些具有顺序或时间成分的问题。在本文中,您将踏上了解深度学习循环神经网络的旅程。阅读本文后,您将了解:最新的深度学习循环神经网络是如何工作的,包括LSTM、GRU和NTM。***RNN与更广泛的人工神经网络递归研究的相关性。RNN研究如何在一系列困难问题上实现最先进的性能。请注意,我们并未涵盖所有可能的RNN,而是重点介绍深度学习中使用的几种RNN(LSTM、GRU和NTM)以及理解它们的背景。让我们开始吧!概述我们将从设置循环神经网络世界的场景开始;然后我们将深入研究用于深度学习的LSTM、GRU和NTM;之后,我们将花点时间介绍一些与用于深度学习的RNN相关的高级主题。循环神经网络完全循环网络递归神经网络神经历史压缩器长短期记忆(LSTM)门控循环单元(GRU)神经网络神经图灵机(NTM)循环神经网络首先让我们设置场景。一般认为递归是为网络拓扑提供记忆。更好的看待它的方法是训练集由一种样本组成-一组输入用于遍历训练样本。这是“传统惯例”,就像传统的多层感知器X(i)->y(i)一样,但训练示例补充了来自先前示例的一组输入。这是“非常规的”,比如递归神经网络[X(i-1),X(i)]->y(i)和所有的前馈网络范式一样,问题的关键在于如何将输入层连接到输出层层(包括反馈激活),然后训练结构收敛。现在,让我们看看几种不同类型的循环神经网络,从完全循环网络的非常简单的概念开始。每一个在它们之间都有一个加权连接和一个到它自己的反馈连接。并非所有这些连接都会被训练,而且它们的误差导数的极端非线性意味着传统的反向传播将不起作用,因此只能采用反向传播时间(BackpropagationThroughTime)方法或随机梯度下降(SGD)。另请参阅BillWillson的张量积网络:http://www.cse.unsw.edu.au/~billw/cs9444/tensor-stuff/tensor-intro-04.html循环神经网络循环神经网络是循环网络。递归可以促进分层特征空间中的分支,并且生成的网络架构可以随着训练的进行进行模仿。它的训练是通过子梯度方法使用随机梯度来实现的。R.Socher等人在论文《Parsing Natural Scenes and Natural Language with Recursive Neural Networks》中用R语言对其进行了详细描述。2011,参见:http://machinelearning.wustl.edu/mlpapers/paper_files/ICML2011Socher_125.pdfNeuralHistoryCompressor在1991年,Schmidhuber首次报告了一个非常深度的学习器,它可以通过无监督的预训练在数百个神经层上执行信用分配RNN层数。每个RNN都经过无监督训练以预测下一个输入。然后只有产生错误的输入被前馈,将新信息传递给层次结构中的下一个RNN,然后在较慢的自组织时间尺度上进行处理。事实证明,并没有丢失信息,只是压缩了。RNN堆栈是数据的“深度生成模型”,可以从其压缩形式重建数据。参见J.Schmidhuber等人。2014年论文《Deep Learning in Neural Networks: An Overview》:http://www2.econ.iastate.edu/tesfatsi/DeepLearningInNeuralNetworksOverview.JSchmidhuber2015.pdf非线性导数(极值)的极限会增长,使得信用分配变得困难甚至不可能,使反向传播失败。长短期记忆网络使用传统的时间反向传播(BPTT)或实时循环学习(RTTL/RealTimeRecurrentLearning),时间倒流的错误信号往往会爆炸(explode)或消失(vanish)。传播误差的时间演变以指数方式取决于权重的大小。爆炸权重会导致权重振荡,而消失权重会导致学习弥合时间滞后并花费太多时间或根本不起作用。LSTM是一种新的循环网络架构,可以使用合适的基于梯度的学习算法进行训练。LSTM旨在克服错误回流问题。它可以学习桥接超过1000步的时间间隔。在不损失短时滞能力的情况下,存在嘈杂的、不可压缩的输入序列时确实如此。错误反向流问题可以通过一种基于梯度的高效算法来克服,该算法允许网络架构强制恒定(因此不会爆炸或消失)错误流通过特定单元的内部状态。这些单元可以减少“输入权重冲突”和“输出权重冲突”的影响。冲突输入权重:如果输入非零,则必须同时使用相同的输入权重来存储某些输入并忽略其他输入,这通常会收到冲突的权重更新信号。这些信号将尝试获取权重以参与存储输入并保护该输入。这种冲突会使学习变得困难,并且需要一种对上下文更敏感的机制来通过输入权重控制“写操作”。冲突输出权重:只要一个单元的输出不为零,单元输出连接的权重就会吸引序列处理过程中产生的冲突权重更新信号。这些信号将尝试接合正在输出的权重,捕获处理单元中存在的信息,并在不同时间保护后续单元免受被馈送单元的输出的影响。这些冲突并非长期滞后所特有,也会影响短期滞后。值得注意的是,随着滞后的增加,必须保护存储的信息免受干扰,尤其是在学习的高级阶段。网络架构:不同类型的单元可能会传达有关网络当前状态的有用信息。例如,输入门(或输出门)可能使用来自其他记忆单元的输入来决定是否在其记忆单元中存储(读取)特定信息。存储单元包含门。门特定于它们所调解的连接。输入门是纠正输入权重冲突,输出门是消除输出权重冲突。门:具体来说,为了减轻输入和输出权重的冲突和干扰,我们引入了一个乘法输入门单元来保护存储的内存内容免受不相关输入的影响,以及一个乘法输出门单元来保护其他单元不受存储中当前不相关的内存内容的干扰.示例LSTM架构。这个LSTM网络有8个输入单元,4个输出单元,2个大小为2的记忆单元模块。in1指的是输入门,out1指的是输出门,cell1=block1指的是block1的第一个记忆单元。《Long Short-Term Memory》从1997年开始。由于处理元素和反馈连接的多样性,LSTM中的连接比多层感知器中的连接更复杂。存储单元模块:存储单元共享相同的输入门和相同的输出门,形成称为存储单元块的结构。存储单元模块方便信息存储;就像传统的神经网络一样,在单个单元格内编码分布式输入并非易事。尺寸为1的存储单元模块是一个简单的存储单元。学习:实时循环学习(RTRL/RealTimeRecurrentLearning)的一种变体,它考虑了由输入和输出门引起的修改后的乘法动力学,用于通过存储单元错误确保内部状态反转非衰减错误传播到“记忆单元净输入”不会及时传播到更远的地方。猜测:这种随机方法可以胜过许多时滞算法。已经表明,通过简单的随机权重猜测,可以比所提出的算法更快地解决以前工作中使用的许多长滞后任务。参见S.Hochreiter和J.Schmidhuber《Long-Short Term Memory》:http://dl.acm.org/citation.cfm?id=1246450LSTM循环神经网络最有趣的应用发生在语言处理领域。更完整的描述可以在Gers的论文中找到:F.Gers和J.Schmidhuber2001《LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages》:ftp://ftp.idsia.ch/pub/juergen/L-IEEE.pdfF.Gers2001PhDthesis《Long Short-Term Memory in Recurrent Neural Networks》:http://www.felixgers.de/papers/phd.pdfLSTM的局限性LSTM的高效截断版本不能轻易解决诸如“强延迟异或”之类的问题。每个存储单元模块都需要一个输入门和一个输出门。不一定需要其他循环方法。通过记忆单元中的“constanterrorcarrousels”的constanterrorflow可以达到与传统前馈架构相同的效果(会一次获得整个输入字符串)。与其他前馈方法一样,LSTM存在“摄政”的概念缺陷。如果需要精确的计数时间步长,则可能需要额外的计数机制。LSTM的优势该算法弥合长滞后的能力来自于其架构的记忆单元中不断的误差反向传播。LSTM可以逼近嘈杂的问题域、分布式表示和连续值。LSTM可以很好地泛化到他们考虑的问题领域。这很重要,因为某些任务无法用现有的循环网络解决。在问题域上微调网络参数似乎是不必要的。在每个权重和时间步长的更新复杂度方面,LSTM基本等于BPTT。LSTM功能强大,在机器翻译等领域取得了最先进的成果。门控循环单元神经网络门控循环单元神经网络已成功应用于序列和时间数据。最适合语音识别、自然语言处理和机器翻译。与LSTM一起,它们在长序列问题领域表现良好。门控在LSTM主题中被考虑,它涉及一个门控网络生成信号来控制当前输入和先前记忆的行为方式来更新当前激活,从而更新当前网络状态。门本身是自加权的,并在整个学习阶段根据算法有选择地更新。门网络增加了计算复杂性,这增加了参数化,这反过来又引入了额外的计算成本。LSTMRNN架构使用简单RNN的计算作为内部记忆单元(状态)的中间候选者。GatedRecurrentUnit(GRU)RNN将LSTMRNN模型的门控信号减少到2个。这两个门分别称为更新门和重置门。GRU(和LSTM)RNN的门控机制在参数化方面与简单RNN相同。对应于这些门的权重也使用BPTT随机梯度下降更新,因为它试图最小化成本函数。每次参数更新都会涉及与整个网络状态相关的信息。这可能会产生不利影响。可以使用三种新的门控机制变体来探索和扩展门控的概念。三种门控变体是:GRU1(其中每个门仅使用先前的隐藏状态和偏置计算)、GRU2(其中每个门仅使用先前的隐藏状态计算)和GRU3(其中仅使用偏置计算每个门)。我们可以观察到参数的显着减少,其中GRU3的参数数量最少。这三个变体和GRURNN在手写数字的MNIST数据库和IMDB电影评论数据集上进行了基准测试。从MNIST数据集生成了2个序列长度,从IMDB数据集生成了1个序列长度。这些门的主要驱动信号似乎是(循环)状态,因为它包含有关其他信号的基本信息。StochasticGradientDescent的使用隐含地携带了关于网络状态的信息。这可以解释仅在门控信号中使用偏差的相对成功,因为其自适应更新携带有关网络状态的信息。门控变体可用于有限的拓扑结构评估以探索门控机制。有关更多信息,请参阅:R.Dey和F.M.Salem2017年论文《Gate-Variants of Gated Recurrent Unit (GRU) Neural Networks》:https://arxiv.org/ftp/arxiv/papers/1701/1701.05923.pdfJ.Chung等。2014年论文《Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling》:https://pdfs.semanticscholar.org/2d9e/3f53fcdb548b0b3c4d4efb197f164fe0c381.pdf神经图灵机神经图灵机通过将神经网络耦合到外部)进程与外部存储器资源交互来扩展神经网络的功能。请参阅机器之心文章《神经图灵机深度讲解:从图灵机基本概念到可微分神经计算机》。这个组合系统类似于图灵机或冯诺依曼结构,但它是端到端可微的,这使得使用梯度下降进行训练变得高效。初步结果表明,神经图灵机可以根据输入和输出样本推理基本算法,例如复制、排序和联想召回。RNN与其他机器学习方法的区别在于它们能够在长时间尺度上学习和执行复杂的数据转换。另外,我们都知道RNN是图灵完备的,所以它具有模拟任意程序的能力,只要以正确的方式连接。扩展了标准RNN的功能以简化算法任务的解决方案。这种丰富性主要是通过巨大的可寻址内存实现的,因此类比图灵的有限状态机(finite-statemachine)通过有线存储磁带实现的丰富性,命名为NeuralGraphAbrainstorm(NTM)。与图灵机不同,神经图灵机是可微分计算机,可以通过梯度下降进行训练,从而为学习程序提供实用机制。神经图灵机架构。NTM架构大致如上图。在每个更新周期中,控制器网络从外部环境接收输入并给出输出作为响应。它还通过一系列并行的读写头读写一个内存矩阵。虚线是NTM循环与外界的分界线。《Neural Turing Machines》来自2014关键是架构的每个组件都是可微的,可以直接使用梯度下降对其进行训练。这可以通过定义“模糊”的读写操作来实现,这些操作可以与内存中或多或少的所有元素进行交互(而不是像普通的图灵机或数字计算机那样处理单个元素)。如需更多信息:《Neural Turing Machines》A.Graves等。2014年:https://arxiv.org/pdf/1410.5401.pdf《Evolving Neural Turing Machines for Reward-based Learning》R.Greve等人。2016年:http://sebastianrisi.com/wp-content/uploads/greve_gecco16.pdfNTM实验性复制任务测试NTM是否可以存储和调用长序列的任意信息。向网络提供一个随机二进制向量的输入序列,后跟一个定界符。该网络被训练来复制一个8位随机向量序列,其中序列长度在1到20之间随机化。目标序列只是输入序列的一个副本(没有分隔符)。重复复制任务是复制任务的扩展,即要求网络将复制的序列输出给定的次数,然后给出一个序列终止标志。这个任务的主要目的是看看NTM是否可以学习简单的嵌套函数。该网络的输入是一系列随机长度的随机二元向量,后跟一个表示我们想要的副本数量的标量值,它们出现在单个输入通道上。联想回忆任务涉及组织间接产生的数据,即当一个数据项指向另一个项目时。创建一个项目列表,以便查询其中一个项目需要网络返回后续项目。我们定义了一个由分隔符左右界定的二进制向量序列。在几个项目传播到网络后,通过呈现随机项目来查询网络以查看网络是否可以产生下一个项目。动态N-gram任务测试NTM是否可以通过使用内存作为可重写表来快速适应新的预测分布;网络可以使用这个表来持续保持转换统计的计数,从而模拟传统的N-gram模型。考虑二进制序列上所有可能的6-gram分布的集合。每个6克分布都可以表示为一个包含32个数字的表格,这些数字指定基于所有可能长度的5个二进制历史记录下一位为1的概率。通过使用当前查找表绘制200个连续位来生成特定的训练序列。网络观察序列,一次一位,然后被要求预测下一位。优先级任务测试NTM的排序能力。网络的输入是一系列随机二进制向量,以及每个向量的标量优先级分数。优先级在[-1,1]范围内均匀分布。目标序列是根据优先级排序的二进制向量序列。NTM具有LSTM的前馈结构作为其组件之一。总结您已经通过本文了解了用于深度学习的递归神经网络。具体来说,您学习了:用于深度学习的最新递归神经网络(包括LSTM、GRU和NTM)如何工作。***RNN与更广泛的人工神经网络递归研究的相关性。RNN研究如何在一系列困难问题上实现最先进的性能。免责声明:本文转自机器之心。原文来自MachineLearningMastery,作者JasonBrownlee,译者Panda。
