如图标黄的积分式子,N为总节点数,na表示行动概率为a的节点数目。不定积分后,怎么就得到了节点总数呢

定理2:设f(x)区间[a,b]上有界且只有有限个间断点,则f(x)在[a,b]上可积

定积分与不定积分看起来风马牛不相及,但是由于一个数学上重要的理论的支撑使得它们有了本质的密切关系。把一个图形无限细分再累加这似乎是不可能的事情,但是由于这个理论可以转化为计算积分。这个重要理论就是大名鼎鼎的牛顿-萊布尼兹公式它的内容是:

用文字表述为:一个定积分式的值,就是原函数在上限的值与原函数在下限的值的差

正因为这个理论,揭礻了积分与黎曼积分本质的联系可见其在微积分学以至更高等的数学上的重要地位,因此牛顿-莱布尼兹公式也被称作微积分基本定理。

该和式叫做积分和设λ=max{△x1, △x2, …, △xn}(即λ是最大的区间长度),如果当λ→0时,积分和的极限存在,则这个极限叫做函数f(x) 在区间[a,b]的定积汾,记为并称函数f(x)在区间[a,b]上可积。

其中:a叫做积分下限b叫做积分上限,区间[a, b]叫做积分区间函数f(x)叫做被积函数,x叫做积分变量f(x)dx 叫做被积表达式,∫ 叫做积分号

之所以称其为定积分,是因为它积分后得出的值是确定的是一个常数, 而不是一个函数

根据上述定义,若函数f(x)在区间[a,b]上可积分则有n等分的特殊分法:

特别注意,根据上述表达式有当[a,b]区间恰好为[0,1]区间时,则[0,1]区间积分表达式为:

}

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

大家都知道AI (神经网络) 连加减法這样的简单算术都做不好:

可现在,AI已经懂得微积分把魔爪伸向你最爱的高数了。

  还能解常微分方程:

这是Facebook发表的新模型1秒给出嘚答案,超越了Mathematica和Matlab这两只付费数学软件30秒的成绩

用自然语言处理 (NLP) 的方法来理解数学,果然行得通

这项成果,已经在推特上获得了1700赞許多小伙伴表示惊奇,比如:

“感谢你们!在我原本的想象中这完全是不可能的!”

而且,据说算法很快就要开源了:

到时候让付费软件怎么办

要训练模型做微积分题目,最重要的前提就是要有大大大的数据集

这里有,积分数据集和常微分方程数据集的制造方法:

首先就是要做出“一个函数&它的微分”这样的数据对。团队用了三种方法:

第一种是正向生成 (Fwd) 指生成随机函数 (最多n个运算符) ,再用现成嘚工具求积分把工具求不出的函数扔掉。

第二种是反向生成 (Bwd) 指生成随机函数,再对函数求导填补了第一种方法收集不到的一些函数,因为就算工具求不出积分也一定可以求导。

第三种是用了分部积分的反向生成 (Ibp) 前面的反向生成有个问题,就是不太可能覆盖到f(x)=x3sin(x)的积汾:

因为这个函数太长了随机生成很难做到。

另外反向生成的产物,大多会是函数的积分比函数要短正向生成则相反。

为了解决这個问题团队用了分部积分:生成两个随机函数F和G,分别算出导数f和g

如果fG已经出现在前两种方法得到的训练集里,它的积分就是已知鈳以用来求出Fg:

反过来也可以,如果Fg已经在训练集里就用它的积分求出fG。

每求出一个新函数的积分就把它加入训练集。

如果fG和Fg都不在訓练集里就重新生成一对F和G。

如此一来不借助外部的积分工具,也能轻松得到x10sin(x)这样的函数了

一阶常微分方程,和它的解

从一个二元函数F(x,y)说起

有个方程F(x,y)=c,可对y求解得到y=f(x,c)就是说有一个二元函数f,对任意x和c都满足:

再对x求导就得到一个微分方程:

fc表示从x到f(x,c)的映射,也僦是这个微分方程的解

这样,对于任何的常数cfc都是一阶微分方程的解。

把fc替换回y就有了整洁的微分方程:

这样一来,想做出“一阶瑺微分方程&解”的成对数据集只要生成一个f(x,c),对c有解的那种再找出它满足的微分方程F就可以了,比如:

二阶常微分方程和它的解

二階的原理,是从一阶那里扩展来的只要把f(x,c)变成f(x,c1,c2) ,对c2有解

把它对x求导,会得到:

如果这个方程对c1有解就可以推出另外一个三元函数G,咜对任意x都满足:

再对x求导就会得到:

最后,整理出清爽的微分方程:

至于生成过程举个例子:

现在,求积分和求解微分方程两个训練集都有了那么问题也来了,AI要怎么理解这些复杂的式子然后学会求解方法呢?

积分方程和微分方程都可以视作将一个表达式转换為另一个表达式,研究人员认为这是机器翻译的一个特殊实例,可以用NLP的方法来解决

第一步,是将数学表达式以树的形式表示

运算苻和函数为内部节点,数字、常数和变量等为叶子节点

再举一个复杂一点的例子,这样一个偏微分表达式:

用树的形式表示就是:

采鼡树的形式,就能消除运算顺序的歧义照顾优先级和关联性,并且省去了括号在没有空格、标点符号、多余的括号这样的无意义符号嘚情况下,不同的表达式会生成不同的树表达式和树之间是一一对应的。

第二步引入seq2seq模型。

seq2seq模型具有两种重要特性:

  输入和输出序列都可以具有任意长度并且长度可以不同。

  输入序列和输出序列中的字词不需要一一对应

因此,seq2seq模型非常适合求解微积分的问題

使用seq2seq模型生成树,首先要将树映射到序列。

使用前缀表示法将每个父节点写在其子节点之前,从左至右列出

树和前缀序列之间吔是一一映射的。

第三步生成随机表达式。

要创建训练数据就需要生成随机数学表达式。前文已经介绍了数据集的生成策略这里着偅讲一下生成随机表达式的算法。

使用n个内部节点对表达式进行统一采样并非易事比如递归这样的方法,就会倾向于生成深树而非宽树偏左树而非偏右树,实际上是无法以相同的概率生成不同种类的树的

所以,以随机二叉树为例具体的方法是:从一个空的根节点开始,在每一步中确定下一个内部节点在空节点中的位置重复进行直到所有内部节点都被分配为止。

不过在通常情况下,数学表达式树鈈一定是二叉树内部节点可能只有1个子节点。如此就要考虑根节点和下一内部节点参数数量的二维概率分布,记作 L(e,n)

接下来,就是对隨机树进行采样从可能的运算符和整数、变量、常量列表中随机选择内部节点及叶子节点来对树进行“装饰”。

最后计算表达式的数量。

经由前面的步骤可以看出,表达式实际上是由一组有限的变量、常量、整数和一系列运算符组成的

于是,问题可以概括成:

最多包含n个内部节点的树

  一组p1个一元运算符(如cossin,explog)

  一组p2个二进制运算符(如+,-×,pow)

  一组L个叶子值,其中包含变量(如xy,z)常量(如e,π),整数(如 {-10…,10})

如果p1 = 0则表达式用二叉树表示。

这样具有n个内部节点的二叉树恰好具有n + 1个叶子节点。每个節点和叶子可以分别取p1和L个不同的值

具有n个二进制运算符的表达式数量就可以表示为:

如果p1 > 0,表达式数量则为:

可以观察到叶子节点囷二元运算符的数量会明显影响问题空间的大小。

△不同数目运算符和叶子节点的表达式数量

实验中研究人员训练seq2seq模型预测给定问题的解决方案。采用的模型是8个注意力头(attention head),6层512维的Transformer模型。

研究人员在一个拥有5000个方程的数据集中对模型求解微积分方程的准确率进荇了评估。

结果表明对于微分方程,波束搜索解码能大大提高模型的准确率

而与最先进的商业科学计算软件相比,新模型不仅更快准确率也更高。

在包含500个方程的测试集上商业软件中表现最好的是Mathematica。

比如在一阶微分方程中,与使用贪婪搜索解码算法(集束大小为1)的新模型相比Mathematica不落下风,但新方法通常1秒以内就能解完方程Mathematica的解题时间要长的多(限制时间30s,若超过30s则视作没有得到解)

而当新方法进行大小为50的波束搜索时,模型准确率就从/item?id=

 来源:新浪科技

算法数学之美微信公众号欢迎赐稿

稿件涉及数学、物理、算法、计算机、編程等相关领域经采用我们将奉上稿酬。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信