AI 在最不擅长的数学方面,这次大幅刷新了最好成绩。
其中关键角色是 OpenAI 给 Lean 做的一个定理证明器。
听起来有点耳熟。没错,就是去年参加国际数学奥林匹克竞赛的非人选手 Lean~
自从 2013 年微软研究院推出 Lean 以来,就一直尝试让 AI 在数学命题证明这方面取得进展。
而这次也确实得到了回报,OpenAI 新做的这个定理证明器让它学会了解决一部分有难度的高中奥数题,包括美国的数学竞赛 AMC12,AIME 甚至是国际奥数竞赛中的题。
它首先会用语言模型将数学问题转化为另一种形式,列出隐藏的条件和已知信息,然后来推理求证。
虽然在刚开始效果并不明显,只能证明几个命题但是在不断地搜索新的证明,经过八次迭代之后,在 miniF2F 测试中,成功地把分数从 29.3% 刷到了 41.2%
我们来看看这 AI 是怎么在奥数题上施展拳脚的。
AI 如何做奥数题
先来看一个简单的问题热热身:
对于所有大于等于 9 的整数 n,证明下图中的式子是一个完全平方数。
按照普通人的思考方式,可以先把式中分子提出一个 n 的阶乘,与分母约去。
然后分子化简为2这在形式上就是一个完全平方数,问题得证
那 AI 是怎么做的呢。
它首先从文本中提取了条件和已知信息,例如 n 是整数,n 大于等于 9。
接下来,它把需要证明的问题换了一种说法,改为:
存在一个整数 x,使 x2 和原式相等。
然后在解题的过程中,完全由模型直接生成了一个数学项n+1作为一个解:use n+1接下来再去验证这个解是否成立
如果没有语言模型,这是不可能做到的。
这么看来这模型能耐了,还有了一些数学想法,再拿一道国际奥赛的改编题来考考它:
设 a,b,c 是一个三角形的三条边,证明 a2+b2+c2≤3abc。
同样地,AI 还是先把条件都列出来。不过这次还列出了与三角形有关的隐藏条件:
a,b,c 都是大于 0 的实数,并且有任意两边之和大于第三边。
然后模型还自创了一个方法,列出了,,,看起来好像不明所以。
但是如果把目标式子展开,你就会发现这三项正是舒尔不等式的几个对称项:
根据舒尔不等式,对所有非负实数 x,y,z 和正数 t,都有:
当 t=1 时,这和奥数题中的形式完全一样,命题得证。
这么看来,AI 这水平着实不简单啊,要构造出这种效果可绝非易事。
对奥数下手的难点
让 AI 来做奥数,确实比学生自己磕高数题难多了。
这第一个难点就是,模型不是从有限的选项中做选择要是像下围棋那样,格点就那么多,选择空间有限,还好说一点
但是做奥数,模型要从一组复杂的无限策略中做选择,期间还要生成一些数学中的术语,例如存在,任意等。
针对这个难点,OpenAI 通过在搜索证明方法时从语言模型中采样来解决。
而第二点就是模型缺乏自我对抗和博弈做奥数题和双人游戏不同,它不是和另一个玩家比赛,而是要证明一个数学命题
这样一来在双人游戏上成功的算法就不能迁移过来。
为了解决这个问题,研究人员提供了一套不同难度教辅资料,用来辅助描述问题而不需要证明。
当这些辅助的描述难度越来越大时,模型就能解决越来越难的问题。
不过这两个难点,反倒可以成为它的优势。
一方面,因为这类数学命题的证明就是需要推理,需要无限的创造力和洞察力。
另一方面,这种辅助描述式的方法也有助于 AI 自动推理的发展。
说不好,将来深度学习模型还能征服奥数这座高山。
参考链接:
。