基于Cholesky分解的最小二乘支持向量机学习算法及其应用的制作方法

文档序号:15387705发布日期:2018-09-08 00:46阅读:324来源:国知局

本发明涉及机器学习算法和航空发动机故障检测技术领域,用最小二乘支持向量机(leastsquaressupportvectormachine)改进算法解决正常类和故障类样本的类不平衡问题并用于航空发动机故障检测。



背景技术:

近年来不平衡数据的分类越来越受到学术界、工业界和其他领域的关注。正常状态下的样本容易得到而且数据量庞大,然而故障样本不像正常样本那么多,获取它的成本却很高。为了解决类不平衡学习问题,许多不同的技术被提出,比如欠/过采样,敏感函数学习方法。随机欠采样(under-sampling)的方法是通过减少分类中多数类样本的数量实现两类样本数平衡,目的是通过随机消除多数类的样本来平衡类分布,直到多数类和少数类样本实现平衡。对于代价敏感函数学习方法,不同误分类代价是不一样的。

支持向量机(supportvectormachine,简称svm)广泛应用于实际问题,具有扎实的数学背景,泛化能力强,在各领域中解决分类问题时性能良好。然而svm应用于不平衡数据集时表现不良。svm的分类边界偏向于多数类,对少数类预测的性能较差。大多数经典的算法都假设类分布平衡或者误分类代价相等。因此,遇到不平衡数据集时,这些算法不能正确地代表数据的分布特征。那么对数据各类预测的精度就不高,算法价值不大。为了解决类不平衡学习问题,许多改进的提高分类性能的技术被提出,它们普遍称为类不平衡学习(classimbalancelearning,简称cil)方法。许多应用都面临cil问题,如脸部识别,故障诊断,奇异点检测,邮件分类等。近年来cil课题受到越来越多学者的关注。

数据样本中正类和负类样本数不平衡,即存在多数类和少数类时,cil问题就出现了。one-classclassification(occ)的思想被提出并用来解决cil。在occ中,负类样本被视为异常值。one-classsupportvectormachine(ocsvm)为occ算法的典型代表。ocsvm算法广泛应用于故障检测,文件分类,奇异点检测等等。

然而经典的svm仅有一个正则化参数,在处理类不平衡数据时,没有高效的策略来调整边界到理想位置。分类边界会倾斜到多数类,少数类的性能指标会下降。为了消除这个问题,给正类和负类的松弛变量加以不同正则化参数的方法被提出,这个方法是分别用c+和c-衡量正类和负类误分类的代价,使类不平衡对分类器造成的影响降低。另外一种用于cil的方法是z-svm,在生成svm模型后,通过改变偏差b,决策边界朝少数类移动,提升了分类性能。但是如何选择最佳的z却是一个困扰的问题,需要更深入的研究。

用等式约束代替不等式约束,随之提出最小二乘支持向量机。和经典的svm相比,lssvm的缺点是非稀疏化的,这个缺点限制了算法的预测速度。有许多快速稀疏化的方法用来解决lssvm的稀疏性问题,然而这些技术经常会忽略非支持向量产生的约束。一般来说,完全忽略这部分约束是不合理的。约简技术就是用来解决这个困境的,在优化时它考虑了所有的约束。约简技术的方法是随机选择1-10%的训练样本作为支持向量集。然而这种随机选取支持向量的方法会降低分类器的泛化能力。



技术实现要素:

发明目的:为克服在处理类标准svm、lssvm分类效果不佳的问题,本发明对正常类样本和故障类样本分别添加不同的正则化参数c+和c-以保持分类边界位于理想位置,建立分类效果优良的分类器,消除了经典的svm和lssvm对所有误差都是同一个惩罚系数而不便调整分类边界的缺陷。用迭代策略和约简策略相结合的方法实现算法的稀疏化,cholesky分解方法解决迭代策略中矩阵求逆导致结果不稳定的问题及缩短训练时间。

技术方案:

一种基于cholesky分解的最小二乘支持向量机学习算法,分别对正类样本和负类样本的松弛变量加以不同的正则化参数,包括如下步骤:

步骤1:建立最小二乘支持向量机的数学模型:

其中x是样本,是样本的标签,n表示样本的规模,n+表示正类样本的规模,n-为负类样本的规模,n=n++n-代表样本松弛变量,c+和c-是正则化参数,是一个非线性变换,用来把输入空间中的非线性拟合问题转化为高维特征空间中的线性拟合问题。

构造lagrange函数:

其中,为lagrange乘子,由karush-kuhn-tucker条件可以得到下式:

消去式(3)中的ξi、ξj和w,得到如下的线性方程组

其中i=1,...,n+,j=1,...,n+1=[1,...,1]t,i为适宜维度的单位矩阵,k(·,·)为核函数,α为lagrange乘子,b为偏差。

步骤2:利用约简技术约简最小二乘支持向量机:

s表示支持向量的索引集,并代入式(2),得到:

可得:

其中算子⊙表示hadamard积。

步骤3:将式(6)中矩阵进行cholesky分解,采用迭代策略求解式(6)得到模型参数(α,b)。

若矩阵是奇异的,对其正则化z+μi使矩阵非奇异,μ=10-6

假设给定下三角矩阵满足下列cholesky分解:

式(7)为第n步更新,当样本xq选为支持向量时,第n+1步更新为:

其中

第n步迭代时,由式(6)可计算得到

第n+1步迭代时,上式更新为

步骤4:根据得到如下决策函数:

优选的,采用迭代策略从样本索引集q中选出支持向量索引q,训练样本中与索引对应的样本作为支持向量xq。

在第n步时,式(5)简化成为下式:

固定和bn不变,式(14)转化成:

其中

式(15)的最优值是:

通过下式从样本索引集q中选出支持向量索引q到支持向量索引集s中:

迭代初始时刻q={1,2,...,n},q被选为支持向量索引后,s=s∪{q},q=q\{q}。

迭代停机标准为n>m或者m为支持向量个数,ε为数量级为10-4的正数。

优选的,所述c+和c-通过十折交叉验证的方法选取,对应的备选集分别为{103,2·103,...,104}、{105,106,...,1010}。

上述算法在航空发动机故障检测中的应用,包括如下步骤:

步骤1:采集全飞行包线内,航空发动机各部件正常状态下的样本,记为正类样本,故障状态下的参数样本,记为负类样本;

步骤2:将样本归一化后,将样本与其对应的样本标签作为训练样本训练最小二乘支持向量机;

步骤3:用最小二乘支持向量机判断航空发动机新样本属于正类样本还是负类样本。

有益效果:类不平衡学习问题中,对正常类和故障类样本引入两个不同的正则化参数改善经典lssvm的分类性能;迭代策略和约简技术相结合使算法稀疏化满足航空发动机故障检测对实时性的要求;再采用cholesky分解保证了发明算法的稳定性,减少了算法的训练时间,并使性能指标g-mean优秀,提升了算法分类效果。

附图说明

图1为cfrrlssvm-cil算法流程图。

图2为航空发动机主要部件。

图3.1-3.4为不同情况下四个算法性能比较图。

具体实施方式

航空发动机故障检测中,把正常误诊为故障的代价和故障误诊为正常的代价是不同的,因而本发明对正常样本的误差和故障样本的误差给以不同的正则化参数c+和c-实现分类边界的优化。得到的数学模型为

其中是样本的标签,代表松弛变量,其中的n=n++n-,c+和c-是正则化参数,是一个非线性变换,用来把输入空间中的非线性拟合问题转化为高维特征空间中的线性拟合问题。为解决这个优化问题,构造一个lagrange函数:

其中为lagrange乘子。由karush-kuhn-tucker(kkt)条件可以得到下式:

消去式(3)中的ξi、ξj和w,可以得到如下的线性方程组

其中(i=1,...,n+,j=1,...,n+),(i=1,...,n+,j=1,...,n-),(i=1,...,n+,j=1,...,n-),1=[1,...,1]t,i为适宜维度的单位矩阵,k(·,·)为核函数,求解式(4)可以得到如下决策函数来预测新样本:

由式(3)中αi=c+ξi、αj=c-ξj可知,只要训练误差ξi、ξj不为零,αi、αj就不为零。一般情况下训练误差几乎不可能为零,那么αi、αj就不会为0,这就意味着所有的训练样本几乎都是支持向量。在处理数据量小的训练样本时算法无不良影响。当训练样本数足够大时,决策函数的运算时间会大大增加,式(5)的实时性能会下降。在对实时性要求高的应用中,就有必要提高lssvm的实时性,也即对该算法进行稀疏化。

本发明实现算法稀疏性的方法是迭代策略和约简的技术相结合,得到迭代约简最小二乘支持向量机(recursivereducedleastsquaressupportvectormachine,简称rrlssvm)。由式(3)中n=n++n-。可知w与整个训练样本集都相关,这就导致经典lssvm的解缺乏稀疏性。为解决这个问题,采用约简策略,强制令其中s为选择子集索引的集合,并代入式(2)中可以得到:

可得:

其中kij=k(xi,xj)(i,j∈s),若矩阵是奇异的,可以对其进行正则化处理z+10-6i。通过求解式(6),可以由如下决策函数预测新样本:

由式(8)知,子集{(xi,yi)}i∈s未知。如果随机选取子集{(xi,yi)}i∈s,这会导致lssvm的稀疏性不够或者泛化能力不够。因而子集的选择非常重要,选择到子集中的样本应该能充分代表整个样本训练集的特征,即在构成约简lssvm的模型中起到关键性的作用。下一步就采用迭代策略选择对目标函数贡献大的样本作为支持向量,最终得到子集{(xi,yi)}i∈s。

式(6)改写成:

将式(9)展开如下:

如果在第(n+1)步xq被作为支持向量,则

其中在第n步时,已知,由sherman-morrison公式可以得到下式:

其中根据式(12),在第(n+1)步,αn+1和bn+1可以由下式得到:

在第n步时,和bn已计算出来,如下式:

那么将式(14)代入式(13)可以得到:

由式(12)和式(15)就可有效地更新u、b和α。

下面将介绍迭代策略来选择约简的子集。在第n步时,子集大小为s,且和bn已经计算出来,式(9)简化成为下式:

固定和bn不变,式(16)转化成:

其中

式(17)的最优值是:

这样可以通过下式从集合q中选出索引q到子集s中,公式如下:

然后考虑停机标准,当集合s中元素个数达到预先定义的一个正整数m或者时ε为数量级为10-4的正数,停止从集合q中选择q。如果ε增加,集合s的元素个数减少,反之元素个数增加。至此,结合迭代策略和约简技术,就可以提出用于类不平衡学习的rrlssvm-cil。

下面给出rrlssvm-cil算法的实现过程:

算法1:rrlssvm-cil

下面是算法rrlssvm-cil的收敛性证明。

定理1:式(6)中的目标函数ls随着m的增加或者ε的减小而单调下降。

证明:在第n步迭代时(此时样本xq没有被选中),式(6)的目标函数为:

在样本xq被选中后,此时的目标函数变为:

比较式(21)和(22)可知,αq=0不在式(22)的约束中,则式(21)是式(22)的一个特例,继而得到证毕。

为补足迭代策略中矩阵求逆方法导致结果不稳定和时间复杂度太大的缺点,采用cholesky分解的方法迭代更新。

定理2:假设给定下三角矩阵满足下列cholesky分解:

式(23)为第n步更新,当样本xq选为支持向量时,第n+1步更新为:

其中

证明:是矩阵的cholesky分解的逆,那么:

由sherman-morrison公式知:

其中a、b、d是适宜维度的矩阵,而且a、b可逆,那么:

证毕。

第n步迭代时,由式(10)可计算得到

第n+1步迭代时,上式更新为

将式(24)代入式(31)中得到:

那么s=s∪{q}且q=q\{q}。当算法不满足停机准则时,继续执行选择新的索引。

下面是cfrrlssvm-cil算法的实现过程:

算法2:cfrrlssvm-cil

由式(24)可知,当选择一个新的支持向量时,更新分解矩阵的逆的计算代价是o(nn+n2),如果是从零开始计算,要包含cholesky分解矩阵和求解它的逆,那么计算复杂度是o(nn+n3)。因此缓解了计算压力,比rrlssvm-cil算法更优。

选择radial-basisfunction(rbf)核函数用于这些算法训练。然后lssvm和lsocsvm算法分别从备选集{101,102,...,1010}和{2-3,2-2,...,20,...23}中选择最优的正则化参数c和σ。对于rrlssvm-cil和cfrrlssvm-cil算法,需要同时优化正则化参数c+、c-和σ,其对应的备选集分别为{101,102,103,104}、{105,106,...,1010}、{2-3,2-2,...,20,...23}。所有算法中选择最优参数的方法是十折交叉验证。十折交叉验证用来测试算法的准确性,是常用的测试方法。具体做法是,将数据集等分成十份,轮流将其中的9份作为训练集,1份作为测试集进行试验。试验选(tp代表预测为正且标签为正的样本数,tn代表预测为负且标签为负的样本数,fp代表预测为正但标签为负的样本数,fn代表预测为负但标签为正的样本数)作为评价算法好坏的性能指标,每次试验都会得出相应的g-mean。10次结果的g-mean平均值作为对算法性能的估计,对每一组c+、c-和σ都有一个估计的g-mean值,最大的g-mean值对应的那一组参数即为实验选取到的最优参数。

所有实验都在配置为intelrcoretm、i5-7400cpu、3.00ghz主频、8g内存、windows10系统和matlab2016a版本的台式电脑上执行。

本发明用双转子涡轮喷气发动机做测试,如图2所示,该发动机主要部件包括进气道,低压压气机(lowpressurecompressor,简称lpc),高压压气机(highpressurecompressor,简称hpc),燃烧室,高压涡轮(highpressureturbine,简称hpt),低压涡轮(lowpressureturbinelpt)和尾喷管。2表示进气道出口,22表示低压压气机出口,3表示高压压气机出口,42表示高压涡轮出口,46表示低压涡轮出口。气流经进气道流入压气机,通过低压压气机和高压压气机后气体为高压气。在燃烧室内,燃油喷入并和高压气体混合燃烧形成混合气,混合气流经高压涡轮和低压涡轮时,通过高压轴和低压轴分别相连的高压压气机和低压压气机被驱动。最终热气以高速排入大气中。

与航空发动机转子相连的lpc,hpc,hpt和lpt在高转速下易发生故障,因此仅考虑这四个部件出现的故障。实验前收集全飞行包线的仿真数据,其中包含2324个正常状态样本,2321个lpc故障样本,2325个hpc故障样本,2333个hpt故障样本和2349个lpt故障样本。把正常状态归为正类,其余故障归为负类,即为二分类问题。每个样本有14维,分别是飞行高度、飞行马赫数、高压转子转速、低压转子转速、t22、p22、t3、p3、t42、p42、t46、p46、压比(t46/t2)和燃油流量,其中t22表示低压压气机出口温度,p22表示低压压气机出口压力,其余参数是依照相同的规则命名。实验前对样本归一化处理。实际上航空发动机故障类数据难以获得,故障样本是少于正常样本的,因此航空发动机的故障检测是一个类不平衡问题。为进行多次试验,调整类不平衡的比例(正类/负类)分别为5、10、15和20,共4种情况。把每一类的数据集随机划分为训练集和测试集。对于航空发动机实例,把故障判为正常的代价是非常巨大的,这是在航空发动机故障检测中不希望看到的结果。综合考虑正常和故障的查准率或查全率是合理的,那么用g-mean作为评价指标就能同时关注到预测为正常和故障的情况,并能评价分类器的性能。

由图3.1-3.4可知,从g-mean稳定值看,lssvm值比lsocsvm大,lssvm算法比lsocsvm好。而且cfrrlssvm-cil算法的值远高于lssvm、lsocsvm、rrlssvm-cil三种,这表明cfrrlssvm-cil算法几乎完全正确预测出正常样本和故障样本,cholesky分解方法使预测效果显著提高。rrlssvm-cil和cfrrlssvm-cil算法的g-mean值比lssvm大,意味着引入两个不同的正则化参数分别作用于正常类松弛变量和故障类松弛变量这种思路把分类边界调整得更优,是可行且有效的。与lssvm、lsocsvm、rrlssvm-cil算法相比,cfrrlssvm-cil需要更少的支持向量但同时保持了优秀的性能,cfrrlssvm-cil和rrlsscmcil算法实现了稀疏化,这会减少预测时间,达到提高航空发动机故障检测的实时性目的。与rrlssvm-cil算法相比,cfrrlssvm-cil在支持向量逐渐增加时,g-mean值是稳定上升的,而rrlssvm-cil随着支持向量个数变化g-mean值上下波动,cfrrlssvm-cil弥补了算法迭代策略中求矩阵的逆使结果不稳定的缺陷。通过以上分析,航空发动机故障检测算法优劣排序为cfrrlssvm-cil>rrlssvm-cil>lssvm>lsocsvm。

一般情况下支持向量个数越多,算法的性能越佳。但是随着支持向量个数增多,测试时间严重增加,这使算法缺乏实时性。为克服这个缺点,本发明提出的约简技术和迭代策略相结合的方法来减少支持向量个数被证实是高效的。由表1可知,从测试时间看,四种情况的结果均表明rrlssvm-cil和cfrrlssvm-cil算法的测试时间远低于lssvm、lsocsvm算法。这表明约简技术和迭代策略相结合的方法的确减少了支持向量的个数。对实时性要求严格的航空发动机故障检测,rrlssvm-cil和cfrrlssvm-cil算法是适用的。从训练时间看,lssvm和lsocsvm算法的训练时间远小于rrlssvm-cil和cfrrlssvm-cil算法,因为lssvm和lsocsvm只需求解一个线性方程组,而提出的算法rrlssvm-cil和cfrrlssvm-cil要多次迭代求解线性方程组。比较rrlssvm-cil和cfrrlssvm-cil算法,后者所需时间比前者少,表明cholesky分解方法求解矩阵的逆降低了时间计算复杂度。从g-mean值看,达到最大值时,cfrrlssvm比rrlssvm-cil所需的支持向量个数少,而lssvm和lsocsvm算法往往达不到该值。但是lsocsvm比lssvm好。综合以上分析可知,cfrrlssvm-cil和rrlssvm-cil算法都能很好地用于航空发动机故障检测,而且cfrrlssvm-cil算法更优。

表1航空发动机数据实验结果

注:表中case1、case2、case3和case4分别对应类不平衡比为5、10、15、20这四种情况,#sv表示支持向量个数。

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

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