编译 | 王晔

编辑 | 青暮

人工智能虽然给我们带来了诸多便利,但也不免受到了各种质疑。
在互联网领域表现良好的人工智能,在数学领域的很多表现却被认为是“出乎猜想地糟糕”。
基于Transformers的措辞模型在零样本和少样本等各种自然措辞处理(NLP)任务中取得了令人难以置信的成功。
但是,“这些模型在办理数学问题方面基本上是失落败的。

中国科学院院士、普林斯顿大学数学系和运用数学研究所教授、北京大数据研究院院长鄂维南曾表示,神经网络可以帮助我们有效地表示或逼近高维函数,深度神经网络是一个有效的工具,它带来的影响是巨大的。

当AI学会高数解题出题评分样样都行

以上思路更多还是基于深度学习在特色提取上的上风,然而,在更大略或“低维”函数的、符号逻辑层面的推理中,神经网络真的毫无希望了吗?

回归人工智能发展抽芽阶段,符号措辞的思想为数理逻辑的产生和发展奠定了根本。
当时人们试图将对统统事物的理解与认知化为符号措辞以及符号间的推理,以此思路构建的模型以符号为基底,但或容许以考试测验另一种思路,便是先用神经网络挖掘符号的特色。

在最新的一项研究中,用神经网络的方法精确求解低维的数学问题被证明非常有效。

值得一提的是,该项研究中还用到了OpenAI Codex。
作为一种天生软件源代码的深度学习模型,Codex 可以理解十几种编程措辞,通过 API 供应的 Codex 模型在 Python 编程中也具有极强的能力,它在实行编程任务时能够考虑到高下文信息,包括转译、阐明代码和重构代码。

该研究还被其研究团队称为“第一项可以规模化自动办理、评分和天生大学水平数学课程问题”的事情,冲破了人们普遍认为的神经网络不能办理高档数学问题的不雅观点。

“这些所谓不堪利的研究只利用了基于文本的预演习,而既对文本进行预演习又对代码进行微调的神经网络,可以通过程序合成成功办理大学水平的数学问题。

论文地址:https://arxiv.org/pdf/2112.15594v1.pdf

1

秒速解高数

机器学习模型真的可以办理单变量函数的图形绕轴旋转产生的体积、洛伦兹吸引子及其投影、奇异值分解(SVD)方法的几何图形等问题吗?

这项研究展示了机器学习在这方面的强大能力。
机器学习模型可以大规模很好地办理麻省理工学院包括单变量微积分、多变量微积分、微分方程、概率和统计学导论在内的数学课程问题。

不仅如此,该团队的研究证明它还可以办理MATH数据集的问题,“MATH数据集是衡量模型的数学问题办理能力的基准,该数据集的紧张来源是高中数学竞赛,如AMC 10、AMC 12和AIME等。
目前为止,最前辈的 Transformers ,如GPT-3,只对文本进行了预演习,GPT-3取得的最好成绩总体准确率为6.9%,并且在所有题目上的准确率都低于8.8%”。

图1:图中展示了模型可求解的高数问题。
例如,在微积分18.01-02中,求由两个二维图形限定的二维区域环绕z轴旋转一周得到的体积(右上);在微分方程18.03中,求解洛伦兹奇异吸引子(右下);在线性代数18.06中,画出奇异值分解(SVD)的几何图形(右下)。

“以前利用Transformers办理数学课程问题的事情之以是失落败,是由于像GPT-3一样的Transformers,只在文本上进行了预演习。

研究团队认为此前事情利用验证或预测表达式树的联合演习输出,虽然在办理小学水平的数学问题(如MAWPS和Math23k)时,准确率超过80%。
然而,这种方法的有效性并未在高中、数学奥林匹克或大学水平的数学课程中得到扩展。
后来有人通过与图神经网络(GNN)配对预测算术表达式树(expression trees),并在文本上预演习Transformers,来求解大学水平问题,且准确率高达95%。
但是这个结果仅限于数灯谜底,并局限于特定课程,不随意马虎扩展到其他课程。

而本文的这项研究证明,把问题变成编程任务进行程序合成,是大规模办理数学和STEM课程的关键。
“对文本进行预演习并对代码进行微调的 Transformers ,可以在MATH数据集和大学水平的数学课程上取得完美表现。

如图1所示,研究团队将麻省理工学院课程中的数学问题和MATH数据集进行处理,并将其作为输入传给OpenAI Codex Transformers,使要办理的问题转化为编程任务,然后实行自动天生程序。
问题不同,运行程序的输出形式也不同,包含数字输出形式,乃至可以通过程序合成从文本中产生图片输出形式。
该团队用prompt天生法(prompt generation methods ),使Transformers能够为每个随机抽到的问题天生带图的解题程序和方案。
比较之下,这项事情可以输出包括图表在内的多种模式,并且不须要专门的演习就可以扩展到其他数学课程。

他们还对原始问题和转化后的问题进行了比拟量化,并通过调查评估了天生问题的质量和难度。

表1:针对六门课程(18.01, 18.02, 18.03, 18.05, 18.06, 6.042)和MATH数据集的六个主题(预-代数,代数,中级代数,计数和概率,预-微积分,数论)中的一些问题的办理方案。
办理方案可包含数灯谜底、方程式和图表等。

在上表所列的麻省理工学院的数学课程中,利用该方法可以很好田主动办理、评分和天生问题,并且所有这些都是实时的,每个问题处理韶光竟不到一秒。

2

关键

研究实验题目来自麻省理工学院六门课程中随机抽取的25个问题,和MATH数据集的六个主题中各随机抽取5个问题。
并且,为相识释他们的研究结果不是过度拟合演习数据,他们还用了在演习期间网上查不到的新的运用线性代数课程COMS3251来进行验证。

技能代替人进行解题时,并不是利用技能对问题进行重大修正,而是努力提取问题的实质,因此,该团队利用Codex对问题进行了整理。

图2:问题的扩充和重组得到精确的Codex输出。

上图中,显示了利用Codex将课程问题转化为编程任务并运行程序以办理数学问题的方法。
每个面板的左半部分显示了原始问题和通过添加问题背景、互动或简化后而重新表述的问题。

添加问题背景是非常有必要的,对学生和程序来说,解题域是选择得当的解题方法的必要信息。
例如,如果没有问题背景,一个关于网络的问题,可能是关于神经网络的问题也可能是关于通信网络的问题。

面板A中对微积分方程问题的主题背景进行了补充,将其重新表述为一个编程任务的问题。
补充背景包括澄清暗昧不清的定义和运算符,或有一个以上标准用法的符号,解释学生通过学习课程就会知道的隐含假设,包括课程的主题或课题,指出学生从与问题干系的讲座或教科书章节中学到的适当方法。

面板B中利用了Python库、sympy库和streamplot库的背景,用于解题和绘制可视化图。
如果程序的语法与Python版本不兼容,或者数据类型有缺点,又或者没有利用库,合成程序在实行中可能无法得到精确的答案。

面板C中显示了概率和统计学中的一个例子,原始问题被转化为天生仿照的概率编程任务。
在做题时学生可以从课程的主题和涵盖的材料中得到一些信息,在这个过程中,要通过理解问题背景,确定所须要的是什么类型的答案,对处理形式有一个合理预期。
例如,概率或组合学中的许多问题可能须要用阶乘、组合函数或指数来回答。
因此在实验中也必须要供应背景,以便用精确的方法来处理问题。

面板D考虑到NLP模型在处理长而繁芜的文本方面有困难,因此将较长的问题分解成了详细的编程任务,并删除了多余的信息。
通过互动产生了多个图,交互式利用Codex可以使可视化图很好地被绘制出来,并且可以创造缺失落的功能或须要的库。

面板E来自《打算机科学数学》,对问题进行了简化处理,简化包括删除多余的信息,将长的句子构造分解成较小的组成部分,并将提示转换为编程格式。
概括提炼出简洁的提示和一系列较短的问题,可以提高Codex性能。

除此之外,他们还考虑了原始课程问题转化为Codex 提示的三种情形:

原样提示。
原始问题和Codex 提示是相同的;

自动提示转换。
原始问题和Codex提示不同,Codex提示是由其本身自动天生的;

手动提示转换。
原始问题和Codex提示不同,Codex提示是由人天生的。

当把问题转化为Codex提示时,又涌现了一个关键性的问题:原始问题与之后产生精确答案的提示在语义上的靠近程度如何?

图3:按课程和种别划分的所有问题的余弦相似度分布。

如图3所示,为了丈量原始问题和转化后之间的差距,他们利用Sentence-BERT嵌入之间的余弦相似度。
Sentence-BERT利用siamese和triplet网络构造对预演习的BERT模型进行了微调。
Sentence-BERT能够在句子层面上产生语义嵌入,从而可以在长篇文本中进行语义相似度比较。

运用他们的方法,对付难度较低的课程,修正少量原始问题(高余弦相似度分数),就可以达到Codex提示,输出一个供应精确答案的程序。
而每个框图左边的线代表每门课程的基准相似度分数,通过均匀每门课程中所有这样的问题组之间的相似度打算得出。

他们还做了原始问题和产生精确答案的转换版本之间的相似性分数的直方图,用来评估。

图4:最右边的一列代表了按原样或做了非常小的改动就能精确回答问题所占的百分比。

利用Codex进行提示天生也会产生一些问题。
在某些课程中,直接用未经转化的原始问题来提示Codex并不能得到精确的答案。
因此,须要将原始问题的形式进行转化,他们将其紧张分为三类:

主题背景。
为Codex供应与一样平常课程和详细问题干系的主题和副主题,可以帮助辅导Codex产生精确答案。
例如,对付概率中的条件预期问题,供应有关贝叶斯定理、预期值等背景。

库背景。
为Codex供应办理特定问题所需的编程包/库也是非常有帮助的。
例如,勾引Codex利用Python中的Numpy包以办理线性代数问题。

定义背景。
很多时候,Codex缺少某些术语的定义根本。
例如,Codex并不清楚扑克牌中 \"大众Full House \"大众的含义。
明确这些术语的定义并让Codex理解它们,可以更好地辅导其程序合成。

此外,他们还利用Codex,通过从数据集中创建一个有编号的问题列表,为每门课程天生了新的问题。
这个列表在天生随机数量的问题后会被割断,其结果将用于提示Codex天生下一个问题。
重复进行此过程,就可以为每门课程天生许多新问题。

图5:学生调查问题。
学生要对60个问题中的每一个问题进行评分。

如上图所示,他们还在麻省理工学院和哥伦比亚大学选修过这些课程或其同等课程的学生中进行了永劫光调查,比较了机器天生的问题和人写的问题在每门课程中的质量和难度。

图6. 学生调查结果。
A组基于学生的评分,比较了人工编写的问题和本文研究方法为每门课程产生的问题的难度。
该图显示了1(最随意马虎)和5(最难)之间的难度评分的均匀值,以及它们的95%置信区间。
B组显示的是人工编写的和机器天生的问题被评为适宜和不适宜该课程的百分比。
C组显示了被评为人写的或机器天生的问题的百分比。

然而,该研究还有一些局限性,如Codex只能接管基于文本的输入,因此该团队的方法无法对输入图像进行处理,无法回答带有必要视觉组成部分的问题,如数字或图表。
其次,本研究没有涉及高等数学证明的问题,他们强调,这是研究的广度所带来的限定,而不是Codex的限定。

并且,他们的方法末了一步是通过实行一个程序来完成的,例如利用Python阐明器,存在局限性。
此外,理论上繁芜性结果也不适用于本研究办理的详细实例。

3

总结

该团队的研究证明,对文本进行预演习并对代码进行微调的 Transformers能够办理演习能够通过程序合成办理、评定和天生大学水平的数学问题。

问题集的天生和剖析进一步验证了这些惊人的结果。
这项研究成功证明了当代程序设计措辞可以作为一种替代性的表述和打算环境。
由他们的方法不须要额外的演习,就可以扩展到其它STEM课程,并且可以给高档教诲带来巨大的帮助。

他们的研究证明了,用当代编程措辞进行的神经网络合成是更有活力和广泛适用的,有可能办理更广泛的问题。
只管任何有限的打算都可以被表示为足够大的表达式树,但人们可能会看到所需的表达式树的大小可能是任意大的。
与图灵完备措辞比较,这种灵巧性得到了加强,由于已经存在的大量程序语料库让可用的标记表达式树的数量黯然失落色。

“程序输出在实质上也更适宜人类阅读。
由于利用抽象化、模块化和高等逻辑的能力可以更清晰地解释办理问题的方法。
”此外,程序天生可以通过阐明性的注释以及函数和变量的名称,直接传达逻辑推论。
值得一提的是,在他们的这项研究中在Codex的一些输出中看到了这样的阐明笔墨和推导。

“这种正式和非正式措辞的统一是我们方法论的一个固有的上风。

参考资料:

1. CQ Choi, 7 revealing ways AIs fail: Neural networks can be disastrously brittle, forgetful, and surprisingly bad at math. IEEE Spectr. 58, 42–47 (2021)

雷峰网