邊 莉,劉文靜
(1.黑龍江科技大學 電子與信息工程學院,黑龍江 哈爾濱 150022;2.黑龍江科技大學 電氣與控制工程學院,黑龍江 哈爾濱 150022)
隨著科學技術的飛速發展,各類電氣設備的復雜性日益增加。現已將人工智能技術引入診斷技術,以大大提高診斷的準確度和效率。由于故障數據的獲取很困難,故障數據的數量通常較少,使得支持向量機憑借小樣本訓練的優勢從各種人工智能方法中脫穎而出。例如,Rimjhim A等[1]將支持向量機應用于配電網的故障診斷,Ravikumar等[2]將支持向量機應用于輸電系統的故障診斷,王澤星[3]將支持向量機應用于數控機床電主軸的故障診斷。可見,支持向量機在分類領域具有良好的適用性。因為支持向量機參數的取值存在一定盲目性,所以本文將引入交叉熵算法對其參數進行優化,從而提高準確率和速度。
小概率事件的仿真中,和重要度抽樣技術(IS)提到的一種小概率事件估計的新方法相互結合的算法就是交叉熵算法。算法的基本原理如下[4]。
針對小概率事件估計問題,有:

蒙特卡洛估計是對l最直接的估計方法,也就是使用密度函數f(·;u)生成N個隨機樣本x1,x2,…,xN,再使用對l來做無偏估計。當前使用IS技術,這個估計問題就可以表示為:

把l的無偏估計表示為:

這里W(x)=f(x)/g(x)稱為似然比(LR)l 稱為似然比估計,x1,x2,…,xN~ g。式(4)表示的概率密度函數進行尺度變換是估計的最合理的辦法。

此時,對所有的i都有:

同時能夠在{ f(·;v)}里找一個匹配的g,也就是找到匹配的v,所以g*和f(x;v)的距離能夠使用交叉熵表達,把其帶到式(1)中化簡為:

使用密度函數f(·;w)產生隨機樣本x1,x2,…,xN。事實上,當l是某個很小的概率(小于10-5)時,假設樣本數N沒有達到很大值,就會出現很多或者所有的指示函數I{S(Xi)≥γ}等于0,這種情況就不再適用。對于這種情況可以使用多級迭代,設置一個分布參數序列{v^t,t≥ 0} 及一個級序列 {γ^t,t≥ 0}。

結果是使v^t趨向v*,γ^t趨向γ。以上提到的就是交叉熵算法的基本原理[5]。
支持向量機基于VC理論和結構風險最小化原理,是一種經典的用于進行樣本分類的機器學習算法[6]。
支持向量機通過構造一個普通平面將兩類分開。當無法將兩類分開時,將上升到多維空間,通過超平面將兩類完整分開。在構造平面時,不僅單單分開兩類,還要尋求最優,使分類的隔離邊緣最大,這就將低維度空間的非線性化分類轉化為高維度空間的線性化分類。
一個內積空間H中的任意一個超平面都可以表示為:

其中w是表示的一個向量且與超平面相互垂直。
對于一個超平面來說,它其實是由自身的參數(w,b)決定的,那么就可以大致把其表示成(w,b)。但是,當其參數w、b與其他的非零常數相乘時(w,b)不發生改變。為減少這種問題的發生,引出了規范超平面概念。
超平面:

稱關于點x1,x2,…,xl∈H的規范超平面。若其能夠滿足:

那么規范超平面與最近點的距離是1/||w||。(w,b)和(-w,-b)都能夠滿足規范超平面的要求。
間隔在SVM算法中作用極大,對一超平面(w,b)稱:

是點(x, y)∈H×{±1}的幾何間距,而稱:

為關于訓練集:

的幾何間隔。
假若(xi, yi)被正確分開,那么這一間隔就是模式x到超平面之間的距離。假若點位于超平面上,那么這一點的間隔即為0;若這個點不在超平面上,那么這一點的間隔為:

其中:

本文采用的支持向量機模型選用的核函數為徑向基函數,選擇優化的參數一個是支持向量機本身的懲罰系數C,還有一個是徑向基函數自帶的參數g。懲罰系數C反映的是對誤差的寬容程度,決定著學習機器的泛化能力;核參數g則反映訓練樣本中數據的分布情況,決定著分類的最小誤差,隱含地決定著數據映射到新的特征空間后的分布情況。
綜上,選擇交叉熵算法在MATLAB上進行編程計算,以支持向量機的懲罰系數C和核函數參數g為目標進行優化,以支持向量機的交叉驗證概率為適應度函數,采用連續型交叉熵算法,經過設定初值、取樣、排序、更新、平滑、終止,從而獲取支持向量機的模型最優參數C、g。交叉熵算法優化支持向量機參數的具體步驟如圖1所示。
算法終止時輸出最優解X*=μ(t),這是一個二維向量,其中的兩個元素即為支持向量機的最優參數——懲罰系數、徑向基核函數參數。

圖1 優化流程圖
交叉熵優化支持向量機的干式變壓器故障診斷模型的建立步驟如下:
(1)本文通過文獻[7]獲取80組樣本數據,具體的分布情況和對應的標簽如表1所示。

表1 樣本數據分布及標簽分類
(2)建立SVM故障分類模型,并采用CE對SVM的系數C和g進行優化,以獲得最佳參數。
(3)將80組數據均分為兩組,第一組數據對CE-SVM故障分類模型進行訓練。
(4)第二組數據作為測試樣本,輸入到已經訓練好的分類模型中,將得到的分類結果和之前的標簽進行對比,從而得到該模型分類的準確率。
干式變壓器的故障一般都會導致溫度的升高,所以通過溫度信息就可以大致判斷故障的類型。溫度的數據來源于文獻[7],每種狀態的訓練樣本數據如表2所示,40組測試樣本數據如表3所示。
通過MATLAB仿真軟件進行仿真,其中SVM分類部分用到了libsvm軟件包,通過編寫交叉熵優化支持向量機的程序來實現交叉熵對支持向量機懲罰系數C、徑向基核參數g的尋優和支持向量機通過訓練對故障進行分類診斷。
將編寫好的程序輸入到MATLAB,并將上文中的40組故障訓練樣本和40組故障測試樣本分別導入,然后運行交叉熵優化支持向量機的程序。經過十幾秒的運行后可以得到結果,如圖2、圖3和圖4是運行50次取得的最優結果。

表2 干式變壓器40組故障訓練樣本

表3 干式變壓器40組故障測試樣本

圖2 交叉熵優化支持向量機的參數收斂曲線
從圖2可以看出,經過15代進化,兩個參數的值已經趨于平穩;經過25代進化,兩個參數已經收斂于某個定值。可知,交叉熵算法對參數尋優具有較高的快速性與穩定性。
從圖3可以看出,該曲線從進化8代后就趨于穩定,收斂速度快,穩定性良好。還可以讀取最優懲罰系數C為6.611 7、最優核參數g為7.069,最優交叉驗證概率為96.946 6%。

圖3 交叉熵算法適應度函數收斂曲線

圖4 交叉熵優化支持向量機測試集實際與預測分類圖
圖4 為支持向量機測試集實際與預測分類圖。通過觀察結果計算可知,分類準確率Accuracy=97.5%(39/40)。其中,有一組數據出現誤判,這種誤差的出現原因很多:采集數據時出現干擾、數據采集時監測點位置出現偏移、數據記錄或者處理時出現人為失誤等。綜上所述,本次仿真的分類準確率很高。實際運用中還應該采取一些措施,如數據采集時盡量避免外界干擾、監測點位置應十分精確、數據幾率和處理時應十分仔細等,從而使分類準確率更高。
本文采用的是交叉熵算法對支持向量機的參數進行尋優。為了更好地體現出交叉熵算法在尋優方面的優越性,又建立一個對比仿真模型,即粒子群算法優化支持向量機參數的分類診斷模型。同樣地,數據輸入后得到如圖5、圖6和圖7所示的仿真圖。
從圖5可以看出,經過20代進化,兩個參數的值已經趨于平穩;經過30代進化后,兩個參數已經收斂于某值。與圖3比較可以得出,交叉熵算法對參數尋優的速度快于粒子群算法。
圖6為粒子群算法優化支持向量機的最佳適應度函數收斂曲線,交叉驗證概率曲線進化了25代以后才趨于穩定。與圖5比較可以看出,交叉熵優化的交叉驗證概率曲線收斂速度明顯高于粒子群優化的結果。
圖7為粒子群優化支持向量機測試集實際與預測分類圖,和交叉熵優化后的分類結果一致,這里不再闡述。
表4為交叉熵算法和粒子群算法優化的一些參數對比,其中尋優時間和分類準確率是運行50次后取得的最優值,而迭代次數是運行50次取得的平均值。對比結果顯示,交叉熵算法比粒子群運算速度快,穩定性強。

圖5 粒子群優化支持向量機參數的收斂曲線

圖6 粒子群算法最佳適應度函數收斂曲線
粒子群算法每次迭代過程不僅要更新每個粒子的速度和位置,還要評價每個粒子的適應度,以尋得全局最優;而交叉熵算法基于參數化的概率密度產生隨機樣本,每次迭代只需更新概率密度參數和分位數。通過兩種優化算法的對比可以得出,交叉熵算法優化支持向量機的方法的適應度函數曲線的收斂速度、穩定性和對參數的尋優時間明顯優越于粒子群算法。雖然基于粒子群算法優化支持向量機方法的測試集分類準確率和交叉熵算法相同,但是整體來說,基于交叉熵算法優化支持向量機的診斷方法優勢明顯,更適用于干式變壓器的故障診斷。
本文將交叉熵算法和支持向量機融合,編寫交叉熵優化支持向量機參數、支持向量機對數據進行訓練與分類的程序,然后通過Matlab建立故障診斷模型,將獲取的干式變壓器數據分為訓練集和測試集分別導入進行仿真得出仿真圖,得出經過交叉熵優化過得向量機分類程序分類準確且穩定。為了突出交叉熵算法參數尋優的優越性,又通過粒子群算法優化支持向量機做對比試驗。經過前后兩種優化算法的比較可以得出,交叉熵算法在優化方面具有速度優勢。可知,交叉熵算法是一個在尋優方面見長的人工智能算法,可適用于多種領域。

圖7 粒子群優化支持向量機測試集實際與預測分類圖

表4 兩種方法優化支持向量機的對比