李育恒 趙峰
摘 要:變壓器故障診斷的本質是一個多分類識別問題。支持向量機(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-),男,漢,甘肅省蘭州市,教授,蘭州交通大學,電氣工程及其自動化。