建议教你使用神经网络来解高级数学方程

2020-04-09 11:33 来源:科创网

教你使用神经网络来解高级数学方程!

作者:弗朗索瓦·查顿,纪尧姆·兰普尔译:冯玉校对:吴金娣

2650字10分钟

本文介绍了一种在深度学习中使用神经机器翻译(NMT)技术解决方程问题的方法和系统。该系统显示了深度学习在更广泛领域的潜力。

脸谱人工智能已经建立了第一个可以使用符号推理来解决高级数学方程的人工智能系统。通过开发一种新的方法将复杂的数学表达式表示为一种语言,然后将该解视为序列到序列的神经网络转换问题,我们构建了一个在求解积分问题和一阶和二阶微分方程方面优于传统计算系统的系统。

以前,这样的问题被认为超出了深度学习模型的范围,因为求解复杂的方程需要精度而不是近似值。神经网络擅长通过逼近获得成功。例如,识别像素的特定模式可能是一张狗的图片,或者一种语言的句子特征匹配另一种语言的句子特征。解复杂的方程还需要处理符号数据的能力,例如方程b-4ac=7中的字母。这些变量不能直接相加、相乘或相除。仅使用传统的模式匹配或统计分析,神经网络局限于极其简单的数学问题。

我们的解决方案是一种全新的方法,可以将复杂的方程视为语言中的句子。这使我们能够充分利用在神经机器翻译(NMT)中被证明有效的技术,并通过训练模型将问题转化为本质上的解决方案。为了实现这种方法,我们需要开发一种方法来将现有的数学表达式分解成相似的语言语法,并生成一个超过100米的配对方程和解的大规模训练数据集。

当数以千计的未知表达式出现时(这些方程不是训练数据的一部分),我们的模型比传统的代数方程求解软件,如Maple、Mathematica和Matlab,显示出更快的速度和更高的精度。这项工作不仅表明深度学习可以用于符号推理,还表明神经网络有潜力解决各种任务,包括那些与模式识别无关的任务。我们将分享我们的方法和生成类似训练集的方法的细节。

一种应用NMT的新方法

擅长符号数学的人通常依赖直觉。他们对给定问题的解应该是什么有一种感觉,例如,观察余弦是否存在于积分函数中,这意味着正弦可能存在于它的积分中,然后做必要的工作来证明这种直觉。这不同于代数所需的直接计算。通过训练模型来检测符号方程中的模式,我们相信神经网络可以拼凑出导致其解的线索,这与人类基于直觉解决复杂问题的方法大致相似。因此,我们开始把符号推理作为NMT问题来探索。在该模型中,模型可以根据问题实例及其匹配解预测可能的解。

177a5681ac5e42dc84e8917635a833b8.jpeg

作为一个例子,我们的方法将展示如何将左边的现有方程扩展到表达式树,该表达式树可用作翻译模型的输入。对于这个等式,模型的预序列输入是:(加、乘、3、乘、x、2、减、余弦、乘、2、x、1)

为了使用神经网络来实现这一应用,我们需要一种新颖的方式来表达数学表达式。NMT系统通常是序列到序列(seq2seq)模型,使用单词序列作为输入并输出新序列,从而允许它们翻译完整的句子而不是单个单词。我们用两步方法将这种方法应用于符号方程。首先,我们开发了一个分解方程的有效过程。分解后的方程排列成树状结构的分支,然后展开为与seq2seq模型兼容的序列。常量和变量充当叶子,而运算符(如加号和减号)和函数是连接树的分支的内部节点。

虽然它看起来不像传统语言,但以这种方式组织表达式可以为等式提供类似语言的语法,数字和变量是名词,运算符充当动词。我们的方法使NMT模型能够学习将给定树结构问题的模式与其匹配方程(也表示为树)的解对齐,类似于将语言句子与已确认的翻译匹配。这种方法使我们能够使用功能强大的现成seq2seq NMT模型来用符号序列替换单词序列。

建立新的训练数据集

尽管我们的表达式——树语法使得NMT模型在理论上能够有效地将复杂的数学问题转化为方程的解,但是训练这样的模型需要大量的例子。此外,因为随机产生的问题在我们关心的两类问题(积分和微分方程)中不总是有解,所以我们不能简单地收集方程并将它们输入到系统中。我们需要生成一个全新的训练集,其中包括重构为模型可读表达式树的求解方程的例子。这就产生了一个二进制方程组和解,类似于在不同语言之间翻译的句子语料库。我们的数据集也必须比该领域以前的研究中使用的训练数据大得多,这些研究试图系统地训练数千个例子。因为只有当神经网络有更多的训练数据时,它们才会表现得更好,所以我们创造了数百万个例子。

建立这个数据集需要我们集成一系列的数据清理和生成技术。例如,对于我们的符号积分方程,我们颠倒了转换方法:与其产生问题并找到它们的解,不如产生解并找到它们的问题(它们的导数)是一个容易得多的任务。这种从解决方案中产生问题的方法(有时被工程师称为陷阱问题)使得创造数百万个完整的例子成为可能。我们获得的翻译启发数据集包括大约1亿个配对示例,包括积分问题的子集以及一阶和二阶微分方程。

我们使用这个数据集来训练seq2seq transformer模型,该模型具有8个注意头和6个层。转换器通常用于翻译任务,而我们的网络旨在预测各种方程的解,例如确定给定函数的不定积分。为了评估模型的性能,我们为模型提供了5000个未知表达式,以使系统能够识别训练中没有出现的方程模式。我们的模型在解决集成问题时显示了99.7%的准确率。一阶和二阶微分方程的精度分别为94%和81.2%。这些结果超过了我们测试的所有三个传统方程解算器的结果。Mathematica得到了第二好的结果,在同样的积分问题上有84%的精度,在微分方程结果上有77.2%和61.6%的精度。我们的模型也可以在不到0.5秒内返回大多数预测,而其他系统需要几分钟来找到解决方案,有时甚至完全超时。

53ee03019af94a008d6fea64303e23fa.png

我们的模型将左边的方程(Mathematica和Matlab都不能解的方程)作为输入,并且可以在不到一秒钟的时间内找到正确的解(如上图所示)。

将生成的解决方案与参考解决方案进行比较,使我们能够轻松、准确地验证结果。然而,我们的模型也为给定的方程生成多个解。这类似于机器翻译中的情况,在机器翻译中有许多方法来翻译输入句子。

AI方程求解器的下一步是什么

目前,我们的模型适用于单变量问题,我们计划将其扩展到多变量方程。这种方法也可以应用于其他基于数学和逻辑的领域,如物理学,从而使开发软件帮助科学家做大量工作成为可能。

然而,我们的系统对于神经网络的研究和应用具有更广泛的意义。这项工作表明,在以前认为不可行的地方,通过找到一种使用深度学习的方法,其他任务可以从人工智能中受益。无论是通过将自然语言处理技术进一步应用于传统上与语言无关的领域,还是通过在新的或看似无关的任务中更加开放地探索模式识别,神经网络的局限性可能来自想象力的局限性,而不是技术。

撰写者

弗朗索瓦·萨顿脸书人工智能客座企业家

纪尧姆·兰普尔脸书人工智能研究科学家

用神经网络求解高等数学方程

END

转自: 数据派THU

版权声明:本号内容部分来自互联网,转载请注明原文链接和作者,如有侵权或出处有误请和我们联系。

标签: 方程 教你用 问题

热门文章

热点图文