深度学习三巨头共同发文,聊聊深度学习的过去、现在与未来

作者|Yoshua Bengio,Yann LeCun,Geoffrey Hinton

译者|香槟超新星

出品|AI科技大本营(ID:rgznai100)

人工神经网络领域的研究是基于对人类智能的观察而来:人类智能从高度并行的网络中产生,这些网络由结构相对简单的非线性神经元组成,通过调整连接强度来进行学习。

这一观察随即引入了一个核心的计算科学问题:如果要让这种普通类型的网络完成目标检测或理解语言这样的困难任务,怎样才能让它学会复杂的内部表示?

深度学习尝试通过使用多层的活动向量作为表示,以及最优化损失函数得到最终的参数。这种方法虽然从概念上看很简单,但事实证明,在大量算力的加持下,这种方法作用于大型训练集时却有成效。而且似乎深度是一个关键因素:浅层网络的表现没有深层的网络好。

我们将在本文介绍深度学习的起源、近几年的最新进展,探讨未来面临的挑战——比如在没有或只有极少外部监督的情况下学习,处理与训练集不同分布的测试用例,以及使用深度学习方法解决那些人类需要对步骤深思熟虑才能完成的任务等等——Kahneman将这种任务称为系统2任务(是相较于较为轻松的系统1任务而言的,例如目标检测或即时自然语言理解)。

从手工设计的编码到学习的分布式表示

人工智能有两种截然不同的范式。简而言之,逻辑启发范式将顺序推理视为智能的本质,旨在使用手工设计的推理规则在计算机中实现推理,这些规则通过手工设计的将知识形式化的符号表达式运作。而另一种受大脑启发的范式将从数据中学习表征视为智能的本质,旨在通过手动设计或演化人工神经元模拟网络中连接强度的变化规则来实现学习。

在逻辑启发范式中,符号的内部结构没有意义:它的意义在于它与其他符号的关系,这些关系可以用一组符号表达式或关系图来表示。相比之下,在受大脑启发范式中,用于交流的外部符号被转换为神经活动的内部向量,这些向量具有丰富的相似结构。

活动向量可用于通过为每个符号学习适当的活动向量并学习允许填充与符号串缺失元素对应的活动向量的非线性变换来对一组符号串中固有的结构进行建模。

Rumelhart 等人首先在小的示例数据集上证明了这一点,后来Bengio 等人也用真实世界的句子进行了印证。在这方面最新令人印象深刻的例子是BERT,它利用自注意力来动态连接单元组,下文会讲到。

使用神经活动向量来表示概念,并通过权重矩阵来捕捉概念之间的关系,这种方式的主要优点在于其自动的泛化性。如果表示星期二和星期四的向量非常相似,那么二者对其他神经活动向量产生的影响也会非常相似。这有助于类比推理,并表明直接、直观的类比推理是我们的主要推理模式,而逻辑顺序推理则是较晚才发展出来的,后面还会谈到这点。

深度学习的兴起

2000 年代初期,深度学习引入让人们能容易地训练深层的网络,激发了神经网络领域的研究热度。GPU 以及大型数据集的出现是深度学习的关键推动因素,又上开源软件平台的加持(Theano、Torch、Caffe、TensorFlow、PyTorch),训练复杂的深度网络以及调用最新的模型都变得更容易。但是更多层的组合使得更复杂的非线性关系成为可能,并在感知任务中表现不俗。

我们总结以下几点:

为什么必须有一定的深度?

尽管在现代深度学习技术发展起来之前,人们就认为更深层的神经网络可能更强大,但深度学习的崛起离不开架构及训练步骤方面的重要突破。

对于我们想要建模的输入输出关系类型,为什么更深的网络具有更好的泛化性?这不仅仅是参数多少的问题,深度网络通常比具有相同参数量的浅层网络有更好的泛化能力。实际应用也证实了这一点。

最流行的计算机视觉卷积网络架构是ResNet 家族,其中最常见的代表ResNet-50有 50 层。其他有些在实践中非常有用的神经网络训练技巧本文没有全部囊括,比如图像变换、drop-out、batch normalization等。

深度学习之所以出色,是因为它利用了一种特定形式的组合性,在上一层中的特征能以多种不同的方式组合,在下一层中创造更多抽象的特征。

对于像感知这样的任务,这种组合性非常有效,并且有强有力的证据已经表明生物的感知系统中也使用了这种机制。

无监督预训练。当有标签的训练用例的数量与某任务所需的神经网络的复杂性相比较小时,一种合理的方法就是先使用一些其他信息源来创建特征检测器层,然后再使用数量有限的有标签的训练用例微调。

在迁移学习中,预训练的信息来源是另一个学习了大量标签的有监督学习任务。不使用任何标签来创建多层特征检测器也是可行的,可通过堆砌多层自编码器就可以实现。

首先,学习一层特征检测器,其活动向量能让我们重建输入。然后学习第二层特征检测器,活动向量能让我们重建第一层特征检测器的活动向量。

以这种方式学习了几个隐藏层后,再尝试用最后一个隐藏层中的活动向量预测标签,并通过所有层反向传播误差,以便微调最初的特征检测器,过程中不使用标签中的信息。预训练提取的各种结构很有可能与最终分类无关,但是在算力很便宜但有标签数据很昂贵的情况下,只要预训练将输入转换为能使分类更容易的表征,这是行得通的。

除了提高泛化能力外,无监督预训练初始化权重的方式还更有利于反向传播对深度神经网络进行微调。预训练对调优的影响曾经里程碑式地改变了人们对深度网络很难训练的固有认知,但现在有了ReLU(见下一小节)和残差连接的出现,这一点已经不那么主要了。

实践证明预训练对提高泛化能力是非常重要,通过预训练,人们可以利用大量无标签的数据来训练体量巨大的模型。例如在自然语言处理中,就有大型的语料库可以用来进行预训练。预训练和微调的基本原则已经成为深度学习领域的重要工具,比如在涉及到迁移学习,甚至现代元学习时,预训练和微调的思想往往不可或缺。

ReLU的成功之谜。深度网络的早期使用logistic sigmoid函数或双曲正切(hyperbolic tangent)来对单元层进行无监督的预训练。长期以来,神经科学中一直有关于线性整流函数(ReLU)的猜想,并且在RBM的某些变体以及卷积神经网络中已经有了应用。

人们惊喜地发现,使用线性整流函数(现在称为 ReLU,具有许多现代变体)能更容易地训练深度网络(通过反向传播和随机梯度下降),而无需逐层预训练。这一技术进步使得深度学习能够在目标检测方面胜过先前的方法。

语音识别和目标检测方面的突破。声学模型可以将声波转换为在不同音素片段上的概率分布。Robinson使用晶片机和 Morgan 等人使用DSP芯片做出的杰出贡献已经表明,如果有足够的处理能力,神经网络的表现可以与最先进的声学建模技术相媲美。

2009 年,两名研究生用Nvidia GPU进行的实验表明,经过预训练的深度神经网络在TIMIT数据集上的表现略优于SOTA。这一结果重燃前沿的语音研究组对神经网络的兴趣。

2010 年,结构基本相同的深度网络在大词汇语音识别方面击败了SOTA,而且是在不需要特定说话者训练数据的前提下。

2012 年,谷歌上线了生产版本的语音识别,显著改善了 Android 上的语音搜索功能。这是深度学习颠覆性力量的早期证明。

大概在同一时间,深度学习在2012年的ImageNet 竞赛中取得了重大胜利——在识别自然图像中一千种不同类别物体的任务上,将错误率降低了几乎一半。

这场胜利的关键在于,1)李飞飞和她团队的做出了突出贡献,收集了超过一百万张带标签的图像作为训练集,2)Alex Krizhevsky非常高效地同时使用多张GPU进行训练。现代的硬件(包括GPU)适合使用大量的mini-batch,以在参数被多次使用时分摊从内存中读取这个参数的成本。每个参数只读取一次的纯在线随机梯度下降能够更快收敛,而未来的硬件可能只在本地使用参数,而不需要从内存中读取。

深度卷积神经网络包含一些新颖的特性,例如使用 ReLU 来加快学习,使用 dropout来防止过拟合,但它本质上也还只是Yann LeCun和他的团队很多年前就在研究的那种前馈卷积神经网络。计算机视觉(computer vision)社区对这一突破的迅速反应值得赞赏。鉴于卷积神经网络无可争议的优越性,CV社区迅速放弃了以前的手工设计方法,转而使用深度学习。

深度学习的近期发展

本章我们将有选择性地介绍深度学习的最新进展,当然有许多重要的概念无法全部展开细讲,例如深度强化学习、图神经网络以及元学习等。

Soft attention和transformer架构。乘法交互(尤其是Soft attention的形式)的使用是深度学习领域的一个重大进展,特别是在序列处理方面。这是对神经网络常用工具的重要补充,因为它将神经网络从纯粹的向量操作变为可以动态选择对哪些输入进行处理的架构,并且可以将信息存储在可区分的关联存储器中。这种架构的一个关键特性是它可以有效地对不同类型的数据结构进行操作,比如集合和图。

某一层的模块可以使用Soft attention来动态选择利用前一层的哪些向量来计算这一层的输出。这可以确保输出不受输入的顺序影响(将输入视为一个集合),也可以让网络学习不同输入之间的关系(将输入视为图)。

Transformer架构已成为许多应用中的主导,它堆砌了许多层“自注意力”模块。一层中的每个模块用内积来计算其Q向量与该层中其他模块的K向量之间的匹配度,并归一化到总和为1,然后使用产生的标量数来形成由前一层中其他模块产生的K向量的凸组合。结果向量就成为下一计算阶段的模块的输入。

模块可以是多头的,因此每个模块可以计算几个不同的K,Q,和V向量,也就能允许每个模块有几个不同的输入,而每个输入都能以不同的方式从前一阶段的模块中被选出。在此操作中,模块的顺序和数量无关紧要,因此可以对向量集合进行操作,而不是像传统神经网络那样对单个向量操作。

例如,机器翻译系统在产生输出结果中的一个单词时,可以选择关注输入句子中对应的一组单词,而不受其在文本中的位置限制。虽然乘法门控(multiplicative gating)在坐标变换和RNN领域并不是什么新鲜想法,但它近期的一个变体让这种思想成为了主流。另一种理解的思路是,注意力机制使人们有可能通过适当挑选的模块动态地传递信息,并以潜在的新方式组合这些模块,以改善对训练集分布外数据的泛化性。 

深度学习之所以出色,因为它利用了一种特定形式的组合性,上一层中的特征能以多种不同的方式组合,在下一层中创造更多抽象的特征。

Transformer显著地提升了性能,并为自然语言处理领域带来了革命性进展,现在工业中也常规化地使用。这些系统都以自监督的方式进行预训练,任务是预测一段文本中缺失的词。

也许更令人惊讶的应该是,Transformer已成功地被用于求解积分方程和微分方程。最近一个非常有前景的趋势是在卷积网络之上使用Transformer,以在图像上实现目标检测和定位的最优性能。Transformer以可微分的方式执行后处理和基于对象的推理,使系统能够进行端到端的训练。

无监督和自监督学习。监督学习虽然在大范围内的多种任务上都取得了成功,但通常对人工标注数据有大量的需求。同样,当强化学习仅基于奖励时,它需要非常大量的交互。这些学习方法通常会产生只能用于特定任务的专门的系统,而出了那个它们接受过训练的狭窄领域后,这些系统往往是脆弱的。对于像低资源机器翻译,医学图像分析,自动驾驶,内容过滤这样的任务来说,减少学习任务所需的人工标注样本数量或与世界的交互以及提高在特定域之外的鲁棒性至关重要。

人类和动物似乎能够学习到大量的关于世界的背景知识,且这些知识是独立于特定任务存在的,主要方式是通过观察。这些知识构建了常识体系,能让人类只花几个小时的练习就学会应对复杂的任务,比如驾驶。

人工智能未来的一个关键问题是,仅仅凭借观察,人类是如何学到这么多的东西?

在有监督学习中,一条数据的标注如果属于N个类别之一,那么平均最多传达log2(N)位信息。在无模型强化学习中,一个奖励同样仅传达少量信息。相比之下,音频,图像和视频是高带宽模态,隐含大量有关世界结构的信息。这激发了一种预测或重建形式,叫做自监督学习,通过训练预测数据被遮挡或损坏的部分来“填补空白”。自监督学习在训练Transformer捕获单词或单词片段的上下文相关含义时非常有效,且对下游任务也非常有利。

对于文本,Transformer被用于从一组离散的可能性中预测缺失的单词。但是在视频等高维连续域中,特定视频片段的合理延续集庞大而复杂,因此对合理延续分布的表征本质上还是一个悬而未决的问题。

对比学习。对比学习的其中一种思路是通过隐变量模型为视频示例和可能的延续分配一个能量。给定输入为视频 X 和延续 Y,我们希望模型通过使用能量函数E(X, Y)来指示Y是否与X兼容,这个能量函数在X和Y兼容时取低值,否则取高值。E(X, Y) 可以由深度神经网络算出——对于给定的X,以对比的方式训练,对与X兼容的值Y赋予低能量(例如训练集中的(X,Y)对),而对与X不兼容的其他值赋予高能量。

对于给定的X,推理找到一个使 E(X, Y) 最小的Y,或从众多Y的可能取值中采样具有较低E(X, Y)的。用这种基于能量的方法来表示Y是X延续的可能性,使得对多样化、多模态的合理延续集进行建模成为可能。对比学习的关键难点是选择好的“负”样本——一个合适的,能将能量值推高的Y。当合适的负例集合不够大时,我们也可以直接考虑使用全部负例。这就是softmax函数的作用,此时对比学习就简化为对有限离散符号集的有监督或自监督学习。但是在实值高维空间中,向量Y‘与Y可以有很多种差别。想要改进模型,我们需要关注那些本可以具有高能量但当前能量却较低的Y。早期选择负样本基于蒙特卡罗方法,例如受限玻尔兹曼机的对比散度和噪声对比估计。

通过将神经网络应用于分布已知(例如高斯分布)的潜在样本,生成对抗网络(GAN)可以训网络来生成对比样本。GAN的生成器训练产生Y‘,对比学习模型判断其为低能量。生成器可以使用反向传播来获得E(Y’)相对于Y‘的梯度。生成器和对比学习模型同时训练,对比学习模型试图赋予训练集的真实样本低能量,而赋予生成的对比样本高能量。

GAN 优化起来有些棘手,但对抗性训练的思想已经被证实了是非常有效的。GAN在图像合成方面已经产出了许多亮眼的成果,还在内容生成,域适应,以及风格迁移方面开辟了许多新应用。

使用对比学习使表征一致。有了对比学习,无需重建或生成像素就能发掘好的特征向量。基本思路是学习一个前馈神经网络,当给定的输入为相同图像经过两种不同的裁剪,或同一物体的两个不同视角时,会输出非常相似的向量,但区分是裁剪不同还是视角不同。两个输出向量之间的平方距离可以被视为一个能量,遇到兼容对则下降,不兼容对则上升。

最近很多论文中都提出了使用卷积网络提取一致表征的方法,在视觉特征学习方面已经产生了一些很有前景的结果。一个正学习用例由同一图像的不同版本组成,通过裁剪、缩放、旋转、颜色偏移、模糊等方式生成。负学习用例是由不同图像生成的多种版本,可以通过hard negative mining的方式从数据集中挑选出来,也可以简单地用minibatch中的其他图像生成。较高层中的隐藏活动向量随后成为线性分类器的输入,以有监督的方式训练。这种连体网络的方法在标准图像识别基准测试中取得了出色的结果。最近提出的两种连体网络方法可以无需对比样本。第一种方法称为SwAV,通过量化一个网络的输出来训练另一个网络,第二种方法称为BYOL,通过让两个网络中一个的参数轨迹更加平滑来防止崩溃。

变分自编码器(Variational auto-encoders)。变分自编码器 (VAE)是最近流行起来的一种自监督学习方法,由将图像映射到latent code空间的编码器以及从latent code生成图像的解码器组成。通过往编码器的输出中添加高斯噪声,限制latent code的信息容量。这种思想类似于将噪音小球打包成具有最小半径的较大球体。信息容量受限于球体内部的噪声小球的数量。噪声小球相互排斥,因为一个较低的的重构误差要求不同样本的latent code之间的重叠要小。从数学上看,这个系统最小化了自由能,这个自由能是通过在噪声分布上对latent code进行边缘化得到的。然而,相对于参数,将该自由能最小化有些困难,且必须依赖统计物理学的变分逼近方法来最小化自由能的上限。

深度学习的未来

一般情况下,通过简单地扩展规模可大幅提高深度学习模型的性能。如果有更多的数据和更多的算力,深度模型通常就会表现得更好。

含1750 亿个参数的语言模型GPT-318(这个数量与人脑中的突触数量相比仍然很小)生成文本的效果明显优于只有15 亿个参数的GPT-2。随着聊天机器人Meena2和 BlenderBot规模的逐渐增大,它们的性能也在不断提升。深度学习行业花大力气在扩大规模上面,现有的系统也会随着规模的扩大而改善。但目前还是有一些根本缺陷,无法通过简单地扩大规模来克服。

将人类的学习能力与当前的人工智能进行比较,可以得到以下几个改进思路:

1、有监督学习需要大量的有标签数据,而无模型强化学习需要进行太多次试验。而人类似乎只需要很少的经验就能以很好的性能泛化到其他任务。

2、当前的系统在不同数据分布上的鲁棒性不如人类。人类可以通过很少的例子快速适应分布中的变化。

3、当前的深度学习模型在感知任务和所谓的系统1任务方面最为成功。将深度学习应用于需要经过深思熟虑才能确定步骤序列的系统2任务则仍处于起步阶段。

需要改进的方面。从早期开始,机器学习领域的理论家们就专注于iid假设——测试用例应该来自与训练用例相同的分布。不幸的是,这种假设与现实世界并不相符:只需想想各种实体能对世界引发的改变,或者在学习过程中个体逐渐提高的思维视野就知道了。一个实际的后果是即使用了最好的 AI系统,在从实验室迁移到生产环境时性能往往也会受到影响。

我们希望深度模型在面对与训练集不同分布的数据时能有更好的鲁棒性(也称为分布外泛化),这可以看作我们面对新任务时想要降低样本复杂性(实现良好泛化性所需的示例数量)这个大目标的一个方面(比如在迁移学习和终身机器学习中),或者只是改变分布或世界状态与奖励之间的关系。

当前的有监督学习系统比人类在学习过程中需要的训练用例更多(当必须学习应对一项新任务时)。而无模型强化学习的鲁棒性甚至更差,因为每个奖励试验提供的关于任务的信息比有监督学习中的每个有标签数据更少。

我们认识到,人类进行泛化的方式不同于普通的iid:人类正确解释现有概念的新组合。即使这些组合在我们的训练分布中出现的概率极低,只要符合我们已经学到的高级句法和语义模式,我们可正确理解。最近的几项研究帮助我们看清了不同的神经网络架构在这种系统化泛化能力方面的不同表现。想要让未来的机器学习系统有更好的泛化能力,以及更快地适应分布外数据,我们应该如何进行设计?

从同质层到代表实体的神经元组。神经科学领域的研究证据表明,距离相近的神经元组(所谓的hyper-column)连接紧密,这可能代表一种更高级别的向量单元,不仅能够发送标量,而且能够发送一组坐标值。这便是胶囊架构的核心思想,并且这种思想也体现在soft attention机制的应用中:集合中的每个元素都与一个向量相关联,从中可以读取一个K向量和一个V向量(也有可能是Q向量)。这些向量级单位可以理解为对某目标的检测及其属性(如胶囊结构中的姿势信息)。

计算机视觉领域的一些最新论文正在探索对卷积神经网络的扩展:顶层代表在输入图像中检测到的一组候选对象,并使用类似Transformer的架构对这些候选对象进行操作。定向对抗攻击依赖于人类和神经网络在识别物体方面的巨大不同,面对这种攻击时,通过物体组件之间的几何关系来进行判断的神经网络应该更不容易受影响。

适应的多个时间尺度。大多数神经网络只有两个时间尺度:参数要么在学习大量训练用例过程中缓慢适应,要么随着每个新输入而迅速变化。添加一层快速适应变化的“快速参数”能引入新的计算性能。特别的是,这样能够创建一个高容量的短期记忆,允许神经网络执行真正的递归,其中相同的神经元可以在递归调用中重复使用,因为它们在更高级别调用中的活动向量可以通过快速参数中的信息重建。在Learning to learn和元学习中也会出现多种时间尺度的适应。

更高层次的认知。当面临新的挑战,比如在一个交通规则与众不同的城市中开车,甚至想象如何在月球上驾驶交通工具,我们都可以利用已经掌握的知识体系和通用技能,并以新的方式动态地重新组合。有了这种系统性泛化能力,人类在不符合训练集分布的语境中也能很好地泛化。然后我们可以通过练习,微调和编译这些新技能并逐渐进步,直到这项任务已经熟练到可以不再需要有意识的关注。

我们如何才能赋予神经网络快速适应新环境的能力,让它能通过复用已有的知识,而同时避免干扰已学到的技能?Transformers 和 Recurrent Independent Mechanisms都曾朝这个方向做出过努力。

我们系统1的处理能力似乎让我们能在计划或推理时预测未来的好坏。这就引出了系统1网络如何指导更高(系统 2)级别搜索和规划的问题,也许和指导AlphaGo的蒙特卡洛树搜索的价值函数异曲同工。

机器学习研究依赖于归纳偏差或先验,以朝能兼容某些假设的方向上学习。系统2处理和认知神经科学理论提出了几种也许可用于设计新颖的深度学习系统的归纳偏差和架构。我们应该如何将这种归纳偏差融入到深度学习架构和训练框架的设计中去?

儿童也有发现因果关系的能力,这表明因果推理可能是人类大脑的基本属性。最近的研究发现表明,在干预变化下优化分布外泛化能力可以让神经网络发掘因果关系或因果变量。我们应该如何构建和训练神经网络,才能让它们捕捉到世界上这些潜在因果属性呢?

这些开放性问题所提议的思路,与20世纪的符号性人工智能研究有何关联?显然,这种符号AI研究旨在实现系统2的能力,例如推理、将知识分解、在一系列计算步骤中轻松重组、操控抽象变量、类型和实例。我们想让神经网络在处理实值向量的同时完成所有这些事情,以保留深度学习的优势,包括使用可微计算和基于梯度的自适应进行高效的大规模学习,将高级的概念落实到低级的感知和动作,处理不确定数据,以及使用分布式表示等等。

作者简介:Yoshua Bengio,Yann LeCun 和 Geoffrey Hinton三人对深度神经网络领域的发展做出了重要贡献,获得2018年图灵奖。

原文链接:

https://cacm.acm.org/magazines/2021/7/253464-deep-learning-for-ai/fulltext#FNA

本文由AI科技大本营翻译,转载请注明出处。

在评论区留言你对深度学习、AI 相关技术的看法

AI科技大本营将选出三名优质留言

携手【北京大学出版社】送出

《机器学习与深度学习算法基础》一本

截至7月16日14:00点

更多精彩推荐
GitHub 遭抵制!AI 代码生成神器竟成“抄袭工具”?

基于 Python 的 8 种常用抽样方法

太酷了,Python 制作足球可视化图表 | 代码干货

点分享点收藏点点赞点在看
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值