一种散乱数据拟合的并行计算方法与流程

文档序号:11918410阅读:254来源:国知局
一种散乱数据拟合的并行计算方法与流程

本发明涉及过程控制应用领域,尤其涉及一种散乱数据拟合的并行计算方法。



背景技术:

目前,处理散乱数据拟合,普遍采用RBF类方法,但其拟合效果具有对基函数中的参数设置非常敏感,RBF插值中心的数量不易控制等缺点,不能够很好的适应模型参数变化的特点,求解策略效率相对较低。



技术实现要素:

本发明的目的在于提供一种散乱数据拟合的并行计算方法,从而解决现有技术中存在的前述问题。

为了实现上述目的,本发明采用的技术方案如下:

一种散乱数据拟合的并行计算方法,包括如下步骤:

S1,对于多元输出y=(y(1),L,y(n)),表示为向量函数,各分量为并列的子函数y(i)=F(i)(x),i=1,L,n,构造如下模型来逼近真实解:

其中,VsìV为支持向量集;为待定系数;K(g,g)是满足Mercer条件的给定函数,称为核函数;b(i)为修正常量;

由于j=1,L,l,

其中,系数与aj是基于e不敏感函数的SVM的解,则,求解的问题即求解QP问题;

S2,根据QP问题的特点,通过矩阵分解使输出变量y为一元情况下的海赛阵 稀疏化,得到对角阵变量;

S3,联立所有的QP问题,得到联立后的QP问题,利用LDLT对联立后的QP问题进行分解转换,得到利用所述对角阵变量表示的海赛阵。

优选地,S1中,所述QP问题表示为:

s.t.eT*-α)=0

0≤α*,α≤C,

其中,e表示元素全为1的向量;y表示K是核矩阵,其中任一元素Ki,j的值为K(xi,xj);e与C为设定参数。

优选地,S2具体为:

当输出变量y为一元的情况时,所述QP问题的海赛阵为:

通过变量代换w=a*+a与b=a*-a,将所述QP问题转化为如下形式:

s.t.eTβ=0

0≤ω+β≤2C

0≤ω-β≤2C,

得到海赛阵为:

其中,o为与K同规模的零矩阵;

通过变量代换u=LTw与v=LTb,将所述QP问题转化为如下形式:

s.t.(L-1e)Tu=0

得到海赛阵为如下的对角阵变量:

优选地,S3具体为:

联立所有的QP问题,得到联立后的QP问题,如下所示:

s.t.eTβ(i)=0

0≤ω(i)(i)≤2C(i)

0≤ω(i)(i)≤2C(i),i=1,…,n.,

对联立后的QP问题进行分解转换,转换后的海赛阵为:

优选地,在CUDA环境下,使用GPU计算卡多线程执行。

本发明的有益效果是:本发明实施例提供的散乱数据拟合的并行计算方法,针对参数优化问题需要反复求解以适应模型参数变化的特点,提出可根据累积 的经验数据估计新参数所对应最优解的思想,既高维SVM拟合的并行化方法,通过分析用SVM实现的散乱数据拟合的基本原理,根据SVM拟合方法中QP问题的特点,提出了通过矩阵分解使海赛阵稀疏化的方法,并且针对多维输出的拟合问题的特点,提出联立QP求解策略,以及在CUDA环境下,借助GPU计算卡进行加速计算的方法,实现了多维函数的并行计算,从而提高了SVM拟合方法中QP求解效率。

附图说明

图1是SVM与RBN所得结果的比较;

图2是不同样本量时用SVM所得测试数据的平均值与均方差;

图3是输出维数与SVM采用不同QP求解方式所用时间的关系。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

本发明实施例提供了一种散乱数据拟合的并行计算方法,包括如下步骤:

S1,对于多元输出y=(y(1),L,y(n)),表示为向量函数,各分量为并列的子函数y(i)=F(i)(x),i=1,L,n,构造如下模型来逼近真实解:

其中,VsìV为支持向量集;为待定系数;K(g,g)是满足Mercer条件的给定函数,称为核函数;b(i)为修正常量;

由于j=1,L,l,

其中,系数与aj是基于e不敏感函数的SVM的解,则,求解的问题即求解QP问题;

S2,根据QP问题的特点,通过矩阵分解使输出变量y为一元情况下的海赛阵稀疏化,得到对角阵变量;

S3,联立所有的QP问题,得到联立后的QP问题,利用LDLT对联立后的QP问题进行分解转换,得到利用所述对角阵变量表示的海赛阵。

S1中,所述QP问题可以表示为:

s.t.eT*-α)=0

0≤α*,α≤C,

其中,e表示元素全为1的向量;y表示K是核矩阵,其中任一元素Ki,j的值为K(xi,xj);e与C为设定参数。

S2具体可以为:

应用SVM进行数据拟合的关键是求解QP问题,首先考虑输出变量y为一元(维)的情况。

当输出变量y为一元的情况时,所述QP问题的海赛阵为:

因为核矩阵K是完全稠密矩阵,所以H0也是完全稠密的。为了使QP问题的求解效率得到提高,关键是要提高海赛阵H0的稀疏度。

通过变量代换w=a*+a与b=a*-a,将所述QP问题转化为如下形式:

s.t.eTβ=0

0≤ω+β≤2C

0≤ω-β≤2C,

从变化后的等价问题中不难看出,尽管边界约束变化为了不等式约束,使得计算复杂度略有上升,但是当前的海赛阵为:

其中,O为与K同规模的零矩阵;

通过变量代换u=LTw与v=LTb,将所述QP问题转化为如下形式:

s.t.(L-1e)Tu=0

得到海赛阵为如下的对角阵变量:

相比于变换前的H1,当前H2的非零元个数只有它的1/l。显然,对角阵的稀疏结构非常简单,不仅占用的内存空间少,而且在QP求解过程中,进行相关计算的开销也相应地减少,这便意味着整体求解效率会进一步提高。

S3具体可以为:

由于各子问题所对应的优化变量是相互独立的,这样可以简单联立所有QP 子模型,形成如下更大的QP模型。

联立所有的QP问题,得到联立后的QP问题,如下所示:

s.t.eTβ(i)=0

0≤ω(i)(i)≤2C(i)

0≤ω(i)(i)≤2C(i),i=1,…,n.,

对联立后的QP问题进行分解转换,转换后的海赛阵为:

联立问题转换后的海赛阵H也是对角阵,其非零元的个数为nl,这对于规模2nl′2nl的矩阵而言稀疏性是非常高的。此外,由于大规模的矩阵分解需要很大的计算开销,如果利用了这种局部结构相同的特点,则可将转换计算量控制在一个较低的水平,有利于提高转换效率。

本发明的一个优选实施例中,在CUDA环境下,使用GPU计算卡多线程执行。

单核CPU的发展已经遇到了瓶颈,而传统CPU架构也不利于多核心效率的提高。而图形处理器(GPU)因为用途不同,其架构从一开始就是专为大量并行运算核心优化设计的。因此,本文所设计的基于SVM的散乱数据拟合方法能够借助NVIDIA的GPU计算卡可实现大规模并行计算,然后利用CUDA技术可以并行执行的优点,同时执行多个线程来提高效率。

随着输入空间的维数增加,核矩阵的条数也会非常大,面对多元散乱数据拟合的处理问题,本文采用的并行化方法处理散乱数据,能够得到更准确稳定的估计结果,优化求解的质量与效率,选用不同的损失函数与核函数,具有很大 的灵活性。

用并行的方法处理信息,需要可并行操作的算法、使用尽可能多的线程进行运算、根据最优的存储器访问模式,尽可能以最优方式组织存储器访问,计算过程中尽量使数据在多处理器的共享存储器内进行交换。应最小化大开销数学指令的使用;尽可能少用分支跳转指令,无法避免时要特别注意防止warp块内的分支。除此之外,CUDA在异步存储器操作、流管理等层面上可以进一步加强程序执行的并发性,还可利用纹理过滤快速转换数据类型以提高效能。

具体实施例:

该实施例为一个具有冷凝器与再沸器的蒸馏塔模型,其目标函数为最小化再沸器的热负荷。该模型为一中规模NLP,具有150个变量,148个等式约束及23个不等式约束。本实验一共生成450组参数,每一组所对应的优化问题用IPOPT进行求解并记录数据,所得数据的前400组用作训练样本,后50组用于检验方法的效果。在实施SVM之前,对每组数据中的参数值进行标度化处理,即

其中,s(g)为标准差公式,l为控制常数,这里设定为100。对于SVM方法而言,最优值数据z*可以不用标度化,但是为了便于最终结果的评价,这里也对它们按照数量级进行标度化。

本实施例中所使用SVM方法的实现平台为Matlab,其中的QP求解器采用了可以处理大规模稀疏问题的MOSEK。这里所用的RBN工具为Matlab中的newrbe,此工具需要人为设定的伸展参数(spread)。实验结果评价参照的标准取估计值与求解器所得最优解之间的欧氏距离。

SVM与RBN在使用时均需要人为设定相关参数,因此首要的工作是通过 分析数值模拟结果来选取参数值。

将RBN的伸展参数值取15,SVM的参数C取100,仍然按照400组样本进行训练,然后通过50组测试数据作拟合效果图1。对测试结果进一步处理有:SVM方法所得结果的平均值为5.835E-4,标准差为1.567E-4;RBN所得结果的平均值为1.430E-3,标准差为1.339E-3。尽管SVM方法所得结果比RBN的结果在数值大小上并没有非常突出的优势,但是SVM方法所结果的散布更为集中,也就意味着SVM的计算误差更易估计与控制。这个特点对于参数化优化问题的最优解估计而言是非常有用的,如果SVM的拟合误差能够得到很好的控制,那么就非常有利于进一步的误差修正以及进行优化求解器的设置。

接下来,改变训练样本的数量,依然使用与上述相同的400组测试样本,然后将不同样本数量下的拟合结果与实际值的欧氏距离求均值以及均方差,其结果如图2所示。从图中可见,SVM方法在样本量很少时就能得到非常不错的拟合效果,随着样本量的增多,拟合质量反而有所下降,这是由于参照所用的最优解也不是绝对准确的,也存在不可消除的误差。过多的训练样本,就会引入更多的不定因素,所构成的拟合曲线也更为复杂,这样就造成了拟合的样本不是越多越好的结果。

最后,图3所示为SVM采用联立QP求解策略与普通求解方式(即采用循环方式对各输出元逐一求解)的求解效率比较。实线所连的两条数据线是两种方法在输出元数量不同时求解QP所用CPU时间,虚线所连的折线是循环求解方式与联立求解方式所用的时间之比,其数值标度见图右侧。不难发现联立方式的求解速度比普通方式大为提升。不过当输出维数继续增长,计算机的运算能力也接近瓶颈,因此,在输出维数达到一定的数量时求解效率反而会逐渐变差。为应对这种情况的发生,可通过测试得到求解效率最大化的输出维数,而后采 用分块联立求解的策略来使总的求解效率最高。

通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明实施例提供的散乱数据拟合的并行计算方法,针对参数优化问题需要反复求解以适应模型参数变化的特点,提出可根据累积的经验数据估计新参数所对应最优解的思想,既高维SVM拟合的并行化方法,通过分析用SVM实现的散乱数据拟合的基本原理,根据SVM拟合方法中QP问题的特点,提出了通过矩阵分解使海赛阵稀疏化的方法,并且针对多维输出的拟合问题的特点,提出联立QP求解策略,以及在CUDA环境下,借助GPU计算卡进行加速计算的方法,实现了多维函数的并行计算,从而提高了SVM拟合方法中QP求解效率。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。

上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、 “包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1