一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于人工智能的数值积分算法

2022-11-14 15:51:46 来源:中国专利 TAG:


1.本发明涉及人工智能、数值计算方法和数据结构技术领域,具体是指一种基于人工智能的数值积分算法。


背景技术:

2.定积分是函数
ƒ
(x)在区间[a,b]上积分和的极限值,定积分的应用非常广泛,在物理学中用于计算位移、变力做功、转动惯量、磁通量、质心、形心和熵变等,在几何学中用于计算旋转体体积、弧长和不规则图形的表面面积等,此外在水利水电。航空航天、工程机械、医疗卫生、桥梁建筑、化学化工和地质能源等领域都渗透着定积分的使用,在无人驾驶技术中,无人汽车的环境感知和路径规划问题也必须有定积分的参与。
[0003]
计算定积分,主要存在以下三种情况:(1)一个方法是可以找出被积函数的原函数(前提是原函数存在),则可直接使用牛顿莱布尼兹公式进行计算,但找到被积函数的原函数不是一件容易的事,商用软件matlab和mathematic能够进行基于符号的不定积分运算,进而求解定积分,但是这些国外的商用软件受制于人,并且占用巨大的计算资源,计算速度也有很大的提升空间;(2)若已知被积函数,但找不出被积函数的原函数,就无法使用牛顿莱布尼兹公式,只能使用若干节点处函数值的线性组合近似替代定积分的真实值;(3)若被积函数未知,只给定若干节点处的函数值,则无法使用牛顿莱布尼兹公式进行计算,但可以使用数值积分方法。


技术实现要素:

[0004]
(一)要解决的技术问题为解决现有技术的上述问题,本发明提供一种基于人工智能的数值积分算法,可以有效解决:(1)对被积函数可以找出原函数的情形,传统方式寻找原函数的速度慢,进而导致定积分求解速度慢的问题;(2)针对背景技术中介绍的三种定积分的求解方式,即原函数可求、原函数不可求和被积函数未知而只有节点及对应的函数值信息,没有统一的计算框架的问题。
[0005]
(二)技术方案为了解决上述问题,本发明采用的一种技术方案为:一种基于人工智能的数值积分算法,包括数据类型判定模块、不定积分求解器、数值积分求解器和矫正输出模块,所述不定积分求解器的结构包括序列化数据处理层、自编码层和自解码层,所述自编码层包括注意力层和神经网络层;所述注意力层的具体计算步骤如下:s1、生成每个分量的取值范围在-1到1之间的特征矩阵o、p和q,其中特征矩阵o、p和q的形式分别为:
其中,特征矩阵o、p和q各自的分量oi、pi和qi的维度均为n
×
1;s2、通过特征矩阵o、p和q生成查寻矩阵in、键矩阵k和值矩阵v,计算方式为:上式中x表示被积函数的前缀序列所对应的所有embedding编码,x的维度为b
×
n,其中有:上式中,查寻矩阵in、键矩阵k和值矩阵v的维度均为b
×
m;s3、计算注意力分布,具体计算公式为:s4、根据注意力分布对值矩阵v进行加权平均,得到注意力层的输出attention-out,具体计算公式为:上式中,ai为的维度为m
×
1。
[0006]
s5、重复执行s1、s2、s3和s4步骤,生成d个注意力层的输出,并将这d个注意力层的输出按列拼接,得到多头注意力输出multi-attention-out,其维度为b
×
(m
×
d);s6、进行残差相加和层归一化操作得到注意力层的最终输出fianlout,具体计算如下:
上式中,layer_norm代表层归一化,fianlout的维度与序列化数据x的维度相同为b
×
n,fianlout的每一分量用fo1、fo2、... 、fo
n-1
和fon代表,其维度均为1
×
n。
[0007]
进一步地,所述神经网络层包含bp神经网络,所述bp神经网络的个数为b个,所述bp神经网络包括前馈输入层和中间隐层和前馈输出层构成,其中前馈输入层含有n个神经元,所述前馈输入层不参与计算,中间隐层均含有n个神经元,前馈输出层含有n个神经元;前馈输入层的输入分别为fo1、fo2、... 、fo
n-1
和fon,分别将fo1、fo2、... 、fo
n-1
和fon输入到各自的bp神经网络中计算得到的前馈输出记为e1、e2、...、e
n-1
和en,具体计算步骤为:上式中,b1表示中间隐层的偏置,b2表示前馈输出层的偏置,w1为中间隐层的内星权向量,w2为前馈输出层的内星权向量,ei为每个bp神经网络的输出,具体为e1、e2、...、e
n-1
和en,其维度均为n
×
1。
[0008]
作为优选地,所述自解码层的结构与自编码层的结构完全相同。
[0009]
进一步地,数据类型判定模块,根据数据维度判别定积分的计算是含有被积函数还是含有离散节点以及对应的函数值;作为优选地,所述序列化数据处理层将被积函数进行树形表示和embedding操作。
[0010]
所述序列化数据处理层的操作流程包括数据集生成和不定积分求解器的训练两个步骤组成,其中数据集生成的具体步骤为:s1、定积分表达式的原函数的随机生成,将定积分表达式的原函数表达为树形图,所述树形图包括根节点、内部节点和叶子节点,内部节点包括一元运算符或二元运算符,其中一元操作包括:二元操作符包括:叶子节点包括:即一元操作符随机在unaryop中选取,二元操作符随机在biop中选取,自变量始终为x,而叶子节点的取值始终是介于-6到6之间的整数;随机生成的原函数记为f;s2、对s1中随机生成的原函数f进行求导计算,计算得到的新的函数做为定积分的被积函数,记为
ƒ
,那么被积函数
ƒ
及其相应的原函数f组成训练数据的一组样本(
ƒ
,f);s3、对s2中的每组训练样本(
ƒ
,f)中被积函数
ƒ
和原函数f都进行序列化,由于
ƒ
和f是以树的形式来表达的,因此可使用前缀表达法进行序列化,得到序列化数据s和s。
[0011]
进一步地,所述数值积分求解器使用龙贝格求积算法进行求解。
[0012]
(三)有益效果本发明提供一种基于人工智能的数值积分算法,可有效解决:
(1)利用自编码层和自解码层可快速寻找被积函数的原函数,有效解决了传统基于符号计算的方式寻找原函数速度慢的问题,进一步加快了定积分的求解速度; (2)针对背景技术中介绍的三种定积分的求解方式,即原函数可求、原函数不可求和被积函数未知而只有节点及对应的函数值信息,给出了统一的计算框架。
附图说明
[0013]
图1为本发明提出的一种基于人工智能的数值积分算法的计算流程图;图2为某一具体被积函数的二叉树表示形式;图3为另一具体被积函数的二叉树表示形式;图4为又一具体被积函数的二叉树表示形式;图5为根据某一个二叉树模板实例化出两个具体被积函数的二叉树表示形式;图6为根据另一个二叉树模板实例化出两个具体被积函数的二叉树表示形式;图7为不定积分求解器的训练所需数据集的产生示意图;图8为不定积分求解器的计算流程图;图9为求积顺序和外推顺序的示意图。
[0014]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
具体实施方式
[0015]
下面将结合本方案实施例中的附图,对本方案实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本方案一部分实施例,而不是全部的实施例;基于本方案中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本方案保护的范围。
[0016]
一种基于人工智能的数值积分算法,包括数据类型判定模块、不定积分求解器、数值积分求解器和矫正输出模块,不定积分求解器的结构包括序列化数据处理层、自编码层和自解码层,自编码层包括注意力层和神经网络层;注意力层的具体计算步骤如下:s1、生成每个分量的取值范围在-1到1之间的特征矩阵o、p和q,其中特征矩阵o、p和q的形式分别为:其中,特征矩阵o、p和q各自的分量oi、pi和qi的维度均为32
×
1;s2、通过特征矩阵o、p和q生成查寻矩阵in、键矩阵k和值矩阵v,计算方式为:
上式中x表示被积函数的前缀序列所对应的所有embedding编码,x的维度为32
×
32,其中有:上式中,查寻矩阵in、键矩阵k和值矩阵v的维度均为32
×
16;s3、计算注意力分布,具体计算公式为:s4、根据注意力分布对值矩阵v进行加权平均,得到注意力层的输出attention-out,具体计算公式为:上式中,ai为的维度为m
×
1;s5、重复执行s1、s2、s3和s4步骤,生成2个注意力层的输出,并将这2个注意力层的输出按列拼接,得到多头注意力输出multi-attention-out,其维度为32
×
32;s6、进行残差相加和层归一化操作得到注意力层的最终输出fianlout,具体计算如下:上式中,layer_norm代表层归一化,fianlout的维度与序列化数据x的维度相同为32
×
32,fianlout的每一分量用fo1、fo2、... 、fo
n-1
和fon代表,其维度均为1
×
32。
[0017]
神经网络层包含bp神经网络,所述bp神经网络的个数为32个,所述bp神经网络包括前馈输入层和中间隐层和前馈输出层构成,其中前馈输入层含有32个神经元,所述前馈输入层不参与计算,中间隐层均含有32个神经元,前馈输出层含有32个神经元;前馈输入层的输入分别为fo1、fo2、... 、fo
n-1
和fon,分别将fo1、fo2、... 、fo
n-1
和fon输入到各自的bp神
经网络中计算得到的前馈输出记为e1、e2、...、e
n-1
和en,具体计算步骤为:上式中,b1表示中间隐层的偏置,b2表示前馈输出层的偏置,w1为中间隐层的内星权向量,w2为前馈输出层的内星权向量,ei为每个bp神经网络的输出,具体为e1、e2、...、e
n-1
和en,其维度均为32
×
1。
[0018]
自解码层的结构与自编码层的结构完全相同。
[0019]
数据类型判定模块根据数据维度判别定积分的计算是含有被积函数还是含有离散节点以及对应的函数值。
[0020]
序列化数据处理层将被积函数表示为二叉树、并将其改写为前缀表达式的形式,最后进行embedding操作。
[0021]
数值积分求解器使用龙贝格求积算法,已知数据形式为:上式中,自变量x中包含n 1个节点,因变量y中为每个自变量对应的函数值(测量值),给定误差不超过ξ,且a=x0,b=xn:(1)取m=0,k=0,h=b-a,求:并将数值1赋值给变量k(表示区间[a,b]的二分次数);(2)根据当前k值,按照梯形求积公式的递推化算法,逐次计算新的梯形积分值:(3)按照龙贝格求积法计算加速值,具体计算如下:上式中,m表示加速的次数,特别的,当m=0时为梯形求积序列,当m=1时为simpson求积序列,当m=2时为cotes求积序列,当m=3时为romberg求积序列;(4)终止条件判定,对于不等式:若上式不成立,则将k 1赋值给k,跳转到步骤(2)继续执行,否则终止计算,且最终积分值i可表达为:
求积顺序和外推顺序按照说明书附图中的图9进行积分求解。
[0022]
在不定积分求解器使用前需要进行训练,主要步骤包括:s1、定积分表达式的原函数的随机生成,将定积分表达式的原函数表达为二叉树结果,所述树形图包括根节点、内部节点和叶子节点,内部节点包括一元运算符或二元运算符,其中一元操作包括:二元操作符包括:叶子节点包括:即一元操作符随机在unaryop中选取,二元操作符随机在biop中选取,自变量始终为x,而叶子节点的取值始终是介于-6到6之间的整数;随机生成的原函数记为f;s2、对s1中随机生成的原函数f进行求导计算,计算得到的新的函数做为定积分的被积函数,记为
ƒ
,那么被积函数
ƒ
及其相应的原函数f组成训练数据的一组样本(
ƒ
,f);s3、对s2中的每组训练样本(
ƒ
,f)中被积函数
ƒ
和原函数f都进行序列化,由于
ƒ
和f是以树的形式来表达的,因此可使用前缀表达法进行序列化,得到序列化数据s和s。
[0023]
实施例一:首先,搭建不定积分求解器,使用数据集训练不定积分求解器,将被积函数输入到不定积分求解器中输出为对应的原函数;其次,对于某种数据表达式,数据类型判定模块判定数据类型:s1、当数据类型为二叉树形式的被积函数,则将数据输入到不定积分求解器中,依次经过序列化数据处理层、自编码层和自解码层得到被积函数的原函数的序列化表示形式,然后使用牛顿-莱布尼兹公式将定积分的积分上下限代入原函数即可求出定积分的准确值;s2、当数据类型为离散节点以及对应的函数值时,则将数据输入到数值积分求解器中,根据龙贝格求积算法进行计算,直到满足精度要求时停止计算。
[0024]
以上便是本发明具体的工作流程,下次使用时重复此步骤即可。
[0025]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0026]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
[0027]
以上对本发明及其实施方式进行了描述,这种描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献