Deep learning

说明

论文Deep learning的机器翻译。

  1. LeCun Y, Bengio Y, Hinton G. Deep learning[J]. nature, 2015, 521(7553): 436.
  2. https://creativecoding.soe.ucsc.edu/courses/cs523/slides/week3/DeepLearning_LeCun.pdf

摘要

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

引言

机器学习技术为现代社会的各个方面提供了强大的动力:从网络搜索到社交网络上的内容过滤再到电子商务网站上的推荐,并且它在诸如相机和智能手机之类的消费产品中越来越多地出现。 机器学习系统用于识别图像中的对象,将语音转录为文本,使新闻项,帖子或具有用户兴趣的产品匹配,以及选择相关的搜索结果。 这些应用程序越来越多地使用一类称为深度学习的技术。

常规的机器学习技术在处理原始格式的自然数据方面的能力受到限制。 几十年来,构建模式识别或机器学习系统需要认真的工程设计和相当多的领域专业知识,才能设计特征提取器,以将原始数据(例如图像的像素值)转换为合适的内部表示或特征向量, 学习子系统(通常是分类器)可以检测或分类输入中的模式。

表示学习是一组方法,这些方法允许向机器提供原始数据并自动发现检测或分类所需的表示。深度学习方法是具有表示形式的多层次的表示学习方法,是通过组合简单但非线性的模块而获得的,这些模块各自将一个级别(从原始输入开始)的表示转换为更高,更抽象的级别的表示。有了足够多的此类转换,就可以学习非常复杂的功能。对于分类任务,较高的表示层会放大输入中对区分非常重要的方面,并抑制不相关的变化。例如,图像以像素值阵列的形式出现,并且在表示的第一层中学习到的特征通常表示图像中特定方向和位置上是否存在边缘。第二层通常通过发现边缘的特定布置来检测图案,而与边缘位置的微小变化无关。第三层可以将图案组装成与熟悉的对象的各个部分相对应的较大组合,并且随后的层将对象检测为这些部分的组合。深度学习的关键方面是这些层的功能不是由人类工程师设计的:它们是使用通用学习程序从数据中学习的。

我们认为深度学习将在不久的将来取得更多的成功,因为它只需要很少的手工操作,因此可以轻松地利用可用计算和数据量的增加。 目前正在为深度神经网络开发的新学习算法和体系结构只会加速这一进展。

Supervised learning

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

为了适当地调整权重向量,学习算法计算一个梯度向量,该梯度向量针对每个权重指示如果权重增加很小的量,误差将增加或减少的量。 然后沿与梯度向量相反的方向调整权重向量。

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

在实践中,大多数从业者使用一种称为随机梯度下降(SGD)的程序。 这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度以及相应地调整权重。 对训练集中的许多小样本示例重复此过程,直到目标函数的平均值停止下降。 之所以称为随机变量,是因为每个小样本示例都会对所有示例的平均梯度给出嘈杂的估计。 与更复杂的优化技术相比,这种简单的过程通常会很快出乎意料地找到一组好的权重。 训练后,系统的性能是在一组称为测试集的不同示例上进行衡量的。 这用于测试机器的泛化能力,即它对训练期间从未见过的新输入产生明智答案的能力。

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

自1960年代以来,我们就知道线性分类器只能将其输入空间划分为非常简单的区域,即由超平面分隔的半空间19。但是,诸如图像和语音识别之类的问题要求输入输出功能对输入的无关变化不敏感,例如对象的位置,方向或照明的变化,或语音的音高或口音的变化。对特定的细微变化敏感(例如,白狼与类似萨摩犬的类似狼的白狗之间的差异)。在像素级别,处于不同姿势和不同环境中的两个萨摩耶犬的图像可能彼此非常不同,而在相同位置且背景相似的萨摩耶犬和狼的两个图像可能彼此非常相似。线性分类器或对原始像素进行操作的任何其他“浅”分类器都无法区分后两个,而将前两个分类为同一类别。这就是为什么浅分类器需要一个好的特征提取器来解决选择性不变性难题的原因。提取器可以产生对图像中对辨别重要的方面具有选择性但对无关方面(例如姿势)不变的表征的表示。动物。为了使分类器更强大,可以使用通用的非线性特征,如核方法20,但是诸如高斯核所产生的那些一般特征不允许学习者对训练示例进行很好的概括。传统的选择是手工设计好的特征提取器,这需要大量的工程技术和领域专业知识。但是,如果可以使用通用学习过程自动学习好的特征,则可以避免所有这些情况。这是深度学习的关键优势。

深度学习架构是简单模块的多层堆栈,所有模块(或大多数模块)都需要学习,并且其中许多模块都计算非线性的输入-输出映射。 堆栈中的每个模块都转换其输入以增加表示的选择性和不变性。 系统具有多个非线性层(例如深度为5到20),可以实现极为复杂的输入功能,这些功能同时对分钟的细节敏感(区分萨摩耶犬与白狼),并且对背景等无关紧要的变化不敏感, 姿势,灯光和周围物体。

Backpropagation to train multilayer architectures

从模式识别的早期开始22,23,研究人员的目的一直是用可训练的多层网络代替手工设计的特征,但是尽管其简单性,但直到1980年代中期才广泛了解该解决方案。 事实证明,可以通过简单的随机梯度下降来训练多层体系结构。 只要模块是其输入及其内部权重的相对平滑函数,就可以使用反向传播过程来计算梯度。 1970年代和1980年代,几个不同的小组独24-27立地发现了可以做到这一点并且起作用的想法。

反向传播程序用于计算目标函数相对于模块多层堆栈权重的梯度,无非是导数链规则的实际应用。 关键的见解是,可以通过相对于该模块的输出(或后续模块的输入)相对于该模块的梯度进行反向运算来计算目标相对于该模块的输入的导数(或梯度)(图 1)。 反向传播方程式可以反复应用,以通过所有模块传播梯度,从顶部的输出(网络产生其预测)一直到底部的输出(馈入外部输入)。 一旦计算出这些梯度,就可以相对于每个模块的权重来计算梯度。

在这里插入图片描述

图1 多层神经网络和反向传播。
a, 多层神经网络(由连接的点显示)可以扭曲输入空间,以使数据类别(例如红线和蓝线)可线性分离。请注意,输入空间中的常规网格(如左图所示)也如何通过隐藏单元转换(如中图所示)。这是仅具有两个输入单元,两个隐藏单元和一个输出单元的说明性示例,但是用于对象识别或自然语言处理的网络包含成千上万个单元。经C. Olah(http://colah.github.io/)许可转载。
b,导数的链式规则告诉我们如何构成两个小的影响(xxyy的微小变化和yyzzyy微小变化)。 xx中的小变化δx\delta x通过乘以y/x∂y/∂x(即偏导数的定义)首先转换为yy中的小变化ΔyΔy。类似地,改变ΔyΔyzz中产生改变ΔzΔz。将一个方程式代入另一个方程式可得出导数的链式规则-如何通过乘以y/x∂y/∂xz/x∂z/∂x的乘积将ΔxΔx转换为ΔzΔz。当xxyyzz是向量(并且导数是Jacobian矩阵)时,它也适用。
c, 具有两个隐藏层和一个输出层的神经网络中计算前向传播的方程式,每个方程式构成一个模块,通过该模块可以反向传播梯度。在每一层,我们首先计算每个单元的总输入zz,它是下一层中这些单元的输出的加权和。然后将非线性函数f()f(·)应用于zz,以获取单位的输出。为了简单起见,我们省略了偏差项。神经网络中使用的非线性函数包括近年来常用的整流线性单位(ReLU)f(z)=max(0z)f(z)= max(0,z)以及更常规的S型曲线,例如双曲线正切f(z)=(exp(z)exp(z))/(exp(z)+exp(z))f(z) =(exp(z)-exp(-z))/(exp(z)+exp(-z))和逻辑函数logistic,f(z)=1/(1+exp(z))f(z) = 1/(1 + exp(-z))
d,用于计算反向通过的方程式。在每个隐藏层,我们针对每个单元的输出计算误差导数,该误差导数是相对于上一层中单元的总输入的误差导数的加权和。然后,通过将其乘以f(z)f(z)的梯度,将相对于输出的误差导数转换为相对于输入的误差导数。在输出层,通过微分成本函数来计算相对於单元输出的误差导数。如果单位ll的成本函数为0.5(yltl)20.5(y_l-t_l)^2,则给出yltly_l-t_l其中tlt_l是目标值。一旦获知E/zk∂E/∂z_k,下一层中来自单元jj的连接上的权重wjkw_{jk}的误差导数就是yjE/zky_j∂E/∂z_k

深度学习的许多应用都使用前馈神经网络体系结构(图1),该体系结构学会将固定大小的输入(例如,图像)映射到固定大小的输出(例如,几个类别中的每一个的概率) 。为了从一层到下一层,一组单位计算它们来自上一层的输入的加权总和,并将结果传递给非线性函数。当前,最流行的非线性函数是整流线性单元(ReLU),它就是半波整流器f(z)=max(0z)f(z)= max(0,z)。在过去的几十年中,神经网络使用了更平滑的非线性,例如tanh(z)tanh(z)1/(1+exp(z))1/(1 + exp(-z)),但是ReLU通常在具有多个层的网络中学习得更快,从而可以训练深度有监督的网络,无需无监督的预培训28。不在输入或输出层中的单元通常称为隐藏单元。可以将隐藏的层视为非线性地使输入失真,以使类别变得可以由最后一层线性分离(图1)。

在1990年代后期,神经网络和反向传播在很大程度上被机器学习社区抛弃,而被计算机视觉和语音识别社区所忽视。 人们普遍认为,在没有先验知识的情况下学习有用的多阶段特征提取器是不可行的。 特别是,通常认为,简单的梯度下降会陷入不良的局部极小值—权重配置,对其进行很小的变化将减少平均误差。

实际上,大型网络很少会出现差的局部最小值的问题。 不管初始条件如何,该系统几乎总是能获得质量非常相似的解决方案。 最近的理论和经验结果强烈表明,局部极小值通常不是一个严重的问题。 取而代之的是,地形上充斥着大量的鞍点,其中梯度为零,并且曲面在大多数维度上都向上弯曲,而在其余部分上则向下弯曲29,30。 分析似乎表明,只有少数几个向下弯曲方向的鞍点存在很多,但是几乎所有鞍点的目标函数值都非常相似。 因此,算法卡在这些鞍点中的哪一个上都没关系。

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

这种预训练方法的第一个主要应用是语音识别,而快速图形处理单元(GPU)的出现使编程成为可能,并且使研究人员训练网络的速度提高了10或20倍,从而使之成为可能。在2009年,该方法用于将从声波提取的系数的短暂时间窗口映射到可能由窗口中心的帧表示的各种语音片段的一组概率。它在使用少量词汇38的标准语音识别基准上取得了破纪录的结果,并迅速发展为在大型词汇任务39上取得了破纪录的结果。到2012年,许多主要的语音组织都在开发2009年以来的深网版本6,并且已经在Android手机中进行了部署。对于较小的数据集,无监督的预训练有助于防止过度拟合40,从而在标记的示例数量很少时或在转移设置中,对于一些“源”任务,我们有很多示例,而对于某些“源”任务,则没有太多示例“目标”任务。恢复深度学习后,事实证明,仅对于小型数据集才需要预训练阶段。
但是,存在一种特定类型的深层前馈网络,它比相邻层之间具有完全连接的网络更容易训练和推广。这就是卷积神经网络(ConvNet)41,42。在神经网络失宠期间,它取得了许多实际的成功,并且最近被计算机视觉界广泛采用。

Convolutional neural networks

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

典型的ConvNet的架构(图2)由一系列阶段构成。前几个阶段由两种类型的层组成:卷积层和池化层。卷积层中的单元被组织在特征图中,其中每个单元通过称为滤波器组的一组权重连接到上一层特征图中的局部补丁。然后,该局部加权和的结果将通过非线性(例如ReLU)传递。特征图中的所有单位共享相同的过滤器组。图层中的不同要素图使用不同的滤镜库。这种架构的原因有两个。首先,在诸如图像的阵列数据中,值的局部组通常高度相关,从而形成易于检测的独特局部图案。其次,图像和其他信号的局部统计量对于位置是不变的。换句话说,如果图案可以出现在图像的一部分中,则它可以出现在任何地方,因此,位于不同位置的单元在阵列的不同部分中具有相同的权重并检测相同的图案的想法。在数学上,由特征图执行的滤波操作是离散卷积,因此得名。

在这里插入图片描述

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

尽管卷积层的作用是检测上一层的要素的局部连词,但池化层的作用是将语义相似的要素合并为一个。 由于形成图案的特征的相对位置可能会略有变化,因此可以通过对每个特征的位置进行粗粒度来可靠地检测图案。 典型的池化单元计算一个特征图中(或几个特征图中)的局部局部补丁的最大值。 相邻的合并单元从移动了不止一个行或一列的色块中获取输入,从而减小了表示的尺寸,并为小幅度的移位和失真创建了不变性。 卷积,非线性和合并的两个或三个阶段被堆叠,然后是更多卷积和完全连接的层。 通过ConvNet进行反向传播的梯度与通过常规深度网络一样简单,从而可以训练所有滤波器组中的所有权重。

深度神经网络利用了许多自然信号是成分层次结构的特性,其中通过组合较低层的特征来获得较高层的特征。 在图像中,边缘的局部组合形成图案,图案组装成零件,而零件形成对象。 从声音到电话,音素,音节,单词和句子,语音和文本中也存在类似的层次结构。 当上一层中的元素的位置和外观变化时,池化使表示形式的变化很小。

ConvNets中的卷积和池化层直接受到视觉神经科学中简单细胞和复杂细胞的经典概念的启发43,整个架构让人联想到视觉皮层腹侧通路中的LGN–V1–V2–V4–IT层次结构44。 当ConvNet模型和猴子显示相同的图片时,ConvNet中高级单元的激活可以解释猴子下颞叶皮层中160个神经元的随机集合的一半变化。 ConvNets的根源是新认知器,其结构有些相似,但没有反向传播等端到端监督学习算法。 称为时延神经网络的原始一维ConvNet用于识别音素和简单单词47,48。

卷积网络的应用可以追溯到1990年代初,首先是用于语音识别和文档阅读的时延神经网络47。 该文档阅读系统使用了一个ConvNet,并与一个实现语言约束的概率模型一起进行了训练。 到1990年代后期,该系统已读取了美国所有支票的10%以上。 Microsoft49随后部署了许多基于ConvNet的光学字符识别和手写识别系统。 在1990年代初期,还对ConvNets进行了试验,以检测自然图像中的物体,包括面部和手部50,51,以及面部识别52。

Image understanding with deep convolutional networks

自2000年代初以来,ConvNets已成功应用于检测,分割和识别图像中的对象和区域。 这些都是标记数据相对丰富的任务,例如交通标志识别53,生物图像分割54,特别是用于连接组学55,以及在自然图像中检测人脸,文字,行人和人体36、50、51、56-58 。 ConvNets最近在实践上取得的主要成功是面部识别59。

重要的是,可以在像素级别标记图像,这将在技术中得到应用,包括自动驾驶机器人和自动驾驶汽车60,61。 Mobileye和NVIDIA等公司正在其即将推出的汽车视觉系统中使用基于ConvNet的方法。 其他日益重要的应用包括自然语言理解14和语音识别7。

尽管取得了这些成功,但ConvNet在很大程度上被主流的计算机视觉和机器学习社区所抛弃,直到2012年ImageNet竞赛。当深度卷积网络应用于来自网络的大约一百万个图像的数据集时,其中包含1,000个不同的类别, 他们取得了骄人的成绩,几乎使最佳竞争方法的错误率降低了一半。 成功的原因是有效利用了GPU,ReLU,一种称为dropout 62的新正则化技术,以及通过使现有示例变形而生成更多训练示例的技术。 这一成功带来了计算机视觉的一场革命。 现在,ConvNets是几乎所有识别和检测任务的主要方法4、58、59、63-65,并在某些任务上实现了人类绩效。 最近的惊人演示结合了ConvNets和递归网络模块,用于生成图像字幕(图3)。

在这里插入图片描述

图3 | 从图像到文本。 由递归神经网络(RNN)生成的字幕作为额外的输入,它是由深度卷积神经网络(CNN)从测试图像中提取的表示作为训练的,而RNN经过训练可以将图像的高级表示“翻译”为字幕( 最佳)。 经ref许可转载。 102.当RNN能够在生成每个单词(粗体)时将注意力集中在输入图像中的不同位置(中间和底部;较浅的色块得到更多的关注)时,我们发现86它将其利用到 更好地将图片“翻译”为字幕。

最近的ConvNet架构具有10到20层ReLU,数亿个权重以及单元之间的数十亿个连接。 尽管培训如此大型的网络可能仅在两年前才花了几周的时间,但是硬件,软件和算法并行化方面的进步已将培训时间减少到几个小时。

基于ConvNet的视觉系统的性能已引起大多数主要技术公司的发展,其中包括Google,Facebook,Microsoft,IBM,Yahoo!,Twitter和Adobe,以及数量迅速增长的初创公司开始进行研发项目,并部署基于ConvNet的图像理解产品和服务。

卷积网络很容易适应芯片或现场可编程门阵列中有效的硬件实现66,67。 NVIDIA,Mobileye,英特尔,高通和三星等多家公司正在开发ConvNet芯片,以支持智能手机,相机,机器人和自动驾驶汽车中的实时视觉应用。

Distributed representations and language processing

深度学习理论表明,与不使用分布式表示的经典学习算法相比,深网具有两个不同的指数优势。这两个优点都来自于组合的力量,并取决于具有适当组件结构的底层数据生成分布。首先,学习分布式表示可以将学习到的特征值的新组合推广到训练期间看不到的那些新组合中(例如,n个二进制特征可能有2n个组合)68,69。其次,在一个深层网络中构成表示层会带来另一个指数优势70(深度指数)。

多层神经网络的隐藏层学习以易于预测目标输出的方式来表示网络的输入。通过训练多层神经网络从较早单词的局部上下文中预测序列中的下一个单词,可以很好地证明这一点。上下文中的每个单词都以N个向量的形式呈现给网络,也就是说,一个组成部分的值为1,其余均为0。在第一层中,每个单词都会创建不同的激活模式,或者单词向量(图4)。在语言模型中,网络的其他层学习将输入的单词矢量转换为预测的下一个单词的输出单词矢量,这可用于预测词汇表中任何单词出现为下一个单词的概率。网络学习包含多个有效成分的单词向量,每个成分都可以解释为单词的一个独立特征,如在学习符号的分布式表示的背景下首次证明的那样。这些语义特征未在输入中明确显示。通过学习过程可以发现它们,这是将输入和输出符号之间的结构化关系分解为多个“微规则”的好方法。当单词序列来自大量真实文本并且单个微规则不可靠时,学习单词向量也可以很好地工作71。例如,在接受培训以预测新闻故事中的下一个单词时,周二和周三学到的单词向量与瑞典和挪威的单词向量非常相似。这样的表示称为分布式表示,因为它们的元素(特征)不是互斥的,并且它们的许多配置对应于在观察到的数据中看到的变化。这些词向量由专家事先未确定但由神经网络自动发现的学习特征组成。从文本中学到的单词的矢量表示现在已在自然语言应用中得到了广泛的应用14、17、72-76。

表示的问题是逻辑启发和神经网络启发的认知范式之间争论的核心。在逻辑启发范式中,符号实例是某些事物,其唯一属性是它与其他符号实例相同或不同。它没有与其使用相关的内部结构;为了用符号推理,必须将它们绑定到明智选择的推理规则中的变量。相比之下,神经网络仅使用较大的活动向量,较大的权重矩阵和标量非线性来执行快速的“直觉”推断类型,从而支持毫不费力的常识推理。

在引入神经语言模型71之前,语言统计建模的标准方法并未利用分布式表示形式:它是基于对长度不超过N(称为N元语法)的短符号序列的出现频率进行计数。可能的N元语法的数量在VN的数量级上,其中V是词汇量,因此考虑到几个单词以上的上下文,将需要非常大的训练语料库。 N-gram将每个单词视为一个原子单位,因此它们无法在语义相关的单词序列中进行泛化,而神经语言模型则可以将它们与实值特征向量关联在一起,而语义相关的单词最终彼此靠近在该向量空间中(图4)。

在这里插入图片描述

图4 可视化学习的单词向量。 左侧是为建模语言而学习的单词表示的图示,使用t-SNE算法103将其非线性投影到2D以进行可视化。 右边是英语到法语编码器-解码器递归神经网络75学习的短语的二维表示。 可以观察到语义相似的单词或单词序列已映射到附近的表示形式。 通过使用反向传播共同学习每个单词的表示以及预测目标数量的函数(例如序列中的下一个单词(用于语言建模)或翻译单词的整个序列(用于机器翻译)),可以获得单词的分布式表示形式 )18,75。

Recurrent neural networks

首次引入反向传播时,其最令人兴奋的用途是训练循环神经网络(RNN)。 对于涉及顺序输入的任务,例如语音和语言,通常最好使用RNN(图5)。 RNN一次处理一个输入序列一个元素,并在其隐藏单元中维护一个“状态向量”,该向量隐式包含有关该序列所有过去元素的历史信息。 当我们将隐藏单元在不同离散时间步长的输出视为是深层多层网络中不同神经元的输出时(图5,右),很清楚地知道如何应用反向传播训练RNN。

在这里插入图片描述

图5 递归神经网络及其正向计算涉及计算的时间展开。人工神经元(例如,在时间t处的节点s下隐藏的单元,其值st为st)在先前的时间步长处从其他神经元获得输入(这在左侧用黑色正方形表示,表示一个时间步长的延迟)。 。这样,递归神经网络可以将元素为xt的输入序列映射为元素为ot的输出序列,每个ot都取决于所有先前的xtʹ(对于tʹ≤t)。每个时间步使用相同的参数(矩阵U,V,W)。许多其他架构也是可能的,包括一个变体,网络可以在该变体中生成一系列输出(例如,单词),每个输出都用作下一时间步骤的输入。反向传播算法(图1)可以直接应用于右侧展开网络的计算图,以计算总误差的导数(例如,生成正确的输出序列的对数概率)到所有状态st和所有参数。他们每个人都为结论提供了合理性84,85。

RNN是非常强大的动态系统,但是事实证明,训练它们是有问题的,因为反向传播的梯度在每个时间步长都会增大或缩小,因此在许多时间步长上它们通常会爆炸或消失77,78。

得益于其体系结构79,80的进步以及对其进行培训的方法81,82,人们发现RNN非常擅长预测文本中的下一个字符83或序列中的下一个单词75,但它们也可以用于更复杂的任务。例如,一次阅读一个英语句子后,可以训练一个英语“编码器”网络,以使其隐藏单元的最终状态向量很好地表示该句子表达的思想。然后,可以将此思想向量用作联合训练的法语“解码器”网络的初始隐藏状态(或作为其额外输入),该网络将输出法语翻译的第一个单词的概率分布。如果从该分布中选择了特定的第一个单词并将其作为输入提供给解码器网络,则它将输出翻译的第二个单词的概率分布,依此类推,直到选择了句号17、72、76。总体而言,此过程根据取决于英语句子的概率分布生成法语单词序列。这种相当幼稚的执行机器翻译的方法已迅速与最新技术竞争,这引起了人们对理解句子是否需要诸如通过使用推理规则操纵的内部符号表达式之类的疑问。与日常推理涉及许多同时类比的观点更加一致。

与其将法语句子的含义翻译成英语句子,不如学习将图像的含义“翻译”成英语句子(图3)。 这里的编码器是一个深层的ConvNet,可将像素转换为其最后一个隐藏层中的活动矢量。 解码器是一种RNN,类似于用于机器翻译和神经语言建模的RNN。 最近,对这种系统的兴趣激增(参见参考文献86中提到的示例)。

RNNs随时间展开(图5),可以看作是非常深的前馈网络,其中所有层共享相同的权重。尽管它们的主要目的是学习长期依赖关系,但理论和经验证据表明,很难长期存储信息。

为了解决这个问题,一个想法是用显式内存扩展网络。此类第一个建议是使用特殊隐藏单元的长短期记忆(LSTM)网络,其自然行为是长时间记住输入79。称为存储单元的特殊单元的作用类似于累加器或门控泄漏神经元:它在下一时间步与自身连接,权重为1,因此它复制自己的实值状态并累积外部信号,但是此自连接是由另一个单元乘法控制的,该单元学会确定何时清除内存内容。

LSTM网络后来被证明比常规RNN更有效,尤其是当它们在每个时间步都有多层时,87使整个语音识别系统从声学到转录中的字符序列都一路走来。 LSTM网络或相关形式的门控单元目前也用于编码器和解码器网络,它们在机器翻译方面表现出色17、72、76。

在过去的一年中,几位作者提出了不同的建议,以使用内存模块扩展RNN。建议包括神经图灵机,其中网络由RNN可以选择读取或写入的“像带”存储器来增强,以及存储网络,其中常规网络由一种关联性存储器来增强89。内存网络在标准问答基准方面已表现出出色的性能。存储器用于记住故事,有关该故事后来被要求网络回答问题。

除了简单的记忆之外,神经图灵机和存储网络还用于执行通常需要推理和符号操作的任务。神经图灵机可以被称为“算法”。除其他事项外,当他们的输入由未排序的序列组成时,他们可以学习输出已排序的符号列表,其中每个符号都带有一个实数值,该实数值指示其在列表中的优先级88。可以训练记忆网络,使其在类似于文字冒险游戏的环境中跟踪世界状况,阅读故事后,它们可以回答需要复杂推理的问题90。在一个测试示例中,该网络显示了15句的《指环王》,并正确回答了诸如“现在Frodo在哪里?” 89之类的问题。

The future of deep learning

无监督学习91-98在重新激发人们对深度学习的兴趣方面起到了催化作用,但此后被纯粹的监督学习的成功所掩盖。尽管我们在本评论中并未对此进行重点介绍,但我们希望从长远来看,无监督学习将变得越来越重要。人类和动物的学习在很大程度上不受监督:我们通过观察来发现世界的结构,而不是通过告知每个物体的名称来发现世界的结构。
人类视觉是一个活跃的过程,它使用具有高分辨率,低分辨率的小中心凹,以智能的,针对特定任务的方式依次对光学阵列进行采样。我们期望视觉的未来很多进步来自端到端训练的系统,并将ConvNets与RNN结合使用,后者使用强化学习来决定在哪里看。结合了深度学习和强化学习的系统尚处于起步阶段,但是在分类任务上它们已经超过了被动视觉系统99,并且在学习玩许多不同的视频游戏方面产生了令人印象深刻的结果100。

自然语言理解是深度学习必将在未来几年产生巨大影响的另一个领域。我们希望使用RNN来理解句子或整个文档的系统在学习一次选择性地关注一部分的策略时会变得更好76,86。

最终,人工智能的重大进步将通过将表示学习与复杂推理相结合的系统来实现。尽管长期以来,深度学习和简单推理已用于语音和手写识别,但仍需要新的范例来通过对大向量进行运算来代替基于规则的符号表达操纵。

发布了87 篇原创文章 · 获赞 124 · 访问量 17万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章