该文章翻译来源为: 深度学习的局限性

    这篇文章为系列文章 深度学习的局限性及未来的第一篇。


    深度学习:几何观

    深度学习最令人惊讶的是它是多么简单。十年前,没有人预料到我们会在机器感知问题上取得如此惊人的结果,使用简单的参数模型训练梯度下降。现在,你只需要足够大的参数模型,在足够多的例子上训练梯度下降。正如费曼曾经谈到宇宙时所说,“它并不复杂,只是很多”。

    在深度学习中,一切都是一个向量,也就是说,一切都是几何空间中的一个点。模型输入(可以是文本、图像等)和目标首先被“矢量化”,即转化为一些初始输入向量空间和目标向量空间。深度学习模型中的每一层都对经过它的数据进行一个简单的几何变换。模型的层次链一起形成一个非常复杂的几何变换,分解成一系列简单的几何变换。这个复杂的转换试图将输入空间映射到目标空间,一次映射一个点。此转换由层的权重进行参数化,层的权重将根据模型当前的性能进行迭代更新。这种几何变换的一个关键特征是它必须是可微的,这是我们通过梯度下降来学习它的参数所必需的。直观地说,这意味着从输入到输出的几何变形必须是平滑和连续的,这是一个重要的约束。

    将这种复杂的几何变换应用于输入数据的整个过程,可以通过想象一个人试图解开一个纸球的褶皱,在三维空间中可视化:褶皱的纸球是模型开始时输入数据的流形。人在纸球上的每一个动作都类似于一层操作的简单几何变换。完整的无褶裥手势序列是整个模型的复杂变换。深度学习模型是一种数学机器,用于解开复杂的高维数据流形。

    这就是深度学习的魔力:将意义转化为向量,转化为几何空间,然后逐步学习将一个空间映射到另一个空间的复杂几何变换。您所需要的只是具有足够高维度的空间,以便捕获原始数据中发现的关系的全部范围。

    深度学习的局限性
    **
    使用这种简单的策略可以实现的应用程序空间几乎是无限的。然而,更多的应用对于当前的深度学习技术来说是完全遥不可及的,即使有大量的人类注释数据。比如说,你可以组装一个由产品经理编写的数十万甚至数百万英语描述的软件产品特性的数据集,以及由工程师团队开发的满足这些需求的相应源代码。即使有了这些数据,您也无法训练一个深入的学习模型来简单地阅读产品描述并生成适当的代码库。这只是众多例子中的一个。一般来说,任何需要像编程这样的推理,或应用科学方法的长期规划,以及像数据操作那样的算法,对于深度学习模型来说都是遥不可及的,不管你向它们扔了多少数据。即使是用深层神经网络学习排序算法也非常困难。

    这是因为深度学习模型“只是”一系列简单、连续的几何变换,将一个向量空间映射到另一个向量空间。它所能做的就是将一个数据流形X映射到另一个流形Y,假设存在从X到Y的可学习连续变换,并且X:Y的密集采样可用作训练数据。因此,即使一个深度学习模型可以解释为一种程序,相反,大多数程序不能表示为大多数任务的深度学习模型,要么没有相应的实际大小的深度神经网络来解决该任务,要么即使有一个,它也可能是不可学习的,i、 e.相应的几何变换可能过于复杂,或者可能没有适当的数据可供学习。

    通过叠加更多的层和使用更多的训练数据来扩展当前的深度学习技术,只能表面上缓解其中的一些问题。它无法解决更根本的问题,即深度学习模型在其所能表示的方面非常有限,并且人们可能希望学习的大多数程序不能表示为数据流形的连续几何变形。


    拟人化机器学习模型的风险
    ** 当代人工智能的一个非常现实的风险是误解了深度学习模型的作用,高估了它们的能力。人类思维的一个基本特征是我们的“心理理论”,即我们倾向于将意图、信念和知识投射到我们周围的事物上。在石头上画一张笑脸,突然让我们觉得“快乐”。应用于深度学习,这意味着当我们能够稍微成功地训练一个模型来生成描述图片的标题时,例如,我们被引导相信模型“理解”了图片的内容以及它生成的标题。然后,当任何与训练数据中的图像稍有不同的地方导致模型开始生成完全荒谬的标题时,我们会感到非常惊讶。

    caption_fail.png

    特别是,这是突出的“对抗性例子”,这是一个深入学习网络的输入样本,旨在诱使模型错误分类。您已经知道,在输入空间中进行梯度上升可以生成最大限度地激活某些convnet过滤器的输入,例如,这是我们在第5章中介绍的过滤器可视化技术(注意:使用Python进行深入学习)以及第8章中的深梦算法的基础。类似地,通过梯度上升,人们可以稍微修改图像,以便最大化给定类的类预测。通过给一只熊猫拍照,再加上一个“长臂猿”梯度,我们就可以得到一个神经网络,将这只熊猫归类为长臂猿。这既证明了这些模型的脆弱性,也证明了它们运行的输入-输出映射与我们自己的人类感知之间的巨大差异。

    adversarial_example.png

    简而言之,深度学习模型对它们的输入没有任何理解,至少在任何人类意义上都没有。我们自己对图像、声音和语言的理解,是建立在我们作为化身的地球生物的感觉运动经验的基础上的。机器学习模型无法获得这些经验,因此无法以任何与人相关的方式“理解”它们的输入。通过注释大量的训练示例以输入到我们的模型中,我们让他们学习一种几何变换,该变换将数据映射到特定示例集上的人类概念,但这种映射只是我们头脑中原始模型的简单草图,它是从我们作为具体代理的经验发展而来的,就像一面镜子。

    ml_model.png
    作为一个机器学习的实践者,永远要记住这一点,不要陷入相信神经网络理解他们所不执行的任务的陷阱,至少在某种程度上不会对我们有意义。他们接受的训练任务与我们想教他们的任务不同,范围要窄得多:只是将训练投入逐点映射到训练目标上。向他们展示任何偏离他们训练数据的东西,他们就会以最荒谬的方式崩溃。

    局部泛化与极端泛化
    ** 从输入到输出的简单几何变形(deep learning models所做的)与人类思考和学习的方式之间似乎有着根本的区别。这不仅仅是事实,人类从具体的经验中学习,而不是以明确的训练实例呈现。除了不同的学习过程外,潜在表征的本质也有根本的不同。

    人类的能力远不止将即时刺激映射到即时反应上,比如一张深网,或者一只昆虫,都可以做到。他们对自己、对自己、对他人的现状保持复杂、抽象的模型,并可以利用这些模型预测不同的可能未来,进行长期规划。他们能够将已知的概念融合在一起,来表现他们从未经历过的事情,比如想象一匹马穿着牛仔裤,或者想象如果他们中了彩票他们会做什么。这种处理假设的能力,扩展我们的心理模型空间,远远超出我们可以直接体验的范围,总之,执行抽象和推理,可以说是人类认知的定义特征。我称之为“极端概括”:一种适应新奇事物的能力,以前从未经历过,使用很少的数据,甚至根本没有新的数据。

    这与deep nets所做的工作形成了鲜明的对比,我称之为“局部泛化”:如果新的输入与他们在训练时看到的稍有不同,那么deep nets所执行的从输入到输出的映射很快就会停止。例如,考虑一下学习合适的发射参数以使火箭降落在月球上的问题。如果你要使用一个深度网络来完成这项任务,无论是使用监督学习还是强化学习进行培训,你都需要为它提供数千甚至数百万次的发射试验,也就是说,你需要将它暴露在输入空间的密集采样中,以便学习从输入空间到输出空间的可靠映射。相比之下,人类可以利用他们的抽象能力来建立火箭科学的物理模型,并得出一个精确的解决方案,只需一次或几次试验就能将火箭送上月球。同样,如果你开发了一种控制人体的深网,并希望它学会在不被汽车撞到的情况下安全地在城市中航行,那么在各种情况下,这张网将不得不死亡数千次,直到它能够推断出汽车和危险,并发展出适当的回避行为。落入一个新的城市,网络将不得不重新学习它所知道的大部分。另一方面,人类能够在不必再次死亡的情况下学习安全的行为,这要归功于他们对假设情况进行抽象建模的能力。

    local_vs_extreme_generalization.png

    总之,尽管我们在机器感知方面取得了进展,但我们离人类的人工智能还很远:我们的模型只能进行局部泛化,适应必须与过去数据保持非常接近的新情况,而人类的认知能够进行极端泛化,快速适应极端新奇的情况,或者为未来的长期形势做计划。

    总而言之
    **
    以下是你应该记住的:到目前为止,深度学习的唯一真正成功之处是,在给定大量人类注释数据的情况下,能够使用连续的几何变换将空间X映射到空间Y。做好这件事,基本上是每个行业的游戏规则改变者,但离人类的人工智能还有很长的路要走。

    为了消除这些限制并开始与人脑竞争,我们需要从简单的输入到输出映射,转向推理和抽象。计算机程序是对各种情况和概念进行抽象建模的合适基础。我们以前说过(注意:在Python的深度学习中),机器学习模型可以定义为“可学习的程序”;目前,我们只能学习属于所有可能程序中非常狭窄和特定子集的程序。但如果我们能以模块化和可重用的方式学习任何程序呢?让我们在下一篇文章中看看前面的路是什么样子的。
    **以下是你应该记住的:到目前为止,深度学习的唯一真正成功之处是,在给定大量人类注释数据的情况下,能够使用连续的几何变换将空间X映射到空间Y。做好这件事,基本上是每个行业的游戏规则改变者,但离人类的人工智能还有很长的路要走。

    为了消除这些限制并开始与人脑竞争,我们需要从简单的输入到输出映射,转向推理和抽象。计算机程序是对各种情况和概念进行抽象建模的合适基础。我们以前说过(注意:在Python的深度学习中),机器学习模型可以定义为“可学习的程序”;目前,我们只能学习属于所有可能程序中非常狭窄和特定子集的程序。但如果我们能以模块化和可重用的方式学习任何程序呢?让我们在下一篇文章中看看前面的路是什么样子的。