当前位置: 首页 > 科技观察

最后的高数有救了!AI帮你解方程

时间:2023-03-17 14:24:19 科技观察

近日,FacebookAI宣布建立首个使用符号推理求解高等数学方程的AI系统,精度碾压Mathematica和Matla。通过开发一种将复杂数学表达式表示为一种语言的新方法,然后将解决方案代入神经网络的序列到序列翻译问题,研究人员建立了一种解决积分问题和一阶和二阶问题的新方法微分方程。各方面都优于传统的计算系统。以前,此类问题被认为超出了深度学习模型的范围,因为求解复杂方程需要精度而不是近似值。神经网络擅长学习如何通过近似获得成功,例如识别特定的像素模式可能是狗的图像,或者一种语言的句子特征与另一种语言的特征相匹配。求解复杂的方程式还需要处理符号数据的能力,比如公式b-4ac=7中的字母。这些变量不能直接加、乘、除,只能使用传统的模式匹配或统计分析,神经网络是仅限于极其简单的数学问题。FacebookAI表示,他们提出的解决方案是一种将复杂方程式放入语言句子的新方法,因此他们能够利用其神经机器翻译(NMT)训练模型中经过验证的技术,将问题从本质上翻译成解决方案。为了实现这种方法,他们需要开发一种方法将现有的数学表达式分解为两种语言的语法,并生成包含超过100M对方程和解的大规模训练数据集。当面对成千上万不属于训练数据的看不见的表达式时,研究人员的模型比Maple、Mathematica和Matlab等传统代数方程求解软件更快、更准确。有一个显着的改善。这项研究不仅表明深度学习可用于符号推理,还表明神经网络具有处理更广泛任务的潜力,包括那些通常与模式识别无关的任务。研究人员正在分享研究人员方法的细节,以及帮助其他人生成类似训练集的方法。应用神经机器翻译(NMT)的新方法特别擅长符号数学的人倾向于依赖一种直觉。他们了解给定问题的解决方案应该是什么,例如观察如果要积分的函数中有余弦,则其积分中很可能有正弦,然后做必要的工作来证明它。通过训练模型来检测符号方程中的模式,研究人员相信神经网络可以拼凑出解决方案的线索,这与人类基于直觉处理复杂问题的方式非常相似。因此,研究人员着手探索作为NMT问题的符号推理,其中模型可以在给定问题实例及其匹配解决方案的情况下预测可能的解决方案。我们的方法如何将现有方程(左)扩展为可用作转换模型输入的表达式树。对于这个方程,研究者模型中输入的前序序列是:(+,times,3,power,x,2,-,cos,times,2,x,1)为了用神经网络实现这个应用,研究人员需要一种新的方式来表示数学表达式。NMT系统通常是序列到序列(seq2seq)模型,使用单词序列作为输入和输出新序列,允许它们翻译完整的句子而不是单个单词。研究人员使用两步法将其应用于符号方程。首先,我们开发了一种有效解包方程的方法,在树突状分支结构中展开方程,然后将它们扩展为与seq2seq模型兼容的序列。常量和变量充当叶子,而运算符(例如加号和减号)和函数是连接树的分支的内部节点。虽然它可能看起来不像传统语言,但以这种方式组织表达式使方程具有类似语言的语法——数字和变量是名词,运算符是动词。研究人员的方法使NMT模型能够学习将给定的树结构问题与其匹配解决方案(也表示为树)的模式对齐,类似于将语言中的句子与其确认的翻译进行匹配。这种方法允许研究人员利用强大的、开箱即用的seq2seqNMT模型,用符号序列替换单词序列。构建新的训练数据集虽然研究人员的表达式树语法使NMT模型在理论上能够有效地将复杂的数学问题转化为解决方案,但训练这样的模型需要大量的例子。因为在研究人员关注的两类问题(积分方程和微分方程)中,随机生成的问题并不总是有解,研究人员不能简单地收集方程并将它们输入系统。研究人员需要生成一个全新的训练集,其中包含重构为模型可读表达式树的已求解方程的示例。这会产生“问题-解决方案”对,类似于在语言之间翻译的句子语料库。研究人员的数据集也必须比之前使用的训练数据大得多,后者试图在数千个示例上训练系统。由于神经网络通常在训练数据越多的情况下表现越好,因此研究人员创建了一个包含数百万个示例的集合。构建此数据集需要研究人员结合一系列数据清理和生成技术。例如,对于符号积分方程,研究人员改变了翻译方法:他们不是生成问题并找到它们的解,而是生成解并找到它们的问题(它们的导数),这是一项更简单的任务。这种从解决方案中生成问题的方法使得创建数百万个集成示例成为可能。研究人员生成的受翻译启发的数据集由大约100万个配对示例组成,并包含集成问题的子集以及一阶和二阶微分方程。我们使用此数据集来训练具有8个注意力头和6层的seq2seq转换器模型。Transformer通常用于翻译任务,而研究人员的网络旨在预测各种方程的解,例如确定给定函数的原语。为了评估模型的性能,研究人员向模型提供了5,000个表达式,迫使系统识别在训练期间未出现的方程式中的模式。研究人员的模型在求解积分问题时准确率为99.7%,在求解一阶和二阶微分方程时分别为94%和81.2%。这些结果超过了研究人员测试的所有三种传统方程求解器的结果。Mathematica的结果不尽如人意,同一积分问题的准确率为84%,微分方程结果的准确率为77.2%和61.6%。研究人员的模型也在不到0.5秒内返回了大部分预测,而其他系统需要几分钟才能找到解决方案,有时甚至会完全超时。研究人员的模型将左侧的方程式作为输入,并能够在不到一秒的时间内找到正确的解决方案(如右图所示)。但是Mathematica和Matlab都不能求解这些方程。将生成的解决方案与参考解决方案进行比较可以轻松准确地验证结果。但是研究人员的模型也可以为给定的方程式提供多个解。这类似于机器翻译,有很多方法可以翻译输入的句子。一个可以解方程的人工智能接下来会做什么?研究人员的模型目前处理单变量问题,研究人员计划将其扩展到多变量方程。该方法还可以应用于其他基于数学和逻辑的领域,例如物理学,这可能有助于科学家开展更广泛的工作。但研究人员的系统对神经网络的研究和使用具有更广泛的意义。深度学习可以用在以前不可能的地方,这项工作表明其他任务可能会受益于人工智能。无论是通过将NLP技术进一步应用到传统上与语言无关的领域,还是通过在新的或看似无关的任务中更开放地探索模式识别,神经网络的限制可能是想象力的限制,而不是技术的限制.