AI 又对奥数下手,刷题刷出“模考”最好成绩

吴厣 1226 0

AI 在最不擅长的数学方面,这次大幅刷新了最好成绩。

其中关键角色是 OpenAI 给 Lean 做的一个定理证明器。

听起来有点耳熟?没错,就是去年参加国际数学奥林匹克竞赛(IMO)的“非人”选手 Lean~

自从 2013 年微软研究院推出 Lean 以来,就一直尝试让 AI 在数学命题证明这方面取得进展。

而这次也确实得到了回报,OpenAI 新做的这个定理证明器让它学会了解决一部分有难度的高中奥数题,包括美国的数学竞赛 AMC12、AIME 甚至是国际奥数竞赛中的题。

它首先会用语言模型将数学问题转化为另一种形式,列出隐藏的条件和已知信息,然后来推理求证。

虽然在刚开始效果并不明显,只能证明几个命题。但是在不断地搜索新的证明,经过八次迭代之后,在 miniF2F 测试中,成功地把分数从 29.3% 刷到了 41.2%。

AI 又对奥数下手,刷题刷出“模考”最好成绩-第1张图片-小猪号

我们来看看这 AI 是怎么在奥数题上施展拳脚的。

AI 如何做奥数题

先来看一个简单的问题热热身:

对于所有大于等于 9 的整数 n,证明下图中的式子是一个完全平方数。

AI 又对奥数下手,刷题刷出“模考”最好成绩-第2张图片-小猪号

按照普通人的思考方式,可以先把式中分子提出一个 n 的阶乘,与分母约去。

然后分子化简为(n+1)2。这在形式上就是一个完全平方数,问题得证。

那 AI 是怎么做的呢?

它首先从文本中提取了条件和已知信息,例如 n 是整数、n 大于等于 9。

接下来,它把需要证明的问题换了一种说法,改为:

存在一个整数 x,使 x2 和原式相等。

AI 又对奥数下手,刷题刷出“模考”最好成绩-第3张图片-小猪号

然后在解题的过程中,完全由模型直接生成了一个数学项“n+1”作为一个解:use n+1。接下来再去验证这个解是否成立。

如果没有语言模型,这是不可能做到的。

这么看来这模型能耐了,还有了一些数学想法,再拿一道国际奥赛的改编题来考考它:

设 a、b、c 是一个三角形的三条边,证明 a2(b+c-a)+b2(c+a-b)+c2(a+b-c)≤3abc。

AI 又对奥数下手,刷题刷出“模考”最好成绩-第4张图片-小猪号

同样地,AI 还是先把条件都列出来。不过这次还列出了与三角形有关的隐藏条件:

a、b、c 都是大于 0 的实数,并且有任意两边之和大于第三边。

AI 又对奥数下手,刷题刷出“模考”最好成绩-第5张图片-小猪号

然后模型还自创了一个方法,列出了(b-a)、(c-b)、(c-a),看起来好像不明所以。

但是如果把目标式子展开,你就会发现这三项正是舒尔不等式的几个对称项:

AI 又对奥数下手,刷题刷出“模考”最好成绩-第6张图片-小猪号

根据舒尔不等式,对所有非负实数 x、y、z 和正数 t,都有:

AI 又对奥数下手,刷题刷出“模考”最好成绩-第7张图片-小猪号

当 t=1 时,这和奥数题中的形式完全一样,命题得证。

这么看来,AI 这水平着实不简单啊,要构造出这种效果可绝非易事。

对奥数下手的难点

让 AI 来做奥数,确实比学生自己磕高数题难多了。

这第一个难点就是,模型不是从有限的选项中做选择。要是像下围棋那样,格点就那么多,选择空间有限,还好说一点。

但是做奥数,模型要从一组复杂的无限策略中做选择,期间还要生成一些数学中的术语,例如“存在”、“任意”等。

针对这个难点,OpenAI 通过在搜索证明方法时从语言模型中采样来解决。

而第二点就是模型缺乏自我对抗和博弈。做奥数题和双人游戏不同,它不是和另一个玩家比赛,而是要证明一个数学命题。

这样一来在双人游戏上成功的算法就不能迁移过来。

为了解决这个问题,研究人员提供了一套不同难度“教辅资料”,用来辅助描述问题而不需要证明。

当这些辅助的描述难度越来越大时,模型就能解决越来越难的问题。

不过这两个难点,反倒可以成为它的优势。

一方面,因为这类数学命题的证明就是需要推理,需要无限的创造力和洞察力。

另一方面,这种辅助描述式的方法也有助于 AI 自动推理的发展。

说不好,将来深度学习模型还能征服奥数这座高山。

参考链接:

https://openAI.com/blog/formal-math/

标签: AI 奥数

抱歉,评论功能暂时关闭!