当前位置: 首页 > article >正文

【AI学习】陶哲轩在 2024 年第 65 届国际数学奥林匹克(IMO)的演讲:AI 与数学

陶哲轩在 2024 年第 65 届国际数学奥林匹克关于AI 和数学的演讲,很有意思。陶哲轩的讲话语速太快了,足见其聪明!

AI用于数学的一些方面:
在这里插入图片描述
陶哲轩介绍到刚刚被数学家接受并开始普及的方法:形式化证明辅助工具
形式化证明辅助工具是用于验证论证是否真正正确的语言,可以验证某个论点是否真实,是否可以从数据中得出结论。
在这里插入图片描述
在这里插入图片描述
现在,我们已经摸索出了一种更好的工作流程来实现形式化。
在这里插入图片描述
现在,我们使用一种更加现代化的证明辅助语言,叫做Lean。
在这里插入图片描述
团队协作证明复杂数学定理的工作流程,那就是先编写一个称为“蓝图”的详细证明计划,将整个证明分解为数百个小步骤。每个步骤可以单独形式化,然后再将它们整合在一起,这样你就可以将一个庞大的论证分解成许多小块。先编写这个蓝图,然后团队中的其他人可以对论据的不同步骤的不同部分进行形式化。
在这里插入图片描述
另一项开发工具,是将Lean语言编写的证明转换回人类可读的形式。
比如一个有关拓扑的证明:
在这里插入图片描述
陶哲轩使用的一个形式化证明,也使用了之前舒尔茨的蓝图计划
在这里插入图片描述
在这里插入图片描述
陶哲轩认为,这是将来解决数学问题的主要方法。

现在,有一些大型的数学形式化证明项目,比如:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关于机器学习的应用:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个机器学习得到一个黑箱,然后从这个黑箱就可以分析哪些主要的输入的作用,最终发现3个不变量作用比较大。而这3个不变量,与人类之前的预期是不一样的。
在这里插入图片描述
这正是机器学习在数学中越来越多被使用的一种方式,虽然它不能直接帮你解决问题,但它能提供很多有用的线索,帮你找到问题的关联。不过,任然需要人类建立这些联系。

最后讲大语言模型:
在这里插入图片描述
然后吐槽了GPT4:
在这里插入图片描述
这个问题不是 2022 年国际奥数竞赛的原始问题,而是一个简化版本。他们测试了数百道IMO击败的问题,成功率只有1%,论文里的这个是精心挑选的恰巧能做对的。
当然,陶哲轩也说了,这也非常了不起。

然后说了大模型经常不会一些简单的问题:
在这里插入图片描述
GPT可以作为一个很好的交流工具,启发你漏掉的一些想法。
在这里插入图片描述
希望AI能够直接完成证明,距离还比较远,更多是辅助工具。
还有一个方向,希望AI能够非常好的生成有价值的猜想。比如前面讲的结理论。现在还不知道具体做,部分原因是我们缺乏庞大的数据集,但是这是未来一个可能的实现方向。

还有一个方向。因为证明定理是如此繁琐和艰难的过程,我们一次只能证明一个定理,如果你效率很高,可能一次能证明两三个。但是有了 AI,你可以设想一下未来的情况,我们不是试图解决一个问题,而是处理一类类似的1000个问题,然后告诉AI,尝试用这个方法解决这 1000 个问题,然后报告结果,哦,我能用这种技术解决 35% 的问题。那么另一种技术呢?我能解决这个百分比的问题。或者如果结合这些方法,又能解决多少问题?你可以开始探索问题的空间,而不是一个接一个地解决问题。这是你现在根本无法做到的事情,或者是你需要几十年时间,通过数十篇论文慢慢搞清楚各种技术能做什么,不能做什么。但是有了这些工具,你真的可以开始做规模前所未有的数学研究。所以,未来将会非常令人兴奋。

我们仍然会以传统方式证明定理。事实上,我们必须这样做,因为如果我们自己都不知道如何做这些事情,就无法引导这些 AI。但是我们将能够做很多现在无法做到的事情。
在这里插入图片描述

转载一下微博@宝玉xp老师的总结

最近陶哲轩在 2024 年第 65 届国际数学奥林匹克上,做了一次 AI 和数学的演讲,非常精彩,从数学使用计算计算机的历史开始讲起,一直讲到大语言模型,干货相当多,尤其适合对数学有兴趣的同学。

(对数学没那么感兴趣的同学只想看 AI 部分的建议直接跳到 41 分的位置开始观看)

先摘录几个冷知识:

  1. 我们使用机器做数学计算已经有数千年,最早的机器辅助计算可能是罗马人,然后是中国的算盘

  2. 二战时就有人肉“计算机”,计算弹道和其他任务,多位女孩子,因为男士们在打仗,所以那时候的计算基本单位不是GPU,而是kilogirl-hour——“千名女孩工作一小时的计算量”

  3. 现在,数学家们使用一种现代化的证明辅助编程语言,叫做 Lean。在 Lean 中有一个核心的数学库,通过众包的方式开发的,本科数学课程中看到的内容,比如微积分基础、群论基础或者拓扑学等等,这些都已经被形式化了,所以你不用从公理开始。

  4. 现在数学领域有一种团队协作证明复杂数学定理的工作流程,那就是先编写一个称为“蓝图”的详细证明计划,将整个证明分解为数百个小步骤。每个步骤可以单独形式化,然后再将它们整合在一起,这样你就可以将一个庞大的论证分解成许多小块。先编写这个蓝图,然后团队中的其他人可以对论据的不同步骤的不同部分进行形式化。

去年,陶哲轩和几位同事一起解决了一个组合数学问题。这是一个组合学的问题。大约20人在短短三周内完成了,使用了蓝图工具,参与的人中有概率论专家,甚至还有一些并非数学家的人,他们是程序员,但在解决这些小型拼图问题上非常擅长。每个人都挑选了一个觉得自己能做的小任务,并完成了它。

在数学领域,通常很难这么多人一起合作,一般最多可能五个人合作。因为在大项目上合作时,你必须相信每个人的数学都是正确的。但是,一旦超过一定规模,这就无法实现了。但现在借助 Lean 编译器,它能自动检查。团队成员无法上传任何编译不通过的内容,会被拒绝。因此,你可以与一些从未见过的人合作。

最后是讲大语言模型,首先陶哲轩就打脸了 GPT-4 的论文(我猜是微软那篇《GPT-4,通用人工智能的火花》),论文中号称 GPT-4 能解决国际数学奥林匹克问题,但实际上,这个问题不是 2022 年国际奥数竞赛的原始问题,而是一个简化版本,并且他们测试了几百道国际奥数竞赛问题,成功率只有1%,论文里的这个是精心挑选的恰巧能做对的。

并且陶哲轩提到了基于大语言模型的一些改进的方案:

比如 CoT(Chain of Thought),也就是 LLM 做简单的算术运算都做不对,但是如果让它一步步解释,可能就对了。还可以教 AI 一些解题技巧,比如尝试简单的例子,反证法,尝试逐步证明等。

比如让模型和编程语言或者工具连接,将大语言的输出结果交给 Wolfram 这样的专业数学工具或者 Python 这样的编程语言验证,并且迭代的进行修正和验证,直到得到正确的结果,这可以提升大语言模型生成的效果。

即使借助这些手段,大语言模型还远远不能解决大多数数学问题,更不用说数学研究问题了!

当然陶哲轩也没太过打击大家对于 AI 的信心,表示我们在 AI 上还是在不断的取得进展,还提到了他日常是怎么用 AI 的,比如说把 AI 当成灵感之源。

我曾遇到过一个问题,我尝试了几种方法,但都无法解决。于是,我尝试询问 GPT,你建议我使用什么其他方法来解决这个问题?GPT 给我提供了 10 种可能的方法,其中有 5 种我已经尝试过,或者明显没有帮助。的确,有几种方法并不实用。但其中有一种我还没尝试过的方法,那就是针对这个问题使用生成函数。当 GPT 建议我使用这种方法时,我意识到这就是我漏掉的正确方法。所以,将 GPT 视为一个交流伙伴,它确实具有一定的用处。

还有使用 GitHub Copilot 帮他写代码,让它自动生成下一步的证明结果,Copilot 的智能提示有 20% 的概率能生成正确的下一步结果。

例如我使用的一个叫 GitHub Copilot 的工具,你只需要写下一半的证明,它就会尝试猜测接下来的内容。大概有 20% 的情况下,它能猜到接近正确的答案。然后你就可以说,我接受这个答案。好的,那么在这种情况下,我正在试图证明这个陈述。灰色的部分是 Copilot 给出的建议。结果发现第一行完全没用。不过第二行,尽管你可能看不清楚,却真的解决了这个问题。所以,你不能盲目接受它的输入,因为这些代码未必能顺利编译。但如果你对代码的运作方式已经有所了解,这将大大节省你的时间。这些工具正在变得越来越好。现在如果一个证明只需要一两行,它们就能自动完成。现在已经有了这样的实验,即通过迭代地让 AI 提供证明,然后让编译器进行反馈,如果编译出错,就把错误信息反馈给 AI。通过这种方法,我们开始能够验证四五步长的证明。当然,一个大型的证明可能需要数万行。所以,我们还没有达到能够立即得到一个正式证明的程度。但是,这已经是一个相当有用的工具。

对于大家关心的问题: AI 在数学领域现在到了哪一个阶段?是否未来几年利用 AI 能直接解决数学问题?

陶哲轩也给出了他的看法:

我认为我们还远远没有达到这个阶段。如果我们专注于非常特定的问题,你可以定制专门的 AI 来处理一小部分问题。即便如此,它们也不是完全可靠的,但还是有用的。不过至少在接下来的几年里,它们基本上将是非常有用的辅助工具,超越了我们已经熟悉的暴力计算辅助。

他还提到了一些可能的 AI 能在数学领域提供帮助的方向:

  • AI 能够非常好地生成有价值的猜想

比如,我们已经看到了关于结理论的例子,它们已经可以推测出两个不同的统计量之间的关系。因此,我们希望能够创建大量的数据集,输入到 AI 中,它们就会自动找出各种不同的数学对象之间的有趣联系。虽然我们还不知道如何做到这一点,部分原因是我们没有这些庞大的数据集。但我认为这是未来可能实现的一个方向。

  • 批量或者说规模化的证明大量数学定理

现在,因为证明定理是如此繁琐和艰难的过程,我们一次只能证明一个定理,如果你效率很高,可能一次能证明两三个。但是有了 AI,你可以设想一下未来的情况,我们不是试图解决一个问题,而是处理一类类似的1000个问题,然后告诉AI,尝试用这个方法解决这 1000 个问题,然后报告结果,哦,我能用这种技术解决 35% 的问题。那么另一种技术呢?我能解决这个百分比的问题。或者如果结合这些方法,又能解决多少问题?你可以开始探索问题的空间,而不是一个接一个地解决问题。这是你现在根本无法做到的事情,或者是你需要几十年时间,通过数十篇论文慢慢搞清楚各种技术能做什么,不能做什么。但是有了这些工具,你真的可以开始做规模前所未有的数学研究。所以,未来将会非常令人兴奋。

演讲环节结束前的最后一句话说的特别好:

我们仍然会以传统方式证明定理。事实上,我们必须这样做,因为如果我们自己都不知道如何做这些事情,就无法引导这些 AI。但是我们将能够做很多现在无法做到的事情。

这恰恰也是我们现在使用 AI 辅助编程的问题:如果我们自己都不知道如何构建软件,就很难引导好 AI 帮助我们生成高质量的代码。

尽管 AI 在数学和编程领域变得越来越有用,但人类的洞察力和创造力仍然是创作价值的关键。

另外后面提问环节也不错,第一个提问谈到了借助 AI 可以某种语言的形式化证明翻译成另一种语言。

第二个提问中陶哲轩谈到了他 13 岁上大学的事情,说明了他高中和大学都有优秀的导师指导,并且当时离家近还可以住家,否则不一定有很好的大学经历,也确实,13 岁孩子独自上大学,还是挺难的。

我有一些非常好的导师,无论是在高中还是本科阶段。我认为这并不是一场竞赛。也就是说,你应该在准备好上大学的时候再去。你不应该只是因为别人告诉你需要几年或者做些什么就去上大学。我觉得每个人的情况都不同。这对我来说非常重要。也就是说,我 13 岁就开始读本科了,而且是在离我家非常近的一所大学。所以我和我的父母住在一起,他们经常开车送我去大学上课。如果没有这些条件,我想我的大学经历不会那么好。所以这真的因人而异。也就是说,我在很年轻的时候就完成了大学学业,但并不是说每个人都应该这样做。这个问题没有唯一的答案。

第三个提问中谈到了如何选择研究课题的,一方面他有长期的课题,一方面他经常参加一些学术活动,在交流碰撞中自然能产生有趣的研究课题,如果不是和其他数学家的交流,两年前他从没想过自己会这么多地谈论 AI。

不闭门造车真的是很赞👍

我的厄尔多什数字是 2,这个很简单。至于选择研究主题,早在我职业生涯的初期,我的导师会向我建议一些问题。如今,很多时候问题是偶然出现的。我认为数学是一个非常社交的活动。你参加很多活动,例如,接下来我要去爱丁堡参加一个数学会议,我将和很多人交谈,他们都在研究 PFR 猜想这个领域。可能会有一些有趣的数学对话,也许还会产生一些研究问题。我确实有一些长期项目想要解决,但越来越多的问题是通过与其他数学家交流自然产生的。比如,两年前我从没想过自己会这么多地谈论 AI。我认为,未来需要更大的灵活性。当然,仍然会有一些人专攻某一个课题,成为某个领域的世界专家,但我认为会有越来越多的人会随着时间的推移而改变研究领域。他们会每隔几年通过与他人交谈发现新的有趣的数学课题。


注:厄尔多什数(Erdős number)是一个数学家之间的合作距离的概念,用来表示某位数学家与著名匈牙利数学家保罗·厄尔多什(Paul Erdős)之间在发表论文上的合作关系。具体来说,厄尔多什数是根据以下规则确定的:

  1. 保罗·厄尔多什本人具有厄尔多什数0。
  2. 与厄尔多什直接合作过(即与他共同发表过论文)的数学家具有厄尔多什数1。
  3. 与厄尔多什数为1的人合作过但没有直接与厄尔多什合作过的数学家具有厄尔多什数2,以此类推。

简单来说,厄尔多什数衡量的是一个数学家与保罗·厄尔多什的学术合作距离。这个概念在数学界和计算机科学界非常流行,主要用于展示学术合作网络的广泛性。拥有较低厄尔多什数的人通常意味着他们在学术合作网络中处于较中心的位置。


视频链接:https://www.bilibili.com/video/BV1kssseFE6X/?spm_id_from=333.999.0.0&vd_source=986224b0c4e79ec28556778dc7d42405


http://www.kler.cn/a/306107.html

相关文章:

  • 表的数据结构和常见操作
  • ssm114基于SSM框架的网上拍卖系统的设计与实现+vue(论文+源码)_kaic
  • Python的Matplotlib
  • java的JJWT 0.91在jdk21中报错的解决方法
  • 项目技术栈-解决方案-web3去中心化
  • 数字IC后端实现之Innovus specifyCellEdgeSpacing和ICC2 set_placement_spacing_rule的应用
  • 基于YOLOV8+Pyqt5光伏太阳能电池板目标检测系统
  • 使用docker配置wordpress
  • SQLite的入门级项目学习记录(一)
  • Kafka 消息丢失如何处理?
  • kubeadm方式安装k8s续:
  • 【Unity实战】SO反序列化正确姿势
  • 【智路】智路OS Airos Edge 2.0 Quick Start
  • 利用 FastAPI 和 Jinja2 模板引擎快速构建 Web 应用
  • 通过logstash同步elasticsearch数据
  • 【资料分析】常见的坑
  • 文件外发怎么保证安全
  • sqli-labs靶场自动化利用工具——第1关
  • 在Coontroller层中我们经常使用的@RequestParam, @PathVariable, @RequestBody ,区别以及各自的使用场景
  • golang实现从服务器下载文件到本地指定目录
  • 简单接口自动化框架实现(Python+requests+pytest)
  • _Array类,类似于Vector,其实就是_string
  • 编写程序模版的搭建
  • Android Kotlin 中的 `groupBy` 方法详解
  • 手机玩机常识____展讯芯片刷机平台ResearchDownload的一些基本常识与问题解决
  • 基于CosyVoice的多语言语音合成技术解析