# 弗朗索瓦·肖莱：如何衡量智能

> Keras 作者谈智能的定义与度量、技能与泛化的区别，以及 ARC 基准背后的核心思路。

- 原标题：#120 – François Chollet: Measures of Intelligence
- 期数：第 120 期
- 发布日期：2020-08-30
- 嘉宾 / 主题：弗朗索瓦·肖莱
- 网页版：https://lexfridman-cn.pages.dev/ep/francois-chollet-2/
- 官方页面：https://lexfridman.com/francois-chollet-2/
- 精读字数：约 8901 字（阅读约 20 分钟）

> 本文为 lex.qiaomu.ai 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

## 一道人类小孩能过、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 年那篇论文里做哲学讨论用的思想实验。他当时想论证的是：理论上，某种非常像人类心智、和人无法
