Deep Learning
作者:Yann LeCun, Yoshua Bengio & Geoffrey Hinton
发表时间:2015
论文地址[ https://www.nature.com/articles/nature14539]
一. 作者简介
Yann LeCun:法国裔美国计算机科学家,他在机器学习、计算机视觉、移动机器人和计算神经科学等领域都有很多贡献。他最著名的工作是在光学字符识别和计算机视觉上使用卷积神经网络 (CNN),他也被称为卷积网络之父。[1][2]他同Léon Bottou和Patrick Haffner等人创建了DjVu图像压缩技术。他同Léon Bottou开发了Lush语言。
Yoshua Bengio:加拿大的计算机科学家,最引人注目的为他的工作,人工神经网络和深度学习。[1] [2] [3]他因其深度学习工作而成为2018年ACM AM图灵奖的共同获奖者。[4]他是蒙特利尔大学计算机科学与运筹学系教授,蒙特利尔学习算法研究所(MILA)科学主任。
Geoffrey Hinton:英国出生的加拿大计算机学家和心理学家,多伦多大学教授。以其在类神经网络方面的贡献闻名。辛顿是反向传播算法和对比散度算法的发明人之一,也是深度学习的积极推动者[1],被誉为“深度学习之父”[2]。辛顿因在深度学习方面的贡献与约书亚·本希奥和杨立昆一同被授予了2018年的图灵奖。
二. 论文的意义和主要内容
论文意义
人工智能领域的三位泰斗,总览深度学习理论,模型展开了人工智能壮丽画卷,把握深度学习的前世今生,探究深度学习中最重要的算法和理论!
概念
深度学习允许由多个处理层组成的计算模型来学习具有多个抽象级别的数据表示。这些方法极大地改善了语音识别,视觉对象识别,物体检测以及药物发现和基因组学等许多其他领域的最新技术。
原理
深度学习通过使用反向传播算法来指示机器应如何更改其内部参数(用于从前一层中的表示计算每个层中的表示)来发现大数据集中的复杂结构。
应用
深度卷积网络CNN在处理图像,视频,语音和音频方面带来了突破,而循环神经网络则对文本和语音等序列数据进行了非常好的彰显。
三. 论文结构
- 引言(Abstract)
- 监督学习(Supervised learning)
- 反向传播算法(Backpropagation to train multilayer architectures)
- 卷积神经网络(Convolutional neural networks)
- 基于深度卷积神经网络的图片理解(Image understanding with deep convolutional networks)
- 分布表示和语音模型(Distributed representations and language processing)
- 循环神经网络(Recurrent neural networks)
- 深度学习的未来(The future of deep learning)
四. 论文正文(已翻译)
1. Abstract
深度学习方法是具有多级表示的学习方法,通过组合简单但非线性的模块来获得,每个模块将表示一个级别,从原始的输入转化为更高的,稍微抽象的表示。在具有足够的这种转换的组合,可以学习非常复杂的功能。深度学习的关键是:这些特性层不是由人类工程师设计的,它们是使用通用的学习过程从数据中学习的。结果证明,它非常善于发现高维数据中的复杂结构,因此适用于科学、商业和政府的许多领域。也许更令人惊讶的是,在自然语言理解的各种任务中,深度学习已经产生了非常有前途的结果,尤其是主题分类、情感分析、问题回答和语言翻译。
2. Supervised learning
我们计算一个目标函数来测量输出分数和所需分数模式之间的误差(或距离)。 然后,机器修改其内部可调参数以减少此错误。 这些可调参数(通常称为权重)是实数,可以看作是定义机器输入输出功能的“旋钮”。 在典型的深度学习系统中,可能存在数亿个这样的可调节重量,以及用于训练机器的数亿个标记示例。
为了正确调整权值向量,学习算法计算一个梯度向量,对于每个权值,梯度向量表示如果权值增加一点点,误差将增加或减少多少。然后向梯度向量的相反方向调整权向量。
平均所有训练样例的目标函数可以看作是权重值在高维空间中的一种丘陵景观。 负梯度向量表示该景观中最陡下降的方向,使其接近最小值,其中输出误差平均较低。
在实践中,大多数从业者使用称为随机梯度下降(SGD)的过程。 这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度,以及相应地调整权重。 对于来自训练集的许多小例子,重复该过程,直到目标函数的平均值停止减小。它被称为随机是因为对每个样例给出了对所有样例的平均梯度的噪声估计。 与更精细的优化技术相比,这种简单的程序通常能够以惊人的速度快速找到一组良好的权重。 在训练之后,系统的性能在称为测试集的不同示例集上测量。 这有助于测试机器的泛化能力 - 它能够在培训期间从未见过的新输入产生合理的答案。
线性分类器只能将其输入空间划分为非常简单的区域,即由超平面分隔的半空间。但是图像和语音识别等问题要求输入输出功能对输入的无关变化不敏感,例如位置的变化,物体的方向或照明,或者语音的音调或重音的变化,而 对特定的微小变化非常敏感(例如,白狼和一种叫做萨摩耶犬的狼类白狗之间的差异)。
为了使分类器更强大,我们可以使用一般的非线性特征,就像使用核函数方法一样,但是一般的特征,比如高斯核函数产生的那些特征,不允许学习者在远离训练样本的地方进行很好的泛化。传统的选择是手工设计好的特征提取器,这需要相当数量的工程技能和领域专业知识。但是,如果可以使用通用的学习过程自动学习好的特性,那么这一切都可以避免。这是深度学习的关键优势。
多层神经网络(由连接的点表示)可以使输入空间失真,使得数据类(其示例在红线和蓝线上)可线性分离。 请注意输入空间中的常规网格(如左侧所示)也是如何通过隐藏单位转换(在中间面板中显示)。 这是仅具有两个输入单元,两个隐藏单元和一个输出单元的说明性示例,但是用于对象识别或自然语言处理的网络包含数十或数十万个单元]
导数的链式法则告诉我们两个小效应(y上x的小变化和z上y的小变化)是如何构成的。x中的小变化δx通过乘以∂y/∂x(即偏导数的定义)首先转化为y中的小变化δy。类似地,变化δy在z中产生变化δz。将一个方程代入另一个方程给出了导数的链式法则——δx是如何通过乘以∂y/∂x和∂z/∂x.的乘积变成δz的
用于计算具有两个隐藏层和一个输出层的神经网络中的前向通道的等式,每个都构成一个模块,通过该模块可以反向传播梯度。 在每一层,我们首先计算每个单元的总输入z,它是下面层中单元输出的加权和。如果将非线性函数f(.)应用于z以获得单位的输出。 为简单起见,我们省略了偏差项。 神经网络中使用的非线性函数包括近年来常用的整流线性单位(ReLU)f(z)= max(0,z),以及更常规的sigmoids,如hyberbolic tangent,f (z)=(exp(z)-exp(-z))/(exp(z)+ exp(-z))和逻辑函数logistic,f(z)= 1 /(1 + exp(-z)) 。
用于计算后向传递的方程式。 在每个隐藏层,我们计算相对于每个单元的输出的误差导数,其是误差导数相对于上面层中单元的总输入的加权和。 然后,我们将相对于输出的误差导数转换为相对于输入的误差导数,方法是将其乘以f(z)的梯度。 在输出层,通过对成本函数进行微分来计算相对于单位输出的误差导数。 如果单位l的成本函数是0.5(yl-t1)2,则给出yl-t1,其中t1是目标值。 一旦知道∂E/∂zk,下面层中单元j的连接上权重wjk的误差导数就是yj∂E/∂zk。
3. Backpropagation to train multilayer architectures
关键的见解是,目标相对于模块的输入的导数(或梯度)可以通过于该模块的输出(或后续模块的输入)从梯度后向传播中计算得到。可以重复应用传播方程,以通过所有模块传播梯度,从顶部的输出(网络产生其预测)一直到底部(外部输入)。计算出梯度后就可直接计算相对于每个模块的权重的梯度。
深度学习的许多应用使用前馈神经网络体系结构,学习如何将固定大小的输入(如图像)映射到固定大小的输出(每个类别的概率)。从一个层到另一个层,一组单元计算来自前一层的输入的加权和,并通过非线性函数传递结果。目前,最流行的非线性函数是ReLU,它只是半波整流器
。在过去的几十年里,神经网络使用更平滑的非线性,例如
或$f(z)= 1/(1 + exp(-z)),但ReLU通常在具有多层的网络中学得更快,从而允许在没有无监督的预训练的情况下训练深度监督网络。不在输入或输出层中的单位通常称为隐藏单位。隐层可以看作是非线性的扭曲输入,使得类别可以被最后一层线性分离(图1)。
在20世纪90年代末,神经网络和反向传播在很大程度上被机器学习社区所抛弃,而被计算机视觉和语音识别社区所忽视。人们普遍认为,学习有用的、多阶段的、几乎没有先验知识的特征提取器是不可行的。特别是,人们普遍认为,简单的梯度下降会陷入局部极小权值较低的配置中,在这种情况下,任何小的变化都不能减少平均误差。
在实践中,较差的局部最小值很少是大型网络的问题。 无论初始条件如何,系统几乎总能达到非常相似质量的解决方案。 最近的理论和实证结果强烈表明,局部最小值一般不是一个严重的问题。相反,"地形"是由大量的鞍点组合而成的,这些鞍点的梯度为零,表面在大多数维度上向上弯曲,在其余维度上向下弯曲。分析似乎表明,只有少数向下弯曲方向的鞍点数量非常大,但几乎所有鞍点的目标函数值都非常相似。因此,在这些鞍点中,算法被卡在哪个鞍点并不重要。
学习每一层特征检测器的目的是能够重构或模拟下一层特征检测器(或原始输入)的活动。通过使用该重建目标对多层复杂的特征检测器进行预处理,可以将深度网络的权值初始化为合理值。这对于识别手写数字或检测行人非常有效,尤其是在标签数据非常有限的情况下。
4. Convolutional neural networks
卷积神经网络用于处理多个阵列形式的数据,例如由三个二维阵列组成的彩色图像,其中包含三个彩色通道中的像素强度。许多数据模态采用多阵列的形式:一维的信号和序列,包括语言;二维图像或声频图;和3D的视频或体积图像。利用自然信号特性的卷积神经网络有四个关键思想:本地连接、共享权重、池和多层的使用。
典型的神经网络架构(图2)是一系列阶段。 前几个阶段由两种类型的层组成:卷积层和池化层。 卷积层中的单元被组织在特征映射中,其中每个单元通过称为滤波器组的一组权重连接到前一层的特征映射中的局部单元。然后,该局部加权和的结果通过如ReLU的非线性函数。 要素图中的所有单位共享相同的过滤器库。 层中的不同特征映射使用不同的滤波器组。这种架构的有两个原因:一,在像图像这样的数组数据中,局部值组通常高度相关,形成易于检测的独特的局部基序(图案);二,图像和其他信号的局部统计不受位置的影响。换句话说,如果一个基序可以出现在图像的某个部分,那么它就可以出现在任何地方,因此在不同的位置使用相同的权重,并在数组的不同部分检测相同的模式。从数学上讲,特征图的滤波操作是一个离散卷积,因此得名。
虽然卷积层的作用是检测来自前一层的特征的局部连接,但池化层的作用是将语义相似的特征合并为一个。 因为形成图案的特征的相对位置可以稍微变化,所以可以通过粗粒化每个特征的位置来可靠地检测图案。 典型的池化单元计算一个特征图(或几个特征图)中的局部单元块的最大值。典型的池化单元计算一个特征图(或几个特征图)中的局部单元块的最大值。 相邻池化单元从多个行或列移位的块中获取输入,从而减小表示的维度并创建小移位和失真的不变性。 堆叠两个或三个阶段的卷积,非线性和汇集,然后是更多卷积和完全连接的层。 通过神经网络的反向传播渐变就像通过常规深度网络一样简单,允许训练所有滤波器组中的所有权重。
深度神经网络利用了许多自然信号是组合层次结构的属性,其中通过组合较低级别的特征来获得更高级别的特征。 在图像中,边缘的局部组合形成图案,图案组合成部分,部分形成物体。 语音和文本中存在类似的层次结构,从声音到电话,音素,音节,单词和句子。 当前一层中的元素的位置和外观不同时,池化允许表示变化非常小。
卷积神经网络中的卷积和汇集层直接受到视觉神经科学中简单细胞和复杂细胞的经典概念的启发,整体架构让人联想到视觉皮层腹侧路径中的LGN-V1-V2-V4-IT层次结构 。 当卷积神经网络模型和猴子显示相同的图片时,卷积神经网络中高级单位的激活解释了猴子颞下皮质中160个神经元随机组的一半方差。卷积神经网络的根源在于神经认知机,其架构有些相似,但没有端到端的监督学习算法,如反向传播。 一个称为延时神经网络的原始1D 卷积神经网络用于识别音素和简单单词
5. Image understanding with deep convolutional networks
自本世纪初以来,卷积神经网络在图像中对目标和区域的检测、分割和识别方面取得了很大的成功。这些都是标签数据相对丰富的任务,例如交通标志识别、生物图像的分割,特别是连接体的分割,以及在自然图像中检测人脸、文本、行人和人体。ConvNets最近的一个主要的实际成功是人脸识别。重要的是,图像可以在像素级进行标记,这将在技术上得到应用,包括自动移动机器人和自动驾驶汽车。Mobileye和英伟达(NVIDIA)等公司正在即将推出的汽车视觉系统中使用这种基于卷积神经网络的方法。其他越来越重要的应用包括自然语言理解和语音识别。
尽管取得了这些成功,但在2012年ImageNet竞赛之前,ConvNets主要被主流计算机视觉和机器学习社区所抛弃。当深度卷积网络应用于包含1,000个不同类别的大约一百万张图像的数据集时, 他们取得了显着的成果,几乎将最佳竞争方法的错误率降低了一半.这种成功来自于对gpu、ReLUs(一种称为dropout的新正则化技术)的有效使用,以及通过对现有示例进行变形来生成更多训练示例的技术。这一成功带来了计算机视觉的革命;目前,卷积神经网络已成为几乎所有识别和检测任务的主流方法,并在某些任务上接近人类的性能。最近一个令人震惊的演示结合了ConvNets和循环网络模块,用于生成图像标题(图3)。
最近的ConvNet架构有10到20层ReLUs、数亿个权重和数十亿个单元之间的连接。两年前,训练这样的大型网络可能只需要几周的时间,但硬件、软件和算法并行化的进展已将训练时间缩短至几个小时。基于ConvNet的视觉系统的性能已经导致大多数主要技术公司,包括谷歌,Facebook,微软,IBM,雅虎,Twitter和Adobe,以及越来越多的初创企业开展研究和开发项目,以及 部署基于ConvNet的图像理解产品和服务。
6. Recurrent neural networks
当首次引入反向传播时,其最令人兴奋的用途是用于训练递归神经网络(RNN)。 对于涉及顺序输入的任务,例如语音和语言,使用RNN通常更好(图5)。 RNN一次处理一个元素的输入序列,在其隐藏单元中保持“状态向量”,该状态向量隐含地包含关于序列的所有过去元素的历史的信息。当我们把隐藏单元在不同离散时间步骤的输出看作是深层多层网络中不同神经元的输出时(图5),我们就清楚了如何应用反向传播来训练RNNs。
RNN是非常强大的动态系统,但训练它们已被证明是有问题的,因为反向传播的梯度要么在每个时间步长增长或缩小,所以在很多时间步骤它们通常会爆炸或消失。
由于它们的体系结构和训练方法的进步,人们发现RNNs非常善于预测文本中的下一个字符或序列中的下一个单词,但它们也可以用于更复杂的任务。例如,在一次阅读一个英语句子一个单词之后,可以训练一个英语编码器网络,使其隐藏单元的最终状态向量很好地表示句子所表达的思想。总的来说,该过程根据取决于英语句子的概率分布生成法语单词序列。 这种相当天真的执行机器翻译的方式很快就变得与最先进的技术竞争,这引起了对于理解一个句子是否需要像使用推理规则操纵的内部符号表达式这样的东西的严重怀疑。
RNNs一旦在时间上展开(图5),可以看作是一个非常深的前馈网络,其中所有层的权值相同。虽然它们的主要目的是学习长期依赖关系,但理论和经验证据表明,学习长时间存储信息是困难的。
LSTM网络后来被证明比传统的RNNs更有效,特别是当它们在每个时间步长都有多个层时,使得整个语音识别系统能够从声学一直到转录中的字符序列。LSTM网络或相关形式的门控单元目前也用于在机器翻译方面表现良好的编码器和解码器网络。在过去的一年中,一些作者提出了不同的建议,以增加内存模块的RNN。 建议包括神经图灵机,其中网络由RNN可以选择读取或写入的“类似磁带”的存储器和存储器网络增强,其中常规网络由一种关联存储器增强。 内存网络在标准问答基准测试中取得了出色的性能。 记忆用于记住以后要求网络回答问题的故事。
除了简单的记忆,神经图灵机和记忆网络被用于通常需要推理和符号操作的任务。神经图灵机可以教’算法‘。此外,当输入由一个未排序的序列组成时,它们可以学习输出一个排序的符号列表,其中每个符号都伴有一个表示其在列表中的优先级的实值。可以训练记忆网络以在类似于文本冒险游戏的环境中跟踪世界状态,并且在阅读故事之后,他们可以回答需要复杂推理的问题。在一个测试示例中,网络显示了“指环王”的15个句子版本并正确回答诸如“佛罗多现在在哪里?”之类的问题。
7. The future of deep learning
无监督学习对恢复对深度学习的兴趣具有催化作用,但后来被纯监督学习的成功所掩盖。 虽然我们在本评论中没有关注它,但我们预计无监督学习在长期内变得更加重要。 人类和动物学习在很大程度上是无人监督的:我们通过观察它来发现世界的结构,而不是通过被告知每个物体的名称。
人类视觉是一个活跃的过程,它使用具有大型低分辨率环绕声的小型高分辨率中央凹,以智能的,任务特定的方式顺序采样光学阵列。 我们预计未来的远景进展将来自端到端训练的系统,并将ConvNets与使用强化学习的RNN相结合,以决定在哪里寻找。 结合深度学习和强制学习的系统尚处于起步阶段,但在分类任务中已经超越被动视觉系统,并且在学习玩许多不同的视频游戏时产生了令人印象深刻的结果。
自然语言理解是另一个深度学习将在未来几年内产生巨大影响的领域。 我们期望使用RNN来理解句子或整个文档的系统在学习有选择地一次参与一个部分的策略时会变得更好。
最终,人工智能的重大进步将通过将表象学习与复杂推理相结合的系统来实现。 尽管深度学习和简单推理已经被用于语音和手写识别很长一段时间,但是需要新的范例来通过对大向量的操作来替换基于规则的符号表达式操作。