鄧春宇,吳克河,談元鵬,胡 杰
(1.華北電力大學 控制與計算機工程學院,北京 102206;2.中國電力科學研究院有限公司 人工智能應用研究所,北京 100192;3.華北電力大學 電氣與電子工程學院,北京 102206)
國內外研究者在時間序列的異常點檢測方面已經做了很多工作,時間序列分析[1]、馬爾可夫模型、遺傳算法[2]等多種方法均有所應用。文獻[3]按異常類型的不同確定不同的數(shù)據清洗方法,但沒有考慮到多變量之間的相關性關系。文獻[4]使用基于Kernel Smoothing技術和回歸模型的分類方法識別異常數(shù)據,但是回歸模型的選取需要一定的先驗知識。文獻[5]使用單分類支持向量機和主動學習的方法進行異常點的檢測,此方法對主動學習策略的選擇有較高要求。長短期記憶網絡作為循環(huán)神經網絡的一種變體,由于解決了RNNs無法完美學習的信息長期依賴的問題[6],在異常值檢測領域已經有很廣泛的應用。在研究過程中,長短期記憶網絡預測準確度的問題是限制其異常檢測準確度的最主要因素,研究表明預測精確度可以通過區(qū)分物理狀態(tài)得到提高[7,8],而物理狀態(tài)的區(qū)分可以看作是一個多元時間序列分割聚類問題。
提出一種基于多元時間序列分割聚類和長短期記憶網絡的TICC-LSTM大數(shù)據點異常檢測方法。使用多元時間序列分割聚類算法分析計算出原始數(shù)據最優(yōu)分段數(shù)的基礎上,建立多元時間序列分割聚類的最優(yōu)化模型,確定分割時間節(jié)點和子序列,使用長短期記憶網絡對每個子序列進行數(shù)據重構,計算與原始序列的殘差判斷提取出異常數(shù)據點。
實際物理過程是由多個子過程組合得到的,例如汽車的行駛過程可以分解為3段:加速、勻速行駛和減速停車,其中每個分段的數(shù)據均包含多個變量[9]。多元時間序列分割算法將原始數(shù)據在各個時間分割點分開,每個子序列代表一個實際的物理過程,認為在每個過程中數(shù)據的特點均應該是一致的,從而可以為異常檢測提供良好的數(shù)據準備。
多維時間序列xorig是按時間順序排列的多元時間序列,xorig=[x1,x2x3,…,xT]。其中T代表此時間序列的長度,xi表示第i個時刻的多元變量的觀測值。為了表現(xiàn)時間序列每個前后時刻的數(shù)據之間的關聯(lián)性,針對子序列而不是單個時間點進行聚類,即以每個時間點為基準,向前截取時間長度為ω的一段作為子序列,記為Xi=[xi-ω+1,…,xi-1,xi],其中i=1,2,…,T。
假設原始的多元時間序列可以被劃分為K類,記Pj代表第j類信號段序號集合,其中j=1,2,…,K。為了可以表現(xiàn)出每個時不變子序列中各個傳感器之間的關系,可以將每個聚類定義為一個與其它聚類完全不同的馬爾可夫隨機場。其中,馬爾可夫隨機場的邊代表兩個變量之間的偏相關性。
記每一類信號的協(xié)方差逆矩陣為Θi,Θi可以用來表示每個聚類的馬爾可夫隨機場。這個矩陣由ω×ω個子矩陣組成,每個子矩陣的大小為n×n,其中n代表信號段的個數(shù),ω代表時間窗的大小,由于不同時刻之間的信號差別只和時間差有關,即兩個不同時刻之間的逆協(xié)方差矩陣互為轉置,因此每一類信號的逆協(xié)方差矩陣可以表示為
綜上所述,對多元時間序列的分割聚類問題可以簡化為一個優(yōu)化類問題,優(yōu)化目標是求解K個逆協(xié)方差矩陣Θ={Θ1,Θ2,…,ΘK} 和最終結果的聚類集P={P1,P2,…,PK},其中Pi?{1,2,…,T},因此優(yōu)化問題可以表示為
(1)
(2)
式(2)表示子序列Xt是被分配到序列i的對數(shù)似然,其中μi是集合i所有數(shù)據的經驗均值,logdetΘi表示第i個逆協(xié)方差矩陣行列式的對數(shù)。
上述模型是一個混合組合和連續(xù)優(yōu)化問題,由于兩個變量:原始信號類別Pj和各類信號的逆協(xié)方差矩陣Θj具有深度耦合的特點,沒有可行的方法求取其全局最優(yōu)解,為此將求解分成兩個步驟,首先將源數(shù)據點進行聚類,然后更新聚類參數(shù),迭代計算直至小于設置的最小誤差。
假設序列Xi=[xi-ω+1,…,xi-1,xi] 有K個潛在聚類信號段,把信號段Xi歸入某一類的代價可以用如下式(3)來表示
(3)
考慮最大化源數(shù)據的對數(shù)相關性并且最小化類別信息在算法中的更改次數(shù),兩個約束構成了一個典型的流水線調度問題,如圖1所示。
圖1 源數(shù)據聚類流水線模型
式(3)所示的問題可以描述為找到從初始時間1到時間T的最短成本路徑的問題,其中節(jié)點的成本為該點被聚類到此類別的負對數(shù)似然值,路徑的成本為β,表示每次類別變化所造成的成本。
算法流程如圖2所示。
圖2 源數(shù)據聚類算法流程
以上可以計算出源數(shù)據的聚類Pi,逆協(xié)方差矩陣Θi可以使用最小化其負對數(shù)似然值之和的方法求取
(4)
其中
(5)
將上述問題進行變換并添加一個正則項,可以使用交替方向乘子法(ADMM)進行求解
(6)
綜上所述,將原始信號數(shù)據輸入程序中并設定初始參數(shù),對兩個存在相互耦合的變量聚類Pi和逆協(xié)方差矩陣Θi交互迭代求解,最終得到多元時間序列的分割聚類的類別信息。
上述多元時間序列分割聚類算法保證了每個子序列均只包含一種物理狀態(tài),因此可以將每個子序列分別使用長短期記憶網絡進行數(shù)據重構,并與原始數(shù)據樣本進行比較,誤差較大的數(shù)據可以認為是異常數(shù)據點。
長短期記憶網絡的神經元狀態(tài)只產生少量的線性變化,信息從前一狀態(tài)到后一狀態(tài)只產生少量的變化。信息的輸入和修改是通過控制3個門控單元,即遺忘門、輸入門和輸出門來實現(xiàn)控制的。
ft=σ(Wf·[ht-1,xt]+bf)
(7)
it=σ(Wi·[ht-1,xt]+bi)
(8)
(9)
狀態(tài)值的更新包含兩部分內容:舊隱藏值狀態(tài)的遺忘和新中間變量的更新,則t時刻狀態(tài)Ct的計算公式如式(10)所示
(10)
輸出層使用一個Sigmod函數(shù)決定需要被輸出的神經元狀態(tài),然后通過一個tanh函數(shù)只輸出需要的數(shù)據
ot=σ(Wo[ht-1,xt]+bo)
(11)
ht=ot*tanh(Ct)
(12)
長短期記憶網絡的結構如圖3所示。
圖3 長短期記憶網絡結構
電力系統(tǒng)中采用的大型變壓器多采用油浸紙絕緣結構,使用變壓器油進行絕緣和散熱。隨著運行時間的增加,絕緣油長期處于強電磁環(huán)境下,會緩慢的產生乙炔、氫氣、一氧化碳、二氧化碳、甲烷等氣體[10]。在變壓器發(fā)生局部放電或過熱等故障情況時,這些氣體的含量會發(fā)生明顯的變化,因此根據這些氣體的含量和變化規(guī)律可以判斷變壓器的老化情況,并且在一定程度上做到預測故障的發(fā)生。
變壓器的油色譜數(shù)據包括總烴、氫氣、乙炔、甲烷、乙烷、一氧化碳、二氧化碳等。在實際運行過程中,變壓器的故障主要包括過熱故障、局部放電故障、火花放電故障和電弧放電故障等[11]。各種故障條件下產氣特征情況見表1。
表1 電力變壓器各種故障條件下產氣特征
仿真采用甘肅某變電站一臺油浸式戶外主變壓器采集到的實際數(shù)據。本臺主變于1992年出廠,在出廠試驗中所有數(shù)據均合格,三相額定電壓等級為345/121/10.5 kV,額定容量為150/150/50 MVA。在投入運行后,該主變所帶負荷一直較低,且從未出現(xiàn)過載情況,負荷率基本在50%左右。2007年和2008年負荷率為30%-74%,原因在于同變電站的另外一臺主變故障檢修導致本臺變電站負載升高。
采用此變壓器2006年6月到2009年6月的油色譜在線監(jiān)測數(shù)據,共10類超過10 000行數(shù)據。由于多種故障中甲烷、乙炔和氫氣所占比重較大,因此選取這3種氣體進行分析。
經過上述對原始數(shù)據的處理,得到10 000個時間點的數(shù)據,其中每個時間點均包含甲烷、乙炔和氫氣3種變壓器油色譜氣體含量。使用TICC-LSTM算法將上述時間序列數(shù)據進行分割聚類,定性分析每種類別的數(shù)據特征,從而得出變壓器運行狀態(tài)。
下面簡要說明TICC-LSTM算法的參數(shù)選擇。使用貝葉斯信息量(Bayesian information criterion,BIC)的方法對源數(shù)據進行分析,認為對源數(shù)據分為3類較為合適,即聚類數(shù)K=3,時間窗ω取5,即每個待聚類子序列有5個數(shù)據,初始λ設置為0.11,可以隨程序的運行自動進行調整。聚類的經驗均值隨聚類的變化而發(fā)生變化,每次迭代得到的經驗均值通常是不同的。
由于得到的各類數(shù)據的數(shù)據總量并不相同,傳統(tǒng)的聚類效果比較算法均難以應用,動態(tài)時間規(guī)整算法(dynamic time warping,DTW)能夠衡量兩個序列的相似程度,認為類別間相似度大的聚類效果好。分別計算兩兩類別生成數(shù)據矩陣的歐氏距離,對得到的結果進行分析,判斷分割得到的各子序列是否具有高獨立性,得到的結果見表2。
表2 源數(shù)據各類別DTW分析結果
從分析結果可以看出,各類別之間的歐氏距離均較大。同時將源數(shù)據以折線圖的形式表示,可以看出各類別數(shù)據之間具有顯著的差異性。
圖4展示了3種氣體需要進行異常檢測的原始數(shù)據的聚類情況,類別1中的數(shù)據整體呈現(xiàn)下降的趨勢,其中乙炔最為明顯,含量從開始記錄時刻的27下降到了10.5。查詢本臺變壓器的履歷變更記錄發(fā)現(xiàn)記錄前因變壓器兩臺冷卻器發(fā)生故障,因此更換了油枕皮囊并對調壓開關補充了絕緣油,多氣體含量的下降正是此次維修所致。類別2的數(shù)據整體呈現(xiàn)平穩(wěn)狀態(tài),乙炔、甲烷和氫氣含量整體維持在9 ppm、10 ppm和2.1 ppm,這與變壓器無故障正常運行的表現(xiàn)一致,說明這段時間變壓器未發(fā)生局部放電、過熱、過負荷等異常運行事件。類別3中乙炔和氫氣的含量呈現(xiàn)明顯的上升趨勢,甲烷的含量上升不明顯但數(shù)據具有一定的波動性,這種情況可能有3種原因造成,一種是變壓器本體中某些部位(如引線接頭或繞組匝間)有火花放電現(xiàn)象。無論是繞組長期過熱造成絕緣老化引起匝間絕緣擊穿,還是引線焊接不良引起過熱造成絕緣擊穿或引線燒斷,都必然產生電弧放電,油中必將產生大量的乙炔氣體。第二種可能是變壓器有載開關的選擇開頭切斷電流,由于要滿足系統(tǒng)運行電壓的需要,此主變壓器有載調壓相對較為頻繁,這樣經過拉弧后變壓器油中也會產生大量的C2H2氣體。第三種可能是主變油與有載分接開關切換油室中的變壓器油相通。由于有載切換開關在變換分接時要切斷電流,必然會產生電弧,造成變壓器油分解,從而產生這些氣體。
圖4 變壓器油色譜數(shù)據
以上聚類分割將源數(shù)據分成了3種類別共9段數(shù)據,每段數(shù)據均包括3種氣體成分:氫氣、甲烷和乙炔。每種氣體成分的變化均與各自的時間變化相關,采用長短期記憶網絡方法分別對每段數(shù)據進行重構,并計算與源數(shù)據的殘差,認為殘差超過一定閾值的點即為異常值點。
為了獲得較好的預測效果,首先需要將訓練數(shù)據標準化為具有零均值和單位方差。創(chuàng)建長短期記憶網絡包含200個隱含單元,將梯度閾值設置為1從而防止梯度爆炸,初始學習速率為0.0005。
以類別3中氫氣、甲烷和乙炔數(shù)據為輸入,使用LSTM算法預測下來30個點的取值,得到的預測數(shù)據-原數(shù)據折線圖和殘差圖如圖5 所示。
圖5 類別1氫氣含量異常值檢測
根據圖5可以明顯看出,乙炔數(shù)據中第14點的值明顯偏離了預測值,呈現(xiàn)遠低于其它點的現(xiàn)象。同時觀察此類別3數(shù)據的整體變化趨勢是平穩(wěn)下降的,而此點明顯偏離與數(shù)據的整體趨勢,應該判定為是異常點數(shù)據。根據長短期記憶網絡的預測結果,可以將這兩個點的數(shù)據進行修正,從而使之符合數(shù)據的整體變化趨勢,減少預警裝置的誤報。
在實際情況中此數(shù)據點的氫氣含量為31.97 ppm,而異常值數(shù)據為15.01 ppm,查閱變壓器的變更履歷發(fā)現(xiàn)此時傳感器出現(xiàn)了故障,從而導致測量產生了較大誤差。
為檢驗所提TICC-LSTM方法的準確性,利用同樣的數(shù)據樣本在沒有進行聚類的情況下使用相同的訓練方法對數(shù)據進行預測。準確率描述正確識別出的異常點占總異常點的比例,誤檢率描述被誤判為異常點的個數(shù)與總異常點個數(shù)的比值,其表達式為
(13)
(14)
其中,A表示準確率,B表示誤檢率,Np為正確檢測出的異常點的個數(shù),NF為檢出的錯誤異常點個數(shù),NT為異常點總數(shù)。
對所有3個類比的數(shù)據進行異常點檢測,得到如圖6所示的準確率直方圖。
圖6 預測準確率比較
圖6可以看出,使用分割聚類對數(shù)據進行預處理后,由于每個子序列均只包含一個物理過程,從而使長短期記憶網絡預測的準確率上升,異常點檢測的誤檢率也從18.6%降低到5.4%。
在分析前人研究成果的基礎上,總結了現(xiàn)有研究方法的優(yōu)點和不足,針對數(shù)據的異常識別、時間分段聚合等問題進行了研究,得到以下結論:
(1)針對多狀態(tài)的物理過程,為解決不同狀態(tài)變化時可能產生的對異常值檢測的影響,采用了一種基于多元時間序列分割聚類的TICC算法,將多元序列按不同狀態(tài)分割成多個序列,此種聚類方法將大量數(shù)據分成多段,便于采用并行計算,并且便于對多段物理過程進行合理解釋。
(2)采用長短期記憶網絡的算法重構原始數(shù)據,并通過計算原始數(shù)據和重構數(shù)據的殘差辨識異常數(shù)據點。該算法充分考慮了時間序列各點數(shù)據的長期依賴問題,適于大數(shù)據的分析。
使用變壓器油色譜數(shù)據進行仿真驗證,并與沒有采用分段聚類的異常檢測方法進行比較,實驗結果表明本文提出的算法對多過程的多元時間序列異常點檢測具有較高的檢測精度,有比較好的應用前景。