论文地址:Deep Learning
doi:10.1038/nature14539
Abstract
深度学习允许由多个处理层组成的计算模型学习具有多个抽象级别的数据表示。 这些方法极大地改善了语音识别,视觉目标识别,目标检测以及许多其他领域(例如药物发现和基因组学)的最新技术。 深度学习通过使用反向传播算法指示机器应如何更改其内部参数来发现大型数据集中的复杂结构,这些内部参数用于根据上一层的表示来计算每一层的表示。 深层卷积网络在处理图像,视频,语音和音频方面带来了突破,而递归网络则对诸如文本和语音之类的顺序数据有所启发。
正文
深度学习允许由多个处理层组成的计算模型学习具有多个抽象级别的数据表示。 这些方法极大地改善了语音识别,视觉目标识别,目标检测以及许多其他领域(例如药物发现和基因组学)的最新技术。 深度学习通过使用反向传播算法指示机器应如何更改其内部参数来发现大型数据集中的复杂结构,这些内部参数用于根据上一层的表示来计算每一层的表示。 深层卷积网络在处理图像,视频,语音和音频方面带来了突破,而递归网络则对诸如文本和语音之类的顺序数据有所启发。
深度学习允许由多个处理层组成的计算模型学习具有多个抽象级别的数据表示。 这些方法极大地改善了语音识别,视觉目标识别,目标检测以及许多其他领域(例如药物发现和基因组学)的最新技术。 深度学习通过使用反向传播算法指示机器应如何更改其内部参数来发现大型数据集中的复杂结构,这些内部参数用于根据上一层的表示来计算每一层的表示。 深层卷积网络在处理图像,视频,语音和音频方面带来了突破,而递归网络则对诸如文本和语音之类的顺序数据有所启发。
表示学习是一组方法,这些方法允许向机器提供原始数据并自动发现检测或分类所需的表示。深度学习方法是具有表示形式的多层次的表示学习方法,是通过组合简单但非线性的模块而获的,这些模块各自将一个级别(从原始输入开始)的表示转换为更高,更抽象的级别的表示。有了足够多的此类转换,就可以学习非常复杂的功能。对于分类任务,较高的表示层会放大输入中对区分非常重要的方面,并抑制不相关的变化。例如,图像以像素值阵列的形式出现,并且在表示的第一层中学习到的特征通常表示图像中特定方向和位置上是否存在边缘。第二层通常通过发现边缘的特定布置来检测图案,而与边缘位置的微小变化无关。第三层可以将图案组装成与熟悉的对象的各个部分相对应的较大组合,并且随后的层将对象检测为这些部分的组合。深度学习的关键方面是这些层的功能不是由人类工程师设计的:它们是使用通用学习程序从数据中学习的。
表示学习是一组方法,这些方法允许向机器提供原始数据并自动发现检测或分类所需的表示。深度学习方法是具有表示形式的多层次的表示学习方法,是通过组合简单但非线性的模块而获的,这些模块各自将一个级别(从原始输入开始)的表示转换为更高,更抽象的级别的表示。有了足够多的此类转换,就可以学习非常复杂的功能。对于分类任务,较高的表示层会放大输入中对区分非常重要的方面,并抑制不相关的变化。例如,图像以像素值阵列的形式出现,并且在表示的第一层中学习到的特征通常表示图像中特定方向和位置上是否存在边缘。第二层通常通过发现边缘的特定布置来检测图案,而与边缘位置的微小变化无关。第三层可以将图案组装成与熟悉的对象的各个部分相对应的较大组合,并且随后的层将对象检测为这些部分的组合。深度学习的关键方面是这些层的功能不是由人类工程师设计的:它们是使用通用学习程序从数据中学习的。
深度学习在解决多年来抵制人工智能界最大尝试的问题方面取得了重大进展。 事实证明,它非常善于发现高维数据中的复杂结构,因此适用于科学,商业和政府的许多领域。 除了在图像识别1和语音识别中击败记录外,它在预测潜在药物分子的活性,分析粒子加速器数据,重建脑回路以及预测非编码DNA突变对人体的影响方面也击败了其他机器学习技术。 基因表达和疾病。 也许更令人惊讶的是,深度学习为自然语言理解中的各种任务(特别是主题分类,情感分析,问题解答和语言翻译)产生了非常有希望的结果。
深度学习在解决多年来抵制人工智能界最大尝试的问题方面取得了重大进展。 事实证明,它非常善于发现高维数据中的复杂结构,因此适用于科学,商业和政府的许多领域。 除了在图像识别1和语音识别中击败记录外,它在预测潜在药物分子的活性,分析粒子加速器数据,重建脑回路以及预测非编码DNA突变对人体的影响方面也击败了其他机器学习技术。 基因表达和疾病。 也许更令人惊讶的是,深度学习为自然语言理解中的各种任务(特别是主题分类,情感分析,问题解答和语言翻译)产生了非常有希望的结果。
Supervised learning
不论深度与否,最常见的机器学习形式都是监督学习。想象一下,我们想建立一个可以将图像分类为包含房屋,汽车,人或宠物的系统。我们首先收集大量的房屋,汽车,人和宠物的图像数据集,每个图像都标有类别。在训练过程中,机器将显示一张图像,并以分数矢量的形式产生输出,每个类别一个。我们希望所需的类别在所有类别中得分最高,但这不太可能在训练之前发生。我们计算一个目标函数,该函数测量输出得分与期望得分模式之间的误差(或距离)。机器然后修改其内部可调参数以减少此错误。这些可调整的参数(通常称为权重)是实数,可以看作是定义机器输入输出功能的“旋钮”。在典型的深度学习系统中,可能会有数以亿计的这些可调节砝码,以及数亿个带有标签的示例来训练机器。
为了适当地调整权重向量,学习算法计算一个梯度向量,该梯度向量针对每个权重指示如果权重增加很小的量,误差将增加或减少的量。 然后沿与梯度向量相反的方向调整权重向量。
目标函数,平均超过所有训练的例子,可以看作是一种在权重值的高维空间丘陵地区的景观。负梯度矢量指示在该风景的最速下降方向,以更接近最小,其中输出误差为低平均。
在实践中,大多数从业者使用一种称为随机梯度下降(SGD)的程序。 这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度以及相应地调整权重。 对训练集中的许多小样本示例重复此过程,直到目标函数的平均值停止下降。 之所以称为随机变量,是因为每个小样本示例都会对所有示例的平均梯度给出嘈杂的估计。 与更复杂的优化技术相比,这种简单的过程通常会很快出乎意料地找到一组好的权重。 训练后,系统的性能是在一组称为测试集的不同示例上进行衡量的。 这用于测试机器的泛化能力,即它对训练期间从未见过的新输入产生明智答案的能力。
机器学习的许多当前实际应用都在手工设计的功能之上使用线性分类器。 两类线性分类器计算特征向量分量的加权和。 如果加权和大于阈值,则将输入分类为属于特定类别。
自1960年代以来,我们就知道线性分类器只能将其输入空间划分为非常简单的区域,即由超平面分隔的半空间19。但是,诸如图像和语音识别之类的问题要求输入输出功能对输入的无关变化不敏感,例如对象的位置,方向或照明的变化,或语音的音高或口音的变化。对特定的细微变化敏感(例如,白狼与类似萨摩犬的类似狼的白狗之间的差异)。在像素级别,处于不同姿势和不同环境中的两个萨摩耶犬的图像可能彼此非常不同,而在相同位置且背景相似的萨摩耶犬和狼的两个图像可能彼此非常相似。线性分类器或对原始像素进行操作的任何其他“浅”分类器都无法区分后两个,而将前两个分类为同一类别。这就是为什么浅分类器需要一个好的特征提取器来解决选择性不变性难题的原因。提取器可以产生对图像中对于辨别重要的方面具有选择性但对不相关方面(如姿态的不变)具有选择性的表示。动物。为了使分类器更强大,可以使用通用的非线性特征,如核方法20,但是诸如高斯核所产生的那些一般特征不允许学习者对训练示例进行很好的概括。传统的选择是手工设计好的特征提取器,这需要大量的工程技术和领域专业知识。但是,如果可以使用通用学习过程自动学习好的功能,则可以避免所有这些情况。这是深度学习的关键优势。
深度学习架构是简单模块的多层堆栈,所有模块(或大多数模块)都需要学习,并且其中许多模块都计算非线性的输入-输出映射。 堆栈中的每个模块都转换其输入以增加表示的选择性和不变性。 系统具有多个非线性层(例如,深度为5到20),可以实现非常复杂的输入功能,这些功能同时对分钟的细节敏感(区分萨摩耶犬与白狼),并且对诸如背景, 姿势,灯光和周围物体。
Backpropagation to train multilayer architectures
从模式识别的早期开始,研究人员的目的就是用可训练的多层网络代替手工设计的功能,但是尽管其简单性,但直到1980年代中期才广泛了解该解决方案。 事实证明,可以通过简单的随机梯度下降来训练多层体系结构。 只要模块是其输入及其内部权重的相对平滑函数,就可以使用反向传播过程来计算梯度。 1970年代和1980年代,几个不同的小组独立地发现了可以做到这一点并且起作用的想法。
反向传播程序用于计算目标函数相对于模块多层堆栈权重的梯度,无非是导数链规则的实际应用。 关键的见解是,可以通过相对于该模块的输出(或后续模块的输入)相对于该模块的梯度进行反向运算来计算目标相对于该模块的输入的导数(或梯度)(图 1)。 反向传播方程式可以反复应用,以通过所有模块传播梯度,从顶部的输出(网络产生其预测)一直到底部的输出(馈入外部输入)。 一旦计算出这些梯度,就可以相对于每个模块的权重来计算梯度。
深度学习的许多应用都使用前馈神经网络体系结构(图1),该体系结构学会将固定大小的输入(例如,图像)映射到固定大小的输出(例如,几个类别中的每一个的概率) 。为了从一层到下一层,一组单位计算它们来自上一层的输入的加权总和,并将结果传递给非线性函数。目前,最流行的非线性函数是整流线性单元(ReLU),即半波整流器 f ( z ) = m a x ( z , 0 ) f(z)=max(z,0) f(z)=max(z,0) 。在过去的几十年中,神经网络使用了更平滑的非线性,例如 t a n h ( z ) tanh(z) tanh(z)或 1 1 + e x p ( − z ) \frac{1} {1 + exp(-z)} 1+exp(−z)1,但是ReLU通常在具有多个层的网络中学习得更快,从而可以训练深度监督的人。网络,无需无监督的预训练。不在输入或输出层中的单元通常称为隐藏单元。可以将隐藏的层视为非线性地使输入失真,以使类别变得可以由最后一层线性分离(图1)。
在1990年代后期,神经网络和反向传播在很大程度上被机器学习社区抛弃,而被计算机视觉和语音识别社区所忽视。 人们普遍认为,在没有先验知识的情况下学习有用的多阶段特征提取器是不可行的。 特别是,通常认为,简单的梯度下降会陷入不良的局部极小值—权重配置,对其进行很小的变化将减少平均误差。
实际上,大型网络很少会出现差的局部最小值的问题。 不管初始条件如何,该系统几乎总是能获得质量非常相似的解决方案。 最近的理论和经验结果强烈表明,局部极小值通常不是一个严重的问题。 取而代之的是,景观中包含大量的鞍点,其中梯度为零,并且曲面在大多数维度上向上弯曲,而在其余维度上向下弯曲。 分析似乎表明,只有少数几个向下弯曲方向的鞍点存在很多,但是几乎所有鞍点的目标函数值都非常相似。 因此,算法卡在这些鞍点中的哪一个上都没关系。
加拿大高级研究所(CIFAR)召集的一组研究人员在2006年左右恢复了对深层前馈网络的兴趣。 研究人员引入了无需监督的学习程序,这些程序可以创建特征检测器层,而无需标记数据。 学习特征检测器每一层的目的是能够在下一层中重建或建模特征检测器(或原始输入)的活动。 通过使用此重建目标对多层逐渐复杂的特征检测器进行“预训练”,可以将深度网络的权重初始化为合理的值。 然后可以将输出单元的最后一层添加到网络的顶部,并且可以使用标准反向传播对整个深度系统进行微调。 这对于识别手写数字或检测行人非常有效,特别是在标记数据量非常有限的情况下。
这种预训练方法的第一个主要应用是语音识别,而快速图形处理单元(GPU)的出现使编程成为可能,并且使研究人员可以更快地训练网络10到20倍,从而使之成为可能。在2009年,该方法用于将从声波提取的系数的短暂时间窗口映射到可能由窗口中心的帧表示的各种语音片段的一组概率。在使用少量词汇的标准语音识别基准上,它取得了创纪录的结果,并且很快就开发出来,为大型词汇任务提供了破纪录的结果。到2012年,许多主要的语音组织都在开发2009年以来的深网版本6,并且已经在Android手机中进行了部署。对于较小的数据集,无监督的预训练有助于防止过度拟合,从而在标记的示例数量很少时或在转移设置中,对于一些“源”任务,我们有很多示例,而对于某些“源”任务,则没有太多示例“目标”任务。恢复深度学习后,事实证明,仅对于小型数据集才需要预训练阶段。
但是,存在一种特定类型的深层前馈网络,它比相邻层之间具有完全连接的网络更容易训练和推广。 这就是卷积神经网络(ConvNet)。 在神经网络失宠期间,它取得了许多实际的成功,并且最近被计算机视觉界广泛采用。
Convolutional neural networks
ConvNet设计用于处理以多个阵列形式出现的数据,例如,由三个二维通道组成的彩色图像,其中三个二维通道在三个彩色通道中包含像素强度。 许多数据形式以多个数组的形式出现:一维用于信号和序列,包括语言; 2D用于图像或音频频谱图; 和3D视频或体积图像。 ConvNets背后有四个利用自然信号属性的关键思想:本地连接,共享权重,池化和多层使用。
典型的ConvNet的架构(图2)由一系列阶段构成。前几个阶段由两种类型的层组成:卷积层和池化层。卷积层中的单元被组织在特征图中,其中每个单元通过称为滤波器组的一组权重连接到上一层特征图中的局部补丁。然后,该局部加权和的结果将通过非线性(例如ReLU)传递。特征图中的所有单位共享相同的过滤器组。图层中的不同要素图使用不同的滤镜库。这种架构的原因有两个。首先,在诸如图像的阵列数据中,值的局部组通常高度相关,从而形成易于检测的独特局部图案。其次,图像和其他信号的局部统计量对于位置是不变的。换句话说,如果图案可以出现在图像的一部分中,则它可以出现在任何地方,因此,位于不同位置的单元在阵列的不同部分中具有相同的权重并检测相同的图案的想法。在数学上,由特征图执行的滤波操作是离散卷积,因此得名。
尽管卷积层的作用是检测上一层的要素的局部连词,但池化层的作用是将语义相似的要素合并为一个。 由于形成图案的特征的相对位置可能会略有变化,因此可以通过对每个特征的位置进行粗粒度来可靠地检测图案。 典型的池化单元计算一个特征图中(或几个特征图中)的局部局部补丁的最大值。 相邻的合并单元从移动了不止一个行或一列的色块中获取输入,从而减小了表示的尺寸,并为小幅度的移位和失真创建了不变性。 卷积,非线性和合并的两个或三个阶段被堆叠,然后是更多卷积和完全连接的层。 通过ConvNet进行反向传播的梯度与通过常规深度网络一样简单,从而可以训练所有滤波器组中的所有权重。
深度神经网络利用了许多自然信号是成分层次结构的特性,其中通过组合较低层的特征来获得较高层的特征。 在图像中,边缘的局部组合形成图案,图案组装成零件,而零件形成对象。 从声音到电话,音素,音节,单词和句子,语音和文本中也存在类似的层次结构。 当上一层中的元素的位置和外观变化时,池化使表示形式的变化很小。
ConvNets中的卷积和池化层直接受到视觉神经科学中简单细胞和复杂细胞的经典概念的启发,整体架构让人联想到视觉皮层腹侧通路中的LGN–V1–V2–V4–IT层次结构。 当ConvNet模型和猴子显示相同的图片时,ConvNet中高级单元的激活可以解释猴子下颞叶皮层中160个神经元的随机集合的一半变化。 ConvNets的根源是新认知器,其结构有些相似,但没有端到端的监督学习算法(例如反向传播)。 原始的一维ConvNet(称为时延神经网络)用于识别音素和简单单词。
卷积网络的大量应用可以追溯到1990年代初,首先是用于语音识别和文档阅读的时延神经网络。 该文档阅读系统使用了一个ConvNet,并与一个实现语言约束的概率模型一起进行了培训。 到1990年代后期,该系统已读取了美国所有支票的10%以上。 Microsoft随后部署了许多基于ConvNet的光学字符识别和手写识别系统。 在1990年代初期,还对ConvNets进行了试验,以检测自然图像(包括脸和手)中的物体,并进行人脸识别。
Image understanding with deep convolutional networks
自2000年代初以来,ConvNets已成功应用于检测,分割和识别图像中的对象和区域。 这些都是带有标记数据的相对丰富的任务,例如交通标志识别,特别用于连接组学的生物图像分割以及自然图像中人脸,文字,行人和人体的检测。 ConvNets最近在实践中取得的主要成功是面部识别。
自动驾驶汽车。 Mobileye和NVIDIA等公司正在其即将推出的汽车视觉系统中使用基于ConvNet的方法。 其他日益重要的应用包括自然语言理解和语音识别。
尽管取得了这些成功,但ConvNet在很大程度上被主流的计算机视觉和机器学习社区所抛弃,直到2012年ImageNet竞赛。当深度卷积网络应用于来自网络的大约一百万个图像的数据集时,其中包含1,000个不同的类别, 他们取得了惊人的成绩,几乎使最佳竞争方法的错误率降低了一半。 成功的原因是有效利用了GPU,ReLU,一种称为dropout的新正则化技术,以及通过使现有示例变形而生成更多训练示例的技术。 这一成功带来了计算机视觉的一场革命。 现在,ConvNets是几乎所有识别和检测任务的主要方法,并在某些任务上采用人类绩效。 最近的惊人演示结合了ConvNets和递归网络模块,用于生成图像字幕(图3)。
最近的ConvNet架构具有10到20层ReLU,数亿个权重以及单元之间的数十亿个连接。 尽管培训如此大型的网络可能仅在两年前才花了几周的时间,但是硬件,软件和算法并行化方面的进步已将培训时间减少到几个小时。
基于ConvNet的视觉系统的性能已引起大多数主要技术公司的发展,其中包括Google,Facebook,Microsoft,IBM,Yahoo!,Twitter和Adobe,以及数量迅速增长的初创公司开始进行研发项目,并 部署基于ConvNet的图像理解产品和服务。
ConvNets易于适应芯片或现场可编程门阵列中的高效硬件实现。 NVIDIA,Mobileye,英特尔,高通和三星等多家公司正在开发ConvNet芯片,以支持智能手机,相机,机器人和自动驾驶汽车中的实时视觉应用。
Distributed representations and language processing
深度学习理论表明,与不使用分布式表示的经典学习算法相比,深网具有两个不同的指数优势。 这两个优点都来自于组合的能力,并取决于具有适当组件结构的基础数据生成分布。 首先,学习分布式表示可以将学习特征的值的新组合推广到训练期间看不到的那些新组合(例如,使用n个二进制特征可以进行2n个组合)。 其次,在深层网络中构成表示层会带来另一个指数优势(深度指数)。
多层神经网络的隐藏层学习以易于预测目标输出的方式来表示网络的输入。通过训练多层神经网络从较早单词的局部上下文中预测序列中的下一个单词,可以很好地证明这一点。上下文中的每个单词都以N个向量的形式呈现给网络,也就是说,一个组成部分的值为1,其余均为0。在第一层中,每个单词都会创建不同的激活模式,或者单词向量(图4)。在语言模型中,网络的其他层学习将输入的单词矢量转换为预测的下一个单词的输出单词矢量,这可用于预测词汇表中任何单词出现为下一个单词的概率。网络学习包含多个有效成分的单词向量,每个成分都可以解释为单词的一个独立特征,如在学习符号的分布式表示形式时首先证明的那样。这些语义特征未在输入中明确显示。通过学习过程可以发现它们,这是将输入和输出符号之间的结构化关系分解为多个“微规则”的好方法。当单词序列来自大量的真实文本并且单个的微规则不可靠时,学习单词向量也可以很好地工作。例如,在接受培训以预测新闻故事中的下一个单词时,周二和周三学到的单词向量与瑞典和挪威的单词向量非常相似。这样的表示称为分布式表示,因为它们的元素(特征)不是互斥的,并且它们的许多配置对应于在观察到的数据中看到的变化。这些词向量由专家事先未确定但由神经网络自动发现的学习特征组成。从文本中学到的单词的矢量表示现在已广泛用于自然语言应用程序中。
表示的问题是逻辑启发和神经网络启发的认知范式之间争论的核心。 在逻辑启发范式中,符号实例是某些事物,其唯一属性是它与其他符号实例相同或不同。 它没有与其使用相关的内部结构; 为了用符号推理,必须将它们绑定到明智选择的推理规则中的变量。 相比之下,神经网络仅使用较大的活动向量,较大的权重矩阵和标量非线性来执行快速的“直觉”推断类型,从而支持毫不费力的常识推理。
在引入神经语言模型71之前,语言统计建模的标准方法并未利用分布式表示形式:它是基于对长度不超过N(称为N元语法)的短符号序列的出现频率进行计数。 可能的N元语法的数量在VN的数量级上,其中V是词汇量,因此考虑到几个单词以上的上下文,将需要非常大的训练语料库。 N-gram将每个单词视为一个原子单位,因此它们无法在语义上相关的单词序列中进行泛化,而神经语言模型则可以将它们与实值特征向量关联在一起,而语义相关的单词最终彼此靠近 在该向量空间中(图4)。
Recurrent neural networks
首次引入反向传播时,其最令人兴奋的用途是训练循环神经网络(RNN)。 对于涉及顺序输入的任务,例如语音和语言,通常最好使用RNN(图5)。 RNN一次处理一个输入序列一个元素,并在其隐藏单元中维护一个“状态向量”,该向量隐式包含有关该序列所有过去元素的历史信息。 当我们将隐藏单元在不同离散时间步长的输出视为是深层多层网络中不同神经元的输出时(图5,右),很清楚地知道如何应用反向传播训练RNN。
RNN是非常强大的动态系统,但事实证明,训练它们是有问题的,因为反向传播的梯度在每个时间步长都会增大或缩小,因此在许多时间步长上它们通常会爆炸或消失。
得益于其体系结构和培训方式的进步,人们发现RNN非常擅长预测文本中的下一个字符或序列中的下一个单词,但是它们也可以用于更复杂的任务。例如,一次阅读一个英语句子后,可以训练一个英语“编码器”网络,以使其隐藏单元的最终状态向量很好地表示该句子表达的思想。然后,可以将此思想向量用作联合训练的法语“解码器”网络的初始隐藏状态(或作为其额外输入),该网络将输出法语翻译的第一个单词的概率分布。如果从该分布中选择了特定的第一个单词并将其作为输入提供给解码器网络,则它将输出翻译的第二个单词的概率分布,依此类推,直到选择了句号为止。总体而言,此过程根据取决于英语句子的概率分布生成法语单词序列。这种相当幼稚的执行机器翻译的方法已迅速与最新技术竞争,这引起了人们对理解句子是否需要诸如通过使用推理规则操纵的内部符号表达式之类的疑问。日常推理涉及许多同时进行的类比,每个类比都有助于得出结论,这一点与观点更加一致。
与其将法语句子的含义翻译成英语句子,不如学习将图像的含义“翻译”成英语句子(图3)。 这里的编码器是一个深层的ConvNet,可将像素转换为其最后一个隐藏层中的活动矢量。 解码器是一种RNN,类似于用于机器翻译和神经语言建模的RNN。 最近,对这种系统的兴趣激增(参见参考文献86中提到的示例)。
RNNs随时间展开(图5),可以看作是非常深的前馈网络,其中所有层共享相同的权重。 尽管它们的主要目的是学习长期依赖关系,但理论和经验证据表明,很难长期学习信息。
为了解决这个问题,一个想法是用显式内存扩展网络。 这类第一个建议是使用特殊隐藏单元的长短期记忆(LSTM)网络,其自然行为是长时间记住输入。 称为存储单元的特殊单元的作用类似于累加器或门控泄漏神经元:它在下一时间步与自身连接,权重为1,因此它复制自己的实值状态并累积外部信号, 但是此自连接是由另一个单元乘法控制的,该单元学会确定何时清除内存内容。
随后证明LSTM网络比常规RNN更有效,尤其是当它们在每个时间步都有多层时,使整个语音识别系统从声学到转录中的字符序列,一路走来。 LSTM网络或相关形式的门控单元目前也用于在机器翻译方面表现出色的编码器和解码器网络。
在过去的一年中,几位作者提出了不同的建议,以使用内存模块扩展RNN。 提议包括神经图灵机,其中网络由RNN可以选择读取或写入的“磁带状”存储器来增强,以及存储器网络,其中常规网络由一种关联存储器来增强。 内存网络在标准问答基准方面已表现出出色的性能。 存储器用于记住故事,有关该故事后来被要求网络回答问题。
除了简单的记忆之外,神经图灵机和存储网络还用于执行通常需要推理和符号操作的任务。 神经图灵机可以被称为“算法”。 除其他事项外,当他们的输入由未排序的序列组成时,他们可以学习输出已排序的符号列表,其中,每个符号都带有一个表示其在列表中优先级的实数值。 可以训练记忆网络,使其在类似于文本冒险游戏的环境中跟踪世界状况,并且在阅读故事后,它们可以回答需要复杂推理的问题。 在一个测试示例中,该网络显示了15句版本的《指环王》,并正确回答了诸如“ Frodo现在在哪里?”之类的问题。
The future of deep learning
无监督学习在重新激发人们对深度学习的兴趣方面起到了催化作用,但是自那以后,纯监督学习的成功就使它黯然失色。 尽管我们在本评论中并未对此进行重点介绍,但我们希望从长远来看,无监督学习将变得越来越重要。 人类和动物的学习在很大程度上不受监督:我们通过观察来发现世界的结构,而不是通过告知每个物体的名称来发现世界的结构。
人类视觉是一个活跃的过程,它使用具有高分辨率,低分辨率的小中心凹,以智能的,针对特定任务的方式依次对光学阵列进行采样。 我们期望视觉的未来很多进步来自端到端训练的系统,并将ConvNets与RNN结合使用,后者使用强化学习来决定在哪里看。 结合了深度学习和强化学习的系统尚处于起步阶段,但是在分类任务上它们已经超过了被动视觉系统,并且在学习玩许多不同的视频游戏方面产生了令人印象深刻的结果。
自然语言理解是深度学习必将在未来几年产生巨大影响的另一个领域。 我们希望使用RNN来理解句子或整个文档的系统在学习每次选择性地关注一部分的策略时会变得更好。
最终,人工智能的重大进步将通过将表示学习与复杂推理相结合的系统来实现。 尽管长期以来,深度学习和简单推理已被用于语音和手写识别,但仍需要新的范例来通过对大向量进行运算来代替基于规则的符号表达操纵。