当前,机器学习模型在解决微分方程等高难度数学问题方面一直存在很大限制,一些最好的模型也只是勉强回答高中水平的数学题目。
但现在,麻省理工学院(MIT)领导的研究小组开发的一种神经网络模型,可轻松应对相当于大学数学课程难度的问题。
(来源:MIT)
8 月 2 日,相关论文以《一个通过程序合成和人类层面的小样本学习的神经网络来解决、解释和生成大学数学问题》(A neural network solves, explains, and generates university math problems by program synthesis and few-shot learning at human level)为题发表在 PNAS 上。
MIT 电气工程与计算机科学系讲师伊多·德罗里(Iddo Drori)担任第一作者兼通讯作者,他也是哥伦比亚大学计算机科学系的兼职副教授。
“我们的研究是第一个解决本科数学问题的工作,这填补了使用代码和程序合成的缺失部分,并使得准确率从 8% 提高到 80% 以上。”德罗里在 MIT 官网上说。
该研究将有助于改善高等教育现状,新模型对学生和老师都能有所帮助。它能建立问题和课程的图表,基于数据的角度,助力理解课程及其先决条件之间的关系。
除了解答数学问题,新模型还能作为“机器导师”,向学生展现题目解答所涉及的步骤,并且快速生成新问题。同时,它还可以对课程内容进行简化,这可在大型开放式网络课程领域发挥重要作用。
据了解,研究人员在这项工作上花费了近两年。他们最开始发现,模型只接受文本数据训练的话,它回答高中水平数学问题时的错误率基本都在 92% 以上。
而那些利用图神经网络的模型经过一段时间训练后,能更好地解决机器学习课程问题。
然后,德罗里决定尝试将 MIT 和哥伦比亚大学的数学课程转变为相应的编程任务,这一过程用到了程序合成和小样本学习技术。
▲图 | (A)麻省理工学院、哥伦比亚大学数学课程和(B)MATH 基准数据集的自动求解率比较(来源:PNAS)
把一个问题变成一个编程任务,类似于将“找到两点之间的距离”问题重写为“编写一个找到两点之间差异的程序”,或者提供一些问题-程序对作为示例。
值得一提的是,相较之前只接受文本训练的神经网络(如 GPT-3),这一次,研究人员使用了由 OpenAI 制作的名为 Codex 的模型,该神经网络除了在文本上训练,也在 GitHub 存储库中的上千兆字节代码上做了“微调”。“微调”本质上是另一个预训练步骤,可以提高模型的性能。
由于 Codex 的训练数据有着数百万个文本单词和数百万行代码,因此它能够较好理解文本段和代码段之间的关系,并将两者进行转换,从而通过代码回答问题。
▲图 | 用 Codex 回答和生成课程题目的自动工作流示例(来源:PNAS)
值得注意的是,有时在将数学问题转化为编程任务时需要添加上下文(背景知识)或一些基本的定义解释,比如,对于问题中的“网络”一词,需要向模型标注该词代表“神经网络”,并不是指“社会网络”。
另外,可能还需要让它知道具体该使用哪个编程包。只有这样神经网络才可以正确处理问题,并输出超过 80% 的正确答案。
同时,在模型创建新的数学问题方面,德罗里在 MIT 官网表示:“在用新模型生成某些方面的问题时,它的表现让我们感到惊讶。它并不是单纯通过替换已有问题中的值来生成新问题。比如,在一个水平线和垂直线的量子检测问题中,模型生成了对角线量子探测的新问题。”
此外,研究团队还分别把模型和人类出的数学题(各 5 道)让学生去判断,看他们是否可以区分两者。结果显示,学生无法确定哪个问题具体是由 AI 产生的。
最后,在借助机器学习解决越来越困难问题领域,该研究又向前走了一步。不过,尽管模型的准确率已经非常高,但它永远不会百分百准确,而且总会有人提出一个更难的问题,它不会取代人类。这项工作在高等教育方面或可起到重要作用。
该团队还计划继续扩展该工作以突破一些限制,比如,进一步用可视化组件解决问题和提高问题的难度。此外,还会让模型接受几百门课程的训练,通过大量数据让其性能加速增强,从而能够对课程设计提出更好的见解。
参考资料:https://news.mit.edu/2022/machine-learning-university-math-0803https://www.pnas.org/doi/10.1073/pnas.2123433119