编者按:2024 年 7 月,第 65 届国际数学奥林匹克(IMO)在英国巴斯举行。曾以 13 岁之龄夺得 IMO 金牌、至今仍是这项纪录保持者的陶哲轩(Terence Tao)应邀回到赛场,为参赛选手做了一场题为「人工智能与数学」的报告,并在报告后回答了现场提问。本文依据现场录音编译整理,仅删去口语枝节与寒暄,论证、例子与细节均照原样保留。
主持人:各位好。在座的许多选手很年轻,可能不了解陶哲轩教授是谁,我先做几句介绍。他 11 岁第一次参加 IMO,拿到铜牌;第二年再来,拿到银牌;13 岁那年拿到金牌,成为 IMO 历史上最年轻的金牌得主。之后他进入大学,不再参赛。如今他是加州大学洛杉矶分校的教授。可以说,他是 IMO 最耀眼的明星,也是我们这个时代最有影响力的数学家之一。请大家欢迎陶哲轩教授。
陶哲轩:谢谢。很高兴回到 IMO。参加 IMO 的那段日子是我一生中最快乐的时光之一,至今想起来仍觉得温暖。希望大家这几天也都过得愉快,不只是比赛,无论分数高低,还有那些社交活动,这里的主办方向来把活动办得很好。
我今天要讲的是人工智能,更广义地说,是机器对数学的辅助。大家都听说过 AI 正在改变一切。今天早些时候 DeepMind 做了一场报告,介绍他们的新系统 AlphaGeometry 已经能解答一些 IMO 几何题;我讲完之后紧接着还有一场关于「AI 数学奥林匹克」的报告,请大家留下来听。
我要谈的主要是这些工具如何开始改变研究数学。研究数学与竞赛数学不同:不是给你三个小时解一道题,而是花上几个月,有时根本解不出来,只好换一个问题。这和数学竞赛完全是两回事,尽管所需技能有些重叠。眼下这一切都令人兴奋,变革正在发生;但另一方面,其中也有延续性。我们用计算机和机器做数学其实已经很久了,变的只是使用方式。今天的一切,都接续着机器辅助数学的悠久传统。
陶哲轩:先问一个问题:人类用机器做数学有多久了?答案是几千年。罗马人就用机器做数学,算盘是最早的机器之一,甚至还有更早的。不过算盘没什么意思,它不算聪明的机器。那么计算机呢?人类用计算机做数学有多久了?大约三四百年。这听上去有点怪,因为现代意义上的电子计算机要到 1930 年代和 1940 年代才出现。但计算机并非一直是电子的,在此之前它是机械的,再往前,它是人。
「计算员」(computer)曾经是一种职业,就是负责计算的人。二战期间就有成群的计算员在算弹道之类的东西,其中大多数是年轻女性,因为男人上了前线。她们用加法机工作,另有「程序员」负责告诉她们该做什么。当时衡量算力的基本单位不是 CPU,而是「千女时」(kilogirl):一千名女计算员这样工作一小时所能完成的计算量。
其实更早,从十八世纪甚至更早开始,我们就在用计算员了。那时最基本的用途是编制数表。大家可能听说过纳皮尔的对数表。要算正弦、余弦之类的值,就得靠计算员来生成数表。我读中学时,课程里还在教怎么查这些表,当时它们刚开始被淘汰。后来当然有了计算器,现在又有了计算机。但我们今天仍在用表,数学研究依赖表,只不过现在叫「数据库」,本质是一回事。数学中许多重要结果最初都是从表里发现的。数论里最基本的结果之一是素数定理,它大致告诉你不超过某个大数 X 的素数有多少个,由勒让德和高斯发现。他们证明不了,却猜到它成立,因为高斯等人有自己的计算员(高斯本人就算得上半个计算员),用来编制前一百万个素数的表,从中寻找规律。
素数定理最终在 1907 年前后得到证明。又过了两个世纪,数论中另一个核心问题,伯奇与斯温纳顿-戴尔猜想(Birch and Swinnerton-Dyer conjecture),这里我不展开,它同样是从大量数表中发现的,这一次是关于椭圆曲线的数据表。今天很多数学家,包括我自己,常用的一张「表」叫「整数数列在线百科全书」(OEIS)。你们也许接触过。很多整数数列你光凭记忆就认得出来,比如我说 1,1,2,3,5,8,13,你就知道这是斐波那契数列。OEIS 是一个收录了几十万条这类数列的数据库。
数学家做研究时,问题里常常自然地附带某个数列。比如有一族依赖于 n 的空间,你去算它们的维数,或者某个集合的元素个数。你算出前五六个或者十个数,输进去和 OEIS 比对。运气好的话,这个数列已经被别人录进去了,而那个人是在研究一个完全不同的问题时发现它的。这就给了你一个重大线索:两个问题之间存在联系。很多前景可观、成果丰硕的研究课题正是这样冒出来的。
陶哲轩:数表是我们使用计算机最早的方式之一。而说到用计算机做数学,人们最先想到的是数值运算,正式名称叫科学计算:你要做一次大规模计算,就得做海量的算术,于是外包给计算机。这从 1920 年代就开始了。第一个真正做科学计算的人也许是亨德里克·洛伦兹。荷兰人打算修一座巨型堤坝,想知道水流会怎样变化,交给他去弄清楚,这需要对流体方程建模。他动用了一大批人工计算员来算,为此还发明了浮点运算。他意识到,要让很多人快速完成大量计算,就应当把不同数量级的数用浮点形式表示。
如今我们用计算机对各种事物建模。解大量线性方程、解偏微分方程、做组合计算,也能解代数问题。原则上,奥赛里的很多几何题都可以用科学计算来解:有一些代数软件包,你可以把任何一道几何题,比方说涉及十个点和若干直线、圆,转化成一个含二十个实变量的方程组,直接扔进 Sage 或者 Maple 之类的软件。
遗憾的是,规模超过一定程度后,复杂度就呈指数甚至双指数增长。所以直到不久前,用标准的计算机代数软件包硬算这些题其实并不可行。现在有了 AI 辅助,也许更有希望,今天上午那场报告讲的就是这个。另一类变得相当强大的科学计算工具叫 SAT 求解器,即可满足性(satisfiability)求解器,用来解逻辑谜题。
比如你有十个命题,或者一千个命题,每个非真即假,并且知道一些约束,比如第三个命题和第六个命题都为真时第七个命题必为假。给定一大堆这样的约束,SAT 求解器会把所有信息汇总,判断某种命题组合能否被证明。还有一个更高级的版本叫 SMT 求解器,即「模理论的可满足性」(satisfiability modulo theories)求解器:你还可以引入变量 x、y、z,并假设一些规律,比如存在一个加法运算,满足交换律和结合律。把这些规律和其他事实一起输入,然后硬算:能否从一组有限的假设推出某个结论?
这类工具相当强大,可惜同样完全不具备可扩展性。求解时间也随规模指数增长,一旦命题超过一千个左右,求解器就很难在合理时间内跑完。但它们确实能解决一些问题。举一个近年的成功例子,这个问题恐怕永远只能由计算机解决,我认为没有辅助的人类是做不到的。这就是所谓的「毕达哥拉斯三元组问题」,在这次大规模 SAT 求解计算之前一直悬而未决。
问题是这样的:把自然数染成红蓝两色。是否无论怎么染,总有一种颜色包含一组毕达哥拉斯三元组,也就是能构成直角三角形三边的三个数,比如 3、4、5?以前不知道这是否成立,我们至今没有人类给出的证明,但有计算机证明。现在已经知道,其实不需要全部自然数,只需到 7824 为止:无论怎样把 1 到 7824 分成两个色类,其中一类必含毕达哥拉斯三元组。
这样的染色有 2 的 7824 次方种,不可能穷举,所以必须用点巧劲,但确实做得到。到 7825 就必然出现毕达哥拉斯三元组;而对 7824,存在一种染色使两类都不含三元组。这是可以证明的。我记得这在当时是世界上最长的证明,现在大概排第二。计算花了几年时间,生成了一份证明证书,证明本身长达 200 TB,后来压缩到了区区 86 GB。
陶哲轩:这是用计算机做穷举式的大规模分类讨论,是一种相当显而易见的用法。但近些年,我们开始以更有创造性的方式使用计算机。有三种用法我认为特别令人兴奋,尤其是当它们彼此结合,并与更传统的数据库、数表、符号计算和科学计算结合的时候。
第一,用机器学习的神经网络发现新的联系,找出不同数学分支之间的相关性,这些相关性是人类看不到或者不太可能看到的。
最引人注目的是大语言模型,某种意义上它是机器学习算法的超大版本,能处理自然语言,比如 ChatGPT 和 Claude。它们有时能给出解决问题的可能思路,有时管用,有时不管用。下一场报告里你们会看到更多例子。
还有一种技术刚刚变得普通数学家也能上手,叫形式化证明助手(formal proof assistant)。它是一种语言。大家知道计算机语言是用来写可执行代码、写做事的程序的;而形式化证明助手是用来写「检验」的语言,检验某个论证是否确实成立、是否确实能从前提推出结论。直到不久之前,这类工具用起来都相当烦人,如今变得好用了一些,正在推动许多有趣的数学项目,没有证明助手这些项目根本不可能实现。将来它们会与我前面说的其他工具很好地结合。
我要谈的就是这些更现代的用机器做数学的方式。先从证明助手讲起。
陶哲轩:历史上第一个真正意义上的计算机辅助证明,大概是四色定理的证明:任何平面地图只用四种颜色就能染色。它在 1976 年得到证明,那时还没有证明助手,按今天的标准它算不上计算机证明。那是一次庞大的计算,一半由计算机完成,一半由人完成。
证明四色定理的思路是对国家的数目做归纳。你要证明,任何一幅巨大的地图,都必然包含某种特定的国家子图;他们列出了大约一两千个特殊子图,每一幅足够大的地图在某种意义上都必含其中之一,这是要验证的第一件事。然后还要验证,每当出现这样的子图,都可以把它换成更简单的东西,而只要简化后的图能四染色,原图就能四染色。
他们得对这一万来个子图逐一检验这两条性质,我记得叫「可放电性」和「可约性」。其中一项可以用计算机做,不过那是早期计算机,每个图都得手工输入程序去检验。另一项则是由「人工计算员」完成的:一位作者的女儿花了无数小时手工检验可约性,极其繁琐。
这个过程并不完美,有很多小错误,表格得不断修订。所以按现代标准它不是计算机证明,也不是计算机可验证的证明。那要等到 1990 年代,出现了一个只用大约 700 个图的更简单证明。这时所有需要检验的东西都有了非常精确、定义明确的性质清单,你可以用自己喜欢的语言,C 或者 Python,写几百行代码,用现代计算机几分钟就能验证完。
而真正把它写成一路追溯到数学公理的证明,是 2005 年用一种叫 Coq(现已改名为 Rocq)的证明助手语言完成的。这是最早的形式化证明之一。你可以看到,从证明首次出现到我们能用计算机完整验证它,中间隔了很长的时间。
另一个著名例子是关于球堆积的开普勒猜想。这是十七世纪开普勒提出的老问题,表述很简单:取一大堆单位球,要尽可能高效地填满三维空间。
有一种显而易见的堆法,三角堆积,就像杂货店里堆橙子那样;还有一种对偶的堆法叫立方堆积,密度相同,大约是 74%。问题是:这是最优的吗?这出人意料地困难。二维情形下,证明六边形堆积最优并不太难。而八维和二十四维的答案直到最近才由维亚佐夫斯卡(Viazovska)的杰出工作给出,她昨天大概讲过。除了一维这个平凡情形,三维是我们知道答案的唯一其他情形。
它的证明难得出奇。同样,这个猜想没有完全可供人类阅读的证明。不过有一套策略。困难当然在于球有无穷多个,密度又是渐近量,所以它先验上不是可以直接扔给计算机的有限问题。但你可以尝试把它化为有限问题。托特(Tóth)在 1950 年代提出了一个策略:任何一种堆积都把空间剖分成一些多面体,叫沃罗诺伊区域(Voronoi region)。一个球的沃罗诺伊多胞形,就是所有离这个球心比离其他球心都更近的点的集合。这样空间就被分成了一个个多胞形,各有体积,还可以数它们的面数、算表面积等等,每个都有一组统计量。
堆积密度与这些区域的平均体积密切相关。如果你能说清这些多胞形的体积平均起来如何表现,至少能得到堆积效率的某个上界。你可以尝试建立多胞形之间的关系:一个多胞形很大,或许就迫使旁边的多胞形很小,于是也许能找到把一个多胞形的体积与另一个联系起来的不等式。那么就该收集大量这样的不等式,再做线性规划之类的事,希望能从中推出那个神奇的正确密度 π/√18。
人们试过。尝试很多,有人甚至宣称成功,但没有一个被接受为真正的证明。
问题最终由托马斯·黑尔斯(Thomas Hales)和合作者率先解决。他用的基本是同一策略,但做了大量技术上的调整。他把沃罗诺伊胞换成了稍微复杂一些的胞;不取体积,而是发明了一个叫「得分」(score)的量赋给每个胞,它是体积加上或减去许多细碎的、临时性的修正项。目标仍然是在这些得分之间建立大量线性不等式,最终得到密度上界,并希望恰好命中最优密度。
这个方法非常灵活,实际上太灵活了,可以尝试的东西太多,得分函数的设计方式数不胜数。黑尔斯写过这样一段话,大意是:萨姆·弗格森(Sam Ferguson)发现,每当极小化泛函遇到困难,他就可以改一改得分函数再试一次。可是这样一来,先前验证过的东西都得重做,得分函数越改越复杂。他们为此干了将近十年。函数越来越复杂,但每一次修改都为工作省下了几个月到几年的时间。这种没完没了的修修补补在同行中很不受欢迎:每次在会议上报告进展,极小化的函数都不一样;更糟的是,新函数与早先论文里的略有不合,还得回头去给旧论文打补丁。
但他们最终做成了。1998 年他们宣布终于找到了一个得分函数,满足一大批含 150 个变量的线性不等式,把它极小化后得到了想要的结果。他们起初并没打算做成计算机辅助证明,但随着项目越来越复杂,动用越来越多的计算机就成了必然。
按 1998 年的标准,这个证明极其庞大:250 页笔记,外加 3 GB 的程序和数据。它的审稿过程非常艰难。论文投给顶级期刊《数学年刊》,由 12 位审稿人组成的小组审了四年。最后他们说,对证明的正确性有 99% 的把握,但无法认证计算机计算的正确性。他们做了一件很不寻常的事:发表论文时附上一条编者的保留声明,说明这一点。这条声明后来已被撤掉。当时围绕「计算机辅助证明算不算真正的证明」争议要大得多,如今我们对此已经坦然许多。
但即使发表之后,它究竟是不是证明仍然有人怀疑。这大概是第一个备受瞩目的重大问题,人们有强烈的动机要把它彻底形式化,用形式化证明语言一路追溯到第一原理。黑尔斯为此创建了一种语言,确切地说是在已有语言基础上做了改造,项目命名为 Flyspeck。他估计形式化这个证明要花二十年,实际上在 21 位合作者的帮助下,「只」用了十二年,成果于 2014 年发表。
现在我们对这个结果有了完全的信心,但过程相当痛苦。
陶哲轩:再来看最近几年。我们已经摸索出一套更好的形式化工作流程,仍然繁琐,但在改善。彼得·舒尔策(Peter Scholze)是一位非常杰出的年轻数学家,菲尔兹奖得主,成就众多,其中之一是开创了一个前景极佳的数学领域,叫凝聚数学(condensed mathematics)。它把代数、范畴论以及代数的全套工具引入泛函分析,也就是巴拿赫空间之类函数空间的理论,而分析学的这个分支一直对代数方法很有抵抗力。
这个领域原则上可以用代数方法解决泛函分析中至少某一类问题。于是他建立了一整套范畴,里面是所谓的凝聚阿贝尔群和凝聚向量空间。「凝聚」是什么意思我就不解释了。他的论点是,我们在研究生课程里学的那些函数空间范畴都不对,或者说不是最自然的,存在性质更好的范畴。
他建立了这套理论,但其中有一条极其重要的消灭定理需要证明。我把它写在幻灯片上了,不过不打算解释这些符号和术语。总之他需要计算某个范畴论意义上的群,证明它在某种技术条件下消灭。没有这条定理,整套理论就没有任何有趣的推论,它是理论的地基。他为此写了一篇博客,说自己花了整整一年为这条定理的证明着魔,几乎要发疯。最后论证是写在纸上了,但没有人敢去核对细节,所以他自己仍有挥之不去的疑虑。
他写道:「凝聚形式体系能否卓有成效地应用于泛函分析,成败系于这条定理。这条定理在基础上极端重要,所以 99.9% 的把握是不够的。」他说,很高兴看到世界各地有很多研究凝聚数学的讨论班,但都在这条定理的证明前止步,「这个证明实在不好玩」。他说:「这可能是我迄今最重要的结果,最好确保它是对的。」所以他也有强烈的动机,用一种更现代的证明助手语言 Lean 把这条定理形式化。
Lean 近年发展很快,它附带一个由众人协作建设的庞大数学库。从数学公理出发推导一切,越到高深处越繁琐,而这类数学非常高深;Lean 的中心数学库则已经证明了大量中间结果,比如本科课程里的微积分、群论的基本定理、拓扑学等等。
这些都已形式化,所以你有了一个立足点:不是从公理出发,而是大致从研究生水平的数学教育出发。离目标仍有很大距离,但有帮助。不过为了形式化这条定理,他们还得添加很多东西。数学库当时不完备,现在也仍不完备,同调代数、层论、拓扑斯理论等许多领域都得往库里补。但仅仅十八个月,他们就完成了形式化。
证明基本正确。发现了一些小的技术问题,但没有重大纰漏。他们找到了一些漂亮的简化;有些技术步骤实在太难形式化,只好另找捷径。不过这个项目的价值更多是间接的。首先,它极大地扩充了 Lean 的数学库,现在这个库处理抽象代数的能力比以前强得多。其次,项目中搭建的一些配套软件,后来的形式化项目都在用,包括我自己做的项目。
举例来说,这个项目中建立了一种叫「蓝图」(blueprint)的工具。拿一个五十页的大证明直接去形式化非常痛苦,你得把整个证明装在脑子里。而我们认识到,正确的流程是先给大证明写一份蓝图,把它拆成几百个小步骤,每一步单独形式化,最后拼起来。
也就是把庞大的论证切成许多小块,先把这个写出来,然后团队里不同的人去形式化论证的不同部分。作为形式化的副产品,他们也做出了一份非常漂亮的蓝图。如果你作为人类想读这个证明,蓝图现在大概是最好的去处。
这个项目还有一个衍生成果。现在有了几万行长的形式化证明,人们开始尝试把它转换回人类可读的证明。目前已经有这样的工具:拿一个用 Lean 写的证明,比如这里有一道拓扑问题的证明,把它转换回人类可读的形式。你看到的这段文字就是从形式化证明由计算机生成的。它看上去像人写的证明,用同样的数学语言,但互动性强得多。你可以点击任何位置(我这里是静态 PDF,演示不了),它会告诉你此处的假设是什么、要证的是什么、变量是什么。哪一步写得太简略,你可以展开,它会解释这一步从何而来,想追溯到公理也可以。
我觉得这太好了。我认为将来教科书会以这种互动方式写成:先形式化,然后做出比现在互动性强得多的教材。
陶哲轩:受此启发,我自己也启动了一个形式化项目。去年我和几位合作者,包括今天在座的蒂姆·高尔斯(Tim Gowers),解决了一个组合问题。具体是什么问题不太重要:Z 模 2 的 n 次幂(所谓汉明立方体)里有一个子集,满足一个叫「小倍增」的性质,那么它的大小有一个上限。陈述本身无关紧要。
我们证明了它,证明约 33 页。我们以近乎创纪录的速度完成了形式化,大概至今仍是形式化得最快的研究论文:三周,一个约二十人的团队,用的正是舒尔策项目中开发的那套蓝图机制。它让证明这件事变得开放、协作得多,还有各种漂亮的可视化。如前所说,第一步是把大定理拆成许多小块。
我们的定理叫 PFR,原因就不解释了。它对应这张图最底下的那个小气泡,然后我们引入其他所有陈述。PFR 的证明依赖于前面若干陈述,这些陈述又依赖于更前面的,于是形成一张依赖图,气泡按形式化状态染成不同颜色:绿色气泡表示这条陈述已经在 Lean 中形式化证明;蓝色表示还没形式化,但已经可以动手了,所有定义都已就位,只等人去做;白色表示连陈述本身都还没形式化,得有人先把陈述写进去。
这样就得到一棵任务树。这个项目的妙处在于,可以让许多人各自独立地处理图上的不同部分。每个气泡对应一条陈述,你不必理解整个证明,只需做好自己那一小块。这本是一个组合问题,但贡献者中有做概率的,还有根本不是数学家的,他们是程序员,只是特别擅长解这种小谜题。每个人挑一个自己觉得能做的气泡去做,三周就全部完成了。这是一个非常令人兴奋的项目。
数学界通常不会有这么多人合作,我见过的最多也就五个人左右。因为大项目合作时,你得相信每个人的数学都是对的,人数超过一定规模就不可行了。但在这样的项目里,Lean 编译器会自动检查,任何编译不通过的东西都上传不了,会被拒绝。所以你可以和素未谋面的人合作。我因此认识了很多人,还为其中不少人写了推荐信。
这是证明的一小块,是 Lean 证明的样子。懂这门语言的话它是可读的,但看上去有点不寻常。它确实把证明这项任务拆解成了多种互不重叠的技能:有人把握全局,把问题组织成小块;另一些人未必懂全部数学,但可以一次做一小块。
我认为今后这会越来越成为做数学的常见方式。它现在仍然费力,工具在改善、在变得更友好,但你还是得有一定的编程功底。我估计形式化一个证明比手写它要多花十倍左右的时间。但另一方面,如果你想修改证明,情况就不同了。比如这条定理里原本有一个常数 12,我们后来把它改进到了 11,得到一个略强的定理。通常这样做得重写整个证明,或者把 12 复制粘贴成 11,然后再检查一遍有没有出错。
而在我们形式化之后再做这个改进,只花了几天。我们在某处把 12 改成 11,编译器就抱怨说有五个地方不通过了,明确指出哪一块出了问题,我们只需做针对性的修补。所以对某些特定类型的数学工作,形式化方法实际上已经更快了。现在还有不少大型形式化项目正在进行。
最大的是凯文·巴扎德(Kevin Buzzard)的项目,他刚拿到一笔大额资助,要用 Lean 形式化费马大定理。他说完成证明中最重要的部分需要五年,并不声称五年内做完全部,但有趣的那部分已经在路上了。以上就是形式化证明助手。
陶哲轩:接下来谈机器学习。这是用神经网络预测各种问题的答案,用法很多。第一种我准备跳过,就是用神经网络猜测微分方程的解,这是偏微分方程领域一个非常令人兴奋的新工具,但今天不讲。
我要讲的是机器学习在纽结理论中的一个应用。纽结理论是数学中很有趣的一支,它把许多彼此不怎么交流的数学领域汇聚到一起。一个纽结就是空间中一根闭合的绳圈,或者说一条闭曲线。如果能把一个纽结连续变形成另一个,过程中绳子不许穿过自身,两个纽结就是等价的。
纽结理论的基本问题是:两个纽结何时等价?给你两个纽结,有没有办法把一个变成另一个?通常的处理方法是发展所谓的纽结不变量:一些附在纽结上的数,有时是多项式,无论你怎样连续变形纽结,它们都不变。所以两个纽结不变量不同,就不可能等价。纽结不变量有很多种。有一种叫「符号差」(signature):把纽结压平,数交叉点,看每处交叉是上穿还是下穿,据此造一个矩阵,最后得到一个整数,这就是符号差,属于纽结不变量的一种。
还有一些著名的多项式,琼斯多项式和亚历山大多项式,它们与数学的许多领域有关,这里不谈。另外还有来自几何的双曲不变量:取纽结的补集,它实际上是一个双曲空间,自带几何结构和距离概念,可以算体积和其他不变量,这些是实数或复数。所以每个纽结既有符号差这样的组合不变量,也有双曲不变量这样的几何不变量。这里列出了一大批纽结及其各种双曲不变量,比如双曲体积、同调尖点形状等等,都是实数或复数。但没有人知道这两类不变量之间有什么联系。这是两套各自独立的纽结统计量,彼此之间没有已知的关联。
直到最近,人们才开始用机器学习攻这个问题。他们建立了包含几百万个纽结的数据库(这本身已经不是小事),用它训练神经网络。结果发现,训练之后,把所有双曲几何不变量输进去,大约 90% 的时候它能猜中正确的符号差。这就得到了一个黑箱,它告诉你符号差以某种方式藏在这些几何不变量里,但不告诉你怎么藏的。
不过这仍然有用,因为有了黑箱你就可以摆弄它。他们接下来做的是一个非常简单的分析,叫显著性分析(saliency analysis)。这个黑箱有大约二十个输入,对应每个双曲不变量,一个输出,即符号差。有了黑箱,你可以逐个调整输入:改动某一个输入,输出有多大可能随之改变?他们发现,二十个输入里只有三个对输出起了真正重大的作用,另外十七个几乎无关。而且这三个并不是他们预想的那几个:比如他们本以为体积很重要,结果体积几乎无关紧要。
真正重要的三个是所谓的经向平移(longitudinal translation)以及纬向平移(meridional translation)的实部和虚部。找出最重要的输入之后,他们可以直接把符号差对这三个量作图,然后用肉眼看,不靠神经网络而是靠「人脑网络」,一看就发现了一些明显的规律。盯着这些图,他们提出了关于背后机制的猜想。这个猜想后来被证明是错的,不过他们正是用神经网络证明了它错。但从它出错的方式,他们能够加以修正,找到了一个修正版的猜想,这个版本确实解释了这一现象。找到正确的陈述之后,他们就把它证明了。所以现在对于符号差为什么与这几个统计量如此密切相关,已经有了理论解释。
我认为这正是机器学习在数学中越来越常见的用法。它不直接替你解决问题,但给你许多非常有用的提示,告诉你联系在哪里、该往哪里看。真正建立联系的仍然得是人。
陶哲轩:最后是大语言模型,它最引人注目,新闻最多。神经网络已经存在二十年,大语言模型也有五年左右,但直到最近,它们的输出才达到接近人类的水平。
大家大概都听说过 GPT-4,这是 ChatGPT 目前的模型。GPT-4 发布时有一篇著名的论文描述它的能力,其中给它喂了一道 2022 年 IMO 的题目,是稍作简化的版本,研究过 2022 年 IMO 的人会注意到形式不完全一样。对这道题,你把题目给它,它确实给出了完整正确的解答。它真的解出了一道 IMO 题。可惜这是一个精挑细选的例子。他们测试了几百道 IMO 级别的题,成功率大约只有 1%。这道题它解出来了,而且还得把题目用恰当的格式呈现才行,但即便如此仍然相当惊人。
另一方面,这些工具有个奇怪的特点:人类觉得难的事,AI 有时轻松做到;人类觉得容易的事,AI 却常常做不好。它解决问题的路数与人类完全不在一个方向上。同一篇论文或者同一次演示里,他们让同一个模型做一道基本算术:7×4+8×8。模型只是根据输入猜最可能的输出,于是猜答案是 120。然后它停了一下,说也许该解释一下为什么是 120,于是一步步来算,可这一算,算出的真正答案是 92,不是它一开始给的那个。你再问它「可你刚才说是 120」,它说:「哦,那是笔误,抱歉,正确答案是 92。」
所以它们并不是从第一原理出发解决问题,只是在输出的每一步猜测接下来最自然该说什么。惊人的是这有时管用,但常常不管用。怎样让它更准确,仍在探索中,人们在尝试各种办法。可以把这些模型接到其他更可靠的软件上,接下来那场报告里你们就会看到一个大语言模型,它不自己做计算,而是把计算外包给 Python。
另一种做法是强迫语言模型只能输出正确答案:要求模型用证明助手语言输出,编译不通过就打回去让 AI 重试。还可以直接教它我们解 IMO 题的那套方法:先试简单例子、反证法、一步步严格推导等等。人们在尝试各种路子。它们现在离解决大多数奥赛题还差得远,更不用说研究问题了,但我们在进步。
除了直接解题,它还可以充当灵感的缪斯,这方面我自己也用过。我拿各种问题做过实验。有一个组合问题,我试了几种方法都不行,于是作为实验,我问 GPT:「解这个问题你还会建议哪些技巧?」它列了十种,其中大约五种我已经试过或者明显没用。但有一种我没试过,就是对这个问题用生成函数。它一提我就意识到这是正确的思路,只是我漏掉了。
所以作为一个可以对话的对象,它有些用处。现在还不算好,但也不是全无用处。
还有一类 AI 辅助,对证明助手已经非常有用。前面说过,写形式化证明极其繁琐,就像任何挑剔的计算机语言一样,语法必须完全正确,漏一步就编译不过。但有工具可以帮忙。我用的是 GitHub Copilot,你写下半个证明,它会猜下一行是什么。大约 20% 的时候它猜的接近正确,你就可以直接接受。
比如这个例子,我要证明这条陈述,灰色的行是 Copilot 建议的。第一行没用,但第二行(你们可能看不太清)确实解决了这个问题。所以你不能照单全收,因为未必能编译;但如果你本来就知道代码大致怎么写,它能省很多时间。这些工具在进步。目前如果一个证明只有一两行,它们大概能自动补全。现在还有人在试验迭代的做法:AI 提出一个证明,喂给编译器,编译出错就把错误信息传回去。用这种方法,四五行长的证明已经开始能证出来了。
当然大证明有几万行,所以离「证明立刻自动形式化」还差得很远。但它已经是有用的工具了。
陶哲轩:那么我们现在处于什么位置?有人希望几年内就能用计算机直接解决数学问题,我认为我们离那一步还很远。对于范围很窄的问题,可以搭建专门的 AI 来处理一小类问题,但即便如此也不完全可靠,只是有用而已。
至少在未来几年里,它们基本上会是非常有用的助手,超越我们已经熟悉的那种蛮力计算辅助。人们在尝试各种有创意的做法。有一个方向我特别期待,虽然还没有真正成功,就是希望 AI 能变得很擅长提出好猜想。纽结那个例子已经算是一点雏形,它能猜出两套统计量之间的联系。所以人们期待,建立巨大的数据集喂给 AI,它就能自动生成各种数学对象之间的漂亮联系。我们现在还不知道怎么做到这一点,部分原因是没有这样的海量数据集,但我认为这终将可能。
还有一件令我兴奋的事,是一种目前尚不存在的数学。现在因为证明定理是如此痛苦、艰辛的过程,我们一次只证一条定理,效率高的话也许两三条。但有了 AI,你可以想象,将来不是去攻一个问题,而是取一千个类似的问题,对 AI 说:「用这个技巧去试试这一千个问题。」它回报说:「这个技巧能解决其中 35%。换这个技巧呢?能解决这个比例。两个结合起来呢?能解决这么多。」你就可以开始探索问题的空间,而不是逐个孤立地处理问题。
这种事现在要么根本做不了,要么得花几十年、几十篇论文,慢慢摸清各种技巧能做什么、不能做什么。而有了这些工具,你真的可以开始在前所未有的规模上做数学。所以我认为未来会非常令人兴奋。当然,我们仍会用老办法证明定理,而且必须如此:如果我们自己不会做这些事,就无法引导这些 AI。但我们将能做到许多现在做不到的事。
我就讲到这里,谢谢大家。
主持人:我们的日程很紧,但据说还有时间回答大概三个问题。请举手。那边有一位。
提问者:谢谢,这场报告非常精彩。我特别喜欢关于数学形式化的部分,但有一个人您没有提到,就是沃埃沃茨基(Voevodsky)。他因为自己犯过一个错误而离开代数几何,转而去形式化同伦类型论。想请问您是否研究过这方面,有什么看法?
陶哲轩:关于沃埃沃茨基,他确实担忧数学某些领域存在危机,包括他自己开创的一些领域:证明过于抽象、过于精深,以至于根本无法核实它们完全正确。于是他提议把数学的基础换成同伦类型论,它更稳健:即便你改变底层的数学公理,在这套理论中证明的许多东西仍然成立。有一些证明助手语言就是基于同伦类型论的。Lean 有意不这样做,因为 Lean 的目标是形式化大量传统数学,而那些数学不是用这种语言写的。
我确实希望将来会有多种证明助手语言,各有长短。我们目前还缺一样东西:把一种语言里的证明自动翻译成另一种语言的方法。我认为这正是 AI 会大显身手的地方之一。一旦有了它,就算你对数学基础持不同的哲学立场,我们也有望把在一种语言里形式化的证明翻译到另一种语言,让所有人都信服,希望也包括沃埃沃茨基。
总之,形式化数学有多种路径,我们眼下当然不该急于固定在某一个标准上。
主持人:好,那就随机选一位。
提问者:我的问题与报告主题不太相关。我最近在申请博士,教授们给我的建议大体上是「读得越久越好」。看来大家普遍认为,数学家需要慢慢成长,才能驾驭大的思想。从这个角度看,您怎么看待自己那么小就上大学的决定?它对您作为数学家和作为一个人有什么影响?
陶哲轩:我在中学、本科和研究生阶段都遇到了非常好的导师。我不认为这是一场赛跑。准备好了就去上大学,不该因为有人告诉你「这件事需要 X 年」就去做。每个人情况不同。对我来说,有一点非常重要:我 13 岁上本科,但那所大学离我家很近,所以我住在父母家里,他们开车送我去上每一堂课,跑了很多路。要是没有这个条件,我想我不会有好的体验。
所以真的因人而异。我很小就上了大学,不等于每个人都该这样。这个问题没有单一的答案。
提问者:谢谢。再问一个更一般的问题:您在数不清的数学领域都有贡献,您是怎么选择下一个研究课题和想解决的问题的?另外,您的埃尔德什数(Erdős number)是多少?
陶哲轩:埃尔德什数是二,这个好答。至于怎么选题,我其实也说不清。职业生涯早期是导师给我建议问题;如今往往是机缘巧合。数学是一项非常社交化的活动,你要参加很多活动。
比如这场报告之后我就要去爱丁堡参加一个数学会议,会和很多人交流一个与 PFR 猜想相关的领域。很可能会有一些有趣的数学对话,也许从中就冒出一些研究问题。我确实有一些长期项目,有些想解决的东西。但我越来越发现,真正的问题往往来自与其他数学家的交谈。比如两年前我还不知道自己会花这么多时间谈论 AI。
我想未来会要求人们更灵活。仍然会有人专攻一个课题,只做这一个,成为某某领域的世界级专家;但我认为会有越来越多的人随时间在不同领域间游走,每隔几年就通过与人交流发现有趣的新数学。
主持人:我们得进入下一个环节了。下一位讲者是来自 XTX 的西蒙·科伊尔(Simon Coyle),他将介绍 AI 数学奥林匹克。
陶哲轩在 IMO 2024 的演讲梳理了数学研究中"机器辅助"从算盘、人类计算员、数表到 SAT 求解器的长期传统,并重点介绍三种正在改变研究数学的新工具——形式化证明助手(Lean)、机器学习和大语言模型——认为它们短期内是"有用的助手"而非独立解题者,但将催生前所未有的大规模协作与"探索问题空间"的新型数学。
依据是「computer」一词在电子计算机出现前指从事计算的人。演讲第二章(第 3—5 段)指出,1930—40 年代前计算机是机械的,更早则是人;二战期间弹道计算由大批女性计算员完成,计算单位甚至叫「kilogirl」。18 世纪起人们就用「人肉计算员」编制对数表、三角函数表,高斯本人也亲手算过素数表。因此「三四百年」指的是人类把计算工作系统化外包的历史,而非电子设备的历史。
结论是:把自然数 1 到 7825 任意二染色,必有一种颜色包含一个毕达哥拉斯三元组;而 7824 存在反例。这在第 12—14 段。染色方案有 2^7824 种,无法直接枚举,需要巧妙的 SAT 求解策略。证明凭证原始大小 200 TB,后压缩到 86 GB,当时是史上最长证明,现为第二长。陶指出这类问题很可能只有计算机才能解决,人类无辅助不可能完成。
黑尔斯 1998 年的证明有 250 页笔记加 3 GB 程序和数据,投到《数学年刊》后由 12 位审稿人评审了 4 年。最终审稿人表示对正确性有 99% 把握,但无法认证计算机计算部分。期刊做了非常罕见的处理:发表论文时附上编辑的免责说明(后来撤除)。这段(第 29 段)说明当时数学界对计算机辅助证明的合法性仍有争议,也直接催生了 Flyspeck 形式化项目。
根据第 47—48 段,改动后只用了几天时间就完成了更新。团队在形式化代码中把 12 改成 11,Lean 编译器立刻在五个具体位置报错,指出哪些步骤不再成立,他们只需做针对性修补。相比之下,传统手写证明必须通篇重检以确认替换没引入错误。陶由此得出结论:对某些特定类型的数学工作,形式化方法已经比传统方式更快。
陶在第 45 段指出,传统数学合作通常最多五人左右,因为大项目要求信任每位合作者的数学都正确,超过一定规模就不可行。而在 Lean 项目中,编译器自动检查每一处提交,编译不通过就被拒绝,正确性由机器而非人际信任担保。这样就可以与素未谋面的人协作。PFR 项目 20 人三周完成,参与者包括概率学家、程序员甚至非数学家,正是这一逻辑的实证。
第 37 段说明,形式化结果本身只确认 Scholze 的证明基本正确,仅发现一些小问题和简化。但真正的价值在于:一是大幅扩充了 Lean 数学库中的同调代数、层论等内容;二是建立了蓝图(blueprint)等配套工具和工作流程,被后续项目直接复用,包括陶自己的 PFR 项目。换言之,一次形式化的最大收益是为整个社区留下了基础设施,而非单个定理的确认。
根据第 53—56 段,机器学习先在百万级纽结数据库上训练,得到一个能用双曲不变量以约 90% 准确率预测符号差的黑箱,证明两类不变量之间确有联系但不说明原因。随后人类用显著性分析找出 20 个输入中真正起作用的 3 个(且不是预期的体积),再用肉眼看图提出猜想;猜想最初是错的,又用神经网络证伪并修正,最后由人给出证明。陶的结论是:AI 提供线索和方向,建立联系与证明仍靠人。
陶在第 57—59 段用这对例子说明大语言模型的两个特点。其一,能解 IMO 题是极度精挑细选的结果,数百道题成功率约 1%,单个惊艳案例不代表整体能力。其二,模型先猜出 120 再编推理,推理过程却得出 92,说明它不是从第一性原理求解,而是逐步猜测「下一句最自然是什么」。二者合起来指向同一结论:AI 与人类的难易分布「正交」,因此需要外接 Python、证明助手等可靠工具来约束它。
第 66—67 段提出:目前证明极其费力,数学家一次只能证一两个定理;未来可让 AI 用某种技巧批量尝试一千个相似问题,回报「此技巧能解 35%,另一技巧能解多少,结合后能解多少」,从而系统地绘制出各种方法的能力边界。现在做不到是因为这种探索要花几十年、几十篇论文才能逐步摸清。这将把数学从逐题手工作业变成对整个问题空间的统计式研究,是陶认为「前所未有」的规模。
陶本人承认了这一成本(第 47 段),但他会从三方面回应。一是维护成本:形式化后修改证明极其便宜,12 改 11 只需几天,对需要反复修改的大型证明反而更省时。二是协作收益:编译器担保正确性,使几十人乃至陌生人协作成为可能,PFR 三周完成即为例证。三是趋势:Copilot 等 AI 已能自动补全一两行乃至四五行证明,迭代式「AI 提议—编译器报错—再试」正在降低门槛。因此他的判断是形式化「仍然痛苦,但在变好」,且对特定工作已经更快。
陶明确说(第 64 段)离计算机直接解决数学问题「还很远」,未来几年 AI 主要是助手。他的立场建立在两个观察上:一是语言模型不从第一性原理推理,可靠性不足;二是「不会做就无法引导 AI」(第 67 段),人类判断力是使用 AI 的前提。演讲后几天 DeepMind 的 AlphaProof 达到 IMO 银牌水平,似乎挑战了他的谨慎,但恰恰印证了他强调的路线——用 Lean 作硬约束验证器。因此他的核心判断(AI 是放大器而非替代者,人需保留自主证明能力)在当下仍然成立。