最近,深度学习三巨头联名发表了一篇文章。在文章中,他们回顾了近年来深度学习的基本概念和一些突破性成就,描述了深度学习的起源,还讨论了一些未来的挑战。
人工神经网络的研究源于以下观察:人类智能来自于高度并行的、相对简单的非线性神经元网络,这些神经元通过调整其连接的强度来学习知识。
这一观察引发出一个核心计算问题:这种一般类型的网络如何学习识别物体或理解语言等困难任务所需的复杂内部表示呢?深度学习试图通过深度表征向量和最优化损失函数得到的权重链接来回答这个问题。
非常令人惊讶的是,这种概念上简单的方法在使用大量计算资源和大型训练集时被实验证明是如此有效,而且似乎一个关键因素是深度,即浅层网络无法正常工作。
本文,我们将回顾近年来深度学习的基本概念和一些突破性成就,描述深度学习的起源,以及讨论一些未来的挑战。
这些挑战包括在很少或没有外部监督的情况下进行学习,处理来自与训练样本不同分布的测试样本,以及使用深度学习方法,用于那些人类通过一系列步骤有意识地解决的任务 —— 即 Kahneman 称之为 system 2 而非 system 1 的任务,例如对象识别或即时自然语言理解。system 1 的任务往往更轻松。
从手工设计的编码到分布式向量表示
人工智能有两种截然不同的范式。简而言之,逻辑启发范式将顺序推理视为智能的本质,旨在使用手工设计的推理规则在计算机中实现推理,这些规则对手工设计的将知识形式化的符号表达式进行操作。
受大脑启发的范式将从数据中学习表征视为智能的本质,旨在通过手动设计或演化规则来实现学习,以修改人工神经网络中的连接强度。
在逻辑启发范式中,符号没有有意义的内部结构:它的意义在于它与其他符号的关系,这些关系可以用一组符号表达式或关系图来表示。
相比之下,在类脑范式中,用于交流的外部符号被转换为神经活动的内部向量,这些向量具有丰富的相似结构。活动向量可用于通过为每个符号学习适当的活动向量并学习允许填充与符号串缺失元素对应的活动向量的非线性变换来对一组符号串中固有的结构进行建模。
Rumelhart 等人首先证明了这一点。最近一个非常令人印象深刻的系统是 BERT,它利用自注意力来动态连接单元组。
使用神经活动向量来表示概念和权重矩阵来捕捉概念之间的关系的主要优点是,这会产生自动的泛化能力。如果星期二和星期四由非常相似的向量表示,它们将对神经活动的其他向量产生非常相似的因果影响。
这有助于类比推理,并表明直接、直观的类比推理是我们的主要推理模式,而逻辑顺序推理 (logical sequential reasoning) 则是较晚的发展,我们将对此进行讨论。
深度学习的兴起
2000 年代初期,深度学习领域通过引入一些新技术使训练更深的网络变得容易,从而重新激发了神经网络的研究。
GPU 和大型数据集是深度学习的关键推动因素,并且通过开发具有自动区分功能的开源、灵活的软件平台(例如 Theano、Torch、Caffe、TensorFlow、和 PyTorch)大大增强了深度学习的发展,这使得训练复杂的深度网络和重用最新模型及其构建块变得容易。而且,更多层的组合允许更复杂的非线性,并在感知任务中取得了令人惊讶的好结果。
1)为什么是深度?:尽管更深层次的神经网络可能是更强大的直觉早于现代深度学习技术,这是架构和训练程序方面的一系列进步,但是,为什么更深的网络可以更好地概括我们对建模感兴趣的输入输出关系类型?
重要的是,要认识到这不仅仅是具有更多参数的问题,因为深度网络通常比具有相同参数数量的浅层网络具有更好的泛化能力。
最流行的计算机视觉卷积网络架构是 ResNet 系列,其中最常见的代表 ResNet-50 有 50 层。本文未提及但结果证明非常有用的其他成分包括图像变形、dropout 和批量归一化。
我们相信深度网络之所以出色,是因为它们利用了一种特定形式的组合性,其中一层中的特征以多种不同的方式组合,以在下一层创建更多抽象特征。对于像感知这样的任务,这种组合性非常有效,并且有强有力的证据表明这种组合性质被生物感知系统所利用。
2)无监督预训练:当标记训练示例的数量与执行任务所需的神经网络的复杂性相比较小时,开始使用一些其他信息源来创建特征检测器层然后微调这些特征检测器是有意义的。在迁移学习中,信息来源是另一个具有大量标签的监督学习任务。但也可以通过堆叠自动编码器来创建多层特征检测器,而无需使用任何标签。
首先,我们学习了一层特征检测器,其输出激活向量允许重建输入。然后学习第二层特征检测器,其激活向量允许重建第一层特征检测器的激活。
在以这种方式学习了几个隐藏层之后,尝试从最后一个隐藏层中的活动预测标签,并通过所有层反向传播错误,以便微调最初建立的特征检测器,而不使用标签中的宝贵信息。预训练可以很好地提取与最终分类无关的各种结构,但是,在计算便宜且标记数据昂贵的情况下,只要预训练将输入转换为表示使分类更容易。
除了提高泛化能力之外,无监督预训练还以一种很容易通过反向传播微调深度神经网络的方式初始化权重。
预训练对优化的影响在历史上对于克服深度网络难以训练的公认观点很重要,但现在人们使用修正线性单元(见下一节)和残差连接,它的相关性要小得多。然而, 预训练对泛化的影响已被证明是非常重要的。它可以通过利用大量未标记的数据来训练非常大的模型,例如在自然语言处理中,有大量的语料库可用。预训练和微调的一般原则已成为深度学习工具箱中的一个重要工具,例如,迁移学习和元学习。
3)ReLU 的成功之谜:深度网络的早期成功涉及使用 sigmoid 非线性函数或双曲正切激活函数对隐含层进行无监督预训练。
长期以来,神经科学线性 ReLU 函数是生物神经网络中的正确激活,并且 ReLU 已经在 RBM 的某些变体和卷积神经网络中使用,并取得了不错的效果。ReLU 使学习变得容易,这是一个出乎意料的惊喜,通过反向传播和随机梯度下降来训练深度网络,而无需逐层预训练。这是技术进步之一,使深度学习能够胜过先前的对象识别方法。
4)语音和物体识别方面的突破:声学模型将声波的表示转换为音素片段的概率分布。
Robinson 使用晶片机和 Morgan 等人使用 DSP 芯片的尝试已经表明,如果有足够的处理能力,神经网络可以与最先进的声学建模技术相媲美。2009 年,两名使用 Nvidia GPU 的研究生表明,预训练的深度神经网络在 TIMIT 数据集上的表现略优于 SOTA。
这一结果重新点燃了神经网络中几个主要语音小组的兴趣。2010 年,基本上相同的深度网络被证明在不需要依赖说话者的训练的情况下在大词汇语音识别方面击败了 SOTA。
到 2012 年,谷歌设计了一个生产版本,显着改善了 Android 上的语音搜索。这是深度学习颠覆性力量的早期证明。
大约在同一时间,深度学习在 2012 年 ImageNet 竞赛中取得了戏剧性的胜利,在识别自然图像中一千种不同类别的物体时,错误率几乎减半。这场胜利的关键是李飞飞的主要努力和她的合作者为训练集收集了超过一百万张带标签的图像,并且 Alex Krizhevsky 非常有效地使用了多个 GPU。
当前的硬件(包括 GPU)鼓励在多次使用该权重时分摊从内存中获取权重的成本。使用每个权重一次的纯在线随机梯度下降会更快收敛,并且未来的硬件可能只是就地使用权重而不是从内存中获取它们。
深度卷积神经网络包含一些新颖性,例如使用 ReLU 使学习更快,使用 dropout 防止过拟合,但它基本上只是 Yann LeCun 和他的那种前馈卷积神经网络。计算机视觉社区对这一突破的反应令人钦佩。
鉴于卷积神经网络优越性的无可争议的证据,社区迅速放弃了以前的手工设计方法,转而使用深度学习。
近期进展
在这里,我们有选择地讨论深度学习的一些最新进展。不过我们在此暂且忽略了许多重要的主题,例如深度强化学习、图神经网络和元学习。
1)软注意力机制和 transformer 架构:深度学习的一个重大发展,尤其是在顺序处理方面,是乘法交互的使用,特别是在软注意力的形式中。这是对神经网络工具箱的变革性补充,因为它将神经网络从纯粹的矢量转换机器转变为可以动态选择对哪些输入进行操作的架构,并且可以将信息存储在可区分的关联存储器中。这种架构的一个关键特性是它们可以有效地对包括集合和图在内的不同类型的数据结构进行操作。
隐藏层可以使用软注意力来动态选择它们将组合来自前一层的哪些向量来计算它们的输出。这可以使输出独立于输入的呈现顺序或使用不同输入之间的关系。
Transformer 架构已经成为许多应用中的主导架构,它堆叠了许多层 “self-attention” 模块。
层中的每个模块使用标量积来计算其查询向量与该层中其他模块的关键向量之间的匹配。匹配项被归一化为总和为 1,然后使用产生的标量系数来形成前一层中其他模块产生的值向量的凸组合。结果向量形成下一计算阶段的模块的输入。模块可以是多头的,以便每个模块计算几个不同的查询、键和值向量,从而使每个模块有可能有几个不同的输入,每个输入都以不同的方式从前一阶段的模块中选择。
在此操作中,模块的顺序和数量无关紧要,因此可以对向量集进行操作,而不是像传统神经网络中那样对单个向量进行操作。例如,语言翻译系统在输出句子中生成一个单词时,可以选择关注输入句子中对应的一组单词,而与其在文本中的位置无关。虽然乘法门控是诸如坐标变换和循环网络的强大形式之类的旧思想,但其最近的形式使其成为主流。
我们相信深度网络之所以出色,是因为它们利用了一种特定形式的组合性,其中一层中的特征以多种不同的方式组合,以在下一层创建更多抽象特征。
Transformer 带来了显着的性能改进,彻底改变了自然语言处理,现在它们在工业中得到了大量使用。这些系统都以自我监督的方式进行了预训练,以预测一段文本中的缺失词。
也许更令人惊讶的是,Transformer 已成功地用于符号求解积分方程和微分方程。最近一个非常有前景的趋势是在卷积网络上使用 Transformer,以最先进的性能在图像中进行对象检测和定位。Transformerransformer 以可微分的方式执行后处理和基于对象的推理,使系统能够接受端到端的训练。
2)无监督和自监督学习:监督学习虽然在各种任务中取得成功,但通常需要大量人工标记的数据。同样,当强化学习仅基于奖励时,它需要非常大量的交互。这些学习方法往往会产生特定于任务的专业系统,这些系统通常在他们接受过训练的狭窄领域之外是脆弱的。减少学习任务所需的人工标记样本数量或与世界的交互并提高域外鲁棒性对于低资源语言翻译、医学图像分析、自动驾驶和内容过滤。
人类和动物似乎能够以独立于任务的方式学习大量关于世界的背景知识,主要是通过观察。这些知识巩固了常识,让人类只需几个小时的练习就可以学习复杂的任务,例如驾驶。人工智能未来的一个关键问题是,人类如何仅从观察中学到这么多?
在监督学习中,N 个类别之一的标签平均最多传达 log2 (N) 位关于世界的信息。在无模型强化学习中,奖励同样仅传达少量信息。相比之下,音频、图像和视频是高带宽模式,隐含地传达了有关世界结构的大量信息。这激发了一种称为自监督学习的预测或重建形式,它通过预测数据的掩蔽或损坏部分来训练 “填补空白”。自监督学习在训练 Transformer 提取向量方面非常成功,这些向量捕获了单词或单词片段的上下文相关含义,并且这些向量非常适合下游任务。
对于文本,Transformer 被训练从一组离散的可能性中预测丢失的单词。但是在视频等高维连续域中,特定视频片段的合理延续集庞大而复杂,正确表示合理延续的分布本质上是一个未解决的问题。
3)对比学习:解决此问题的一种方法是通过潜在变量模型,该模型为视频示例和可能的延续分配能量。
给定输入视频 X 和合理的延续 Y,我们希望模型通过使用能量函数 E (X, Y) 来指示 Y 是否与 X 兼容,该函数在 X 和 Y 兼容时取低值,否则取高值。
E (X, Y) 可以由深度神经网络计算,对于给定的 X,以对比的方式训练,为与 X 兼容的值 Y 提供低能量(例如 (X, Y) 对),以及与 X 不兼容的 Y 的其他值的高能量。对于给定的 X,推理包括找到一个使 E (X, Y) 最小化的 Y 或者可能从 Y 中采样具有较低的 E (X, Y) 值。这种基于能量的方法来表示 Y 依赖于 X 的方式,这使得建模多样化、多模态的合理延续集成为可能。
对比学习的关键难点是选择好的 “负” 样本:合适的点 Y,其能量会被推高。当可能的反例集合不是太大时,我们可以将它们全部考虑。这就是 softmax 的作用,因此在这种情况下,对比学习简化为对有限离散符号集的标准监督或自监督学习。但是在实值高维空间中,Y 的预测与 Y 有很大不同,为了改进模型,我们需要关注那些本应具有高能量但当前能量较低的 Y。
早期选择负样本的方法基于蒙特卡罗方法,例如受限玻尔兹曼机的对比散度和噪声对比估计。
GAN 优化起来有些棘手,但事实证明,对抗性训练思想极其丰富,在图像合成方面产生了令人印象深刻的结果,并在内容创建和领域适应以及领域或风格转移方面开辟了许多新应用。
4)对比学习的表示一致性:对比学习提供了一种无需重建或生成像素即可发现好的特征向量的方法。
这个想法是学习一个前馈神经网络,当给定相同图像的两个不同裁剪或同一对象的两个不同视图时,该网络会产生非常相似的输出向量,但来自不同图像或不同对象视图的裁剪的输出向量不同。两个输出向量之间的平方距离可以被视为一种能量,小值说明兼容,大值说明不兼容。
最近的一系列使用卷积网络提取一致表示的论文在视觉特征学习中产生了有希望的结果。
正对由同一图像的不同版本组成,这些版本通过裁剪、缩放、旋转、颜色偏移、模糊等方式扭曲。负对是不同图像的类似失真版本,它们可以通过称为硬负挖掘的过程从数据集中巧妙地挑选出来,或者可能只是小批量中其他图像的所有失真版本。网络较高层之一的隐藏活动向量随后用作以监督方式训练的线性分类器的输入。这种连体网络方法在标准图像识别基准上取得了出色的结果。
最近,两种 Siamese 网络方法设法避免了对对比样本的需求。第一个称为 SwAV,量化一个网络的输出以训练另一个网络,第二个称为 BYOL,平滑两个网络之一的权重轨迹,这显然足以防止崩溃。
5)变分自动编码器:最近流行的一种自监督学习方法是变分自动编码器 (VAE)。它由将图像映射到潜在代码空间的编码器网络和从潜在代码生成图像的解码器网络组成。VAE 通过在将高斯噪声传递到解码器之前将高斯噪声添加到编码器的输出来限制潜在代码的信息容量。这类似于将小的嘈杂球体打包成具有最小半径的较大球体。
信息容量受限于包含球体内部有多少噪声球体。嘈杂的球体相互排斥,因为良好的重构误差需要对应于不同样本的代码之间有小的重叠。
在数学上,该系统最小化了通过在噪声分布上对潜在代码进行边缘化而获得的自由能。然而,相对于参数最小化该自由能是棘手的,并且必须依赖来自统计物理学的变分近似方法来最小化自由能的上限。
深度学习的未来
深度学习系统的性能通常可以通过简单的扩展来而得到显著提高。有了更多的数据和更多的计算,它们通常会更好地工作。具有 1750 亿个参数的语言模型 GPT-3(与人脑中的突触数量相比仍然很小)生成的文本,明显优于只有 15 亿个参数的 GPT-2。
随着聊天机器人 Meena 和 BlenderBot 变得越来越大,它们也在不断改进。
现在正在为扩大规模付出巨大的努力,可以大大改进现有系统,但当前深度学习存在一些根本性的缺陷,无法仅仅通过扩大规模来克服。
我们将人类学习能力与当前的人工智能进行比较,提出了几个改进方向:
监督学习需要太多标记数据,而无模型强化学习需要太多试验。人类似乎能够以少得多的经验很好地概括。 当前的系统对分布变化的鲁棒性不如人类,人类可以通过很少的例子快速适应这种变化。 当前的深度学习在感知任务和通常所谓的 system 1 任务方面最为成功。将深度学习用于需要经过深思熟虑步骤序列的 system 2 任务,是一个仍处于起步阶段的令人兴奋的领域。
1)需要改进的点:从早期开始,机器学习的理论家就关注 IID 假设,即测试用例应该来自与训练示例相同的分布。
不幸的是,这在现实世界中并不是一个现实的假设:只需考虑由于各种代理改变世界的行为引起的非平稳性,或者学习代理的逐渐扩大的思维视野,总是有更多的东西需要学习和发现。实际上,当今最好的 AI 系统在从实验室到现场时的性能往往会受到影响。
我们希望在面对分布变化(称为分布外泛化)时实现更大的鲁棒性,这是在面对新任务时降低样本复杂性(良好泛化所需的示例数量)的更普遍目标的一个特例 —— 如在迁移学习和终身学习中 —— 或者只是改变分布或世界状态与奖励之间的关系。当前的监督学习系统需要比人类更多的例子(当必须学习一项新任务时),而无模型强化学习的情况更糟,因为每个奖励试验提供的关于任务的信息比每个标记的例子少。
人类可以以一种不同于普通 IID 泛化的方式进行泛化:我们可以正确解释现有概念的新组合,即使这些组合在我们的训练分布下极不可能,只要它们尊重我们已经学到的高级句法和语义模式。最近的研究帮助我们阐明了不同的神经网络架构在这种系统化泛化能力方面的表现。如何设计具有这些能力的未来机器学习系统,以更好地泛化或更快地适应样本外分布?
2)从同质层到代表实体的神经元组:来自神经科学的证据表明,相邻的神经元组(形成所谓的超列)紧密相连,可能代表一种更高级别的向量值单元,不仅能够发送标量,而且能够发送一组协调值。这个想法是胶囊架构的核心,也是软注意力机制的使用所固有的,其中集合中的每个元素都与一个向量相关联,从中可以读取一个键向量和一个值向量(有时也是查询向量)。考虑这些向量级单元的一种方法是表示对象的检测及其属性(如在胶囊中的姿势信息)。
计算机视觉领域的最新论文正在探索卷积神经网络的扩展,其中层次结构的顶层代表在输入图像中检测到的一组候选对象,并且对这些候选对象的操作是使用类似转换器的架构来执行的。为对象及其部分分配内在参考框架并通过使用部分之间的几何关系来识别对象的神经网络应该更不易受到定向对抗性攻击的影响,后者依赖于人们使用的信息与神经网络使用的信息之间的巨大差异。网络来识别物体。
3)多时间尺度:大多数神经网络只有两个时间尺度:权重在许多示例中适应缓慢,活动适应随着每个新输入而迅速变化。添加快速适应和快速衰减的 “快速权重” 的叠加会引入有趣的新计算能力。特别是,它创建了一个高容量的短期记忆,允许神经网络执行真正的递归,其中相同的神经元可以在递归调用中重复使用,因为它们在更高级别调用中的活动向量可以在以后重建 使用快速权重中的信息。在学习学习或元学习中也会出现多种适应时间尺度。
4)更高层次的认知:在考虑新的挑战时,例如在交通规则异常的城市中驾驶,甚至想象在月球上驾驶车辆时,我们可以利用我们已经掌握的知识和通用技能,并以新的方式动态地重新组合它们。这种成体系的形式,允许人类在未知环境中进行相当好的泛化。通过练习、微调和编译这些新技能进一步改进,也可以不再需要有意识的关注了。
我们如何通过重用已知的知识来使神经网络能够快速适应新环境,从而避免干扰已知技能?在这个方向上的初步探索包括 Transformers 和 Recurrent Independent Mechanisms。
似乎人类的(system 1)处理能力允许我们在计划或推理时猜测未来的潜在益处或害处。这提出了 system 1 网络如何指导更高(system 2)级别的搜索和规划的问题,也许和 AlphaGo 的蒙特卡洛树搜索的价值函数如出一辙。
机器学习研究依赖于归纳偏差或先验,以鼓励在与某些世界假设兼容的方向上进行学习。system 2 处理的性质和认知神经科学理论表明了几种这样的归纳偏差和架构,它们可用于设计新颖的深度学习系统。我们如何设计包含这种归纳偏差的深度学习架构和训练框架?
人类幼儿执行因果发现的能力表明,这可能是人类大脑的一个基本属性,最近的工作表明,在干预变化下优化分布外泛化可用于训练神经网络以发现因果依赖性或因果变量 。我们应该如何构建和训练神经网络,以便它们能够捕捉到世界的这些潜在因果属性?
这些开放性问题所建议的方向与 20 世纪的符号人工智能研究有何关联?显然,符号 AI 方法旨在实现 system 2 的能力,例如推理,能够将知识分解为可以在一系列计算步骤中轻松重新组合的部分,以及能够操作抽象变量、类型和实例。
我们希望设计出这样一种神经网络:它保留了深度学习的优势,可以在处理实值向量的同时,实现使用可微计算和基于梯度的、自适应的高效大规模学习,高级 / 低级感知、处理不确定数据和使用分布式表示。
Reference: 1、https://cacm.acm.org/magazines/2021/7/253464-deep-learning-for-ai/fulltext