趙冬梅, 王 闖, 馬泰屹
(華北電力大學 電氣與電子工程學院,北京 102206)
收稿日期:2020-06-12.
變壓器是電力系統(tǒng)中最重要的元件之一,變壓器的安全穩(wěn)定運行是電力系統(tǒng)穩(wěn)定運行的前提。變壓器發(fā)生故障后,會給電力系統(tǒng)極大的沖擊,威脅系統(tǒng)的安全穩(wěn)定運行,造成極大的經(jīng)濟損失。因此,有效地識別變壓器故障成為了國內(nèi)外研究的熱點,具有重要的理論和現(xiàn)實意義[1, 2]。
目前,變壓器故障診斷多采用油中溶解氣體分析(Dissolved Gas Analysis,DGA),通過分析變壓器油中各類氣體含量來判斷變壓器的運行工況[3, 4]。傳統(tǒng)變壓器故障診斷方法包括三比值法[5]、模糊理論法[6]、專家系統(tǒng)法[7]等。但是三比值法存在判定方法過于絕對、故障界限模糊等缺點;基于模糊理論的變壓器故障診斷方法較難確定隸屬函數(shù),并建立模糊診斷理論需要大量故障數(shù)據(jù);基于專家系統(tǒng)的判別方法通常需要豐富的專家知識和經(jīng)驗,而在實際應(yīng)用中很難獲取相應(yīng)的經(jīng)驗[8]。
隨著人工智能算法的發(fā)展,出現(xiàn)了越來越多適用于變壓器故障診斷的智能算法[9]。基于神經(jīng)網(wǎng)絡(luò)的DGA故障診斷方法主要包括兩大類,第一類為有監(jiān)督學習,包括支持向量機[10]、BP神經(jīng)網(wǎng)絡(luò)[11, 12]和極限學習機[13]。傳統(tǒng)的人工智能算法過于依賴有標簽的故障數(shù)據(jù),變壓器故障診斷中存在大量無標簽數(shù)據(jù),并且因為數(shù)據(jù)維度遠低于數(shù)據(jù)樣本量,神經(jīng)網(wǎng)絡(luò)存在過擬合的情況,自編碼器的應(yīng)用可以很好的解決這樣的問題。文獻[8]提出一種構(gòu)建多層自編碼器的神經(jīng)網(wǎng)絡(luò),逐層對自編碼器進行訓練,提高了網(wǎng)絡(luò)的魯棒性和分類的準確率;文獻[14]提出了一種基于堆棧稀疏降噪自動編碼器,使得隱藏層中的神經(jīng)元多數(shù)處于抑制狀態(tài),少數(shù)處于激活狀態(tài),并在輸入數(shù)據(jù)中加入噪聲,增強了網(wǎng)絡(luò)的診斷性能。文獻[15]基于k步對比散度算法,利用大量無標簽樣本對故障診斷模型中的每個受限玻爾茲曼機進行無監(jiān)督訓練,結(jié)果表明網(wǎng)絡(luò)診斷性能優(yōu)于支持向量機和反向傳播神經(jīng)網(wǎng)絡(luò)。
考慮到變壓器樣本數(shù)據(jù)含有大量無標簽數(shù)據(jù),并且數(shù)據(jù)維數(shù)遠小于數(shù)據(jù)樣本數(shù)的情況,本文提出了一種改進堆棧自編碼器的變壓器故障診斷模型,將批量標準化引入自編碼器,經(jīng)算例分析,相比于堆棧自編碼器,改進自編碼器增強了的訓練效果,提高了網(wǎng)絡(luò)的診斷性能。
DGA可以分析變壓器油中不同種類氣體的含量。變壓器在故障發(fā)生前后油中溶解氣體的含量會迅速發(fā)生變化。本文選用氫氣(H2)、甲烷(CH4)、乙烷(C2H6)、乙烯(C2H4)、乙炔(C2H2)五種氣體作為變壓器故障診斷的依據(jù)。變壓器故障可以分為熱性故障、電性故障以及放電兼過熱故障。其中,熱性故障通常分為高溫過熱和中低溫過熱,電性故障分為高能放電、低能放電和局部放電。表1對變壓器中存在的故障狀態(tài)進行了編碼,包含正常情況在內(nèi)一共有7種。
表1 變壓器狀態(tài)編碼
自編碼器是一種能夠通過無監(jiān)督學習,學到輸入數(shù)據(jù)高效表示的人工神經(jīng)網(wǎng)絡(luò)。在圖像識別領(lǐng)域中,自編碼器一般用于對數(shù)據(jù)進行降維,加速特征提取過程,大大縮短訓練時間。通過分析變壓器油色譜,我們可以判斷變壓器的運行工況。變壓器故障數(shù)據(jù)維度遠小于故障樣本數(shù),特征信息不夠豐富,于是通過自編碼器網(wǎng)絡(luò)對數(shù)據(jù)進行升維[16]。
網(wǎng)絡(luò)中,編碼器對輸入數(shù)據(jù)進行編碼,經(jīng)變換后可以得到原始信息的另外一種特征表示。為了判斷經(jīng)編碼后的信息能否代表數(shù)據(jù)的特征,需要解碼器對編碼信息進行還原,若還原后能得到與原始信息相同或相似的信息,則可以說明編碼器有效,經(jīng)過編碼的數(shù)據(jù)能夠代表原始數(shù)據(jù)。編碼過程可以用式(1)表示,解碼過程可以用式(2)表示。
h=f(W1x+b1)
(1)
y=f(W2h+b2)
(2)
式中:x為輸入向量;h為隱藏層輸出的中間向量;y表示輸出向量;f(·)表示編碼層和解碼層的激活函數(shù);W1和W2分別表示編碼層和解碼層的權(quán)重矩陣;b1和b2分別代表編碼層和解碼層的偏置向量。
自編碼器的目標函數(shù)是使得輸入數(shù)據(jù)和輸出數(shù)據(jù)盡可能相似,誤差函數(shù)選為均方誤差,表達式如下:
(3)
式中:n表示輸入樣本數(shù)。
當自編碼器的編碼層和解碼層的隱藏層數(shù)量大于1時,AE就是通常所說的深度結(jié)構(gòu),形成了堆棧自編碼器(stack auto-encoder,SAE)。SAE的拓撲結(jié)構(gòu)如圖1所示。
圖1 SAE拓撲結(jié)構(gòu)圖Fig.1 SAE topology diagram
神經(jīng)網(wǎng)絡(luò)進行分類時,需要滿足訓練數(shù)據(jù)和測試數(shù)據(jù)獨立同分布。深層神經(jīng)網(wǎng)絡(luò)經(jīng)過隱含層變化后,分布逐漸偏移,當整體分布逐漸往非線性函數(shù)的取值區(qū)間的上下限兩端靠近時,會導致反向傳播時低層神經(jīng)網(wǎng)絡(luò)的梯度消失,使得訓練收斂速度慢。BN的作用就是使訓練中每一層神經(jīng)元的輸入分布相同,提高神經(jīng)元靈敏度。
神經(jīng)網(wǎng)絡(luò)通過激活函數(shù)對數(shù)據(jù)進行非線性變換,以Sigmoid函數(shù)為例,Sigmoid函數(shù)圖形如圖2所示。中心區(qū)域?qū)?shù)值較大,邊緣區(qū)域?qū)?shù)值較小。若未經(jīng)批量標準化,隱藏層的輸入數(shù)據(jù)僅少部分落入到函數(shù)的敏感區(qū)間,大部分數(shù)據(jù)落入到了函數(shù)的不敏感區(qū)間。神經(jīng)網(wǎng)絡(luò)層數(shù)加深后,會出現(xiàn)梯度消失的情況,使得網(wǎng)絡(luò)訓練速度變慢,效果變差。
圖2 Sigmoid函數(shù)Fig.2 Sigmoid Function
批量標準化的過程與數(shù)據(jù)預處理中對數(shù)據(jù)的標準化過程類似,通過計算輸入隱藏層數(shù)據(jù)的均值和方差,對數(shù)據(jù)進行標準化處理。
(4)
變換后每個神經(jīng)元的輸入形成了均值為0,方差為1的正態(tài)分布,目的是讓數(shù)據(jù)落入激活函數(shù)的敏感區(qū)域,增大導數(shù)值,增強反向傳播信息流動性。為了避免輸出變?yōu)檩斎氲木€性組合,導致網(wǎng)絡(luò)表達能力下降,每個神經(jīng)元增加兩個調(diào)節(jié)參數(shù),這兩個參數(shù)是通過訓練來學習到的,用來對變換后的激活反變換,使得網(wǎng)絡(luò)表達能力增強[17],這其實是變換的反操作:
(5)
式中:γ和β為調(diào)節(jié)參數(shù),避免神經(jīng)網(wǎng)絡(luò)線性化。
為了使AE中每層輸入保持相同的分布,加強AE的訓練能力,改進堆棧自編碼在每一層編碼器和解碼器前,引入了批量標準化操作,對每一層的輸入做標準化處理。具體流程如式(6)~(8)所示:
h=f(W1x+b1)
(6)
h′=BN(h)
(7)
y=f(W2h′+b2)
(8)
式中:h′指中間變量標準化后的值;BN(·)表示批量標準化。
改進堆棧自編碼器的拓撲結(jié)構(gòu)如圖3所示。
圖3 改進AE拓撲結(jié)構(gòu)圖Fig.3 Improved AE topology diagram
由于變壓器無標簽數(shù)據(jù)較多,并且存在數(shù)據(jù)維度遠小于數(shù)據(jù)樣本量的特點,需要使用自編碼器對數(shù)據(jù)進行預訓練,診斷流程如下:
步驟1:構(gòu)造改進堆棧自編碼器的結(jié)構(gòu),確立隱藏層節(jié)點數(shù)以及隱藏層層數(shù),初始化權(quán)重W和b。
步驟2:將無標簽變壓器數(shù)據(jù)輸入網(wǎng)絡(luò),每經(jīng)過隱藏層計算一次,就需要重新對數(shù)據(jù)標準化處理,最后得到網(wǎng)絡(luò)輸出值,計算均方誤差。
步驟3:由均方誤差進行梯度反向傳播,更新網(wǎng)絡(luò)參數(shù)。
步驟4:重復步驟(2)、(3),直到達到最大迭代次數(shù)或均方誤差小于規(guī)定值。
步驟5:輸入有標簽的變壓器故障數(shù)據(jù)對網(wǎng)絡(luò)進行微調(diào),使網(wǎng)絡(luò)參數(shù)分類效果達到最佳。
步驟6:輸入測試集數(shù)據(jù)驗證網(wǎng)絡(luò)的有效性。
故障診斷流程圖如圖4所示。
圖4 基于BN-SAE的變壓器故障診斷流程Fig.4 Transformer fault diagnosis flow based on BN-SAE
本文選用IEC TC 10數(shù)據(jù)庫[18]中的變壓器故障數(shù)據(jù)和某單位提供的變壓器故障數(shù)據(jù),其中無標簽數(shù)據(jù)450組,故障數(shù)據(jù)共210組,本文將數(shù)據(jù)按照2∶1的比例分為訓練集和測試集。根據(jù)DGA數(shù)據(jù)特點,選取 H2、CH4、C2H6、C2H4和 C2H2這5種特征氣體的含量作為神經(jīng)網(wǎng)絡(luò)的輸入項,樣本樣例格式如表2 所示。
表2 變壓器故障數(shù)據(jù)樣本
如表所示,不同故障中氣體含量差別十分大,為了增強網(wǎng)絡(luò)的訓練效果,將輸入數(shù)據(jù)進行標準化處理,公式如下:
(9)
式中:xnew為標準化之后的值,x表示原樣本;xmean表示樣本的平均值;xmax表示樣本的最高值;xmin表示樣本的最低值。
本文選用的編程環(huán)境為Python3.6,處理器:i3-550,運行內(nèi)存:4G,操作系統(tǒng):64位Win7。
首先,對單層AE網(wǎng)絡(luò)中參數(shù)進行測試分析,選出合適的隱藏層數(shù)目。AE網(wǎng)絡(luò)中參數(shù)設(shè)置為:最大迭代次數(shù)為1 000,學習率為0.005,網(wǎng)絡(luò)連接權(quán)重W和偏置系數(shù)b采用正態(tài)分布初始化。
(1)激活函數(shù)的確定
神經(jīng)網(wǎng)絡(luò)常用的激活函數(shù)有Relu函數(shù),tanh函數(shù),Sigmoid函數(shù),自編碼器采用不同訓練函數(shù)的均方誤差如表3所示。
表3 三種激活函數(shù)均方誤差比較
由表我們可以看出,當激活函數(shù)采用tanh函數(shù)時,自編碼器的均方誤差最小,最能夠保留原始數(shù)據(jù)信息,因此本文采用tanh作為激活函數(shù)。
(2) 隱藏層節(jié)點數(shù)
通過改變單層AE的隱含層節(jié)點數(shù)計算均方誤差,并根據(jù)均方誤差的大小來判斷最優(yōu)的隱含層節(jié)點數(shù)。
圖5 AE訓練誤差與隱含層節(jié)點數(shù)的關(guān)系圖Fig.5 Relationship between AE training error and number of hidden layer nodes
由圖5可以看出,均方誤差在隱藏層節(jié)點數(shù)為50時基本達到穩(wěn)定,不再隨著節(jié)點的增加而降低,于是本文AE采用50個節(jié)點的隱藏層。
(3)隱藏層層數(shù)
通過改變AE層數(shù)來尋找最優(yōu)的隱藏層層數(shù),設(shè)定SAE的各隱藏層的節(jié)點數(shù)為50,25,15,10,5,用變壓器無標簽數(shù)據(jù)對網(wǎng)絡(luò)進行訓練,所得均方誤差如圖6所示。
由圖6可知,當隱含層層數(shù)為2層時,AE的訓練誤差達到最小。當隱藏層層數(shù)大于2時,網(wǎng)絡(luò)訓練誤差反而增大,這是因為隱含層層數(shù)增加,會增加損失的信息,進而導致誤差增大。并且變壓器原始數(shù)據(jù)維度過低,采用過多的隱藏層并不能使訓練效果更好,因此本文采用隱含層含量為2層的堆棧自編碼器。
圖6 AE訓練誤差與隱含層數(shù)量的關(guān)系圖Fig.6 Relationship between AE training error and number of hidden layers
本文首先對比了在同等隱含層層數(shù)、隱含層節(jié)點數(shù)以及其它參數(shù)均相同的情況下SAE與BN-SAE的均方誤差值。比較結(jié)果見圖7。
如圖7可見,BN-SAE的RMS誤差下降的更快,在600次訓練后基本達到穩(wěn)定,較自編碼器少訓練100次左右。并且,BN-SAE的RMS誤差更小,表明引入批量標準化后,編碼器能對原始信息作出更好的編譯,在對數(shù)據(jù)特征重構(gòu)的同時,盡可能的保留了原始信息。
圖7 SAE與BN-SAE訓練的均方根誤差比較Fig.7 Comparison of root mean square error between SAE and BN-SAE
然后用450組無標簽數(shù)據(jù)對改進堆棧自編碼器進行訓練,之后用100組有標簽變壓器故障數(shù)據(jù)對網(wǎng)絡(luò)進行微調(diào),最后用70組有標簽變壓器故障數(shù)據(jù)對網(wǎng)絡(luò)診斷性能進行測試。
并且本文設(shè)立了幾個對照組,分別為堆棧自編碼器、自編碼器以及BP神經(jīng)網(wǎng)絡(luò)。堆棧自編碼器與改進自編碼器除批量標準化外其余結(jié)構(gòu)均相同。自編碼器采用單層結(jié)構(gòu),參數(shù)設(shè)置與改進自編碼器相同。BP神經(jīng)網(wǎng)絡(luò)的學習率與隱含層數(shù)量與自編碼器相同。
圖8 基于BN-SAE的變壓器故障診斷Fig.8 Transformer fault diagnosis based on BN-SAE
圖9 基于SAE的變壓器故障診斷Fig.9 Transformer fault diagnosis based on SAE
通過比較圖8和圖9可以看出,BN-SAE的診斷性能更好,特別是針對少數(shù)類樣本的故障診斷,如放電兼過熱故障和局部放電故障時精度較高。SAE的診斷誤差相對較高,并且針對少數(shù)類故障樣本的分類效果不好。
表4列舉了4種不同網(wǎng)絡(luò)的分類準確率,可以看出BN-SAE的診斷正確率最高,高于SAE和AE,其次帶有自編碼器的網(wǎng)絡(luò)預測準確率均高于BP神經(jīng)網(wǎng)絡(luò),證明了自編碼器用于變壓器故障診斷的有效性。
表4 不同方法故障診斷精度比較
針對變壓器故障診斷的特點,本文通過將批量標準化引入SAE,來改進自編碼器在變壓器故障診斷領(lǐng)域的應(yīng)用效果。通過對輸入隱藏層數(shù)據(jù)的標準化操作,使得數(shù)據(jù)處于激活函數(shù)的敏感區(qū)域,加快了訓練速度,增強了訓練效果。仿真算例表明BN-SAE的訓練誤差更小,對無標簽數(shù)據(jù)的利用度更高,可以更好的表示變壓器原始數(shù)據(jù),并且網(wǎng)絡(luò)的診斷精度更高。BN-SAE相比于SAE與AE,在變壓器故障診斷中的準確率分別提高了4.29%和8.57%。并且BN-SAE網(wǎng)絡(luò)的魯棒性較強,訓練穩(wěn)定性較好,是一個有效的變壓器故障診斷模型。