祖文超,李紅君,苑津莎,張衛華
(1.華北電力大學 電氣與電子工程學院,河北 保定 071003;2.大唐七臺河發電有限責任公司,黑龍江 七臺河 154600)
電力變壓器是電力系統中最重要的電氣設備之一,及早發現變壓器潛伏性故障,是電力部門關注的一個重要問題。檢測變壓器狀態的方法有很多,其中油中溶解氣體分析法 (DGA)是檢測變壓器內部故障的重要方法,如IEC標準中的三比值法則以特征氣體的3個相對比值CH4/H2、C2H4/C2H6和C2H2/C2H4來進行故障診斷,實際應用中存在編碼不全,編碼邊界過于絕對等弊端。由于對樣本數據缺乏準確的科學分析,很難確切反映故障與表現特征之間的客觀規律,因此在溶解氣體含量較小的情況下,難以對變壓器狀態進行有效分析[1,2]。傳統方法的這些缺點無疑對變壓器潛伏性故障的發現和分析非常不利。因此,由于支持向量機具有小樣本學習、全局最優、結構風險最小化及訓練診斷時間短等優點,提出了將支持向量機用于變壓器油中溶解氣體分析的故障診斷。
SVM是針對兩分類問題設計的,不能直接用于多類分類問題。而變壓器的故障診斷實際是多類分類問題,所以目前SVM難以用來解決變壓器的故障多分類問題。為了克服這個缺陷,人們對SVM多分類算法進行了大量的研究,提出了一些有效的SVM多類分類算法[3~5],但這些算法中大部分都沒有得到有效分析,使得人們無法使用這些算法獲取更好的分類結果。然而對于任一分類問題而言,由于采集的訓練樣本不足、特征提取不完整以及訓練算法本身的缺陷,都會對分類的正確性造成影響,產生分類誤差,而糾錯編碼(ECOC)最大的優點就在于能夠有效地對這些誤差進行修正,對于一組最小漢明距離為d的糾錯編碼來說,至少能修正(d-1)/2」位誤差,即便有(d-1)/2」個分類出錯,系統還是能給出正確的判別結果。而且如果錯誤量很少,還可能恢復原始信息。因此本文提出了一種基于糾錯編碼[6]的SVM多類分類算法并應用于變壓器故障診斷中。
支持向量機算法是一個凸二次優化問題,能夠保證找到的極值解就是全局最優解。這些特點使支持向量機成為一種優秀的學習算法。設xi,i=1,2,…N是訓練集X中的特征向量,這些向量來自于類yi,i=1,2,…N中。Xi為輸入矢量,yi為對應的目標輸出矢量,N為對應的樣本數。當樣本集在原空間是不可分的,需要用非線性變換φ(x)(核函數),把樣本向量集從原空間映射到高維特征空間F中,并在F中構造最優的線性決策函數:

式中:w為超平面的權值向量;b為偏置常數。非線性SVM的學習任務可以轉化為以下優化問題:

Cortes和Vapnik在1995年引入了“軟邊緣”(soft margin)最優超平面的概念,可以通過引入非負松弛因子ξ來允許錯分樣本的存在,這種方法又被稱為C-SVM。C-SVM的一個基本原理就是:如果某個樣例不能被分類面正確區分,則通過給定的系數C,控制對錯分樣本懲罰度的作用,實現在錯分樣本比例和算法復雜度之間的折衷。
最后得到判別函數為:

糾錯編碼 (ECOC)是Bose和Ray Chaudhuri在1960年提出的一種分布式輸出碼,1963年,Duda,Machanik和Singlleton將其應用于機器領域中[7],1995年,Dietterich和 Bakiri提出了利用糾錯編碼來將二元分類器擴展到多分類問題中:若類別數為K,則為每一個類別分配一個長度為L的二元糾錯編碼序列Wi,形成一個K行L列的碼本,在訓練網絡模型時,對于第j列,將該列中碼“1”對應的所有類別的數據歸為一類,碼“0”對應的所有類別的數據歸為另一類,以此來構造一個二元分類器,這樣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的推廣性,發現ECC-SVM的推廣能力與編碼長度、碼間漢明距離、編碼順序以及每個SVM的分類間隙等之間的關系,這將從理論上指導人們更合理地使用ECC-SVM來獲取更好的分類結果。對于ECC-SVM的推廣性,有如下面的結論:對于K個類別的分類問題,碼間最小漢明距離為d,ECC的碼長為L,.依據未知概率分布產生的m個樣本的最小包容球半徑為R。如果ECC-SVM能夠把m個樣本完全正確分類,L個SVM的分類間隙由大到小排列,分別記為r1,r2,…rL,令ki=fat(ri/8),i=1,2…L。那么對于由p產生的m個樣本記為Y,有ECC-SVM的分類錯誤風險至少以概率1-δ不大于下式:2N是碼長為L,碼間漢明距離為d的編碼組數,每一組中有K個碼字,依據上述公式,我們計算所有可能的編碼,假如一共可以找到N組這樣的編碼。根據排列組合原理,每一組編碼有K!個不同的編碼順序。根據文獻[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標準的數據上進行試驗,下面的試驗說明本文算法的有效性和優越性。
Iris數據集是應用于模式識別分析的標準數據集之一,該數據集里有150條數據記錄,分別取自三種不同的鳶尾屬植物 Setosa、Versicolor和Virginica的花朵樣本。每一類鳶尾屬植物有50條記錄,其中每條記錄有四個屬性值。
為了便于比較選用1-v-1、BT-SVM和ECC-SVM三種不同的支持向量機多值分類算法,隨機選取每一種花朵樣本的40個數據作為訓練樣本,其余的10條數據作為測試樣本,測試結果如表2所示。

表2 支持向量機分類器測試分類結果Tab.2 Test classfication result of Support Vector Machine classifier
從表2中的實驗結果看到,算法測試分類精度最高,說明ECC-SVM多分類算法的分類器具有更好的推廣性。對于測試時間,算法計算時間介于1-v-1和二叉樹多分類算法之間,但明顯優于傳統的1-v-1算法,說明本文算法有良好的時效性。
為了驗證糾錯編碼的支持向量機在變壓器故障診斷中的效果,首先選取的訓練數據是基于色譜分析得到的油中溶解氣體的數據。目前國內外所分析的氣體對象不統一。在不妨礙判斷準確率且分析對象盡可能少的前提下選取這5種:氫 氣 (H2)、甲 烷 (CH4)、乙 烷(C2H6)、乙烯 (C2H4)、乙炔 (C2H2),作為原始特征向量。
從相關文獻資料收集了大量的具有明確結論的變壓器故障數據,整理了340條數據,其中240條作為訓練樣本,其余100條作為測試樣本。同時把這些數據存入SQLSever2005數據庫的10個訓練樣本集中。在VS2008語言環境下結合LIBSvm實現變壓器故障診斷 (SVM)模型,結合表2構造的糾錯編碼來訓練網絡模型,變壓器的DGA數據屬于非線性可分數據,目前對于采用何種方法處理并沒有明確的理論指導,因此采用C-SVM、基于徑向基形式作為核函數來訓練模型。
為了對糾錯編碼多分類性能進行較為全面的研究,構造了2個碼組和上表1碼組作對比,來探討類間碼字不同分配情況對識別性能的影響。另外,為了更好地評價文中提出的ECC-SVM變壓器故障診斷方法的有效性,用相同的數據集在二叉樹多分類算法進行識別比較,比較結果如表3所示。

表3 ECC-SVM編碼長度、海明距離和分類精度之間的關系Tab.3 Relationship between code length,Hamming distance and classification accuracy
從表3中可看出:
(1)在三種不同碼組情況下,其中碼組Code1和Code2編碼長度相同,所訓練的SVM模型個數相同,但碼組中Code2的最小漢明距離比Code1的大,結果Code2編碼情況下分類精確明顯偏高。根據糾錯編碼性質可知Code2碼組可以糾錯1個錯誤或者檢測2個錯誤,而Code1沒有糾錯能力,故識別性能強于Code1。Code3的編碼長度為10,而Code2為7,該兩碼組最小漢明距離相同情況下,編碼長度較長的Code3的分類精確度優越于Code2。
(2)本文提出的多分類算法在分類精度上明顯優于傳統的二叉樹多分類算法。這是因為本文算法有糾錯能力即可以允許一定的差錯,而二叉樹多分類算法,一旦一個節點出錯,就會造成判別誤差累積。
(3)本文所用糾錯編碼的多分類算法故障準確率與編碼長度、最小海明距離有關。編碼長度越長,SVM的推廣能力越強,分類精度越高,漢明距離越大,SVM模型的診斷精確度越高。
為了進一步驗證本文方法的優越性,分別采用了單隱層BP神經網絡 (包含5個輸入節點、40個隱含節點、7個輸出節點)和三比值法對變壓器故障識別問題進行研究對比,采用了與前面方法完全相同的訓練樣本和測試樣本,對BP網絡進行網絡訓練和測試,訓練采用了動量法改進的快速學習算法 (學習率v=0.04,動量常數取0.8)目標誤差g=0.01,訓練次數n為5000。SVM模型的訓練采用網格尋優得到最優參數懲罰參數C=1.25,核函數系數g=0.02,對于糾錯編碼碼組之間的最小距離d為6。三種方法的測試結果如表4所示。

表4 故障診斷結果對比Tab.4 Contrast of fault diagnosis results
表4與BP神經網絡識別方法相比,ECCSVM分類器的電力變壓器故障識別方法識別錯誤率更低,測試時間小于BP神經網絡的測試時間。本文方法遠大于三比值測試率,主要因為三比值有時會出現分類錯誤和診斷結果沒有對應的編碼。可見,通過和 BP神經網絡以及三比值比較,ECC-SVM由于其漢明距離d為6,在進行故障診斷時可以檢測到5個SVM模型出錯,可以糾出2個錯誤模型,即有2個模型出現識別錯誤,也能正確進行故障診斷。由此可見,利用ECCSVM可以減少在實際應用中基于油氣數據訓練樣本不足以及特征提取不完整帶來的分類誤差,以便提高故障識別精度。
針對SVM多分類算法的不足,文中提出糾錯編碼和支持向量機相結合的多分類算法,從理論上分析了該算法的推廣性。與BP神經網絡以及三比值方法作對比,通過變壓器故障診斷驗證了該方法的可行性。基于糾錯編碼的支持向量機的最大優點是能對一定誤差進行修正以及檢測出錯誤的信息,解決了由于搜集樣本的不足,以及算法本身的缺陷帶來的分類誤差問題。
為不同的類設計合適的代碼字集合是一個重要的問題。多類學習要求將代碼字列向量和行向量的距離很好地分開,較大的列距離可以確保二元分類器是相互獨立的,所以如何更好地用二元分類器解決多分類問題需要進一步研究。