深度学习外文翻译资料

 2021-11-15 21:00:29

英语原文共 10 页

深度学习

深度学习允许由多个处理层组成的计算模型来学习具有多个抽象层次的数据表示。这些方法极大地改善了语音识别、视觉对象识别、目标检测和许多其他领域(如药物发现和基因组学)的技术水平。深度学习通过使用反向传播算法来指示机器应该如何更改其内部参数来发现大型数据集中复杂的结构,这些参数用于从上一层的表示计算每一层的表示。深度卷积网络在图像、视频、语音和音频的处理方面取得了突破,而递归网络则对文本和语音等序列数据有了启发。

机器学习技术推动了现代社会的许多方面:从网络搜索到社交网络上的内容过滤,再到电子商务网站上的建议,而且它越来越多地出现在相机和智能手机等消费产品中。机器学习系统用于识别图像中的对象,将语音转录成文本,将新闻、文章或产品与用户的兴趣相匹配,并选择相关的搜索结果。越来越多地,这些应用程序使用一种称为深度学习的技术。传统的机器学习技术在处理原始数据的能力上受到限制。几十年来,构建模式识别或机器学习系统需要仔细的工程设计和大量的专业领域知识从学习子系统来设计一个将原始数据(如图像的像素值)转换为合适的内部表示或特征向量的特征抽取器,通常是分类器,可以检测或分类输入的模式。表示学习是一套允许机器输入原始数据并自动发现检测或分类所需的表示的方法。深度学习方法是具有多个表示级别的表示学习方法,通过组成简单但非线性的模块获得,每个模块将一个级别的表示(从原始输入开始)转换为更高、更抽象级别的表示。有了足够的这种转换组合,就可以学习到非常复杂的函数。对于分类任务,更高层次的表示可以放大输入的各个方面,这些方面对于识别和抑制不相关的变量很重要。例如,图像以像素数组的形式出现,第一层表示中的学习特征通常表示图像中特定方向和位置的边的存在或不存在。 第二层通常通过定位边缘的特定排列来检测图案,而不考虑边缘位置的微小变化。 第三层可以将图案组合成更大的组合,对应于熟悉对象的部分,随后的层将检测这些部分的组合对象。深度学习的关键方面是这些功能层不是由人类工程师设计的:它们是使用通用的学习过程从数据中学习的。

深度学习在解决多年来抵制人工智能界最佳尝试的问题方面取得了重大进展。事实证明,它在高维数据中发现复杂结构是非常好的,因此可以应用于科学、商业和政府的许多领域。除了打破图像识别和语音识别中的记录外,它还在预测潜在药物分子的活性、分析粒子加速器数据、重建大脑回路以及预测非编码DNA突变对基因表达和表达的影响等方面击败了其他机器学习技术。也许更令人惊讶的是,在自然语言理解的各种任务中,深度学习已经做出了非常有前景的结果,特别是主题分类、情感分析、问题解答和语言翻译。我们认为,在不久的将来,深度学习会取得更多的成功,因为它只需要很少的手工工程,因此,它可以很好地利用增加可用计算量和数据量。目前正在为深度神经网络开发新的学习算法和架构来加速这一进程。

监督学习

最常见的机器学习形式,无论深度与否,都是有监督的学习。想象一下,我们想要建立一个系统,可以将图像分类,比如房子、汽车、人或宠物。我们首先收集一组大数据集,包括房屋、汽车、人和宠物的图像,每个图像都标有其类别。在训练过程中,机器将显示一个图像,并以分数向量的形式生成输出,每个类别一个。我们希望期望的类别在所有类别中都有最高的分数,但这不太可能在训练之前发生。我们计算一个客观函数来测量输出分数和期望分数模式之间的误差(或距离)。然后机器修改其内部可调参数以减少此错误。这些可调参数(通常称为权重)是实数,可以看作是定义机器输入输出功能的“旋钮”。在一个典型的深度学习系统中,可能有数亿个这样的可调重量,以及数亿个贴有标签的例子来训练机器。

为了正确地调整权重向量,学习算法计算一个梯度向量,对于每个权重,它指示如果权重增加很小,误差会增加或减少多少。然后将权重向量调整为与梯度向量相反的方向。

在所有训练实例的平均值上,目标函数可以看作是在高维权重空间中的一种丘陵景观。负梯度向量表示该地形中最陡下降的方向,使其接近最小值,此时平均输出误差较低。

在实践中,大多数实践者使用一种称为随机梯度下降(SGD)的程序。举几个例子,这包括显示输入向量,计算输出和误差,计算这些例子的平均梯度,并相应地调整权重。对训练集中的许多小例子重复这个过程,直到目标函数的平均值停止下降。它被称为随机的,因为每一个小例子都给出了所有例子的平均梯度的一个有噪声的估计。与更精细的优化技术相比,这个简单的过程通常能更快地找到一组好的权重。经过培训后,系统的性能将在一组称为测试集的不同示例上进行测量。这有助于测试机器的泛化能力——它能够对训练过程中从未见过的新输入做出明智的回答。

目前机器学习的许多实际应用都是在手工设计的特征之上使用线性分类器。两类线性分类器计算特征向量分量的加权和。如果加权和高于阈值,则输入被分类为属于特定类别。

从20世纪60年代开始,我们就知道线性分类器只能将输入空间分割成非常简单的区域,即由超平面分隔的半空间19。但是,图像和语音识别等问题要求输入输出功能对输入的不相关变量不敏感,如物体位置、方向或照明的变化,或音调或语音口音的变化,同时对特定的微小变量非常敏感(例如,一只白狼和一种长得像狼的名叫萨摩耶的白狗之间的差异距离)在像素级别上,两个在不同姿势和不同环境中的萨摩耶图像可能非常不同,而在相同位置和相似背景上的两个萨摩耶和狼的图像可能非常相似。一个线性分类器,或在图1上操作的任何其他“浅”分类器|多层神经网络和反向传播。多层神经网络(由连接的点显示)可以扭曲输入空间,使数据类(例如在红蓝线上)线性可分离。注意输入空间中的规则网格(如左图所示)是如何通过隐藏单元进行转换的(如中间面板所示)。这是一个仅具有两个输入单元、两个隐藏单元和一个输出单元的解释性例子,但用于对象识别或自然语言处理的网络包含数万或数十万个单元。经许可转载。奥拉(http://colah.github.io/)。导数的链式法则告诉我们如何组成两个小效应(x对y的导数和y对z的导数)。x中的增量Delta;x首先通过乘以part;y/part;x(即偏导数的定义)转化为y中的增量Delta;y。同样地,增量Delta;y在z中产生了增量Delta;z。将一个方程代入另一个方程,给出了导数的链规则——如何通过乘以part;y/part;x和 part;z/part;x将Delta;x转化为Delta;z。当x、y和z是向量(并且导数是雅可比矩阵)时,它起作用。方程式用于计算具有两个隐藏层和一个输出层的神经网络中的正向传播,每个输出层构成一个模块。

哪一个可以反向传播梯度?在每个层,我们首先计算每个单元的总输入z,这是下面层中单元的输出的加权和。然后将非线性函数f(.)应用于z,得到该单元的输出。为了简单起见,我们省略了偏置项。神经网络中使用的非线性函数包括近年来常用的整流线性单元函数ReLU函数f(z)=max(0,z),以及更传统的sigmoids函数,如hyberbolic切线,f(z)=(exp(z)minus;exp(minus;z))/(exp(z) exp(minus;z))和logistic函数,f(z)=1/(1 exp(minus;z))。这个方程式用于计算后向传播。在每个隐藏层中,我们计算每个单元输出的误差导数,这是误差导数相对于上一层单元总输入的加权和。然后我们将输出的误差导数乘以f(z)的梯度,转化为输入的误差导数。在输出层,通过对代价函数进行微分,计算出单位输出的误差导数。如果单位l的代价函数为0.5(ylminus;tl)2,则得出ylminus;tl,其中tl是目标值。一旦part;E/part;zk已知,下一层j单元连接上权重wjk的误差导数就是yj part;E/part;zk

图2|在卷积网络内。一种典型的卷积网络结构的每一层(水平)的输出(不是滤波器),应用于一个萨摩耶狗的图像(左下角;以及右下角的RGB(红、绿、蓝)输入)。每个矩形图像都是一个特征图。

对应于在每个图像位置检测到的一个已学习特征的输出。信息自下而上流动,较低级别的特征充当定向边缘检测器,并为输出中的每个图像类计算得分。ReLU函数,整流线性单元函数。

原始像素不可能区分后两个像素,而将前两个像素放在同一类别中。这就是为什么浅分类器需要一个很好的特征抽取器来解决选择性-不变性困难——一种对图像的各个方面产生有选择性的表示的方法,这些方面对识别很重要,但对不相关的方面(如动物的姿势)是不变的。为了使分类器更强大,我们可以像使用核方法一样使用一般的非线性特征,但是诸如高斯核产生的一般特征不允许学习者在远离训练示例的地方很好地概括。传统的选择是手工设计好的特征抽取器,这需要大量的工程技术和领域专业知识。但是,如果可以使用通用的学习过程自动学习好的特性,就可以避免这一切。这是深入学习的关键优势。

深度学习体系结构是简单模块的多层堆栈,所有(或大部分)模块都要学习,其中许多模块计算非线性输入输出映射。堆栈中的每个模块转换其输入以提高表示的选择性和不变性。有了多个非线性层(比如深度为5到20层),系统可以实现极其复杂的输入功能,同时对细微的细节敏感(区分萨摩耶和白狼),而对背景、姿势、灯光和周围物体等大的不相关变量不敏感。

用于训练多层结构的反向传播

从模式识别的早期开始,研究人员的目标就是用可训练的多层网络取代手工设计的分类器,但尽管它具有简易型,直到20世纪80年代中期才被广泛理解。事实证明,多层结构可以通过简单的随机梯度下降来训练。只要模块的输入和内部权重是相对平滑的函数,就可以使用反向传播程序计算梯度。在20世纪70年代和80年代,几个不同的研究团队独立地发现了这一想法,并认为这是可行的。

计算目标函数相对于多层模块堆栈权重的梯度的反向传播过程只不过是导数链规则的实际应用。关键的见解是,目标相对于模块输入的导数(或梯度)可以通过从相对于模块输出(或后续模块输入)的梯度向后计算得出(图1)。反向传播方程可以反复应用,以在所有模块中传播梯度,从顶部的输出(在网络生成预测的地方)一直传播到底部(在外部输入被馈送的地方)。一旦计算出这些梯度,就可以很容易地计算出与每个模块权重相关的梯度。

许多深度学习的应用使用前馈神经网络结构(图1),它学习将固定大小的输入(例如,图像)映射到固定大小的输出(例如,几个类别中的每个类别的概率)。为了从一个层转到下一个层,一组单位计算上一层输入的加权和,并通过非线性函数传递结果。目前,最流行的非线性函数是整流线性单元(relu),即半波整流器f(z)=max(z,0)。在过去的几十年中,神经网络使用更平滑的非线性,如tanh(z)或1/(1 exp(minus;z)),但RELU通常在具有多个层次的网络中学习得更快,允许在没有监督的预培训的情况下对深度监控网络进行培训。不在输入或输出层的单元通常称为隐藏单元。隐藏层可以看作是以非线性方式扭曲输入,使类别与最后一层线性分离(图1)。

20世纪90年代末,神经网络和反向传播在很大程度上被机器学习领域所抛弃,而被计算机视觉和语音识别领域所忽视。人们普遍认为,学习有用的、多阶段的、先验知识很少的特征抽取器是不可行的。特别是,人们普遍认为,简单的梯度下降会陷入局部极小量配置中,对于这种配置,任何微小的变化都不会降低平均误差。

在实践中,对于大型网络来说,较差的局部最小值很少是一个问题。无论初始条件如何,系统几乎总是能达到类似质量的解决方案。最近的理论和经验结果强烈表明,局部极小值一般不是一个严重的问题。相反,景观中充满了大量的鞍点组合,其中梯度为零,表面在大多数维度上向上弯曲,其余部分则向下弯曲。分析表明,只有少数几个向下弯曲方向的鞍点是大量存在的,但几乎所有的鞍点都具有非常相似的目标函数值。因此,算法停留在这些鞍点中的哪一个并不重要。

加拿大高级研究所(CIFAR)召集的一组研究人员于2006年左右重新对深度前馈网络产生了兴趣(参考文献31-34)。研究人员引入了无监督的学习程序,可以在不需要标记数据的情况下创建特征检测层。学习每一层特征检测器的目的是能够重建或建模下一层特征检测器(或原始输入)的活动。通过使用该重建目标对多层逐步复杂的特征检测器进行“预训练”,可以将深层网络的权重初始化为合理值。最后一层输出单元可以添加到网络的顶部,整个深度系统可以使用标准的反向传播进行微调。这对于识别手写数字或检测行人非常有效,尤其是在标记数据量非常有限的情况下。

这种预训练方法的第一个主要应用是语音识别,它是由GPU的出现而实现的,该单元便于编程,并允许研究人员以10到20倍的速度训练网络。2009年,该方法被用于将从声波中提取的系数的短时窗映射为一组可能由窗口中心的帧表示的各种语音片段的概率。它在一个使用小词汇的标准语音识别基准上获得了破纪录的结果,并迅速发展为在大词汇任务中提供破纪录的结果。到2012年,许多主要的语音组正在开发2009年的Deep Net版本,并且已经部署在Android手机上。对于较小的数据集,无监督的预培训有助于防止过度拟合,从而在标记的示例数量较少时,或在传输设置中,我们有许多“源”任务的示例,但很少有一些“目标”任务的示例,从而显著提高泛化效果。一旦恢复了深度学习,就发现只有小数据集才需要预训练阶段。

然而,有一种特殊类型的深度前馈网络,比相邻层之间完全连通的网络更容易训练和推广。这就是卷积神经网络(ConvNet)。它在神经网络不受欢迎的时期取得了许多实际的成功,最近被计算机视觉界广泛采用。

卷积神经网络

卷积神经网络用于处理以多个数组形式出现的数据,例如由三个二维数组组成的彩色图像,其中包含三个彩色通道中的像素强度。许多数据形式都是以多个阵列的形式出现的:信号和序列的1D,包括语言;图像或音频频谱的2D;视频或图像的3D。利用自然信号的特性,卷积神经网络背后有四个关键思想:本地连接、共享权重、池化和多层的使用。

典型的卷积神经网络的体系结构(图2)是由一系列阶段组成的。前几个阶段由两种类型的层组成:卷积层和池化集层。卷积层中的单元组织在特征

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。