标签:
深度学习
严恩·乐库 约书亚•本吉奥 杰弗里·希尔顿
摘要
深度学习是计算模型,是由多个处理层学习多层次抽象表示的数据。这些方法极大地提高了语音识别、视觉识别、物体识别、目标检测和许多其他领域如药物发现和基因组学的最高水平。深学习发现复杂的结构,在大数据集,通过使用反向传播算法来说明如何一台机器应改变其内部参数,用于计算每个层中表示从前一层的表示。深度卷积网络在处理图像、视频、语音等方面都带来了新的突破,而递归网络在连续的数据,如文本和语音有更出彩的表现。
引言
机器学习技术增强了现代社会的许多方面:从网络搜索到社交网络的内容过滤,到电子商务网站的推荐,并且它是越来越多地出现在消费产品,如相机和智能手机。机器学习系统被用来识别图像中的对象,语音转录成文本、匹配新闻、文章或者用户感兴趣的产品,选择相关的搜索结果。越来越多的应用程序使用一类叫做深度学习的技术。
传统的机器学习技术被限制在他们的处理原始形式的自然数据的能力。几十年来,构造一个模式识别和机器学习的系统要求细心的工程和相当的专业知识去设计一个特征提取器,变换原始数据(如一副图像的像素值)成一个合适的内部表示或特征向量从它的学习子系统,通常是一个分类器,可以检测或分类输入的模式。
表示学习是一种方法,用于检测或分类的原始数据送入机器中,自动的发现我们需要的表示。深度学习方法是有多层表示的表示学习方法,表示由多重非线性变换复合而成。每个在一个层次上转换表示(从原始输入开始)成一个更高的表示,稍微更抽象的层次。
随着足够多的这样的转换构成,非常复杂的功能可以被学习。对于分类任务,更高层次的表示放大输入的方面,是重要的对歧视和抑制不相关的变化。例如,一个图像是像素值的数组的形式,和学习的特征在第一层表示通常代表图中在特定的方向和位置的图像的边缘是存在或不存在。第二层通常检测图案通过发现特定的指定的边缘,不管边缘位置的小变化。第三层可以组合图案成较大的组合,图案对应熟悉的对象的部分,以及随后的层将检测对象作为这些部件的组合。深度学习的关键是这些层的功能不是由人类工程师设计的:他们是从数据中使用一个通用的学习程序。
深度学习正在取得重大进展,在解决人工智能届尽最大努力很多年仍然没有进展的问题上。它已经证明是非常善于发现在高维数据中错综复杂的结构,因此应用适用于许多科学领域,企业和政府。此外在图像识别中[1,4]和语音识别[5,7]达到新的记录,击败了其他的机器学习技术在预测潜药物分子的活动性[8],分析粒子加速器的数据[9,10],重建脑电路[11],和预测突变的影响在非基因的表达与疾病作用的DNA编码。也许更令人惊讶的是,深度学习已经产生了非常有前途的结果对于自然语言理解中的各种任务[14],特别是主题分类、情感分析、问答[15]和语言翻译[16,17]。
我们认为,深度学习将有更多的成功在不远的将来,因为它需要用人工很少的工程,所以它可以很容易地利用增加的可用计算和数据的数量。新的学习算法和架构目前正在开发的深度神经网络将会加速了这个过程。
有监督学习
最常见形式的机器学习、深度学习或者其他,是有监督的学习。想象一下我们要建立一个可以分类的系统,比如说包含,一个房子,一辆汽车,一个人或一个宠物。我们首先收集一个房子,汽车,人和宠物图片的大数据集并为每一张标记为其类别。在训练过程中,这台机器被显示一副图像,并产生一个输出的形式,一个得分的向量,一个对于每一个类别。我们希望所需的类别有所有类别的最高的得分,但这是不可能发生在训练前。我们计算一个目标函数,测量输出分数和理想模式的分数之间的误差(或者距离)。这个机器,然后修改其内部可调参数,以减少这个错误。这些可调参数,通常称为权重,是实数这可以被看作是“旋钮”,定义了机器的输入输出函数。在典型的深度学习系统中,有上百万的这些可调权重,和数以亿计的标记的例子来训练机器。
要正确调整权重向量,学习算法会计算一个梯度向量,对于每个权重量,表示用什么量如果增加了微小的量,错误会增加或减少。然后是在相反的方向调整权重到梯度向量。
这个目标函数,平均超过所有的训练实例,可以被看作是一种在高维空间中的高维空间权重值。在这种空间中负梯度向量表示最速下降方向,它接近了一个最小值,平均输出错误最小的位置。
在实践中,大多数使用者使用一个叫做随机梯度下降(SGD)。这包括显示一些样本的输入向量,计算输出和误差,计算这些样本的平均梯度,并相应的调整权重。对训练集中的小的样本集重复这个过程,直到到目标函数的平均值停止降低。它被称为随机的,因为每一个小样本集中所有的样本给出一个平均梯度的噪声估计。这简单的过程通常会发现很好的一组权重,拥有令人惊讶的速度相比于更精细的优化技术[18]。经过训练,系统的性能在一组不同的样本进行测量,称为测试集。这是用来测试的机器的泛化能力,它能够对之前未被训练的新的输入产生合理的答案。
当前机器学习的许多实际应用使用基于手工制作的特征的线性分类器。一个二类线性分类器计算特征向量分量的加权和。如果加权总和高于阈值,输入被归类为属于一个特定类别。
自从上世纪60年代以来,我们已经知道线性分类器只能将输入空间划分为非常简单的区域,即半分离超平面[19]。但问题是如图像和语音识别要求输入–输出函数是不敏感的对于无关紧要的输入的变化,如位置、方向或物体的照明的变化,或在音调的变化和讲话的口音,然而又非常敏感对特别微小的变化(例如,一只白色的狼和一只一样的白色的像狼的狗被称为萨摩)。在像素级,在两犬图片不同的姿势和在不同的环境中可能是彼此非常不同,而一只萨摩和狼两图像相同的位置和类似的背景下两者可能是非常相似。线性分类器,或任何其他的“浅”的分类器在原始像素不能区分后者,而把前两者在同一个范畴。这就是为什么浅的分类需要一个良好的特征提取,解决了选择性——不变性困境——一种能选择性地表示出的表示图像的某方面,这是重要的歧视,但这是不变的对与不相关的方面,如动物的姿势。为了使分类更强大,可以使用通用的非线性特征,如用内核方法[20],但通用特征,如用高斯内核所产生的不允许学习器很好的一般化训练样本[21]。传统的选择是把设计一个好的特征提取器,这需要能够有熟练的工程技能和专业知识。但是,如果良好的特征可以自动地学习使用通用学习程序,这可以所有被避免。这是深度学习的关键的优势。
深度学习的结构是一个简单的模块的多层栈,所有(或大多数)都要学习,并且其中有许多计算非线性输入输出映射。栈中各模块变换输入,以提高选择性和表示的不变性。多个非线性层,深度为5到20,它的输入系统可以实现非常复杂的函数,同时敏感微小的细节——识别萨摩耶从白狼中——并且不敏感大的不相关的变化,如背景,构成,照明和周围的物体。
图1 |多层神经网络与反向传播算法。a,多层神经网络(由连接点所示)可以使扭曲输入空间,使各类数据(样本是在红色和蓝线上)线性可分。注意规则网格(左)在输入空间也被隐藏单位转换(显示在中间面板)。这是一个典型的例子,只有2个输入单位,2个隐藏单位和一个输出单元,但用于对象识别的网络或自然语言处理包含数万或数十万的单元。从C. Olah许可转载( http://colah.github.io/ )。b ,导数的链规则告诉我们,两个小的影响(在上的一个小的改变,以及在上的改变)是怎样组成的。在上一个小的改变在第一次转化为小的改变上的,通过乘(即偏导数的定义)。相似的,改变产生改变上的。用一个方程代替另一个给出的导数的链规则——如何变成了,通过和结果的相乘。它也可以使用,当,和是向量时(并且导数是雅可比矩阵) 。c,被用于计算神经网络的前向传递的方程有两个隐藏层和一个输出层,它们构成一个模块通过每一个都可以反向传播梯度。在每一层,我们首先计算每个单元的总输入,这是下面层的单元的输出的加权总和。然后使用一个非线性函数用于获得这个单元的输出。为了简单起见,我们省略了偏差项。在神经网络中使用的非线性函数包括校正线性单元(ReLU),近年来被广泛使用,以及更传统的sigmoids,如正切和符号逻辑函数的符号,。这是用来计算反向传播的公式。在隐层,我们计算每个输出单元产生的误差,这是由上一层产生的误差的加权和。然后我们将输出层的误差通过乘以的梯度转换到输入层。在输出层上,误差导数与输出层的每个单元有关,每个节点的误差导数会用成本函数的求导数来计算。如果节点的成本函数是, 那么节点的误差就是,其中是期望值。一旦知道了的值,下层连接到节点的权重的误差就是。
图2 |里面一个卷积网络。一种典型的卷积网络结构的每一层(水平)的输出(不是过滤器)被应用到一个萨摩耶犬的图像(左下;和RGB(红,绿,蓝色)输入,底部权利)。每个矩形图像是一个特征映射对应于一个学习函数的输出,在每个检测图像位置。信息流自下而上,具有较低的层次特征作为面向边缘检测器,并为每个图像类计算和输出得分。ReLU, 校正线性单元。
反向传播训练的多层体系结构
从模式识别[22,23]的早期,研究的目的是人要训练多层网络代替手工设计特征,但尽管目标是简单的,解决方案却是不被广泛理解,直到上世纪80年代中期。随着它的出现,多层结构可以被训练用简单的随机梯度下降。只要模块的输入和内部权重是相对平稳的函数,就可以计算梯度使用反向传播过程。这个想法可以实现,它可以起作用,是由几个不同的20世纪70年代和80年代的小组[24-27]独立发现的。
对于模块的多层栈的权重,计算目标函数的梯度的反向传播程序无非是一个实际的应用的链式求导法则。反向传播算法的核心思想是:目标函数对于某层输入的导数(或梯度)可以通过向后传播对该层输出(或后续层的输入)的导数求得(图 1)。反向传播公式可以反复使用传播梯度通过所有模块,从在顶部的输出(这里网络产生它的估值)开始的所有路径到底部(这里的外部输入是人给的)。由于这些梯度已经被计算,它是直接去计算每层的权重的梯度。
使用前馈神经网络架构的深度学习的许多应用(图1),它们学习去映射一个固定大小的输入(如,一副图像)到一个固定大小的输出(如,属于各类别的概率)。从一个层到下一层,一组的节点计算一个加权总和,它们的输入来自过去的层,并通过一个非线性函数的结果。目前,最流行的非线性函数是校正线性单元(ReLU),这是一个简单的半波整流。在过去的几十年,神经网络用于平滑的非线性特征,如或,但是ReLR通常学习更快,在有很多层的网络中,允许深度监督的训练
没有无监督的预训练[28]。不在输入或输出层的结点通常被称为隐藏节点。这个隐藏层可以被看作是以一种非线性的方式扭曲的输入,为了使在最后一层这些类变得线性可分(图 1)。
在20世纪90年代末,神经网络和反向传播被机器学习界大量的抛弃,被
计算机视觉与语音识别社区忽视。它被广泛地认为对学习有用的,多级的,很少先验知识的特征提取是不可行的。特别是,它通常是认为:简单的梯度下降会被陷入局部最优解困境
——不小的变化会减少平均误差的权重配置。
在实践中,坏的局部极小值很少是大网络的问题。不管初始条件,系统几乎总是达到非常相似的高质量的结果。最近的理论和实证研究结果有力地表明,局部极小一般不是一个严重的问题。相反,空间是挤满了一个大量梯度为零的拐点的组合,且表面曲线在大多数向上和剩余的曲线向下[29,30]。分析似乎表明,只有几个向下弯曲方向的拐点存在于非常大的数量中,但几乎所有的目标函数具有非常相似的值。因此,它没有太多的问题,这些拐点的对算法的影响。
深层前馈网络的兴趣恢复约在2006(引用 [31–34]),由加拿大高级研究所(CIFAR)的一组研究人员所带来的。研究人员介绍了无监督学习程序,可以创建不需要标记数据的特征检测器层。每一个特征提取层的学习目标是能够重建或塑造该层下面的特征提取活动(或原始输入)。通过几层的“预训练”的处理,形成逐渐复杂的特征检测器使用此重建目标,深度网络的权重可以被初始化为合理的值。最后输出单元层可以被添加到网络的顶部,整个深度系统可以微调通过使用标准的反向传播[35,33]。这项工作非常好,被用于识别手写数字或用于检测行人,特别是当标记的数据数量是非常有限的时候[36]。
第一次主要的应用这种预训练的方法是在语音识别,并由于快速的图形处理单元(GPU)的出现使它成为可能,GPU便利了程序[37],并且提高了研究人员训练网络10或20倍的速度。在2009,该方法被使用映射短时间系数窗从一组声波的提取各种语音片段可能的代表帧在窗口的中心。它在一个用小词汇的标准语音识别的基准达到记录[38]并且迅速发展在一个大的词汇任务[39]上创造了纪录。到2012年,深度网络的版本从2009年开始正在被许多主要是语音组[6]发展和已经被部署在安卓手机。对于较小的数据集,无监督的预训练有助于防止过拟合[40],导致有标记的样本的数量很小的情况下有很好的推广,或在转移的设置,我们有很多的样本对于某些“源”任务,但对于一些“目标”任务非常少。一当深度学习已经恢复,它证明了预训练阶段只是对于小数据集所需。
然而,这里有一种特殊类型的深度学习,前馈网络是很容易训练的相比卷积神经网络(41,42 ConvNet)。在神经网络不被喜欢的这段时期内,它取得了许多实际的成功,近年来被广泛采用计算机视觉领域。
卷积神经网络
卷积网络是用来处理多通道的矩阵形式的数据,例如一个由三个二维数组组成的彩色图像,分别是三种颜色通道中的像素强度。许多数据模式是以多维数组的形式存在:一维是信号和序列,包括语言;二维是图像或音频频谱图;三维是视频或立体图像。卷积网络的北后有四个主要的思想,利用自然的性质信号:局部连接,共享权重,池和使用很多层。
一个典型的卷积网络架构(图2)的结构是一系列阶段。前几个阶段是由2种类型的层:卷积层和汇聚层。卷积层中的节点被用来进行特征映射,其中每一个节点被连接到特征映射中局部的汇集节点,前一层通过一组被称为滤波组的权重集。这个局部加权总和的结果,然后通过一个非线性函数,如ReLU。特征映射的所有节点共享相同的滤波器组。不同的特征映射使用不同的过滤组。使用这种结构的原因是双重的。首先,在数组数据,如图像,局部组的值往往是高度相关的,形成鲜明的局部图案,很容易被检测到。二、图像和其他信号局部统计是位置无关的。换句话说,如果一个图案可以出现在图像的某个一部分,那它就可以出现在图像的任何地方,因此数组中不同的部分共享相同的权重和检测相同模式的节点的想法。在数学上,由特征映射执行的过滤操作是一个离散的卷积,因此方法取这个名称。
虽然卷积层的作用是检测前一层的局部的结合点,池的作用是将语义相似的特征合并到一个。由于相对位置的特征形成一个主题可以有所不同,可以通过粗粒化各特征的位置来可靠地检测的主题。一个典型的池节点计算在一个特征映射(或几个特征映射)的局部块节点的最大值。邻近的池节点,从多个行或列转化的块中得到输入,从而减少了表示的维数和创造出小的变化和扭曲的不变性。两或三个阶段的卷积,非线性和池的堆栈,接着是更多的卷积和完全连接的层。通过反向传播梯度通过卷积网络和通过常规的深度网络一样简单,让所有的滤波组的所有权重都被训练。
深度神经网络利用很多自然信号组成的层次结构的特性,在更高层的特征是由更低层的所构成。在图像中,局部组合的边缘形式的图案,图案集合成部分,是对象的一部分。类似的层次结构存在于语音和文本,从手机的声音、音素、音节、单词和句子。池允许表示非常小,当元素在之前的各层有不同的位置和外观。
卷积网络的卷积和汇聚层直接受视觉神经科学的经典的简单细胞和复杂细胞概念的启发[43],整体架构是让人联想到视觉皮层腹侧通路是我LGN–V1—V2—V4—IT层次结构[44]。当卷积网络模型和猴子都显示同样的照片,在卷积网络高层单元的激活解释了猴子的颞皮质160个神经元的方差的一半[45]。卷积网络他们的根基在认知机[46],它的结构有点相似,但没有一个端到端的监督学习算法,如反向传播算法。一个原始一维卷积网络称为延时神经网络被用于识别音素和简单的单词。
已经有可以追溯到90年代初的卷积网络的各种应用,从延时神经网络的语音识别[47]和文档阅读[42]。该文件的阅读系统使用实现语言约束的概率模型训练的卷积网络。到了90年代末,这一系统已经阅读了美国的10%以上的支票。许多基于卷积网络的视觉字符识别和手写识别系统,后来被微软发布[49]。在90年代初,卷积网络还被尝试在自然图像检测,包括脸和手[50,51]和人脸识别[52]。
深度卷积网络的图像理解
自本世纪初以来,卷积网络已经取得了巨大成功应用的检测,图像中的物体和区域的分割和识别。这些所有任务中的带标签的数据是相当大的,例如交通标志识别[53],生物图像的分割[54]特别是对连接组[55],以及脸部,文本,行人和人体的自然图像的检测[36,50,51,56-58]。一个最近的的重大实践成功是面部识别[59]。
重要的是,图像可以在像素级进行贴标签,这将在技术上应用,包括自主移动机器人和自动驾驶汽车[60,61]。公司如Mobileye和NVIDIA正在使用基于卷积网络的方法在他们即将推出的汽车的视觉系统中。越来越重要的其它应用包括自然语言理解[14]和语音识别[7]。
图3 |图像到文本。通过一个递归神经网络(RNN)以生成的标题,作为额外的投入,通过一个深度卷积神经网络(CNN)从测试图像中提取表示,RNN被训练去“翻译”图像的高层表示成的标题(如上)。从参考文献[102]许可引用。当RNN给与输入图像中关注一个在不同的位置的注意的能力(中间和底部;更亮的块给与更多注意),正是它产生的每个字(粗体),我们发现[86],它利用此来实现将图像的更好的“翻译”成标题。
尽管取得了这些成就,卷积神经网络在很大程度上被主流计算机视觉和机器学习领域遗弃,直到2012 ImageNet竞赛。当深度卷积网络应用到一个数据集,包含1000个不同类别的一百万个Web上的图像,他们取得了令人瞩目的成果,几乎减少一半最好的竞争的方法[1]的错误率。这成功来自高效利用的GPU,ReLUs,一个新的称为漏失[62]的正则化技术,和通过变形现有的样本的技术产生更多的训练样本。这一成功带来了计算机视觉的革命;卷积神经网络现在几乎是所有的识别和检测任务[4,58,59,63–65]和接近人的性能在某些任务的主要方法。最近的一个极好的示范是结合卷积网络和递归神经网络模块生成图像标题(图 3)。
最近的卷积神经网络架构有10到20层的Relus,数以亿计的权重,以及数十亿计的节点之间的连接。而这样大型网络的训练可能要花几周时间在两年前,在硬件,软件和算法的并行化的进展已减少训练时间为几个小时。
基于卷积神经网络的视觉系统的表现已经引起了大多数主要科技公司,包括谷歌,Facebook,微软,IBM,雅虎,Twitter和Adobe公司,以及大量的初创企业开始研究和开发项目,并部署基于卷积神经网络的图像理解的产品和服务。
卷积神经网络容易适用在高效的硬件芯片或现场可编程门阵列上实现[66,67]。一些公司如NVIDIA,Mobileye、英特尔、高通和三星正在开发的卷积神经网络芯片,使能在智能手机,照相机,机器人和自动驾驶汽车的实时视觉应用。
分布式表示和语言处理
深度学习理论表明,深度网络有2个不同的指数优于不使用分布式表示的经典学习算法[21]。所有这些优点都是源于组件的力量,并依赖有合适的成分结构的基础数据生成分布[40]。首先,学习分布式表示使推广的学习特征值的新组合,比训练过程中看到的(例如,n位二进制特征的可能是个组合)[68,69]。其次,在深度网络表示的构成层带来了另一个潜在的指数优势(指数的深度)[70]。
多层神经网络的隐层对网络的输入的表示进行学习,使其易于预测目标输出。这里是一个很好的证明,通过训练的多层神经网络来从一个局部的上下文中前面的单词序列中来预测下一个字[71]。上下文中的每一个单词做向量的N分之一呈现在网络,即,一个组件有值为1,其余全为0。在第一层。每个单词都会创建一个不同模式的活动或者单词向量(图4) 。
在一个语言模型中,网络的其他层学习转换输入单词向量成一个输出单词向量,这个向量可以被用来预测词典中任何一个单词作为下一个单词出现的概率。网络学习的词向量包含许多活跃的组成,它们可以被解释为一个独立的单词特征,如在学习符号分布表示的上下文中第一次被证明[27]。这些语义特征在输入中没有显式地出现。
他们发现学习过程分解输入和输出符号之间的结构化关系成多个“微规则”是一个很好的方式。学习单词向量被证明这样的情况也工作的很好,单词序列来自一个大型语料库的真实文本和不可靠的个体微规则[71]。当训练来预测新闻故事的下一个单词时,例如,在星期二和星期三的单词向量是非常相似的,因为是瑞典和挪威的单词向量。这样的表示被称为分布式表示,因为它们的元素(特征)是不相互排斥的,它们的许多配置对应于所观察到的数据的变化。这些字向量学习特征组成的,不是专家提前决定的,而是神经网络自动发现的。从文本中学习字向量表示现在非常广泛应用在自然语言应用[14,17,72–76]。
表示的问题在于逻辑的启发和神经网络的启发范式的认知之间的争论的核心。在逻辑启发的范例中,一个符号的实例是唯一的属性,它与其他符号实例是相同或不相同的。它没有有关它的使用的内部结构并且它们必须被绑定到选择引用规则的变量,进行符号推理。相比之下,神经网络只使用大的活动向量,大的权重矩阵和非线性标量进行的毫不费力的常识推理的快速直观推理的类型。
在引入神经语言模型之前[71],对语言的统计模型的标准方法不利用分布式表示:这是基于计数频率出现的短的符号序列的长度为(称为。的可能的数量大约是,其中是词汇量的大小,所以考虑到超过少数的几个单词的一段上下文将需要非常大的训练语料库。把每个单词作为原子单位,所以他们不能概括单词序列之间的语义相关,而神经语言模型可以,因为他们把每个字赋予一个实数值特征向量,语义相关的词最终在向量空间彼此接近(图4)。
递归神经网络
当反向传播首次被引入时,其最令人兴奋的用途是用来训练递归神经网络(RNNs)。对于涉及的顺序输入的任务,如语音和语言,它往往是更好地使用RNNs(图5)。 RNNs一次处理一个输入序列中的一个元素,在其隐藏单元维持一个“状态向量”,向量隐式包含关于该序列的所有过去的元素的历史记录信息。当我们考虑在不同的离散时间的步的隐藏节点的输出,好像他们是在多层深度神经网络的不同的神经元的输出(图5,右),我们如何运用反向传播训练RNNs就变得清晰了。
RNNs是非常强大的动态系统,但训练它已被证明是有问题的,因为反向传播的梯度要么增长或在每一个时间步长缩小,所以经过很多时间步他们通常会爆炸或消失[77,78]。
感谢他们在结构[79,80]和训练方法[81,82]的进步,RNNs已被发现是非常善于在预测文本中的下一个单词[83]或在序列中下一个字符的预测[75],但它们也可以用于更复杂的任务。例如,在读一个英文句子的一个单词的时候,一个英语“编码器”网络可以被训练,使其隐藏的单位的最后状态向量是一个很好的表示句子表达的思想。这个思想向量,然后被用作初始隐藏状态的(或作为额外的输入)一个共同训练的法语“解码器”的网络,输出法语翻译第一个字的概率分布的。如果某第一个字是从这个分布中被选择并且作为输入提供给解码器网络它将输出一个用于翻译的第二个词的概率分布等,直到完全停止被选择[17,72,76]。总体而言,这个过程会产生一系列的法语单词,根据一个取决于英语句子的概率分布。这种相当幼稚的方式来进行机器翻译已经迅速成为有竞争力的最新水平,这引起了严重的怀疑,是否理解一个句子需要任何内部的使用推理规则操纵的符号表达式。日常推理涉及很多同时类比,这有助于得到的合理性的结论的看法更兼容[84,85]。
相反翻译法语句子的意思为一个英文句子,人们可以学会‘翻译‘图像的含义变成一个英语句子(图3)。这里的编码器是一种深度卷积网络将像素转换成在它最后一个隐层的活动向量。解码器是一个类似于用于机器翻译和语言模型的递归神经网络。最近对于这样的系统中有兴趣大增(见参考文献86提到的例子)。
RNNs,及时的展开(图5),可以被看作是在其中所有层共享相同的权重非常深的前馈网络。虽然它们的主要目的是学习长期相关性,理论和实验证据表明,它是很难学习存储非常长的信息[78]。
为了校正这个,一个想法是增强有明确记忆的网络。这种想法的第一个方案是长短期的记忆(LSTM)网络,使用特殊的隐节点,其自然的行为是要记住一长时间的输入[79]。一个特殊的节点称为记忆细胞的行为像一个蓄电池或选通渗漏的神经元:它有带一个权重的下一个时间步长的连接,所以它复制自身的实数值状态和积累的外部信号,但这种自我连接乘法是由学习决定何时清理的记忆内容的另一个节点门控。
LSTM网络已经随后证明比传统的RNN更有效,尤其是当他们对每时间步有几层[87],使一个完整的语音识别系统,可以从声学的方法,字符序列的转录。LSTM网络或门控单元的相关形式目前也应用与的编码器和解码器的网络,在机器翻译有上佳表现[17,72,76]。
在过去的一年中,几位学者提出不同的建议对于增加的记忆模块。建议包括神经图灵机,这个网络是增加了一个“带状”的记忆,RNN可以选择读或写[88],和记忆网络,一般网络是由一种联想记忆增加的[89]。存储网络已经在标准答疑基准上取得了出色的性能。内存是用来记住该网络后来问到回答问题的故事。
除了简单的记忆,和存储网络被用于通常需要推理和符号处理的任务。神经图灵机可以教‘算法‘。除此之外,他们可以学会输出一个有序的符号列表,当其输入是一个未排序的序列,其中的每个符号是有一个实数值,用来表示其在列表中的优先程度[88]。存储网络可以被训练来记录在一系列类似文本冒险游戏和读故事中世界的状态,他们可以回答需要复杂的推理的问题[90]。在一个测试的样本,网络是被显示一个15版的魔戒并正确回答这样的问题“哪里是佛罗多吗?“[89]。
图4 |学习的单词向量的可视化。左边是学习的建模语言文字表述的说明,非线性投影到2D使用T-SNE 算法[103]的可视化。右边是一个学到的短语二维表示通过一个英语到法语编码器–解码器的递归神经网络[75]。可以观察到,语义相似的词或词的序列映射到相邻的表示。词语的分布表示由使用反向传播来共同学习每个字的表示和一个预测的目标量的函数,如在序列中的下一个字(在语言模型里),或整个序列的单词的翻译(机器翻译)[18,75]。
图5 |递归神经网络和涉及前向计算的计算时间的展开。人工神经元(例如,在节点下的隐藏节点组在时间值为)从其他神经元在先前的时间步(这里用黑色正方形表示,代表一个时间步长的延迟,在左边)得到输入。这样,递归神经网络可以映射输入序列的元素成输出序列的元素,对与每一个依赖以前所有的() 。相同的参数(矩阵)被用在每一个时间步。许多其他的架构是可能的,包括其中的一个变形,网络可以产生一系列的输出(例如,单词),其中每一个被用作下一步的输入。反向传播算法(图1),可以直接应用于图的右边的展开网络的计算,来计算一个总的误差(例如,产生正确的输出序列的对数概率)对于所有的所有状态和所有的参数。
深学习的未来
无监督学习[91-98]曾在复兴深度学习的兴趣上起到促进作用,但被通过纯粹的监督学习的成功所掩盖。虽然我们并没有将其作为重点放在这篇评论中,我们预计无监督学习在更长的时间里会更重要的。人类和动物的学习主要是无监督:我们通过观察它,而不是被告知每个对象的名称来发现世界的结构。
人的视觉是一个主动的过程,以智能、特定任务的方式排列的连续样本光线阵列,用一个小的、高分辨率凹镜和大的低分辨率环绕。我们预计大部分视觉的未来发展都来自于该被训练端到端系统结合使用强化学习,以决定在哪里看的RNN和卷积神经网络。结合深度学习和强化学习系统还处于起步阶段,但他们已经超越在分类任务上的被动视觉系统[99]和学习玩多种不同视频游戏[100]取得了不俗的成绩。
自然语言理解的是在深学习的另外一个领域,已经充分做好准备在未来几年有很大的影响。我们希望用RNN的系统理解句子或整个文件会变得更好,他们学会有选择地注意一个时间的一部分[76,86]。
最终,在人工智能方面取得重大进展将通过表示学习和复杂的推理相结合的系统来产生。尽管深度学习和简单的推理已被用于语音和手写识别很长一段时间,但是需要新的模式来代替大向量上基于规则的操纵的符号表达式[101]。
2月25日收到; 2015年5月1日接受。
原文pdf 下载:http://download.csdn.net/detail/happytofly/8758755
标签:
原文地址:http://www.cnblogs.com/tianjiqx/p/5830295.html