本文最初发表于个人网站 Artagnon,经原作者 Ramkumar Ramachandra 授权,InfoQ 中文站翻译并分享。
人工智能无疑是近几年最热的话题之一,有时候甚至让人难以分清媒体报道中的超级人工智能到底是可能会真实发生的还是只是单纯的杞人忧天。人工智能的狂热背后是否是泡沫将碎?本文作者就给人工智能泼了一盆冷水,告诉人们机器能做什么,不能做什么,揭开人工智能的真实现状。
本文探讨了统计方法的局限性,其中一个子类被称为“机器学习”,它涉及到了行业的几个方面,包括就业前景、各种行业实践,以及隐私。(本文是作为一篇面向广大读者的文章来写的,仅假设读者对软件和统计数据有一定的了解)。
在人类变得近乎被抛弃之前,我们是从一个看似强硬的立场出发,遵循一条有缺陷的推理路线,这一事件通常被称为“奇点”(Singularity)。最后,我们退后一步,看看我们是在哪里跌倒的。
我们从下面这个起点出发:使用任何复杂程度的统计方法的任何组合,都不可能形成类似于人类智慧的任何“理解”。我们不是试图解决关于智力的本质的问题,也不是陷入关于“智力是否可以计算”的哲学深渊,而是从一个温和的目标开始,即了解什么是统计方法。
作为出发点,人们可能会争辩说,世界是由一连串的“事实”构成的,而这些“事实”需要在多次正确陈述之后才能“记忆”。另一种变体是“猴脑”,你通过让猴子去完成某项任务来训练它,每次它做对了就得到奖励,做错了就受到惩罚。这就是“强化学习”的基本思路,也就是让机器玩“游戏”的那种方式。将任务得到奖励或惩罚的周期成倍地加快,你就有了一只“聪明的猴子”。
虽然“聪明的猴子”可能会因为非理性的原因在糟糕的日子里犯愚蠢的错误,但对于一个统计模型来说,“糟糕的日子”指的是当它遇到不知道如何拟合的数据时发生的事件。这只猴子的情绪引擎可以用机器所受到的惩罚进行加权来模拟,加权是基于错误的根本程度,和它所接受的训练时间。正如有人可能会争辩说,像我们所描述的“训练”这样一台机器的过程属于“监督式学习”的范畴,就像人类通过作业或考试中来学习的方式。
假设一台机器能够成功地记忆数万亿个“事实”,并研究这些事实是如何被表示出来的。在当今大多数常用的应用程序中,它们是以浮点数矩阵的形式编码的,由构建模型的人们选择一些加权算术操作将它们连接起来。模型被馈送一个浮点数矩阵,并输出一个浮点数矩阵。我们可能会争辩说,无法解释这些单个数字,正如无法解释大脑中单个神经元的电压一样,但实际上这似乎并不是一个问题。这些所说的“事实”,现在已被淹没在一大堆数字(数据汤)中,可以被泛化为更广泛的一类“可以从数据中推断的事物”。
每次尝试处理一个新的情况时,模型都会简单地对数字汤进行算术运算(其中一大类只是矩阵乘法),数字汤中的数字会随着我们给它的每一个“反馈”而自我调整。这就是“神经网络”背后的基本思想。虽然我们很容易在细节中迷失方向,但请注意,我们仍然是在进行统计分析。额外的“花架子”并没有改变这种方法的本质:机器就是“通过示例学习”,并试图将其“泛化”。
通过示例来学习,对于人类来说,从一开始就是一个非常有效的学习方法。大多数程序员都会证明这样一个事实:他们一开始是通过复制示例代码,对其进行修改,然后用一个程序(这些程序被称为“编译器”)来检查它们。
有些人可能会争辩说,这种方法不适合人类,因为人类没有计算能力,他们继续通过例子学习,而且随着经验的增加,他们会读到一些规范,从而“作弊”。这样的话,传统的程序员(也就是那些不从事建立统计模型的程序员)将来会被机器所取代吗?
要看清这一论点的可行性,关键是要考虑两点:
任务的结构复杂性。
可用于具体强化模式和消除反模式的示例数量。
现在已经有一些很好的工具可以帮助使用“简单的”编程语言(或者称为 IDE),这已经不是什么秘密了,而还原论者会将其表述为“机器擅长于愚蠢的任务”。利用简单的频率分析,IDE 可以对自动完成建议和纠正的智能排序。到目前为止,还没有一种 IDE 能够借助庞大的开源库来提供帮助,但如果认为这在将来是可能的,那就不需要太多的想象力了。
事实上,我们应该考虑编译器是否可以开始构建错误消息库,并在后台运行,以便根据遇到类似错误的其他人如何修复它来提出更智能的修复方法。一个有哲学头脑的读者会感兴趣的是,程序员的“意图”是否能够被剖析,而如果通过使用某种抽象的“函数”来标记公开可用代码的各个部分,那么机器就可以通过一些提示来编写出完整的程序。假设有这种可能性,那么传统的程序员就能简单地迁移到一种新的语言或技术而保持其相关性吗?而且很少有这样的语言或技术的例子。
这就提出了一个两难的问题:我们是否在玩某种原始游戏,猎物必须不断地想出新的策略来跑过捕食者?有些人会争辩说,通过改进统计方法,我们可以有效地模拟泛化过程,足以在“搜索空间”上完全击败猎物的创造力。如果这是每一种人类特有的天性呢?据预测,2040 年将会有一次事件,俗称“奇点”,届时人类将变得几乎盲目。为什么这种说法如此荒唐可笑?
为了更好地了解统计模型的成功之处,让我们来列举一些在该领域取得的最新成就。
击败人类顶级棋手的围棋程序 AlphaGo
这是个很好定义的问题,而且也没有什么入门规则。人类如何成为围棋高手?就像国际象棋一样,规则对棋手的学习也没有多大的作用,大多数训练都是对以前的棋局进行分析。由于有庞大的专家对局数据库,人类棋手通常会尝试遵循半系统化的方法。可以说机器效率低下,因为它没有遵循系统化的方法,但原始的计算能力让这个障碍显得无足轻重。就好像说机器不知道十进制系统,也不知道乘法表,只是简单地翻转 0 和 1 来进行算术运算。
毫不奇怪,在这两种情况下,人类都处于劣势,尽管 AlphaGo 存在某些“效率低下”,但它本质上还是做了人类棋手所做的事情:分析大量的棋局。
语言引擎 GPT-3
人类是如何掌握一门自然语言的?
他们是半系统化地进行的,从简单的单词与现实世界中的物体之间的关联开始,然后再到描述某种事物的短语,在过程中学习一些语法结构规则,并在过程中吸收文化;最后是通过阅读大量优秀的文学作品。当然,语法规则在整个学习过程中没有多大作用,所以 GPT-3 能够根据人类提供的提示来做出语法正确的回答也就不足为奇了。
而文学作品则是讨论现实世界中的事物,要想让它有意义,与现实世界的充分互动是其前提。它不是一个有边界的游戏,所有必要的信息都包含在地图或棋盘上。因此,GPT-3 无法“知道”掉落一块金属板是否会导致金属板熔化,这一点也不奇怪。它无法推断现实世界物体之间的关系,也无法区分事实和虚构的人类经验。
要创作好的文学作品,需要的远不止这些。这一里程碑式的成就,尽管可以接触到 TB 级的文本,以及难以想象的计算能力,但除了语法、句子结构和上下文之外,却不能推断出更多的东西。
Google 翻译背后的翻译引擎
对底层技术一窍不通的人,如果他只是刚刚开始使用产品,他就会感到很疑惑,为什么这会被视为一项成就。事实上,我们不可能使用纯统计学的方法,甚至连半个像样的翻译引擎也没有。
翻译引擎已经存在了很长时间,其最新的迭代可能比之前的翻译引擎有很大的改进,但从绝对的规模来看,依靠纯统计学的方法来学习自然语言似乎并不合适。
医学诊断
在这个领域,绝对需要以高度系统性的方式组织关于每个病人的每一小段数据:一个缺失的条目就意味着生死攸关。毫不奇怪,一台机器可以为医生提供有价值的帮助,这是由数百万个组织良好的记录所决定的。在这个领域中,统计模型取得了巨大成功。这里的成就,或许应该归功于“计算机视觉”这一子领域,它研究了前述数字汤中对医学图像和视频进行编码的最佳方法。
利用定义明确的操作对用计算机语言表示的定义明确的问题的证明搜索,使用定义明确的操作从数学证明的步骤到下一个步骤(换句话说,在一个叫做“证明助手”的程序中辅助证明搜索)。
这些都是经典的组合问题,具有巨大的搜索空间,每个节点都有大量的规则,最终目标也很明确。有点像打了兴奋剂的电子游戏。在 IDE 方面已经取得了一些进展,而且有望有所改善。乍一看,也许有些让人担心,因为人们无法理解以这种方式记录数学至少有多难,也无法理解写下它有多痛苦。
寻找蛋白质折叠结构的 AlphaFold
这是另一个经典的组合问题,那就是明确的规则。这一里程碑式的成就是,这个问题具有巨大的搜索空间,可以找到计算生物学重要问题的解决方案,这必将加速该领域的研究。在这方面,统计模型取得了不折不扣的成功,它完成了人类只能通过其他方式实现的梦想。
面部识别
这是一个典型的模式识别问题,只能通过实例来学习。可以这样说,这项技术已经取得了巨大的成功,但不幸的是,它的副作用是为各种滥用这种技术的方式打开了大门。
语音和文本自动支持
这里所需要的一点“领域知识”都被封装在一个非常狭窄的上下文中。几乎没有这样的简单规则(用于做出这种决策的模型叫做“决策树”):“如果人类说这个,那么它就是这样”,人类通过实例学习识别语音。这方面的标志性成就在于“语音合成”,也就是让机器完成文本到人类的类似语音的工作。
然而,值得注意的是,对于非标准口音来说,语音转文本和语音合成仍然是一个悬而未决的问题。也许我们可以说,非标准口音数据还不够多,是的,这就是这个特殊问题的症结所在。
比较经典的问题
在计算机科学中,统计方法已经被用来改进经典的数据结构和算法(最近有一种快速排序法)。在决定如何处理它们之前,分析数字的模式,然后构建最适合这些模式的数据结构,这听起来是非常明智的。这方面的标志性成就就是,这个模型的训练和执行速度可以比相应的经典算法要快。
现在,我们已经做好准备,面对人类不费吹灰之力就能解决的问题,机器将一败涂地。
你得到一系列的石头,每一块石头都有一个独特的符号。对于下面的序列,你会说些什么呢?
幼儿园的孩子会简单地说,右边的石头多。如此开放的问题,对机器来说是一个巨大的挑战。应该怎样着手解决这个问题呢?它已经被具体事物所束缚,它看得太仔细了。
一对同卵双胞胎同时从 10 英尺的高度跳下。第一次,他们跳起来不碰对方,第二次,他们牵着手。那么这两次跳下有什么不同吗?
这个思想实验,如果不是已经熟悉,对于任何一个人来说,在脑海中模拟一下都是非常简单的事。它常被用来说明一个简单的物理定律的精妙之处。机器不知道该怎么做,除非对现有数据上尝试进行某种关联,或者 10 英尺的高度是否相关。
我画了一个特定的矩阵,如下图所示。你知道我想告诉你什么吗?
所有对线性代数知之甚少的人都会立即说它是一个下三角矩阵,即使他们从来没有见过这样的形式。没错,它是模糊的,但这是一个跨领域的经典抽象问题。在这种情况下,机器可以识别文本图片中的某些直角三角形,但接下来该怎么办呢?这个怎么连到一个充满数字的矩形上?数量是多少?
要知道,解决上述问题所需的知识很少,而收集更多的数据并不会改变什么。
解决这些看似幼稚的问题可能没有多大意义,但是它们是解决更复杂问题的先决条件:
a. 鉴于刺猬是一种啮齿动物,有些人把它当作宠物饲养,那么这六张照片中哪一张是刺猬的?
b. 从经典力学公理推导出单摆的运动方程。
c. 看一部电影,并对其表演、剧本、导演和故事情节进行批判性评论。
d. 发表一篇关于黑洞的演讲,并根据你收到的问题来判断听众的理解程度。
e. 通过直接阅读在 arXiV 上传的文件,检查 abc 猜想证明的正确性。
要宣称甚至存在“奇点”这样的东西,至少需要某种策略来解决最后一个问题。
在这一点上,数据狂热者会插嘴。他们会认为,如果我们能在一年的时间里收集每个人一生中每一秒的所有数据,并提供足够的存储空间和计算能力,我们至少可以用现有的方法来解决这些问题,并且我们的方法只会随着时间的推移越来越好。
即便是这样,这也是一个荒谬的说法,就像“只要有足够的时间,我就可以从零开始,通过在一张纸上写上一系列 0 和 1,来编写一个裸机运行的图形化 Web 浏览器”。实际上,这甚至比这更荒谬,因为为了将这些数据馈送到机器中,你需要一整群低薪的非技术工人来“清洗”和“注释”收集的数据。这就是你所说的“奇点”吗?在那里,为了让全知全能者感到快乐,人类正做着相当于清理沟渠的工作?如果没有人类的帮助,你都做不出幼儿园级别的问题,而你有这么多的计算能力可供支配,你还有什么希望声称自己有什么“智能”?
但是,他们会争辩说,如果那台机器有一种“与众不同”的智能,但又以某种方式“包含”了人类的智能,那又会怎样?这些都是疯狂的邪教领袖们喷出来的那种伪科学垃圾。在现代社会中,统计方法有很大的优势,但就目前而言,机器是游戏学校里戴着傻帽的人。
我们目前正处于一个数据战争的时代,所有的大玩家都在竞相收集更多的用户数据。什么样的数据?乏味的、无关紧要的、人类日常生活。不客气地说,用计算集群翻翻每个人的垃圾,你肯定能找到吃掉一半的巧克力。
AlphaGo、GPT-3 和 AlphaFold 背后的模型与那些让我们无止境地沉溺于社交平台,通过甜言蜜语的语音助手向我们推销不需要的产品的模型的本质是一样的。很多工业化的人工智能研究成本很高,但肮脏的秘密是,它是用那些体面、谦逊的人的隐私来支付的。
如果你愿意的话,那就让陌生人帮你筛选垃圾吧,但是,在喝“奇点”酷爱 (Kool-Aid,译注:这是指“喝酷爱饮料”与人民圣殿教的典故,美国习语,在美国流行文化中,指因潜在的高额回报而相信可能注定或危险的想法的人)饮料的时候,不要这样做。
作者介绍:
Ramkumar Ramachandra,巴黎大学代数拓扑学硕士研究生。
原文链接:
评论