基于集成支持向量机的故障诊断方法研究
2012-08-27王金彪
王金彪, 周 伟, 王 澍
(上海飞机设计研究院,上海 200235)
0 引言
近年来,集成学习是机器学习中的一个研究热点,它通过训练多个基分类器,并将结果按一定的方法进行集成,可以显著地提高分类系统的泛化能力,许多学者对其进行了广泛的研究,许多学者开始致力于研究集成学习的理论基础和进行算法设计[1-2]。
支持向量机 (Support Vector Machines,SVM)是基于统计学习理论的一种适合高维、小样本数据分类的学习器。和传统的学习机器相比,它可以获得和可利用样本相匹配的学习能力,从而可以具有很好的推广能力,在模式识别方面有很重要的应用[3]。SVM具有较好的泛化能力和稳定性(其结果不随训练次数发生变化)。但是实际应用中SVM也有一些缺点:首先,SVM训练问题实际上是一个凸二次优化问题,在解优化问题是采用了逼近算法,这会使结果不准确;其次,SVM的性能很大程度上取决于核函数和模型参数的选择,目前还没有一个特别有效的方法可以准确找到最优参数,这也会导致支持向量机的训练结果不是最优的。
本文拟通过集成学习的方法来提高支持向量机的泛化能力,提高支持向量机的识别精度,并应用到故障诊断中。
1 集成学习
1.1 概述
集成学习一般包含3个要素:基分类器类型、基分类器生成方法和结论生成方法。常用的基分类器有决策树、K近邻分类器、神经网络、支持向量机等。基分类器可以为同种类型,也可以为不同类型,分别称为同构集成和异构集成,其中同构集成为研究重点,异构集成研究得较少。本文采用的基分类器为支持向量机。同构集成中基分类器的生成方法主要有以下3大类。
1)对训练集进行处理。
如Breiman提出的Bagging方法,其思想是对训练集有放回地抽取训练样本,从而为每一个基分类器都构造出一个跟训练集同样大小但又各不相同的训练集,从而训练出不同的基分类器,进而构建一个多分类器系统[4]。
2)对数据特征进行处理。
其思想为对于具有多特征的数据集,通过抽取不同的输入特征子集分别进行训练,从而获得不同的基分类器,把这些分类器的分类结果适当整合能够获得比任何一个基分类器的分类精度都要高的分类器,其中子空间法为其典型代表方法[5]。
3)通过随机扰动产生具有差异性的基分类器。
随机扰动法的思想是在每个基分类器的学习过程之中引入随机扰动,使得学习出来的每个基分类器都不同,如果基分类器对随机扰动比较敏感,那么随机扰动法可以有效地产生多个不同的基分类器。这种方法比较容易在人工神经网络集成学习上进行。对于人工神经网络,使用后向传递算法来进行学习的时候对于每个神经网络的初始权值进行随机分配,则产生的基分类器会有很明显的不同;又如,对于支持向量机集成,可以扰动支持向量机模型中的核函数的参数,进而产生具有差异性的基分类器。
1.2 集成学习的有效性
Hansen和Salamon经过研究发现,假设集成由N个独立的基分类器构成,每个基分类器的分类错误率为p,采用绝对多数投票法,当参与集成的各基分类器的错误是不相关的,那么集成的误差为[6]
当基分类器之间的错误相关时,相关系数为0≤α≤1,将模型简单化,假设各个基分类器之间的错误相关部分相同,那么集成后的误差为
当各个基分类器的分类错误率均为p=0.2,相关系数为0,0.25,0.50,0.75,1 时(相关系数为0,即各基分类器的错误是完全不相关;相关系数为1,即各基分类器完全相同;相关系数越大意味着基分类器之间的差异性越小),集成后的分类错误率如图1所示。
图1 集成分类器错误率与相关系数的关系Fig.1 The relationship of the error recognition rate and correlation coefficient
上述简化模型虽不能完全反映出集成后的错误率与基分类器间差异性的关系,但一定程度上表明了两者的联系,即通过集成学习得到的多分类器系统对于基分类器有一定的要求,否则多分类器系统的泛化能力与单分类器系统相比不一定能得到提高,基分类器一般应满足以下两个原则[7]:
1)基分类器的精度应达到一定要求,对太低的精度的基分类器进行集成不会有一个好的结果,但是基分类器精度太高的话,又会影响基分类器之间的差异性;
2)各个基分类器之间应有一定的差异性,差异性是影响集成效果的重要因素,举一个极端的例子来说,如果我们对10个相同的基分类器进行集成,显而易见,泛化能力不会有任何的提高,因为这10个基分类器之间的差异性为零,这导致集成后没有效果。
总之,基分类器的精度越高、差异性越大,那么集成后的泛化能力越好,从图1中可以看出,当各个基分类器相同时(即相关系数为1,差异性最小),集成后泛化能力没有提高;随着各个基分类器之间差异性的增大(相关系数为0时,差异性最大),集成后泛化能力提升越大。另外,从图1中可以看出,随着基分类器个数的增多,集成误差越来越小,当基分类器数达到15以后,集成后误差变化不大;且随着基分类器个数的增多,模型也越复杂,训练、测试需要的时间也越多,因此本文在两者之间取一个折衷,基分类器数目取为15个。
1.3 支持向量机的稳定性
本文采用的基分类器为支持向量机,经典集成学习算法Bagging对于神经网络(Neural Network,NN)有很好的提升作用,为了了解Bagging对支持向量机的作用,本文进行了下述实验,对于Image数据集,保持模型参数不变,分别随机去除10%、20%、30%、40%、50%、60%、70%、80%、90%的数据,形成9个新的数据集,每种情况下对数据集进行了随机划分(按照6:4的比例,60%为训练集,40%为测试集),进行了10次随机划分,支持向量机识别结果如图2所示,神经网络识别结果如图3所示。
图2 SVM在Image数据集上的正确识别率Fig.2 The correct recognition rate of SVM
图3 NN在Image数据集上的正确识别率Fig.3 The correct recognition rate of NN
为了更好地定性说明问题,对数据集进行了100次随机划分(按照6:4的比例,60%为训练集,40%为测试集),计算了100次识别结果的正确识别率的均值和方差,如表1所示,方差即表征分类器对数据变化的敏感程度。
表1 NN与SVM的稳定性比较Table 1 The stability of NN and SVM
在表1中,在所有的去除率情况下,SVM的识别率均高于NN方法,且前者100次计算的方差远远小于后者,这说明SVM相对于神经网络分类器来说是一种稳定的分类器,对数据扰动不敏感,也就是说它满足了集成学习对基分类器要求的第一个条件:基分类器要有好的分类精度,却没有满足第二个条件——基分类器要有较大的差异性。而Bagging方法通过扰动数据集,来形成不同的训练集,进而来训练具有差异性的基分类器,因而这种方法对稳定性较差的分类器算法如神经网络效果比较好,而对于稳定性较好的SVM的泛化能力提升不大。
2 双重扰动集成支持向量机
对于支持向量机集成,为了更好地扩大基分类器的差异性,提高集成后的正确识别率,本文采用了同时扰动数据特征和数据集的方法,来生成基分类器,来达到提高基分类器差异性的目的。
子空间法是一种通过扰动特征来得到不同的训练集,进而得到具有差异性的基分类器的一种集成学习方法。其中的一个关键环节是:如何对特征进行扰动。本文将特征评估算法——Relief算法应用到特征扰动中,首先通过特征评估算法计算各个特征的权重,接着利用此权重向量,通过轮盘赌法产生一系列特征子集,进而得到一系列不同的训练集,使得训练集具有差异性,最后得到一系列基分类器,形成一个多分类器系统。
Relief算法是从训练集中随机选择一个样本R,然后从同类样本中寻找最近邻样本H,称为NearestHit,再从和其不同类的样本中寻找最近邻样本M,称为NearestMiss,然后对于每维特征,如果R和H在其上的距离小于R和M上的距离,则说明此维特征对区分同类和不同类的最近邻是有益的,则应该增加该特征的权重;反之,如果R和H在其上的距离大于R和M上的距离,则说明此维特征对区分同类和不同类的最近邻是有害的,则应该减小该特征的权重。Relief算法提出时针对于处理类别数为两类的数据的分类问题,后来Kononenko扩展了Relief算法得到了ReliefF算法,ReliefF可以解决多类问题以及回归问题。实际上故障诊断中分类问题一般为多类分类,因此需要利用Relief扩展后的算法ReliefF。ReliefF算法在处理多类问题时,不是从所有不同类样本集合中统一选择最近邻样本,而是从每个不同类别的样本集合中选择最近邻样本,并且不是选择一个最近邻样本,而是选择k个最近邻样本[8-9]。ReliefF算法伪代码如下所述。
通过上述RelidfF算法得到的权重向量,利用轮盘赌法进行特征的选择,双重扰动集成支持向量机算法伪代码如下所述。
3 试验验证
3.1 标准数据集验证
为了了解双重扰动集成算法对支持向量机泛化能力的提升作用,本文对于双重扰动集成支持向量机在标准数据集上进行了实验。其中集成支持向量机中基分类器个数为15,对于多类识别问题,采用一对一方法将两类支持向量机扩展为多类支持向量机。所有支持向量机核函数选为径向基核函数,最优参数通过网格法得到。子空间集成支持向量机和支持向量机在测试集上的正确识别率如表2所示,均值和方差为算法重复100次的结果(每次对数据进行按6:4的随机划分)。
表2 识别结果对比分析Table 2 Comparison of the recognition results
由表2可以看出,除了German数据集,在其他6个数据集上,双重扰动集成SVM较SVM正确识别率都有不同程度的提高,并且方差都比SVM小,说明双重扰动集成支持向量机比SVM有更强的稳定性,泛化能力较SVM有了提升。双重扰动集成SVM在这6个标准数据集上的正确识别率比子空间集成SVM的正确识别率高,究其原因,是由于双重扰动法采用了两种机制对数据进行了扰动,因此集成后结果较好。
3.2 故障数据验证
为验证双重扰动集成支持向量机在故障诊断中的作用,对在立式试验台上得到的正常状态、不平衡状态、碰磨状态、半频涡动状态4种试验数据,进行了分类识别。
故障诊断第一步,通过时域特征提取和小波包特征提取方法对信号进行分析,提取所需要的特征向量。对信号进行了时域特征提取,分别提取了波形指标、峰值指标、脉冲指标、裕度指标、偏斜度指标、峭度指标以及峰峰值,作为特征向量中的7个参数。再加上由小波包分解得到的16个特征,总共23个特征组成一个样本。从这4种状态中总共提出500个样本,其中正常状态100个样本,不平衡状态200个样本,碰磨状态100 个样本,半频涡动100 个样本[10-11]。
故障诊断第二步,利用双重扰动集成支持向量机和支持向量机对其进行分类识别,其中训练集为300个样本,测试集为200个样本,基分类器个数为15个,支持向量机核函数为径向基核函数,核函数参数通过网格法得到,识别结果如表3所示。试验结果表明,双重扰动法提高了支持向量机的正确识别率。
表3 故障诊断结果对比分析Table 3 Comparison of the fault diagnosis results
4 结论
本文对集成学习方法在支持向量机上的应用进行了研究,通过模拟试验证明了支持向量机的稳定性,说明了传统集成学习方法对其泛化能力提升有限,进而提出了双重扰动法。采用了适合的特征评估算法——ReliefF算法得到权重向量,进而通过轮盘赌法得到子空间法所需要的特征子集,并与Bagging算法结合起来,形成了双重扰动法,在标准数据集及实际故障数据上进行了试验,结果表明,双重扰动法较好地提升了支持向量机的泛化能力。
[1] DIETTERICH T G.Machine learning research:Four current directions[J].AI Magazine,1997,18(4):97-136.
[2] VALENTINI G,MASULLI F.Ensembles of learning machines[R].Neural Nets WIRN Vietri-02,Series Lecture Notes in Computer Sciences,2002.
[3] VAPNIK V.统计学习理论的本质[M].张学工,译.北京:清华大学出版社,2000.
[4] BREIMAN L.Bagging predictors[J].Machine Learning,1996,24:123-140.
[5] ZHANG Y Q,RAJAPAKSE J C.Feature selection for ensemble learning and its application[M].New Jersey:John Wiley & Sons,2008.
[6] HANSEN L K,SALAMON P.Neural network ensembles[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,1990,12(10):993-1001.
[7] DIETTERICH T G.Ensemble learning[J].The Handbook of Brain Theory and Neural Networks,2002:1-9.
[8] KIRA K,RENDELL A A.The feature selection problem:Traditional methods and a new algorithm[C]//Proceedings of the Ninth National Conference on Artificial Intelligence,1992:129-134.
[9] KONONENKO.Estimation attributes:Analysis and extensions of RELIEF[J].Proceedings of the 1994 European Conference on Machine Learning,1994(784):171-182.
[10] 胡桥,何正嘉,张周锁.基于提升小波包变换和集成支持向量机的早期故障智能诊断[J].机械工程学报,2006(8):16-22.
[11] 张岐龙,单甘霖,段修生,等.基于小波支持向量机的模拟电路故障诊断[J].电光与控制,2010,17(5):66-69.