简评:AI、机器学习、深度学习是近年大热的领域,但我们要清楚,深度学习的局限性,即虽然可以使用连续几何变换把 X 映射到Y,但缺乏推理能力和抽象能力。训练集样本不足,有些数据无法用连续的几何变换表示。虽然现在机器学习能够改变很多行业的游戏规则,但距离人性化 AI还有很远的路要走。
深度学习:几何视图
关于深度学习最令人惊讶的它把复杂简单化。十年前,没人能想到,通过梯度下降的训练简单的参数模型,就能实现机器感知方面的如此惊人的结果。现在,事实证明,你只需要考虑足够多的例子以及所需要的大量参数模型就够了。费曼曾经这么描述过宇宙,「It’snot complicated, it’s just a lot of it」。
在深度学习中,所有东西都是向量,即一切都是几何空间的一个点。模型输入(它可以是文本,图像等)和目标首先被「矢量化」,即变成一些初始输入向量空间和目标向量空间。深度学习模型中的每层都对通过它的数据进行一个简单的几何变换。他们集合在一起,模型的层链形成一个非常复杂的几何变换,然后分解成一系列简单的几何变换。这种复杂的转换尝试将输入空间映射到目标空间,一次一个点。该变换根据不同层的权重参数而改变,这些层根据模型在当前执行的程度上进行迭代更新。这种几何变换的一个关键特征是它必须是可微分的,这是为了使我们能够通过梯度下降来研究其参数的必要条件。直观地说,这意味着从输入到输出的几何变形必须是平滑和连续的。
整个过程都是把复杂的几何变换到输入数据。
这就是深度学习的魔力:将意义转化为向量,转化为几何空间,然后逐步学习复杂的几何变换,将一个空间映射到另一个空间。
深度学习的局限性
通过简单的策略,我们就能拥有几乎无限的实现应用的可能性。然而,目前即使有大量的人为注释的数据,也有很多的深度学习无法完成。比方说,你可以整理一个数据集,规模可能是数百、数千、数十万、甚至数百万的语言来描述软件产品的功能。即使有这些数据,您也无法训练一个深度的学习模型来简单地阅读产品描述并生成相应的代码库。这只是其中的一个例子。一般来说,任何需要推理的程序设计,或应用科学的方法(长期规划和类似算法的数据操作),无论您投入多少数据,深度学习模型都是无法完成的。即使学习具有深层神经网络的排序算法也是难以实现的。
这是因为一个深度学习模型是「简单的」 连续的几何变换链,将一个向量空间映射到另一个空间。它能做的就是标记数据 X,对应关联到到数据 Y 上,假设存在从 X到 Y 的可学习的连续变换,并且存在密集的可用的 XY 训练集,深度学习模型才能够成立。但大多数程序不能被称为深度学习模型 –对于大多数任务,要么没有相应的实际多的深层神经网络来解决任务,要么即使存在神经网络,它可能无法自我学习,即对应的几何变换可能太复杂,或者没有可以学习的基础数据集作参考。
通过堆叠更多层和使用更多的训练数据来扩展当前的深度学习技术,只能表面缓解其中的一些问题。这些所代表的范围非常有限,这不会解决深度学习模型的更根本的问题,而且,大多数可能采取深度学习的程序不能用多样的数据连续几何变形来表示。
拟人机器学习模型的风险
当代 AI的一个非常突出的风险是「误解了深度学习,并高估了其能力」。人类思想的一个根本特征是依据人类物种的「思想理论和体系」,我们倾向把人类的意图、信仰、了解加于身边的事务上。就像在岩石上画一个笑脸它好就像在笑,这些都是我们的想象。在深度学习方面,例如,当我们能够有些成功地培养一个模型,它看到图片就生成题目,我们常误以为该模型「理解」了图片的内容从而生成了标题。然后,当训练数据中存在的图像类型轻微偏离导致模型开始产生完全荒谬的字幕时,我们会非常惊讶。
(当我们以为机器学习产生了「理解能力」后,若机器学习输出的结果发生偏离,我们会非常吃惊,图字:这个男孩拿着一个棒球棒)
经常有些「对抗性案例」能够证明其辨识度的脆弱性,输入案例会特地放一些欺骗模型的样本,作为深度学习的输入资料。通过梯度上升,可以稍微修改图像,以便最大化给定类的类预测。通过拍摄一只熊猫,并添加一个「长臂猿」梯度,我们可以看到,一个神经网络将熊猫分类为长臂猿。这证明了这些模型的脆弱性,以及它们运行的输入到输出映射与我们自己的人类感知之间的深刻差异。
(把长臂猿放入训练集,某个神经网络会判定照片上的熊猫是长臂猿)
我们人类自己对图像,声音和语言的理解,建立在我们作为人类的感受体验中,地球上的生物也是如此感受和理解。机器学习模型无法获得这种感受和理解,因此不能以人类的感觉去要求机器学习。通过注释大量的训练示例来填充我们的模型,我们让它们学习一个几何变换,将数据映射到这个特定的一组示例上,但是这个映射只是我们思想中原始模型的简单草图,机器学习像个执行者,执行人类的思路,但没有感情和理解,它们的行为准则都是人类赋予。
作为一名机器学习从业者,始终要注意这一点,永远不要陷入陷阱,认为神经网络了解他们所执行的任务 。
局部泛化与极端泛化
深度学习模型的输入到输出的直接几何变形和人类思考和学习的方式,有本质上的区别。人类从自我认知和对外界的经验认识中不断学习,这和机器学习的学习路径不同,除了不同的学习过程之外,底层表征的性质存在着根本性的差异。
人类对自身目前的情况,对自己和其他人保持复杂的、抽象的思考和行为模式,并可以使用这些模型来预测不同的未来可能性,并执行长期规划。人类能够将已知概念融合在一起,就算他们以前从未经历过的事情,比如见到了一只穿牛仔裤的马,中了彩票,他们会做什么。这种处理假设的能力,将我们的心理模式变得更复杂,可以说是人类认知的定义特征。我称之为「极端泛化」:适应新奇的能力,在情境之前从未经历过,使用非常少的数据甚至没有新的数据就能够适应。
这与深度神经网络形成了鲜明的对比,我称其为「局部泛化」:如果新的输入与之前的训练集有偏差,哪怕是一点点的差异化,都会加快深度神经网络的输入与输出的错误率从而停下一切。例如,用深度学习来完成火箭登月的问题,我们需要适当的发射参数。如果使用深度神经网络进行此项任务,无论是使用监督学习还是强化学习进行培训,都需要为数千甚至数百万次的启动试验提供补充,即需要密集的抽样的输入空间,以便完成从输入空间到输出空间的可靠映射。相比之下,人类可以利用他们的抽象力来提出物理模型「火箭科学」,并在一个或几个实验中得出一个精确的解决方案,将火箭送上月球。
再举个例子,如果你开发了一个能控制人身体的神经网络,并希望它能够在不被任何车碰撞的情况下游览整个城市,那么神经网路控制的人在各种情况下都要死掉数千次,直到可以判断出车辆的情况以及各种危险,并制定执行回避行为。而再去一个新的城市,神经网络必须重新学习大部分的知识。反过来,人类能够学习安全的行为,而没有用死亡试错的过程,这要归功于人类假设情境的抽象建模。
(同样的经验,左侧是机器学习的局部泛化,缺乏抽象能力。右侧是人类的极端泛华,可以通过假设而抽象建模,不必真的遍历)
简而言之,尽管我们在机器感知上取得了进步,但我们仍然远离感性的人文AI:我们的模型只能执行局部泛化,适应与过去数据非常接近的新情况,而人类认知能够极端泛化,迅速适应大胆新奇的情况,或为长远未来的情况进行规划。
结论
这是你应该记住的:到目前为止,深入学习的唯一真正的成功是使用连续几何变换将空间 X 映射到空间 Y的能力,但还要给出了大量的人为注释的数据。做好这一切,基本上能改变每一个行业的游戏规则,但是距离更人性化的 AI 还有很长一段路要走。
为了让 AI 解决这些限制,并开始与人类大脑竞争,我们需要跳出「简单的输入到输出映射」,关注推理和抽象。