祖文超,李紅君,苑津莎,張衛(wèi)華
(1.華北電力大學 電氣與電子工程學院,河北 保定 071003;2.大唐七臺河發(fā)電有限責任公司,黑龍江 七臺河 154600)
電力變壓器是電力系統(tǒng)中最重要的電氣設備之一,及早發(fā)現(xiàn)變壓器潛伏性故障,是電力部門關注的一個重要問題。檢測變壓器狀態(tài)的方法有很多,其中油中溶解氣體分析法 (DGA)是檢測變壓器內(nèi)部故障的重要方法,如IEC標準中的三比值法則以特征氣體的3個相對比值CH4/H2、C2H4/C2H6和C2H2/C2H4來進行故障診斷,實際應用中存在編碼不全,編碼邊界過于絕對等弊端。由于對樣本數(shù)據(jù)缺乏準確的科學分析,很難確切反映故障與表現(xiàn)特征之間的客觀規(guī)律,因此在溶解氣體含量較小的情況下,難以對變壓器狀態(tài)進行有效分析[1,2]。傳統(tǒng)方法的這些缺點無疑對變壓器潛伏性故障的發(fā)現(xiàn)和分析非常不利。因此,由于支持向量機具有小樣本學習、全局最優(yōu)、結構風險最小化及訓練診斷時間短等優(yōu)點,提出了將支持向量機用于變壓器油中溶解氣體分析的故障診斷。
SVM是針對兩分類問題設計的,不能直接用于多類分類問題。而變壓器的故障診斷實際是多類分類問題,所以目前SVM難以用來解決變壓器的故障多分類問題。為了克服這個缺陷,人們對SVM多分類算法進行了大量的研究,提出了一些有效的SVM多類分類算法[3~5],但這些算法中大部分都沒有得到有效分析,使得人們無法使用這些算法獲取更好的分類結果。然而對于任一分類問題而言,由于采集的訓練樣本不足、特征提取不完整以及訓練算法本身的缺陷,都會對分類的正確性造成影響,產(chǎn)生分類誤差,而糾錯編碼(ECOC)最大的優(yōu)點就在于能夠有效地對這些誤差進行修正,對于一組最小漢明距離為d的糾錯編碼來說,至少能修正(d-1)/2」位誤差,即便有(d-1)/2」個分類出錯,系統(tǒng)還是能給出正確的判別結果。而且如果錯誤量很少,還可能恢復原始信息。因此本文提出了一種基于糾錯編碼[6]的SVM多類分類算法并應用于變壓器故障診斷中。
支持向量機算法是一個凸二次優(yōu)化問題,能夠保證找到的極值解就是全局最優(yōu)解。這些特點使支持向量機成為一種優(yōu)秀的學習算法。設xi,i=1,2,…N是訓練集X中的特征向量,這些向量來自于類yi,i=1,2,…N中。Xi為輸入矢量,yi為對應的目標輸出矢量,N為對應的樣本數(shù)。當樣本集在原空間是不可分的,需要用非線性變換φ(x)(核函數(shù)),把樣本向量集從原空間映射到高維特征空間F中,并在F中構造最優(yōu)的線性決策函數(shù):
式中:w為超平面的權值向量;b為偏置常數(shù)。非線性SVM的學習任務可以轉化為以下優(yōu)化問題:
Cortes和Vapnik在1995年引入了“軟邊緣”(soft margin)最優(yōu)超平面的概念,可以通過引入非負松弛因子ξ來允許錯分樣本的存在,這種方法又被稱為C-SVM。C-SVM的一個基本原理就是:如果某個樣例不能被分類面正確區(qū)分,則通過給定的系數(shù)C,控制對錯分樣本懲罰度的作用,實現(xiàn)在錯分樣本比例和算法復雜度之間的折衷。
最后得到判別函數(shù)為:
糾錯編碼 (ECOC)是Bose和Ray Chaudhuri在1960年提出的一種分布式輸出碼,1963年,Duda,Machanik和Singlleton將其應用于機器領域中[7],1995年,Dietterich和 Bakiri提出了利用糾錯編碼來將二元分類器擴展到多分類問題中:若類別數(shù)為K,則為每一個類別分配一個長度為L的二元糾錯編碼序列Wi,形成一個K行L列的碼本,在訓練網(wǎng)絡模型時,對于第j列,將該列中碼“1”對應的所有類別的數(shù)據(jù)歸為一類,碼“0”對應的所有類別的數(shù)據(jù)歸為另一類,以此來構造一個二元分類器,這樣K類的分類問題就轉化成了L個兩類的分類問題。在測試時,L個分類器都對新樣本進行判別,得到各分類器輸出一個二元序列B={b1,b2,,…bL},然后計算此序列和各類別的碼字 {Wi}間的漢明距離,最小距離對應的那個碼字所代表的類就是最終的判別結果,即:
對糾錯編碼的選擇應基于以下兩點:
(1)行與行之間互不相關,也即是各行之間漢明距離最大,以便有更強的糾錯能力。
(2)列與列之間即不相關也不互補,即某列與其他各列的補集的漢明距離最大,增加列之間的獨立性以便進行糾錯處理。對于K類分類問題,編碼長度L必須滿足log2K<L≤2k-1-1。
變壓器故障類型:低溫過熱、中溫過熱、高溫過熱、局部放電、低能放電、電弧放電。結合變壓器常見故障,構造一種編碼應用于變壓器故障診段中,如表1所示。
表1 編碼長度為10bit的ECC-SVM編碼Tab.1 Encoding length of 10bit ECC -SVM codes
表1中各行之間的最小漢明距離是4,表中C1代表正常,{C2,…C7}以次代表上述6種變壓器故障類型,表中構造的糾錯編碼碼本中每一列對應一個支持向量機,訓練時把碼字“1”對應類別的訓練樣本作為一類,“0”對應類別的訓練樣本作為另一類,以此構造出一個SVM模型,按照上述方法總共構造出10個SVM。
ECC編碼的糾錯能力是衡量ECC編碼性能的主要指標之一。T.GDietterich 等[6,7]指出,碼間最小漢明距離決定ECC編碼的糾錯能力。對于碼間最小漢明距離為d的ECC編碼,最少可以糾正(d-1)/2」個碼位上的分類錯誤,或者可以檢測到d-1」個錯誤。文獻[8]通過分析ECC-SVM的推廣性,發(fā)現(xiàn)ECC-SVM的推廣能力與編碼長度、碼間漢明距離、編碼順序以及每個SVM的分類間隙等之間的關系,這將從理論上指導人們更合理地使用ECC-SVM來獲取更好的分類結果。對于ECC-SVM的推廣性,有如下面的結論:對于K個類別的分類問題,碼間最小漢明距離為d,ECC的碼長為L,.依據(jù)未知概率分布產(chǎn)生的m個樣本的最小包容球半徑為R。如果ECC-SVM能夠把m個樣本完全正確分類,L個SVM的分類間隙由大到小排列,分別記為r1,r2,…rL,令ki=fat(ri/8),i=1,2…L。那么對于由p產(chǎn)生的m個樣本記為Y,有ECC-SVM的分類錯誤風險至少以概率1-δ不大于下式:2N是碼長為L,碼間漢明距離為d的編碼組數(shù),每一組中有K個碼字,依據(jù)上述公式,我們計算所有可能的編碼,假如一共可以找到N組這樣的編碼。根據(jù)排列組合原理,每一組編碼有K!個不同的編碼順序。根據(jù)文獻[6]中定理5.1,我們只需要保證分類間隙較大的M個SVM的分類精度就夠了。每一個碼位SVM分類器的1≤ki=fat(ri/8)≤m所有可能情況一共N·K!·mM種設δθ=δ/M,i=1,2,…M。采用文獻[9]中定理3.8可得ECC-SVM的分類誤差至少以1-δ概率不大于從上式可以看出,ECC-SVM的推廣能力不是由推廣性最差的SVM的分類精度決定,而是由前M個推廣性較好的SVM的分類精度決定。
該文在UCI標準的數(shù)據(jù)上進行試驗,下面的試驗說明本文算法的有效性和優(yōu)越性。
Iris數(shù)據(jù)集是應用于模式識別分析的標準數(shù)據(jù)集之一,該數(shù)據(jù)集里有150條數(shù)據(jù)記錄,分別取自三種不同的鳶尾屬植物 Setosa、Versicolor和Virginica的花朵樣本。每一類鳶尾屬植物有50條記錄,其中每條記錄有四個屬性值。
為了便于比較選用1-v-1、BT-SVM和ECC-SVM三種不同的支持向量機多值分類算法,隨機選取每一種花朵樣本的40個數(shù)據(jù)作為訓練樣本,其余的10條數(shù)據(jù)作為測試樣本,測試結果如表2所示。
表2 支持向量機分類器測試分類結果Tab.2 Test classfication result of Support Vector Machine classifier
從表2中的實驗結果看到,算法測試分類精度最高,說明ECC-SVM多分類算法的分類器具有更好的推廣性。對于測試時間,算法計算時間介于1-v-1和二叉樹多分類算法之間,但明顯優(yōu)于傳統(tǒng)的1-v-1算法,說明本文算法有良好的時效性。
為了驗證糾錯編碼的支持向量機在變壓器故障診斷中的效果,首先選取的訓練數(shù)據(jù)是基于色譜分析得到的油中溶解氣體的數(shù)據(jù)。目前國內(nèi)外所分析的氣體對象不統(tǒng)一。在不妨礙判斷準確率且分析對象盡可能少的前提下選取這5種:氫 氣 (H2)、甲 烷 (CH4)、乙 烷(C2H6)、乙烯 (C2H4)、乙炔 (C2H2),作為原始特征向量。
從相關文獻資料收集了大量的具有明確結論的變壓器故障數(shù)據(jù),整理了340條數(shù)據(jù),其中240條作為訓練樣本,其余100條作為測試樣本。同時把這些數(shù)據(jù)存入SQLSever2005數(shù)據(jù)庫的10個訓練樣本集中。在VS2008語言環(huán)境下結合LIBSvm實現(xiàn)變壓器故障診斷 (SVM)模型,結合表2構造的糾錯編碼來訓練網(wǎng)絡模型,變壓器的DGA數(shù)據(jù)屬于非線性可分數(shù)據(jù),目前對于采用何種方法處理并沒有明確的理論指導,因此采用C-SVM、基于徑向基形式作為核函數(shù)來訓練模型。
為了對糾錯編碼多分類性能進行較為全面的研究,構造了2個碼組和上表1碼組作對比,來探討類間碼字不同分配情況對識別性能的影響。另外,為了更好地評價文中提出的ECC-SVM變壓器故障診斷方法的有效性,用相同的數(shù)據(jù)集在二叉樹多分類算法進行識別比較,比較結果如表3所示。
表3 ECC-SVM編碼長度、海明距離和分類精度之間的關系Tab.3 Relationship between code length,Hamming distance and classification accuracy
從表3中可看出:
(1)在三種不同碼組情況下,其中碼組Code1和Code2編碼長度相同,所訓練的SVM模型個數(shù)相同,但碼組中Code2的最小漢明距離比Code1的大,結果Code2編碼情況下分類精確明顯偏高。根據(jù)糾錯編碼性質可知Code2碼組可以糾錯1個錯誤或者檢測2個錯誤,而Code1沒有糾錯能力,故識別性能強于Code1。Code3的編碼長度為10,而Code2為7,該兩碼組最小漢明距離相同情況下,編碼長度較長的Code3的分類精確度優(yōu)越于Code2。
(2)本文提出的多分類算法在分類精度上明顯優(yōu)于傳統(tǒng)的二叉樹多分類算法。這是因為本文算法有糾錯能力即可以允許一定的差錯,而二叉樹多分類算法,一旦一個節(jié)點出錯,就會造成判別誤差累積。
(3)本文所用糾錯編碼的多分類算法故障準確率與編碼長度、最小海明距離有關。編碼長度越長,SVM的推廣能力越強,分類精度越高,漢明距離越大,SVM模型的診斷精確度越高。
為了進一步驗證本文方法的優(yōu)越性,分別采用了單隱層BP神經(jīng)網(wǎng)絡 (包含5個輸入節(jié)點、40個隱含節(jié)點、7個輸出節(jié)點)和三比值法對變壓器故障識別問題進行研究對比,采用了與前面方法完全相同的訓練樣本和測試樣本,對BP網(wǎng)絡進行網(wǎng)絡訓練和測試,訓練采用了動量法改進的快速學習算法 (學習率v=0.04,動量常數(shù)取0.8)目標誤差g=0.01,訓練次數(shù)n為5000。SVM模型的訓練采用網(wǎng)格尋優(yōu)得到最優(yōu)參數(shù)懲罰參數(shù)C=1.25,核函數(shù)系數(shù)g=0.02,對于糾錯編碼碼組之間的最小距離d為6。三種方法的測試結果如表4所示。
表4 故障診斷結果對比Tab.4 Contrast of fault diagnosis results
表4與BP神經(jīng)網(wǎng)絡識別方法相比,ECCSVM分類器的電力變壓器故障識別方法識別錯誤率更低,測試時間小于BP神經(jīng)網(wǎng)絡的測試時間。本文方法遠大于三比值測試率,主要因為三比值有時會出現(xiàn)分類錯誤和診斷結果沒有對應的編碼??梢?,通過和 BP神經(jīng)網(wǎng)絡以及三比值比較,ECC-SVM由于其漢明距離d為6,在進行故障診斷時可以檢測到5個SVM模型出錯,可以糾出2個錯誤模型,即有2個模型出現(xiàn)識別錯誤,也能正確進行故障診斷。由此可見,利用ECCSVM可以減少在實際應用中基于油氣數(shù)據(jù)訓練樣本不足以及特征提取不完整帶來的分類誤差,以便提高故障識別精度。
針對SVM多分類算法的不足,文中提出糾錯編碼和支持向量機相結合的多分類算法,從理論上分析了該算法的推廣性。與BP神經(jīng)網(wǎng)絡以及三比值方法作對比,通過變壓器故障診斷驗證了該方法的可行性?;诩m錯編碼的支持向量機的最大優(yōu)點是能對一定誤差進行修正以及檢測出錯誤的信息,解決了由于搜集樣本的不足,以及算法本身的缺陷帶來的分類誤差問題。
為不同的類設計合適的代碼字集合是一個重要的問題。多類學習要求將代碼字列向量和行向量的距離很好地分開,較大的列距離可以確保二元分類器是相互獨立的,所以如何更好地用二元分類器解決多分類問題需要進一步研究。