本文主要是介绍【Deep Learning Papers】Deep Learning(Yann LeCun,Yoshua Bengio,Geoffrey Hinton),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
NatureDeepReview解读
- 1 全文翻译
- 1.0 摘要
- 1.1 介绍
- 1.2 监督学习
- 1.3 反向传播训练多层架构
- 1.4 卷积神经网络
- 1.5 基于深度卷积网络的图像理解
- 1.6 分布式表征和语言处理
- 1.7 循环神经网络
- 1.8 深度学习的未来
深度学习三巨头对深度学习的里程碑式综述,入门经典。
原论文链接: http://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf
1 全文翻译
1.0 摘要
深度学习允许由多个处理层组成的计算模型学习具有多层抽象的数据表示。这些方法在语音识别、视觉对象识别、目标检测以及药物发现和基因组学等许多领域中极大地改进了最先进技术。深度学习通过使用反向传播算法,发现大型数据集中的复杂结构,指示机器如何根据前一层的表示来调整用于计算每一层表示的内部参数。深度卷积网络在处理图像、视频、语音和音频方面取得了突破,而循环网络则揭示了文本和语音等序列数据的特点。
1.1 介绍
机器学习技术为现代社会的许多方面提供了动力:从网络搜索到社交网络上的内容过滤,再到电子商务网站的推荐,它越来越多地出现在相机和智能手机等消费产品中。机器学习系统用于识别图像中的对象,将语音转录为文本,将新闻项目,帖子或产品与用户的兴趣进行匹配,并选择相关的搜索结果。这些应用程序越来越多地使用了一类称为深度学习的技术。
传统的机器学习技术在处理原始形式的自然数据方面能力有限。几十年来,构建模式识别或机器学习系统需要仔细的工程设计和相当多的领域专业知识来设计一个特征提取器,将原始数据(如图像的像素值)转换为合适的内部表示或特征向量,学习子系统(通常是分类器)可以从中检测或分类输入中的模式。
表示学习是一组方法,它允许向机器提供原始数据,并自动发现检测或分类所需的表示。深度学习方法是具有多层表示的表示学习方法,通过组合简单但非线性的模块获得,每个模块将一个级别的表示(从原始输入开始)转换为更高,稍微更抽象的级别的表示。有了足够多这样的变换,就可以学习非常复杂的函数。对于分类任务,更高层次的表示放大了输入中对区分很重要的方面,并抑制了不相关的变化。例如,图像以像素值数组的形式出现,并且在第一层表示中学习的特征通常表示图像中特定方向和位置的边缘是否存在。第二层通常通过发现边缘的特殊排列来检测图案,而不考虑边缘位置的微小变化。第三层可以将图案组合成更大的组合,对应于熟悉物体的各个部分,随后的层会将物体检测为这些部分的组合。深度学习的关键方面是,这些特征层不是由人类工程师设计的:它们是使用通用学习程序从数据中学习的。
深度学习在解决问题方面取得了重大进展,这些问题多年来一直阻碍着人工智能社区的最佳尝试。事实证明,它非常善于发现高维数据中的复杂结构,因此适用于科学、商业和政府的许多领域。除了打破图像识别(1 - 4)和语音识别(5 - 7)的记录外,它还在预测潜在药物分子的活性(8)、分析粒子加速器数据(9 - 10)、重建大脑回路(11)以及预测非编码DNA突变对基因表达和疾病的影响(12 - 13)方面击败了其他机器学习技术。也许更令人惊讶的是,深度学习在自然语言理解的各种任务中产生了非常有希望的结果,特别是主题分类、情感分析、问题回答和语言翻译。
我们认为深度学习在不久的将来会取得更多的成功,因为它只需要很少的手工工作量,所以它可以很容易地利用可用计算资源和数据不断增加这一优势。目前关于深度神经网络开发的新的学习算法和架构将加速这一进程。
1.2 监督学习
最常见的机器学习形式,无论深度与否,都是监督学习。想象一下,我们想要建立一个系统,可以将图像分类为包含房屋,汽车,人或宠物。我们首先收集了大量的房屋、汽车、人和宠物的图像数据集,每个图像都标有其类别。在训练过程中,向机器显示一个图像,并以分数向量的形式产生输出,每个类别一个。我们希望期望的类别在所有类别中得分最高,但这在训练之前不太可能发生。我们计算一个目标函数来测量输出分数和期望分数模式之间的误差(或距离)。然后,机器修改其内部可调参数来减少这种误差。这些可调参数通常被称为权重,是实数,可以看作是定义机器输入输出功能的“旋钮”。在一个典型的深度学习系统中,可能有数亿个可调节的权重,以及数亿个用于训练机器的标记示例。
为了适当调整权重向量,学习算法对于每个权重计算一个梯度向量,该梯度向量表示权重增加少量时误差会增加或减少多少。然后将权重向量按与梯度向量相反的方向进行调整。
对所有训练样本进行综合的目标函数,可以比作是权重值的高维空间中的一种丘陵景观。负梯度向量表示该景观中最陡下降的方向,使其更接近最小值,平均输出误差较低。
在实践中,大多数从业者使用一种称为随机梯度下降(SGD)的程序。意思是通过几个样本的输入向量计算输出和误差,计算这些样本的平均梯度,并相应地调整权重。对于训练集中的许多小样本集重复这个过程,直到目标函数的平均值停止下降。它之所以被称为随机,是因为每一小组样本对所有样本的平均梯度给出了一个有噪声的估计。与复杂得多的优化技术相比,这个简单的过程通常会以惊人的速度找到一组合适的权重。训练后,系统的性能在另一组称为测试集的示例上进行测量。这是为了测试机器的泛化能力——它在训练中从未见过的新输入上产生合理答案的能力。
目前机器学习的许多实际应用都是在手工设计的特征之上使用线性分类器。两类线性分类器计算特征向量分量的加权和。如果加权和超过阈值,则将输入分类为属于特定类别。
自20世纪60年代以来,我们已经知道线性分类器只能将它们的输入空间分割成非常简单的区域,即由超平面分隔的半空间。但是,像图像和语音识别这样的问题要求输入-输出功能对输入的无关变量不敏感,例如物体的位置、方向或照明的变化,或语音的音高或口音的变化,同时对特定的微小变化非常敏感(例如,白狼和一种类似狼的白狗萨摩耶犬之间的差异)。在像素水平上,两只萨摩耶犬在不同姿势和不同环境下的图像可能彼此非常不同,而在相同位置和相似背景下的的一只萨摩耶犬和一只狼图像可能彼此非常相似。线性分类器或任何其他对原始像素操作的“浅”分类器不能够区分后两者,也不能够将前两者放在同一类别中。这就是为什么浅分类器需要一个好的特征提取器来解决选择性-不变性困境——它产生的表示需要对图像中对识别很重要的方面有选择性,但同时对不相关的方面(如动物的姿势)是不变的。为了使分类器更强大,可以使用一般的非线性特征,如核方法,但一般的特征,如由高斯核产生的特征,不允许学习者在远离训练样本的情况下很好地泛化。传统的选择是手工设计好的特征提取器,这需要大量的工程技能和领域专业知识。但是,如果可以使用通用学习程序自动学习好的特征,这一切都可以避免。这是深度学习的关键优势。
深度学习架构是简单模块的多层堆栈,其中所有(或大部分)模块都被学习,其中的许多模块用于计算非线性的输入输出映射。堆栈中的每个模块都对其输入进行转换,以增加表示的选择性和不变性。通过多个非线性层,比如深度为5到20的层,系统可以实现极其复杂的输入功能,同时对微小的细节(区分萨摩耶犬和白狼)敏感,对背景、姿势、照明和周围物体等大的无关变量不敏感。
1.3 反向传播训练多层架构
从模式识别的早期开始,研究人员的目标就是用可训练的多层网络取代手工设计的特征,但是尽管它很简单,直到20世纪80年代中期,这个解决方案才被广泛理解。事实证明,多层结构可以通过简单的随机梯度下降来训练。只要模块是其输入和内部权重的相对平滑函数,就可以使用反向传播过程计算梯度。这个想法是可以做到的,而且是有效的,是由几个不同的小组在20世纪70年代和80年代独立发现的。
图1 |多层神经网络与反向传播。a,多层神经网络(由连接点表示)可以扭曲输入空间,使数据类(红色和蓝色线上的示例)线性可分。注意输入空间中的
规则网格(如图所示)是如何被隐藏单元转换的(如图所示)。这是一个说明性的例子,只有两个输入单元,两个隐藏单元
和一个输出单元,但用于对象识别或自然语言处理的网络包含数万或数十万个单元。
经C. Olah (http://colah.github.io/)许可转载。b,导数的链式法则告诉我们两个小的影响(x对y的小变化和y对z的小变化)是如何组成的。x的微小变化Δx首先通过乘
以∂y/∂x(也就是偏导数的定义)转化为y的微小变化Δy。类似地,变化Δy会产生z的变化Δz。将一个方程代入另一个方
程得到导数链式法则——Δx如何通过乘以∂y/∂x和∂z/∂x的乘积变成Δz。
当x, y和z是向量时(它们的导数是雅可比矩阵),它也适用。c,用于计算具有两个隐藏层和一个输出层的神经网络中的正向传递的方程,每个隐含层构成一个模块,通过该模块
可以反向传播梯度。在每一层,我们首先计算每个单元的总输入z,这是下一层中单元输出的加权和。然后将非线性
函数f(.)应用于z以得到单元的输出。为简单起见,我们省略了偏倚项。神经网络中使用的非线性函数包括近年来常
用的整流线性单元(ReLU) f(z) = max(0,z),以及更传统的s型曲线,如双曲正切,
f(z) =(exp(z)−exp(−z))/(exp(z)+exp(−z))和逻辑函数logistic, f(z) =1/(1 +exp(−z))。d,用于计算反向传递的方程。在每个隐藏层,我们计算相对于每个单元输出的误差导数,这是相对于上一层单元的
总输入的误差导数的加权和。然后我们通过乘以f(z)的梯度把对输出的误差导数转换成对输入的误差导数。在输出
层,对一个单元的输出的误差导数是通过微分成本函数来计算的。如果单位l的成本函数为0.5(yl - tl)^2
,则得到yl - tl,其中tl是目标值。
一旦∂E/∂zk已知,权重wjk与下一层中单位j的连接的误差导数就是yj∂E/∂zk。
计算目标函数对多层模块的权重的梯度的反向传播过程只不过是导数链式法则的实际应用。主要思想是,对某一模块的输入部分的导数(或梯度)可以通过先计算对该模块的输出(或后续模块的输入)的导数回溯得到(图1)。反向传播方程可以被反复应用使得梯度在所有模块传播,从顶部的输出(网络产生预测的地方)直到底部(提供外部输入的地方)。一旦计算出这些梯度,就可以直接计算每个模块权重的梯度。
深度学习的许多应用使用前馈神经网络架构(图1),它学习将固定大小的输入(例如,图像)映射到固定大小的输出(例如,几个类别中的每个类别的概率)。为了从一层到下一层,一组单元计算前一层输入的加权和,并通过非线性函数传递结果。目前,最流行的非线性函数是整流线性单元(ReLU),它实际是半波整流函数f(z)= max(z, 0)。在过去的几十年里,神经网络使用更平滑的非线性函数,如tanh(z)或1/(1+exp(- z)),但ReLU通常在多层网络中学习得更快,允许在未进行无监督预训练的情况下训练深度监督网络(28)。不是输入或输出层的单元通常称为隐藏单元。隐藏层以非线性方式扭曲输入,使得到达最后一层时类别变为线性可分的(图1)。
在20世纪90年代末,神经网络和反向传播在很大程度上被机器学习社区所抛弃,被计算机视觉和语音识别社区所忽视。人们普遍认为,学习有用的、多阶段的、没有多少先验知识的特征提取器是不可行的。特别是,通常认为简单的梯度下降会陷入较差的局部最小权值配置,对于这种配置,任何微小的变化都不会减少平均误差。
实际上,对于大型网络来说,糟糕的局部最小值很少是一个问题。不管初始条件如何,系统几乎总是得到质量非常相似的解。最近的理论和实证结果强烈表明,局部极小值一般来说不是一个严重的问题。相反,景观是由大量的梯度为零的鞍点组合而成的,表面在大多数维度上向上弯曲,在其余维度上向下弯曲29,30。分析似乎表明,只有少数向下弯曲方向的鞍点数量非常多,但几乎所有的鞍点都具有非常相似的目标函数值。因此,算法被困在哪个鞍点上并不重要。
对深度前馈网络的兴趣在2006年左右被加拿大高级研究所(CIFAR)召集的一组研究人员重新唤起(参考文献31-34)。研究人员引入了无监督学习程序,可以在不需要标记数据的情况下创建多层特征检测器。学习每一层特征检测器的目标是能够重建或建模下一层特征检测器(或原始输入)的活动。通过使用该重建方法“预训练”几层越来越复杂的特征检测器,可以将深度网络的权重初始化为合理的值。最后一层输出单元可以添加到网络的顶部,整个深度系统可以使用标准的反向传播进行微调。这在识别手写数字或检测行人方面效果非常好,尤其是在标记数据量非常有限的情况下。
这种预训练方法的第一个主要应用是语音识别,快速图形处理单元(gpu)的出现使其成为可能,它便于编程37,并允许研究人员以10到20倍的速度训练网络。2009 年,该方法被用于将从声波中提取的短时窗系数映射到窗口中心帧可能代表的各种语音片段的概率集。它在使用小词汇量的标准语音识别基准测试中取得了破纪录的成绩,并迅速得到发展,在使用大词汇量的任务中取得了破纪录的成绩。到2012年,许多主要的语音小组都在开发2009年的深度网络版本,并且已经部署在安卓手机上。对于较小的数据集,无监督预训练有助于防止过拟合40 ,从而在标注示例数量较少时,或者在我们对某些 "源 "任务拥有大量示例,但对某些 "目标 "任务却只有极少示例的迁移设置中,显著提高泛化效果。深度学习恢复后,会发现预训练阶段仅适用于小型数据集。
然而,有一种特殊类型的深度前馈网络比相邻层之间具有完全连接的网络更容易训练和泛化。这就是卷积神经网络(ConvNet)。在神经网络不受欢迎的时期,它取得了许多实际成功,最近被计算机视觉社区广泛采用。
1.4 卷积神经网络
卷积神经网络设计用于处理以多个数组形式出现的数据,例如,由三个二维数组组成的彩色图像,其中包含三个颜色通道中的像素强度。许多数据模态以多数组形式存在:有一维数组例如信号和序列,包括语言等;还有二维数组例如图像或音频的谱图;还有三维数组例如视频或容积图像。卷积神经网络利用自然信号的特性有四个关键思想:局部连接、共享权重、池化和使用多层结构。
图2 |卷积网络内部。
典型卷积网络架构的每层(水平)输出(不是滤波器)应用于萨摩耶犬的图像(左下;右下角是RGB(红色,绿色,蓝色)
输入)。每个矩形图像都是一个特征映射,对应于在每个图像位置检测到的学习特征之一的输出。信息流由下而上,
低级特征们发挥定向边缘检测器的作用,最终的输出层会为每个图像类别计算相应得分。ReLU,整流线性单元。
典型 ConvNet 的架构(图 2)由一系列阶段组成。前几个阶段由两类层组成:卷积层和池化层。卷积层中的单元被组织在特征图中,其中每个单元通过一组称为滤波器组的权值与上一层的特征图局部相接。然后,这一局部加权和的结果会通过一个非线性函数(如 ReLU)。一个特征图中的所有单元共享同一个滤波器组。一个层中的不同特征图使用不同的滤波器组。采用这种结构有两个原因。首先,在图像等阵列数据中,局部数值组往往高度相关,形成独特的局部图案,易于检测。其次,图像和其他信号的局部统计与位置无关。换句话说,如果一个图案可能出现在图像的某一部分,那么它也可能出现在任何地方,因此不同位置的单元可以共享相同的权重,并在阵列的不同部分检测到同样的模式。在数学上,对特征图进行滤波操作称为离散卷积,因此得名。
卷积层的作用是对前一层的特征进行局部连接,而池化层的作用是将语义相似的几个特征合而为一。由于构成图形的特征的相对位置有所不同,因此可通过对每个特征的位置进行粗粒度化来可靠地检测图形。经典的池化单元作用是计算一个特征映射(或几个特征映射)中局部单元集合的最大值。相邻的池化单元从跨多行或多列的集合中获取输入,从而降低了表示的维度,并建立了对微小扰动和扭曲的不变性。卷积、非线性函数和池化这两三个阶段堆叠在一起,之后是更多的卷积和全连接层。对于ConvNet,反向传播梯度的操作像常规深度网络一样简单,并且可用该方法训练所有滤波器组中的所有权重。
深度神经网络利用了许多自然信号都是层次组合的特性,其中较高层次的特征是由较低层次的特征组成的。在图像中,边缘的局部组合形成图案,图案组合成部件,部件形成物体。语音和文本中也存在类似的层次结构,从声音到音素、音位、音节、单词和句子。池化操作可以使得在前一层的元素在位置和外观上发生变化的情况下,表征的变化很小。
卷积神经网络中的卷积层和池化层直接受到视觉神经科学中简单细胞和复杂细胞的经典概念的启发,其整体架构让人联想到视觉皮层腹侧通路中的LGN-V1-V2-V4-IT层次结构。当向卷积神经网络模型和猴子分别展示相同的图片时,卷积神经网络中高级单元的激活可解释猴子颞下皮层中160个随机神经元组的一半变化。卷积神经网络起源于neocognitron46,它们的架构有些相似,但它没有如反向传播这样的端到端的监督学习算法。一种称为时滞神经网络的原始一维卷积神经网络被用于识别音素和简单的单词47,48。
从20世纪90年代初开始,卷积网络就有了大量的应用,首先是用于语音识别和文档阅读的时滞神经网络。该文档阅读系统使用了一个与实现语言约束的概率模型联合训练的卷积神经网络。到20世纪90年代末,该系统成功阅读了全美超过10%的支票。许多基于卷积神经网络的光学字符识别和手写识别系统后来被Microsoft49部署。在20世纪90年代早期,卷积神经网络也被用于自然图像中的物体检测,包括人脸和手50,51,以及人脸识别52。
1.5 基于深度卷积网络的图像理解
自21世纪初以来,卷积神经网络在图像中物体和区域的检测、分割和识别方面取得了巨大成功。这些都是标记数据相对丰富的任务,例如交通标志识别53,生物图像的分割54,特别是连接组学的分割55,以及自然图像中人脸,文本,行人和人体的检测36,50,51,56-58。卷积神经网络方面最近的一个重大成功是人脸识别。
值得注意的是,图像可以在像素级别进行标记,这将在技术上得到应用,包括自主移动机器人和自动驾驶汽车60,61。Mobileye和NVIDIA等公司正在他们即将推出的汽车视觉系统中使用这种基于convnet的方法。其他越来越重要的应用包括自然语言理解和语音识别。
尽管取得了这些成功,但卷积神经网络在很大程度上被主流计算机视觉和机器学习社区所抛弃,直到2012年的ImageNet竞赛。当深度卷积网络应用于包含1000个不同类别的大约100万张网络图像的数据集时,它们取得了惊人的结果,几乎将最佳竞争方法的错误率降低了一半。这一成功得益于gpu、relu、一种新的正则化技术dropout62的有效使用,以及通过变形现有样本来生成更多训练样本的技术。这一成功给计算机视觉带来了一场革命;卷积神经网络现在是几乎所有识别和检测任务的主要方法4,58,59,63 - 65,并且在某些任务中接近人类的表现。最近一项不错的研究通过结合卷积神经网络和循环网络模块来生成图像标题(图3)。
图3 |从图像到文本。
由循环神经网络(RNN)生成的标题,作为额外的输入,由深度卷积神经网络(CNN)从测试图像中提取的表示,RNN经过
训练将图像的高级表示“翻译”为标题(上图)。经参考文献102许可转载。当 RNN 在生成每个单词(粗体)时,可以将
注意力集中在输入图像的不同位置(图2六幅图中;浅色斑块受到更多关注),我们发现(86) RNN 可以利用这一点更
好地将图像 "翻译 "为标题。
最近的卷积神经网络架构有10到20层的relu,数以亿计的权重,以及单元之间数十亿的连接。然而,仅仅在两年前,训练如此庞大的网络可能需要数周的时间,而硬件、软件和算法并行化的进步已经将训练时间减少到几个小时。
基于convnet的视觉系统的性能已经引起了大多数主要科技公司的关注,包括Google, Facebook, Microsoft, IBM, Yahoo!此外,越来越多的初创企业开始启动研发项目,并部署基于卷积神经网络的图像理解产品和服务。
卷积神经网络很容易适用于芯片或现场可编程门阵列中的高效硬件实现[66,67]。英伟达(NVIDIA)、Mobileye、英特尔(Intel)、高通(Qualcomm)和三星(Samsung)等多家公司正在开发ConvNet芯片,以便在智能手机、相机、机器人和自动驾驶汽车中实现实时视觉应用。
1.6 分布式表征和语言处理
深度学习理论表明,与不使用分布式表示的传统学习算法相比,深度网络具有两个不同的指数优势21。这两个优势都源于组合的力量,并依赖于具有合适组成结构的基础数据生成分布40。首先,通过学习分布式表征,可以将所学特征值的新组合泛化到训练期间所见的组合之外(例如,n 个二元特征可能有 2^n 种组合)68,69。其次,在深度网络中组成表征层可能带来另一个指数优势70(深度指数)。
图4 |可视化学习到的单词向量。左边是为建模语言学习的单词表示的插图,使用t-SNE算法将其非线性投影到2D以
进行可视化。右边是由英语-法语编码器-解码器循环神经网络学习的短语的二维表示75。可以观察到,语义上相似
的单词或单词序列被映射到附近的表示。单词的分布式表示是通过使用反向传播来联合同时学习每个单词的表示以及
用于计算某种量化的预测结果的函数来获得的,例如序列中的下一个单词(用于语言建模)或翻译整个单词序列(用于机器翻译)18,75。
多层神经网络的隐藏层学习以一种容易预测目标输出的方式来表示网络的输入。这可以通过训练多层神经网络来很好地证明,它可以从早期单词的局部上下文中预测序列中的下一个单词71。上下文中的每个单词都以1 -of- n向量的形式呈现给网络,即一个分量的值为1,其余分量的值为0。在第一层中,每个单词都会产生不同的激活模式,即单词向量(图 4)。在语言模型中,网络的其他层学习如何将输入词向量转换为预测下一个词的输出词向量,这可以用来预测词汇表中任何一个词作为下一个词出现的概率。网络学习的单词向量包含许多有源元件,每个有源元件都可以解释为单词的一个单独特征,这在学习符号的分布式表示时首次得到证实27。这些语义特征并没有明确出现在输入中。它们是由学习程序发现的,是将输入和输出符号之间的结构关系分解为多个 "微规则 "的好方法。事实证明,当单词序列来自大量真实文本语料库,而单个微规则不可靠时,学习单词向量也非常有效71。例如,在训练预测新闻故事中的下一个词时,学习到的星期二和星期三的词向量非常相似,瑞典和挪威的词向量也非常相似。这种表示被称为分布式表示,因为它们的元素(特征)不是相互排斥的,它们的许多配置对应于被观测数据中的相应变化。这些词向量由学习到的特征组成,这些特征不是由专家提前确定的,而是由神经网络自动发现的。从文本中学习的单词的向量表示现在在自然语言应用中得到了非常广泛的应用。
表征问题是逻辑启发式认知范式和神经网络启发式认知范式之间争论的核心。在逻辑启发范式中,符号实例的唯一属性是它与其他符号实例相同或不相同。它没有与其应用相关的内部结构;要使用符号进行推理,必须将符号与明智选择的推理规则中的变量绑定。相比之下,神经网络只是利用大活动向量、大权重矩阵和标量非线性来进行快速的 "直观 "推理,而这种推理正是毫不费力的常识推理的基础。
在引入神经语言模型之前,语言统计建模的标准方法并没有利用分布式表示:它是基于计算长度为N(称为N-gram)的短符号序列的出现频率。可能的n -gram的数量是V^N的数量级,其中V是词汇量的大小,所以考虑到上下文而非一些单词的堆砌将需要非常大的训练语料库。n -gram将每个单词视为一个原子单元,因此它们不能在语义相关的单词序列中进行泛化,而神经语言模型可以,因为它们将每个单词与实值特征向量相关联,并且语义相关的单词最终在该向量空间中彼此接近(图4)。
1.7 循环神经网络
反向传播技术刚问世时,最令人兴奋的用途是训练循环神经网络(RNN)。对于涉及顺序输入的任务,如语音和语言,通常最好使用 RNN(图 5)。RNN 一次处理一个元素的输入序列,在其隐藏单元中保持一个 “状态向量”,其中隐含了序列中所有过去元素的历史信息。当我们将不同离散时间步长的隐藏单元输出视为深度多层网络中不同神经元的输出时(图 5 右),我们就可以清楚地看到如何应用反向传播来训练 RNN。
图5 |递归神经网络及其前向计算所涉及的计算在时间上的展开。人工神经元(例如,在节点s下分组的隐藏单元,在
时间t时的值为st)从之前时间步长的其他神经元获得输入(这用黑色方块表示,代表一个时间步长的延迟,在左边)。
通过这种方式,一个循环神经网络可以将一个包含元素xt的输入序列映射到一个包含元素ot的输出序列,其中每个ot
依赖于之前的所有xt ^ 2(对于t ^ 2≤t)。在每个时间步使用相同的参数(矩阵U,V,W)。还有许多其他架构是可能
的,其中包括一种变体,在这种变体中,网络可以生成一系列输出(例如,单词),每个输出都用作下一个时间步骤的
输入。反向传播算法(图1)可以直接应用于右侧未展开网络的计算图,计算总误差(例如,生成正确输出序列的对数
概率)对所有状态st和所有参数的导数。
RNN是非常强大的动态系统,但训练它们已经被证明是有问题的,因为反向传播的梯度在每个时段要么增长要么缩小,所以在经历多个时段后,它们通常会爆炸或消失77,78。
由于RNN的结构和训练方法的进步,人们发现RNN在预测文本中的下一个字符或序列中的下一个单词方面非常出色,但它们也可以用于更复杂的任务。例如,在逐字阅读英语句子后,可以训练一个英语 "编码器 "网络,使其隐藏单元的最终状态向量能够很好地表达句子所表达的思想。然后,该思维向量可被用作联合训练的法语 "解码器 "网络的初始隐藏状态(或额外输入),该网络可以输出法语译文的首个单词的概率分布。如果从该分布中选择一个特定的首单词作为该解码器网络的输入,它会输出译文第二个单词的概率分布,依此类推,直到选择一个句号17,72,76。总之,这一过程根据英语句子的概率分布生成法语单词序列。这种相当老实的机器翻译方式很快就能与最先进的机器翻译技术相媲美,这让人严重怀疑理解一个句子是否需要使用这种由推理规则所限定的内部符号表示。它更符合这样一种观点,即日常推理包含了许多同时进行的类比,这其中每个类比都有助于使结论更加合理84,85。
除了将法语句子的意思翻译成英语句子,还可以学习将一张图像的含义“翻译”成一个英文语句(图3)。这里采用的编码器是一个深度卷积神经网络,它将像素值转换为最后一个隐藏层的一个活动向量。这里使用的解码器是一个类似于机器翻译和神经语言建模的RNN。最近对这种系统的兴趣激增(参见参考文献86中提到的例子)。
RNN,如果在时间上展开(图5),可以被视为非常深的前馈网络,其中所有层共享相同的权重。虽然它们的主要目的是学习长期的依赖关系,但理论和经验证据表明,学习长时间存储信息是困难的。
为了解决这种问题,一种方法是在网络中加入显式记忆。这类网络的第一个方案是长短时记忆(LSTM)网络,它使用特殊的隐藏单元,其自然属性是能够长时间记忆输入79。该网络有一类特殊单元被称为记忆单元,其作用类似于累加器或门控漏神经元:它在下一时段与自身有一个权重为 1 的连接,因此它可以复制自身的实值状态并累加外部信号,但这种自连接由另一个单元进行乘法门控,该单元习得了决定何时清除所记忆内容的功能。
LSTM 网络随后被证明比传统的 RNN 更为有效,尤其是当它们在每个时间步长上都有多个层87 时,可用作实现从声音到转录的字符序列的整个语音识别系统。LSTM 网络或相关形式的门控单元目前也仍被用在一些在机器翻译领域表现出色的编码器和解码器网络17,72,76。
在过去的一年里,几位作者提出了不同的改进方案,用一个存储模块来增强RNN。建议包括神经图灵机(Neural Turing Machine)和记忆存储网络(memory networks),前者通过“磁带式”存储器(RNN可以选择从中读取或写入)来增强网络,后者通过一种关联存储方法来增强常规RNN网络。该类记忆网络在标准问答测试中表现出色。其中的记忆存储是用于记住随后将被问到的故事以便回答相关问题。
除了简单的记忆,神经图灵机和记忆网络还被用于通常需要推理和符号操作的任务。神经图灵机可以学习“算法”。除此之外,他们可以通过学习输出一个排好序的符号列表,此时的输入是一个未排序的序列,序列中每个符号都标有一个实值用于表明其在列表中的优先级88。可以训练记忆网络在类似文字冒险游戏的环境中追踪世界的状态,在阅读故事后,记忆网络可以回答一些需要复杂推理的问题90。在一个测试实例中,记忆网络学习了 15 句版本的《魔戒》,并正确回答了 "佛罗多现在在哪里?"等问题89。
1.8 深度学习的未来
无监督学习(91 - 98)在恢复人们对深度学习的兴趣方面起到了催化作用,但此后被纯监督学习的成功所掩盖。虽然我们没有在这篇评论中关注它,但我们预计从长远来看,无监督学习将变得更加重要。人类和动物的学习在很大程度上是不受监督的:因为我们是通过观察世界来发现世界的结构,而非事前被告知每个物体的名称。
人类的视觉是一个主动的过程,它以一种智能的、针对特定任务的方式,使用小而高分辨率的眼睛观察大却低分辨率的环绕,对光学阵列进行顺序采样。我们预计,未来视觉领域的进步将主要来自端到端训练的系统,这些系统将 ConvNets 与 RNNs 结合起来,并使用强化学习来决定注意的地方。结合深度学习和强化学习的系统还处于起步阶段,但它们在分类任务中的表现已经超过了被动视觉系统99 ,并在学习玩许多不同的视频游戏中取得了令人印象深刻的结果100。
自然语言理解是深度学习在未来几年有望产生重大影响的另一个领域。今后使用RNN构建的用于理解句子或文档的系统,在学习选择性地关注某一部分的策略时,有望会变得更好76,86。
最后我们指出,人工智能的未来重大进展将通过构建将表示学习与复杂推理相结合的系统来实现。虽然深度学习和简单推理已经用于语音和手写识别很长一段时间,但需要新的范式来取代现有的基于规则的通过对大型向量变换实现的符号表示范式101。
这篇关于【Deep Learning Papers】Deep Learning(Yann LeCun,Yoshua Bengio,Geoffrey Hinton)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!