可以训练神经网络来求解数学方程吗?


24

我知道神经网络可能不是设计成这样做的,但是假设地问,是否有可能训练深度神经网络(或类似的神经网络)来解决数学方程式?

因此,给定3个输入:第一个数字,用数字(1- +,2- -,3- /,4- *等)表示的操作员符号以及第二个数字,然后在训练网络后,应该给我有效的结果。

范例1(2+2):

  • 输入1:2; 输入2: 1+); 输入3 2; 预期产量:4
  • 输入1:10; 输入2: 2-); 输入3 10; 预期产量:0
  • 输入1:5; 输入2: 4*); 输入3 5; 预期产量:25
  • 所以

以上内容可以扩展到更复杂的示例。

那可能吗?如果是这样,什么样的网络可以学习/实现?


相关视频(视频):NeuroSAT:学习解决逻辑问题的AI
kenorb

Answers:


21

是的,它已经完成了!

但是,这些应用程序并不能取代计算器或类似的东西。我与之相关的实验室开发了方程推理的神经网络模型,以更好地理解人类如何解决这些问题。这是数学认知领域的一部分。不幸的是,我们的网站提供的信息并不十分丰富,但是这里有一些此类工作示例的链接

除此之外,最近关于将神经网络扩展到包括外部存储器(例如神经图灵机)的工作倾向于将解决数学问题作为概念的良好证明。这是因为许多算术问题都涉及包含存储中间结果的长过程。见的章节本文长二进制加法和乘法。


对我来说,不仅是神经网络,而且还有带有外部存储器的神经体系结构。NTM和DNC之类的体系结构可以用来解决最短路径之类的算法,因为它们确实能够通过跟踪所做的事情来执行迭代过程(不会造成灾难性的遗忘)。但是对我来说,仅使用监督学习是完全错误的,如第二个答案所述。
Shamane Siriwardhana

第一个链接已消失,您有替换链接吗?
kenorb

这两个链接都对我有用,真是太棒了!
Zakk Diaz

8

并不是的。

当存在隐藏变量时,神经网络可用于确定输入之间的非线性关系。在上面的示例中,关系是线性的,并且没有隐藏变量。但是,即使它们是非线性的,传统的ANN设计也不太适合完成此任务。

通过仔细构造各层并严格监督培训,您可以使网络始终如一地生成输出4.01,例如输入:2、1(+)和2,但这不仅是错误的,而且本质上是不可靠的该技术的应用。


5

1)有可能!实际上,这是流行的深度学习框架Keras的一个示例。查看此链接以查看源代码

2)此特定示例使用递归神经网络(RNN)将问题作为字符序列进行处理,从而生成构成答案的字符序列。请注意,这种方法显然不同于人们倾向于思考解决简单加法问题的方式,而且可能也不是您希望计算机解决此类问题的方式。通常,这是一个使用Keras进行序列学习的例子。在处理顺序或时间序列输入时,RNN是一个流行的选择。


1

是的-从您提供的示例中可以看出,现在似乎有可能实现更多目标。本文给出的示例描述了一个相当困难的问题的DL解决方案- 为以自然语言描述的程序生成源代码

这两个问题都可以描述为回归问题(即目标是使验证集上的某些损失函数最小化),但是自然语言情况下的搜索空间要大得多。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.