弗朗索瓦·肖莱:如何衡量智能
François Chollet: Measures of Intelligence
Keras 作者谈智能的定义与度量、技能与泛化的区别,以及 ARC 基准背后的核心思路。
一道人类小孩能过、AI 过不去的题
2019 年 11 月,弗朗索瓦·肖莱(François Chollet)放出一个叫 ARC 的测试集。一千道题,每道题的形态都差不多:给你几张彩色网格图,每张图对应一个输入和它对应的输出,你要从这几组示范里看出变换规则,然后对一张新的输入图给出正确的输出。
人类看一眼就能做,小孩也能做。当时最强的机器学习系统,得分是零。
几个月后 ARC 上了 Kaggle 比赛。有人在两周内把分数从零推到了非零。到 Lex Fridman 和肖莱做这期对话的时候,最好的算法解出了测试集约 20%。人类接近 100%。
这个差距背后,是一整套关于"智能到底是什么"的误解。肖莱为此写了一篇论文,《论智能的度量》(On the Measure of Intelligence)。他想说清楚一件事:我们过去几十年在 AI 领域衡量"进步"的方式,大部分时候衡量的是错的东西。
少年时代的两个思想源头
Lex 开场问的是,哪些思想家影响了他。肖莱提了两个名字。
第一个是让·皮亚杰(Jean Piaget),瑞士心理学家,发展心理学的奠基人。肖莱十几岁读他的书,那是 1930 到 40 年代的工作,很多结论已经被后来的发展心理学修正甚至推翻。但真正击中他的不是具体结论,是一个念头:智力和心智是人在一生中一点点建构出来的东西,小孩是分阶段建构的。这个念头对做 AI 的人来说太要紧了,因为你在做的事情,本质上是让人造系统也走一遍类似的建构过程。
第二个是杰夫·霍金斯(Jeff Hawkins)的《On Intelligence》。霍金斯是神经科学家,书里提出一个图景:心智是一个多尺度的、分层的时间预测模块的层级结构。肖莱说他当时最喜欢的一句话是"认知即预测"。那是深度学习爆发之前,分层的思想在 AI 里已经存在很久了,1980 年代就有人提,但真正找到实用实现方式,要等到深度学习。
Lex 追问记忆的部分。肖莱给了个挺有意思的类比:大脑更像是稀疏访问的存储器,你可以非常精确地把某段经验调出来,你能自省,你能对自己提问。而语言,就是让你做这件事的工具。
我认为语言是心智的操作系统。语言的一个用途,是你在自己的记忆上跑的一个查询。你用词作为键,去取回特定的经验、概念或念头。(弗朗索瓦·肖莱)
这个类比往下推会很自然:语言既是你存放念头的方式,也是你取回念头的方式。肖莱说,假如你没有语言,你就没有一个由内部触发的、主动检索过去念头的通道。你只能靠外部刺激,看到一个熟悉的场景,闻到一种熟悉的气味,记忆才被带出来。你没法主动去调它。
语言是操作系统,但不在最底层
Lex 接着抛了个乔姆斯基式的问题:语言是不是认知的最底层?是不是"思考这件事"的根基?
肖莱直接说,不是。他不同意乔姆斯基。语言是认知之上的一层。按他的比喻,语言是大脑的操作系统,而操作系统是跑在计算机之上的一层。计算机先于操作系统存在,但操作系统是让计算机真正变得有用的那层东西。他补了一句玩笑:这套操作系统多半是 Windows 不是 Linux,因为语言很乱,很难内省,很难看清内部。
那语言之下是什么?肖莱的答案是:在学会用词思考之前,我们是用情绪、用空间、用身体动作来思考的。婴儿大概率是用他们见过的动作、能做出的动作、以及环境里物体的运动来表达念头的。视觉类比和运动,是心智最基础的砖块,这一点在语言里也留了痕迹,语言里充满了空间隐喻。
Lex 说他自己是那种必须把东西落到纸上才能思考的人。肖莱不一样,他说自己是很强的视觉型思考者,会在脑子里把概念放进一个二维空间,像在地图上导航一样在概念空间里移动。Lex 说他只能沿着纸面旅行,没法在脑子里走。肖莱笑着叫他"平面国居民",然后又反问:即使你写论文,你脑子里难道没有一张论文的空间地图吗?你知道各个想法之间拓扑上的位置关系,像一张地铁图。
Lex 承认是这样。写论文像是一次双向路径搜索,从起点出发,也从终点倒推,最后看两边在哪里接上。就像游戏里从两端同时做 A 星搜索。
心智地图、拓扑空间与几何空间
话题转到心智地图(mind map)。肖莱说,心智地图是把脑子里的那团乱麻搬到纸上,搬出来之后你反而更能控制它。做法是:中间写一个核心概念,比如"智能",然后往外画联想连线,想到什么画什么,可以画词也可以画图形。最后长出来的通常是一张图,一张没有根节点的地铁图。有些节点连得多、更重要,有些节点是终点站。
Lex 说他有 OCD,一想到"智能"下面挂了"语言""运动",就会开始纠结这个分类是不是最优的,会不会被卡死。肖莱的回答很轻松:这是你的心智地图,你想画什么连什么都可以,觉得中心节点不对,就再画一张。
这里有个更深的点,肖莱把它讲透了。他说心智地图的价值在于它施加的语法结构很少,比写段落自由得多。你把想法先以低结构的形式摊在纸上,然后再用段落去组织它。他说了一句挺狠的话:如果你不把想法写下来,你怎么知道自己对这个东西到底怎么想的。
然后是拓扑和几何的区别,这段很关键。
如果谈拓扑,点与点之间要么连着要么没连着。拓扑更像地铁图。几何是你在意两点之间的距离。地铁图里你其实没有距离的概念,你只知道有没有一趟车从 A 站到 B 站。(弗朗索瓦·肖莱)
而深度学习在做的事情,恰好是几何的。概念向量、词向量,全都带距离,用内积去表达关系。深度学习的整个底座是连续的、可微的,一旦你的空间是离散的,就没法做深度学习了。你要在深度学习里搞拓扑,只能把拓扑嵌进一个更大的连续空间里。肖莱说他相信拓扑空间是比几何空间更好的承载念头的媒介,人脑里大概率有某种拓扑式的处理,因为大脑本质上是高度联想性的。
智能的定义:把过程和产物分开
Lex 把话题拉到那篇论文。他先问了个半开玩笑的问题:两百年后如果有本讲人工智能的教科书,肖莱的头像旁边会配一句什么话,用来定义智能?
肖莱的答案很干净。
智能是你获取新技能的效率,这些技能是你在事先不知道、也没有准备过的任务上的。智能不是技能本身。智能不是你懂什么,也不是你能做什么。智能是你学习和掌握新东西的效率,有多快、有多好。(弗朗索瓦·肖莱)
他引了爱因斯坦那句话:衡量智力的标准是改变的能力。肖莱说自己喜欢这句,但它只抓住了一部分。智能更精确的说法是"适应的效率":你能多高效地适应环境,多高效地掌握它,多高效地学会新技能。
这里有个关键的区分,肖莱反复强调:智能属于过程,技能属于过程的产物,两者不能混。一个很聪明的人类程序员看着国际象棋,写下一个能下棋的静态程序,智能在于开发这个程序的过程,程序本身只是这个过程的结晶。你怎么判断程序本身不智能?换个场景就行:让它去下围棋,它就不行了,除非人类再介入。因为智能的来源,那个能完成"生成"这件事的主体,是那个程序员。
肖莱给了一个类比:别把修路公司和某一条具体的路搞混。一条路把你从 A 带到 B,而一家修路公司能从任何地方修到任何别的地方。
由此他引出一个更严格的定义:一个好的智能测试,考察的应该是"开发者无感知的泛化"(developer aware generalization)。意思是,系统要泛化到的新情境,不仅系统自己没见过,连造它的人也没见过、没预见到。这个定义比普通的"系统中心泛化"更狠一层。自动驾驶里的边角案例就是这个东西:设计训练数据的人不知道会碰上什么,训练数据里也没有,系统必须自己扛。
先验与经验:对比人和机器时,必须控制的两个变量
接着 Lex 问了个具体例子:开车。绝大多数人这辈子在真正学开车之前,已经看了无数车、坐了无数次车、看了无数关于车的电影。神经网络也是这么干的,喂大量数据。那要多少推理上的"天才一跃"才能真的开好车?
肖莱用了一个换位场景来回答:假设你在硅谷学会开车,然后去东京租了辆车。现在所有人都在另一侧行驶,路牌不一样,路更窄。一个普通的聪明人应该能零样本(zero shot)直接上手,尽管这个新环境里的新复杂度,和他过去接触过的任何东西都不重合。这种新复杂度,靠"在美国学开车"的经验做插值,覆盖不了。
Lex 追问:那开车算不算今天最有实际影响力的智能测试?我们什么时候能过?
肖莱说他不觉得开车是多好的智能测试。因为没有任何一个任务,单靠做它的技能就能证明智能,除非这个任务是"获取新技能"的元任务。开车完全可以不用多少智能就解决:如果有无穷的训练数据,端到端深度学习模型直接就能开。唯一的麻烦是收集一个足够全面的数据集,覆盖可能遇到的长尾情境。这是规模问题,不是原理问题。但他觉得这条路效率很低,会撞上收益递减。换成手工工程的方式,用深度学习模块加一个显式的车辆周边环境模型,再用巧妙的方式把两者接起来,模型会更早、更有效地开始泛化。
但就算你做出了 L5 级别的车,肖莱说这也不证明通用智能。检验通用性的唯一办法,是看它在未知任务上的技能获取。比如把你的 L5 司机拿过来,让它学开商用客机,然后看需要多少人类介入、多少训练数据。这个数字才是它智能的度量。
这里 Lex 插了个反思,说开车这个黑箱会以一定速率生成新情境,也就是所谓的边角案例,所以它是有"新"的。肖莱承认这是很长的长尾,但长尾不代表不能靠统计模型加海量数据解决。Lex 顺着说:如果一辆车达到了 L5,它就是能处理新情境的。肖莱回:数据太大了,新情境出现的速率太低。那不叫智能。
于是定义又转回来了:智能是在真正新的情境里适应的效率,这些情境不是系统的创造者能预见到的。如果一个系统要学会新技能,需要一份覆盖几乎全部可能情境的超大训练集,那它不智能,它基本上就是一张查找表。同理,如果需要人类工程师写下覆盖几乎所有情境的规则,那也不智能,那个系统只是人类心智里发生的过程的输出产物,它编码的是人类心智产出的抽象,而智能恰恰是自主产出这种抽象的过程。
Lex 说这里有点灰。肖莱承认是灰的:深度学习确实也做抽象,也确实泛化,只是泛化一点点。泛化不是二元的,是光谱。但他坚持:智能是你泛化到训练分布之外的能力,既看能走多远、多新,也看效率多高。他给了一个"信息转换率"的说法:设想一个可能情境的空间,你已经覆盖了一部分,这来自你已知的情境加上系统自带的先验知识。系统的任务是从这些信息出发,产出一个行为程序,覆盖这个情境空间的一大片区域。那片区域和起始信息量之间的比值,就是智能。
G 因子是真的吗:从健身说起
话题转到对人的测试。肖莱介绍了心理测量学(psychometrics),心理学里专门量化心智属性的分支,包括认知能力、智力,也包括人格特质。他说这个领域名声不算好,因为心理学常被诟病结果不可复现,但心理测量学其实有不少相当稳固、可复现的结果。
一个好的测试应该满足四条:可靠(可复现)、有效(真的测到它声称测的东西)、标准化(能在统一条件下施测于很多人)、无偏(比如题目涉及英语,就得意识到这对母语非英语的人有偏)。他说这些是理想,现实里不是每个测试都做到,但至少这个领域知道自己有哪些弱点。
然后就是 G 因子。你跑一堆非常不同的测试,语言、空间视觉、心理旋转、数字等等,跑大了之后会看到结果之间成群的相关性。数学好的人统计上物理也好,而且数学物理好的人,在听上去完全不相关的写作上也更好。统计上解释这种相关群的办法,是引入一个潜变量。G 因子就是那个解释"所有你能想到的智力测试结果彼此相关"的潜变量。它是统计构造,你没法在一个人身上直接量到它,但它在,在大样本上它在。
肖莱特意说,他对心理测量学的兴趣不在刻画某一个具体的人。给他一个人的 IQ 或人格测评,他不觉得那能告诉他多少关于这个人的事。心理测量学作为统计工具才有用,在规模上才有用,因为交叉相关大量结果,能让你看到人类心智结构,特别是人类认知能力的结构。而这恰恰和 AI 相关。
Lex 说他刚接触 G 因子时觉得它像占星术,像心理学家的自我安慰。后来才慢慢接受它在统计上是真的。
肖莱补充了主流的结构理论:CHC 理论,以三位心理学家 Cattell、Horn、Carroll 命名。它把认知能力描述成一个三层级的结构。顶层是 G 因子,中间是宽泛认知能力(比如流体智力,覆盖一大类彼此相关的任务),底层是狭窄认知能力,更接近任务特定的技能。不同的统计分析会长出不同的理论,但都指向一个顶部带 G 因子的层级。
然后是一段非常重要的澄清。肖莱说,G 因子的存在,并不意味着人类智力在强意义上是通用的。它不意味着高 IQ 的人能解决任何问题。他用健身来类比。
体能(physical fitness)是个很有用的概念,你直觉上懂它。有人体能好,有人差一些。但没人会飞。体能被约束在一组特定的技能上。就算你体能极好,也不代表你能在任何环境里做任何事。你不能飞,不能在海底活。如果你要严格定义和测量体能,你会设计一套测试:百米跑、踢足球、打乒乓球、游泳。跑很多人之后你会看到相关性,足球好的人冲刺也好,你会用"身体能力"来解释这些相关性,就像认知能力一样,你还会看到生理指标的相关,比如肺活量和跑得快相关,就像认知能力有神经生理相关物一样。最后在体能层级的顶端,你会得到一个"体能的 G 因子"。
而正如刚才说的,体能高的人不会飞。人类的形态和生理根本不通用,它是高度特化的。我们只能做进化塑造我们去做的事,我们没法在金星、火星、太空真空或海底存在。
但这里有个真正惊人的地方:我们的形态,泛化得远远超出了我们进化时所处的环境。我们进化来是在草原上追猎物的,可我们能爬山、能游过湖、能打乒乓球,乒乓球和进化给我们的任务差得很远。我们的身体、感官和运动能力有一种惊人的通用性。肖莱说认知很像这样。我们的认知能力泛化得远远超出了心智最初被设计来做的事,所以我们能玩音乐、写小说、上火星。但它同样不通用,就像人的身体按体积算在宇宙大部分地方都不合适一样,人类心智在潜在问题空间的大部分地方也不合适。我们带着很强的认知偏误,有些问题处理得极好,有些完全没适应。
所以 G 因子的正确解读是:它标志着最宽泛的那一层认知能力,而不是强通用性。人类的能力,不管是感知运动还是认知,仍然高度特化于人的处境。但正因为我们的环境多变、快速变化、极难预测,驱动我们进化的约束本身就包含了"通用性"这一项。我们被进化成能在各种物理和认知环境里即兴发挥,结果就是我们得到的身体和心智,能用到的范围远大于进化给出的用途。
人类天生带在身上的四套先验
聊到 IQ 题目的难度。肖莱说,没有"内在就难"的题目。难,永远是相对于你已经知道、已经会做的东西而言的。IQ 题通常的形式是:给你一组示范的输入输出对,再给你一个测试输入,你要识别或产出对应的输出。在这个框架下,一道难题就是:给定训练样例,这个输入是极其出乎意料的。
他举了旋转题的例子。如果给两个训练样例,再给的测试输入其实就是两个训练样例之一,那泛化难度是零,这题是平凡的,你认出它是训练样例就照抄答案。如果形状复杂一点,泛化稍多,但你做的仍然是训练时被示范的同一件事。真正的难题开始需要一定量的测试时适应、一定量的即兴发挥。
他换成量子物理课的例子。你想考学生对材料的理解,就会出一份和他们在网上刷题时见过的东西很不一样的卷子。想放水,就出和模拟题很像的题。难题迫使你即兴,迫使你做和以前见过的不一样的事。但即便如此,需要即兴的卷子也不是内在就难,因为如果应试者本身就是量子物理专家,这题对他不新。所以难只相对于应试者已有的知识和关于任务的信息。这就是他反复说的"控制先验"。
Lex 提到自己发邮件问过肖莱什么是真正难的 IQ 题,也和一些出题人聊过。这些人对正确答案保密得很严,题目一旦被知道解法就废了。肖莱说,解法本身就隐含在训练样例里,一旦把训练样例放出去,就完了。ARC 里也留了一个没人见过的私有测试集,就是这个道理。
接着肖莱系统讲了人类的核心知识先验。这部分来自哈佛的伊丽莎白·斯佩尔克(Elizabeth Spelke)的核心知识理论,一共四套系统,是我们生来就有、或者被硬编码成在极早期就会获得的。如果一种知识你被预设成几周内就能习得,那和生来就有也没什么区别。
- 物体性(objectness)和基础物理。一个整体协调运动的东西,就是物体。我们天生就按"物理上是否协调"把世界切成物体。基础物理包括物体能互相碰撞、能互相遮挡。
- 主体性(agentness)。被你切出来的物体里,有一些是主体,也就是有目标、能追逐目标的物体。两个点大致同步地动,你会直觉判断其中一个在追另一个,一个在逃、一个在抓。斯佩尔克证明,三个月大的婴儿就能识别环境里的主体性和目标导向。
- 基础几何与拓扑。距离的概念、在环境里导航的能力。这在神经层面是硬编码的,由海马体里的网格细胞和位置细胞支撑。
- 数字。数字不是文化建构,我们天生就能做基础计数、能比较数量。给你三个点和五个点,你能指出哪边多。
肖莱说这个清单可能还不完整,斯佩尔克还在考虑是否会有新的知识系统,比如处理社会关系的系统,不过那个和 ARC、IQ 测试关系不大。
说到旋转,有个很有意思的实验。1970 年代有人发现,给被试两个形状,其中一个是否是另一个的旋转版本,让人判断,反应时间和旋转角度呈线性关系。就好像你脑子里有个转速固定的转盘,你想知道两个物体是不是旋转关系,就把物体放上转盘,让它转一会儿,匹配上了就停。
ARC 的设计逻辑
肖莱说 ARC 是尽可能把论文里那些原则实现的一次尝试,但远不完美,受限于当时的条件。它的格式很像经典 IQ 测试,特别是瑞文推理测验(Raven's Progressive Matrices)。每个任务有一组训练用的输入输出对,输入输出都是彩色网格,网格尺寸可变。给你几张示范,再给你一个新输入,你要产出正确输出。
ARC 的关键约束是:每道题只能用到核心知识先验,不能用到任何外部知识。没有语言,没有英语,没有树、狗、猫这类从人类经验里来的概念,只有建在核心知识先验之上的推理任务。有些题是在刻意探测特定形式的抽象。肖莱说,他做 ARC 的一个动机是:面对"机器如何自主生成抽象"这么一团模糊的问题,你必须让解和问题一起进化。设计 ARC 也是为了让自己的想法更清晰。
和 IQ 测试最大的不同是先验被明确化了,IQ 测试通常不这么做。ARC 也更杂、更丰富,而且常常要手工在网格上点来点去做解,网格有时大到 30×30 格。
出题的过程。肖莱说这相当难,因为硬性要求是每道题都必须新颖、独特、不可预测。你不能造一个简单到人类能反过来写出一个"能生成所有 ARC 题目和答案的算法"的小世界,那测试就彻底废了。所以你一直在想新东西。他给了一句很实在的话:作为人类,你并不是一个很好的"无法造假的新颖性"的来源。你一天能想出的真正独特的题目是有限的。所以出题很大程度要借助别的东西。
Lex 问是不是考虑过众包。肖莱说是,众包可行,需要几层筛选,好处是能做出一份更大、更多样的 ARC 数据集,也能去掉一部分他个人的偏见。但有一个前提必须守住:用来真正评测算法的测试集,绝不能让开发算法的人看到。否则人类工程师会自己把题解了,把解法编码成程序。这样你看到的仍然是智能在人类心智里发生的过程,你抓住的只是它的结晶,而这个结晶本身不智能。
ARC 还带来一个意外:很多人把它当游戏玩,包括小孩。肖莱说他发布的时候是当基准测试发布的,结果大家当谜题玩起来了,他觉得这挺好的。
Lex 说了一个很妙的观察:ARC 因为身处"机器智能测试"这个语境里,会逼着你去想智能的本质。你作为人类去解 ARC,会被迫内省自己是怎么想出解法的,被迫反思人类的问题解决过程,反思你自己的心智怎么给面对的问题生成抽象表征。肖莱同意,说这大概是因为 ARC 建立其上的核心知识先验集合太小了,全是极少数假设的重组。
泛化的三个层级
肖莱在论文里把泛化分成几层,这段很有用。
最低一层,是机器学习在做的事:假设任何新情境都从一个静态的可能情境分布里采样,而你已经有这个分布的代表性样本,也就是训练数据。你泛化到一个已知分布的新样本上,新在哪、差在哪,开发者都已经理解。这对应的是鲁棒性,你对噪声、小变化之类的东西稳健,在一个固定的、通过训练数据已知的分布上。
更高一层是灵活性。比如 L5 自动驾驶,或者能通过"咖啡杯测试"的机器人(给你一间国内随便哪里的厨房,你去把咖啡做好)。灵活性是应对"未知的未知",在一个特定任务里,去处理那些系统的创造者根本预见不到的维度。自动驾驶的长尾情境就是灵活性。
最高一层是极端泛化。它和灵活性一样,只是不再限于某一个特定领域(开车、家务),它面向的是一个开放式的领域范围。一台为做饭设计和训练的机器人,买回家后能自学园艺,几周内学会,那它就具备极端泛化。
终极目标就是极端泛化:一个系统,能在任意任务、任意领域上达到人类水平的技能,遇到新情境时具备和人类一样的即兴和适应能力,用到的领域和任务范围与人类相当,需要的训练经验也和人类相当。这就是人类水平的极端泛化。
肖莱补了一句他的判断:他不觉得人类接近智能的最优上界,如果这个上界存在的话。他说很可能任何系统的智能都有一个硬上限,但人类离那个上限还远。
图灵测试的问题在哪
Lex 问图灵测试和勒布纳奖(Loebner Prize)。肖莱说他不喜欢图灵测试和它的任何变体,两个原因。
第一,它是在回避定义和测量智能这件事,把一切都外包给一组人类裁判。而这些裁判本身可能没有正确的方法论,没有正确的智能定义,也可能不可靠。这就已经违反了心理测量学的核心原则:可靠性。有偏见的人类裁判,也违反了标准化和无偏的要求。你把所有要紧的事都外包给人了,而所有要紧的事恰恰是精确描述智能、找到一个独立的测试来测量它。
第二,它制造出的激励方向不利于科学研究。如果你的目标是骗过一组人类裁判,让他们相信在和人说话,那你就有动力去用花招。肖莱举了个类比:做物理,想解决瞬移问题,如果测试是"说服一组裁判相信发生了瞬移",那大卫·科波菲尔在拉斯维加斯的舞台上就能做到。他的表演很精巧,但那是魔术,不是物理,对理解宇宙没有任何推进。
他还提醒,图灵提出模仿游戏的时候,并不是要把它当作 AI 领域的实际目标或实际的智能测试。那是在 1950 年那篇论文里做哲学讨论用的思想实验。他当时想论证的是:理论上,某种非常像人类心智、和人无法
本集资源与出处
- 视频在 YouTube 收看
- 音频官方 MP3 直链来自 lexfridman.com 官方播客 RSS
- 官网Lex Fridman 官网本集页面