李育恒 赵峰
摘 要:变压器故障诊断的本质是一个多分类识别问题。支持向量机(Suppot Vector Machine,SVM)能够在小样本的情况下很好的解决这种故障识别,而参数合理选择对SVM的分类性能有很大的影响。讨论利用多种算法优化SVM分类器参数,并结合LIBSVM工具箱进行分析,给出了其GUI图形界面。对比分析了单一算法和混合算法对SVM性能的影响,并结合具体数据进行实例验证,可以作为变压器故障诊断辅助方法。
关键词:变压器;故障诊断;支持向量机;混合优化算法
引言
变压器为系统中最重要的设备之一,运行状态直接影响到整个系统的安全性和稳定性。近几年,在变压器故障诊断中,提出了将DGA技术与人工智能算法相融合。支持向量机为一种机器学习算法,能够很好解决多分类识别问题。而在支持向量机参数选择过程中,提出了利用算法进行优化。例如文献1提出利用改进网格在SVM故障诊断应用;文献2给出利用CV和GA相结合的方法。讨论利用单一算法寻优SVM参数,在其分类器的性能不是较高的基础上,提出了利用交叉验证和粒子群相融合方法,来提高分类器的分类性能,达到提高故障诊断率目的。
1 基于网格法参数寻优
基于RBF核函数的SVM,其优化的参数为(C,g)[3]。参数(C,g)的搜索范围为[2-x,2x]。其指数的大小影响到网格的密度,如果指数取值很大,虽然能找出最优的参数,但是其复杂程度很高,且运算时间长。其搜索的过程为:取参数(C,g)的初始值为。给定搜索的范围为[2-15,215]。在这个范围内搜寻最佳的参数C和g。固定初始值C,选取g的步长为L为0.5。在范围[2-15,215]内以L为0.5的迭代步长进行搜索。寻找出最佳的g。固定初始值g,同样选取C的步长L为0.5。在范围[2-15,215]内以L为0.5的迭代步长进行搜索。寻找出最佳的C。
基于LIBSVM FARUTO版本的函数调用格式为:
[bestacc,bestc,bestg]=SVMcgForClass(train_label,train,cmin,cmax,gmin,gmax,cstep,gstep,accstep)
其中,train_label、train分别为训练集的标签和训练集数组,其输入格式与LIBSVM相同。cmin、cmax为惩罚参数C的变化范围,即在[2cmin,2cmax]范围内搜寻最佳的参数C。gmin、gmax为RBF参数g的变化范围,即在[2gmin,2gmax]范围内搜寻最佳的RBF核参数g。cstep、gstep是进行参数C,g的步进大小,取步进的为0.5,即以2min,2 min+0.5…,2max来进行搜索。bestCVaccuracy为最终CV意义下的最佳分类准确率。bestc为最佳的参数c。bestg为最佳的g。
在数据的预处理方面,归一化函数调用句柄为:
[train_scale,test_scale,ps]=scaleForSVM(train_data,teat_data,ymin,ymax)
其中,train_data为训练集,test_data为测试集,ymin为归一化范围下限,默认值为0;ymax为归一化范围上限,默认值为1;train_scale为归一化后的训练集,test_sacle为归一化后的测试集,ps为归一化映射。
从文献提供的变压器DGA数据共128组,其中107组作为训练数据,21组作为测试数据[4][5]。如图1为网格寻优视图。
由1图可知,基于网格寻优的支持向量机最佳分类准确率为70.0935%,由最优参数C的值可以看出:由于给定的搜索范围较大,其搜索的复杂程度较高,整体优化运行时间为21.34s,运行时间较长。
2 基于遗传算法参数寻优
遗传算法(Genetic Algoruthm,GA)是基于自然进化法则而发展起来的随机搜素算法。其算法的主要特点是全局优化的概率算法,基于其进化特性,对于任意形式的目标函数和约束都可进行处理。遗传算法由主要的种群,染色体编码、解码,适应度函数及遗传操作部分组成。其中染色体编码方式主要有二进制编码方式和实数编码方式,遗传操作包括选择、交叉和变异[6][7]。
基于LIBSVM FARUTO版本GA参数函数句柄为:
[bestCVaccurary,bestc,bestg,ga_option]=gaSVMcgForClass(train_label,train,ga_option)
其中,ga_option为对GA参数的设置,其函数句柄为:
ga_option=struct('maxgen', '200,'sizepop',20, 'ggap',0.9, 'cbound', 'gbound, ')
maxgen为最大进化代数,默认为200,在这里设置为250代;sizepop为最大种群数量,默认为20,在这里设置为20;ggap代沟取0.9;cbound、gbound为参数c,g的变化范围,默认为0到100。在这里,参数C的范围取0到10000,参数g范围取默认值。
训练和测试数据与网格法相同。如图2为GA优化过程图。
由图2可知,在200次进化之后,参数搜索达到最佳适应度,此时的(C,g)为最佳寻优参数。基于GA优化的CV最佳分类准确率为71.026%,其结果与网格寻优差别不大。
以上两种优化支持向量机参数的方法,考虑到单一使用一种优化方法虽然能寻找出最佳的参数(C,g),但是优化后支持向量机分类性能结果不是令人满意。因此,考虑可以尝试将两种优化参数算法混合来进行优化,以达到最佳的支持向量机分类性能。鉴于此,进行采用将交叉验证方法和粒子群算法混合。
3 基于交叉粒子群算法参数寻优
3.1 算法介绍
粒子群算法(Particle Swarm Optimization,PSO)与遗传算法相似,从随机解出发通过迭代寻找最优解,通过适应度来评价解的优势。PSO 初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest。另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值[8][9]。
交叉验证(Cross Validation,CV)起初只是用于模型性能的评估,后来Stone and Geisse将其用于模型的参数选择,现在CV已成为数据挖掘和机器学习中模型性能评估和模型选择的有效方法[10][11]。常用的CV方法有K-fold Cross Validation,记为K-CV。K-CV的方法为:将样本数据集D随机分为元素个数近似相等的几个独立的子集D1,D2…Dk,用几个独立的子集进行SVM训练,分别得到不同的参数的k个模型,通过计算k个模型的平均正确率对模型性能进行评估,一般采用5-CV。
基于LIBSVM FARUTO的CV-PSO的函数调用句柄为:
[bestCVaccurary,bestc,bestg,pso_option]=psoSVMcgForClass(train_label,train,pso_option)
其中pso_option为对PSO参数的设置,其函数句柄为:
Pso_option=struct('c1',1.5,'c2',1.7,'maxgen',200,'sizepop',20,'k',0.6,'wV',1,'wP',1,'V',5,'popcmax',100,'popcmin',0.1,'popgma
x',1000,'popgmin',0.01)
其中,c1为PSO参数局部搜索能力,初始值为1.5;c2为PSO全局搜索能力,初始值为1.7;k的初始值为0.6,为速率和X的关系系数,即V=kX;wV初始值为1,为速率更新中速度前面的弹性系数;wP初始值为1,即种群跟新中速度前面的弹性系数;V为交叉验证数,在这里设置为5-CV;popcmax、popcmin为SVM参数c变化的上界和下界,初始值为100和0.1;popgmax、popgmin为SVM参数g变化的上界和下界,初始值为1000和0.01。在这里,参数c、g取默认值。
3.2 5-CV与PSO相结合优化SVM参数
5-CV与PSO,记为CV-PSO。其优化过程为:
(1)对SVM参数给定初始粒子速度和位置。
(2)计算个体最优位置,采用5-CV评估个体适应度,对SVM分类器参数进行选择。
(3)判断是否满足终止条件,若满足,则输出最终的参数(C,g)。
(4)否则,跟新粒子速度和位置,跳转至计算个体最优位置。
在变压器故障诊断模型上,有一对多、一对一、二叉树分类模型。其中不同的模所建立的分类器数量不同:一对多方法要构建M(M-1)/2个分类器,一对一方法要构建M个分类器。二叉树则是根据样本的维数来确定分类器数目。在变压器故障诊断模型中,有4种故障类型:中低温过热、高温过热、低能放电、高能放电,即建立3个SVM分类器将故障类型分开。GridSearch和GA算法都采用的一对多的分类模型;CV-PSO采用二叉树的分类模型[12]:即SVM1将故障分为热性故障和电性故障,SVM2将热性故障分为中低温过热和高温过热,SVM3再将电性故障分为低能放点和高能放电。
如图3给出CV-PSO优SVM1分类器过程图。
4 结束语
基于SVM的变压器故障诊断中,SVM参数的选择对分类器的性能有很大的影响,而在对参数进行的优化方法中,单一的使用一种方法可能选择出来的SVM分类器效果不是很理想。采用了CV与PSO相结合的方法用于优化SVM分类器的参数,并采用二叉树的故障诊断模型,用CV对每个SVM分类器进行性能评估,用PSO对分类器的参数进行选择。经过数据验证和对比,采用CV-PSO相结合的方法取得的较好的诊断率。
参考文献
[1]申慧 ,席慧,谢刚,等.改进的网格搜索算法在SVM故障诊断中的应用[J].机械工程与自动化,2012:34(2):108-110.
[2]尹金良,朱永利.支持向量机参数优化及其在变压器故障诊断中的应用[J].电测与仪表,2012:49(5):11-16 .
[3]方瑞明.支持向量机理论及其应用分析[M].北京:中国电力出版社,2007.
[4]刘晓津.基于支持向量机和油中溶解气体的变压器故障诊断[D].天津大学:电气与自动化工程学院,2007.
[5]张艳.基于粒子群优化支持向量机的变压器故障诊断和预测[D].西华大学:电气及其自动化学院,2011.
[6] 王小平,曹立名.遗传算法理论、应用与软件实现[M].西安:西安交通大学出版社,2002.
[7]董卓,朱永利,胡资斌.基于遗传规划和数据归一化的变压器故障诊断[J].电力科学与工程,2011:27(9):31-34.
[8]李丽,牛奔.粒子群优化算法[M].北京:冶金工业出版社,2009.
[9]吴米佳,卢锦玲.基于改进粒子群算法与支持向量机的变压器状态评估[J].电力科学与工程,2011:27(3):27-31.
[10]邓蕊,马永军,刘尧猛,等.基于改进交叉验证算法的支持向量机多类识别[J].天津科技大学学报,2007:22(2):58-61.
[11]江伟,罗毅, 光瑜,等.基于多类支持向量机的变压器故障诊断模型[J].水电能源科学,2007:25(1):52-55.
[12]肖燕彩,张清.基于模糊支持向量机的变压器故障诊断[J].北京交通大学学报,2012:36 (1):117-121.
作者简介:李育恒(1989-),男,汉,甘肃省兰州市,硕士研究生,兰州交通大学电气工程及其自动化,电力电子与电力传动。
赵峰(1966-),男,汉,甘肃省兰州市,教授,兰州交通大学,电气工程及其自动化。