英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料
深度学习
Yann LeCun1,2, Yoshua Bengio3 amp; Geoffrey Hinton4,5
摘要:深度学习允许由多个处理层组成的计算模型学习具有多个抽象级别的数据表示。 这些方法极大地改善了语音识别,视觉对象识别,对象检测以及许多其他领域(例如药物发现和基因组学)的最新技术。 深度学习通过使用反向传播算法指示机器应如何更改其内部参数从而才能发现大型集中数据的复杂结构,这些内部参数用于根据上一层的表示来计算每一层的表示。 深层卷积网络在处理图像,视频,语音和音频方面带来了突破,而递归网络则对诸如文本和语音之类的顺序数据有所启发。
机器学习技术为现代社会的各个方面提供了强大的动力:从Web搜索到社交网络上的内容过滤再到电子商务网站上的推荐,并且它在诸如相机和智能手机之类的消费产品中越来越多地出现。 机器学习系统用于识别图像中的对象,将语音转录为文本,使新闻项,帖子或具有用户兴趣的产品匹配,以及选择相关的搜索结果。 这些应用程序都使用了深度学习技术并且以后会用到的更多。
常规的机器学习技术在处理原始格式的自然数据的能力方面受到限制。 几十年来,构建模式识别或机器学习系统需要认真且详细的工程设计和相当多的领域专业知识,才能设计特征提取器。特征提取器通过能够检测或分类输入中的模式的学习子系统(通常是分类器),将原始数据(例如图像的像素值)转换为合适的内部表示或特征向量。
表示学习是一组方法,这些方法允许向机器提供原始数据并自动发现检测或分类所需的表示。深度学习方法是具有多层次表示形式的表示学习方法,它是通过简单但非线性模块的组合而获得的,其中的每个模块都会将一个级别(从原始输入开始)的表示转换为更高且稍微抽象的级别的表示。有了足够多的此类转换,就可以学习非常复杂的功能。对于分类任务,较高的表示层会放大输入部分中对区分非常重要的方面,并抑制不相关的变化。例如,图像以像素值矩阵的形式出现,并且在表示的第一层中学习的特征通常意味着图像中特定方向和位置上边缘的存在或不存在。第二层常常是通过发现边缘的特定布置来检测图案,而与边缘位置的微小变化无关。第三层可以将图案组装成为与熟悉对象的各个部分相对应的较大组合,并且随后的层将把这类对象检测为这些部分的组合。深度学习的关键方面是这些层的功能不是由人类工程师设计的:它们是使用通用学习过程从数据中学习的。
深度学习在解决某些问题方面取得了重大进展,这些问题阻碍了人工智能界的发展和尝试很多年。事实证明,深度学习非常善于发现高维数据中的复杂结构,因此适用于科学,商业和政府的许多领域。 除了击败图像识别1-4和语音识别5-7中的记录,它在预测潜在药物分子的活性8,分析粒子加速器数据9,10,重建大脑回路11以及预测非编码DNA突变对基因表达和疾病的影响12,13方面,还击败了其他机器学习技术。 也许更令人惊讶的是,深度学习在自然语言理解的各种任务中,尤其是主题分类,情感分析,问题解答15和语言翻译16,17方面,已产生了非常可观的结果。
我们认为深度学习在不久的将来会取得更多的成功,因为它只需要很少的手工操作。在面对可用计算量和数据量的增加时就能够很好的利用这方面的优势。目前正在为深度神经网络开发的新学习算法和体系结构也只会加速这一进展。
监督学习
不论是深度学习还是浅度学习,最常见的机器学习形式都是监督学习。设象一下,我们想建立一个可以将图像分类为包含房屋,汽车,人或宠物的系统。我们首先收集大量的房屋,汽车,人和宠物的图像数据集,每个图像均标有类别。在训练过程中,机器会显示一张图像,并以分数矢量的形式产生输出,每个类别一个。我们希望所需的类别在所有类别中得分最高,但这不太可能在训练之前发生。我们计算一个目标函数,该目标函数测量输出得分与期望得分模式之间的误差(或距离)。机器然后修改其内部可调参数以减少此错误。这些可调整的参数(通常称为权重)是实数,可以看作是定义机器输入输出功能的“旋钮”。在典型的深度学习系统中,可能会有数以亿计的这些可调节权重,以及数亿个带有标签的示例,用于训练机器。
为了适当地调整权重向量,学习算法将计算一个梯度向量,该梯度向量针对每个权重进行指示:如果权重增加很小的量,误差将增加或减少的量。 然后权重向量将会沿与梯度向量相反的方向进行调整。
在所有训练示例中平均目标函数可以看作是权重值的高维空间中的一种丘陵景观。 负梯度矢量指示此景观中最快下降且平均输出误差较低的方向,使其更接近最小值。
在实践中,大多数实验者使用一种称为随机梯度下降(SGD)的程序。 这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度以及相应地调整权重。 对训练集中的许多小样本示例重复此过程,直到目标函数的平均值停止下降。 之所以称其为随机的,是因为每个小样本示例都给出了所有示例中平均梯度的嘈杂估计。 与更复杂的优化技术相比,这种简单的过程通常会出乎意料地很快找到一组好的权重。 训练后,将在一组称为测试集的不同示例上测量系统的性能。 这用于测试机器的泛化能力,即它对训练期间从未见过的新输入产生明智答案的能力。
图1 | 多层神经网络和反向传播。 a,多层神经网络(由连接的点显示)可以使输入空间变形,从而使数据类别(红线和蓝线的示例)线性可分离。请注意,输入空间中的规则网格(如左图所示)通过隐藏单位转换(如中图所示)的方法。这是仅具有两个输入单元,两个隐藏单元和一个输出单元的说明性示例,但用于对象识别或自然语言处理的网络将包含数以万计的单元。经C. Olah(http://colah.github.io/)许可转载。 b,导数的链式规则告诉我们如何构成两个小的影响(x对y的微小变化和y对z的微小变化)。 x中的小变化Delta;x通过乘以yy /part;x(即偏导数的定义)首先转换为y中的小变化Delta;y。类似地,改变Delta;y在z中产生改变Delta;z。将一个方程式代入另一个方程式可得出导数的链式规则-如何通过乘以yy /part;x和part;z/part;x的乘积将Delta;x转换为Delta;z。当x,y和z是向量(并且导数是Jacobian矩阵)时,它也适用。c,用于在具有两个隐藏层和一个输出层的神经网络中计算正向传递的方程式,每个方程式都构成了一个模块,通过许多现有的机器学习实际应用,在手工设计的特征之上使用了线性分类器。两类线性分类器计算特征向量分量的加权和。如果加权和大于阈值,则将输入分类为属于特定类别。
自1960年代以来,我们就知道线性分类器只能将其输入空间划分为非常简单的区域,即由超平面分隔的半空间19。 但是,诸如图像和语音识别之类的问题要求输入输出功能对输入的不相关变化不敏感,例如对象的位置,方向或照明的变化,或语音的音高或口音的变化。 对特定的细微变化敏感(例如,白狼和类似萨摩犬的类似狼的白狗之间的差异)。 在像素级别,处于不同姿势和不同环境中的两个萨摩耶犬的图像可能彼此非常不同,而在相同位置且背景相似的萨摩耶犬和狼的两个图像可能彼此非常相似。线性分类器,即可以对其反向传播梯度的任何其他“浅”分类器。在每一层,我们首先计算每个单元的总输入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是目标值。一旦获知part;E/part;zk,下一层中来自单元j的连接上的权重wjk的误差导数就是yjpart;E/part;zk。
图2 在卷积网络内部。 典型卷积网络体系结构的每个层的输出(不是滤波器)(水平)应用于萨摩耶犬的图像(左下; RGB(红色,绿色,蓝色)输入,右下)。 每个矩形图像是与在每个图像位置检测到的学习特征之一的输出相对应的特征图。 信息自下而上流动,低级特征充当定向的边缘检测器,并为输出中的每个图像类别计算得分。 ReLU,整流线性单元。
原始像素无法区分后两个像素,而将前两个像素归为同一类别。 这就是为什么浅分类器需要一个好的特征提取器来解决选择性和不变性难题的原因。提取器可以产生对图像中对于辨别重要的方面具有选择性但对无关方面(例如动物的姿势)不变的表征的表示。为了使分类器更强大,可以使用通用的非线性特征,例如核方法20,但是诸如高斯核所产生的那些一般特征不允许学习者对训练示例进行很好的概括21。传统的选择是手工设计好的特征提取器,这需要大量的工程技术和领域专业知识。但是,如果可以使用通用学习过程自动学习好的功能,则可以避免所有这些情况。 这是深度学习的关键优势。
深度学习架构是简单模块的多层堆栈,所有模块(或大多数模块)都需要学习,并且其中许多模块都会计算非线性的输入-输出映射。 堆栈中的每个模块都转换其输入以增加表示的选择性和不变性。 系统具有多个非线性层(例如,深度为5到20),可以实现极为复杂的输入功能,这些功能同时对分钟的细节敏感(将萨摩耶德人与白狼区分开),并且对诸如背景, 姿势,灯光和周围物体。
反向传播训练多层架构
从模式识别的早期开始22,23,研究人员的目的一直是用可训练的多层网络代替手工设计的功能,但是尽管简单,却直到1980年代中期才广泛了解该解决方案。 事实证明,可以通过简单的随机梯度下降来训练多层体系结构。 只要模块是其输入及其内部权重的相对平滑函数,就可以使用反向传播过程来计算梯度。 1970年代和1980年代,几个不同的小组独立地发现了可以做到这一点并且起作用的想法24-27。
反向传播程序用于计算目标函数相对于模块多层堆栈权重的梯度,也就是导数链规则的实际应用。 关键的见解是,可以通过该模块的输出(或后续模块的输入)梯度进行反向运算来计算该模块输入目标的导数(或梯度)(图 1)。 反向传播方程式可以反复应用,以通过所有模块传播梯度,从顶部的输出(网络产生其预测)一直到底部的输出(馈入外部输入)。 一旦计算出这些梯度,就很容易计算出每个模块权重的梯度。
深度学习的许多应用都使用前馈神经网络体系结构(图1),该体系结构学会将固定大小的输入(例如,图像)映射到固定大小的输出(例如,多个类别中每个类别的概率) 。为了从一层到下一层,一组单元计算它们来自上一层的输入的加权总和,并将结果传递给非线性函数。当前,最流行的非线性函数是整流线性单元(ReLU),它就是半波整流器f(z)= max(z,0)。在过去的几十年中,神经网络使用了更平滑的非线性,例如tanh(z)或1 /(1 exp(-z)),但是ReLU通常在具有多个层的网络中学习得更快,从而可以训练有监督的深度网络,无需进行无人监督的预训练28。不在输入或输出层中的单元通常称为隐藏单元。隐藏的层可以被视为以非线性方式使输入失真,从而使类别可以被最后一层线性分离(图1)。
在1990年代后期,神经网络和反向传播在很大程度上被机器学习社区抛弃,同时也被计算机视觉和语音识别社区所忽视。 人们普遍认为,在没有先验知识的情况下学习有用的多阶段特征提取器是不可行的。 特别是我们通常认为简单的梯度下降会陷入不良的局部极小值—权重配置,对其进行很小的变化将减少平均误差。
实际上,在大型网络中即使是较差的局部最小值也很少出现问题。 不论初始条件如何,该系统几乎总是可以达到质量非常相似的解决方案。 最近的理论和经验结果强烈表明,局部极小值通常不是一个严重的问题。 取而代之的是,模型上充斥着大量的鞍点,其中梯度为零,曲面在大多数尺寸上都向上弯曲,而其余部分则向下弯曲29,30。 分析似乎表明,只有很少几个向下弯曲方向的鞍点数量很大,但是几乎所有鞍点的目标函数值都非常相似。所以算法陷入这些鞍点中的哪一个都没关系。
加拿大高等研究院(CIFAR)召集的一组研究人员在2006年对深层前馈网络进行了研究(参考文献31-34)。 研究人员介绍了无需监督的学习程序,这些程序可以创建特征检测器层,而无需标记数据。 学习特征检测器每一层的目的是能够在下一层中重建或建模特征检测器(或原始输入)的活动。 通过使用此重建目标“预训练”几层逐渐复杂的特征检测器,可以将深度网络的权重初始化为合理的值。 然后可以将输出单元的最后一层添加到网络的顶部,并且可以使用标准反向传播33-35对整个深度系统进行微调。 这对于识别手写数字或检测行人非常有效,特别是在标记数据量非常有限的情况下36。
这种预训练方法的第一个主要应用是语音识别,而快速图形处理单元(GPU)的出现使程序简化37成为可能,并且使研究人员训练网络的速度提高了10到20倍。 2009年,该方法用于将从声波提取的系数的短时窗映射到各种语音片段的概率集合,这些概率可能由窗口中心的帧表示。它在使用少量词汇的标准语音识别基准上取得了破纪录的结果38 剩余内容已隐藏,支付完成后下载完整资料
资料编号:[236294],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。