林燁敏,王 寧,邱榮杰,湯宇超,周冠群,李澤洲,王中亞
(1.國網浙江省電力有限公司緊水灘水力發(fā)電廠,浙江 麗水 323000;2.寧波工業(yè)互聯網研究院,浙江 寧波 315016)
在水電站日常運維管理中,對機組運行的實時數據進行異常監(jiān)測有著至關重要的作用,可以避免水電運行安全事故進一步擴大,并且在指導機組進行狀態(tài)檢修等方面也有重要意義。
國網浙江緊水灘電廠是國家開發(fā)甌江流域龍泉溪干流梯級發(fā)電的第一級水電站,總容量30 萬kW,于二十世紀八十年代建成。結合企業(yè)發(fā)展及數字化改革要求,傳統(tǒng)水電廠向更加智慧的現代化水電廠轉型是必然趨勢,這也符合水電廠向“無人值班、遠程集控、智慧運行”目標推進的要求。水電機組的異常監(jiān)測管理是水電智慧運行的核心環(huán)節(jié)。目前,緊水灘電廠已全面完成水輪機、發(fā)電機定子及自動化監(jiān)控系統(tǒng)改造,實現生產數據自動采集,整體自動化水平較高,機組本身的傳感數據豐富,可為機組整體運行狀態(tài)進行異常分析建模提供數據基礎。
水電機組的故障通常發(fā)生在軸系、葉輪、葉片、導軸承等部位,主要故障包括油箱油位升降、油溫升高、軸瓦平均溫度升高等[1]。本文采集的系統(tǒng)數據包含大部分待檢測的故障部位。
時序異常檢測是時序分析問題重要的分支領域,自十九世紀開始,統(tǒng)計學領域就開始對數據中的異常檢測展開研究[2]。通過對時序序列進行模式識別,從中挖掘異常序列片段特征并輸出異常片段或報警信息。異常特征通常包含異常點、離群點、錯誤值等類型,其中異常點和離群點是常見的時序異常檢測目標。
近年來隨著機器學習和深度學習的發(fā)展,時序異常檢測的準確率獲得不斷提升,方法也獲得極大程度的補充。Breunig 等人于2000 年提出的LOF(局部離群因子)是基于密度估計的方法[3],Scholkopf 等人于2001 年提出的單類SVM(支持向量機)是基于聚類的方法[4]。這些基于傳統(tǒng)機器學習的方法在一定程度上解決了部分異常檢測的問題,但很難泛化到大規(guī)模數據以及多樣化的異常特征提取。
基于深度學習RNN(循環(huán)神經網絡)的方法則進一步提升了長時間序列的記憶和建模能力以及在大規(guī)模數據上的泛化性能。Ya Su 等人于2019年提出以隨機循環(huán)神經網絡算法解決多維時序異常檢測問題[5],Lifeng Shen 等人于2020 年提出THOC(時間分層一類)網絡,融合多維時序特征,進一步提升異常檢測精度和效率[6]。
近兩年,基于自監(jiān)督算法模塊構建的Transformer 模型在自然語言處理任務中取得業(yè)界最好的效果。相比基于循環(huán)模塊的RNN 系列算法,Transformer 模型完全采用注意力機制,能夠避免計算隱含層特征信息時過度依賴前一時刻隱含狀態(tài)和當前時刻輸入的問題,更好地建模遠距離上下文隱含關系[7],極大程度地提成了序列建模和預測的效果。同時,基于Transformer 的時序異常檢測也獲得了一定發(fā)展。Shaohan Huang 等人于2020 年提出的HitAnomaly 模型構建了層次分級Transformer[8],解決系統(tǒng)日志中的序列異常問題。Zekai Chen 等人于2021 年使用Transformer 模型學習多維時間序列中的圖結構,解決了時序異常檢測問題[9]。
以上方法在大規(guī)模時序數據中包含較少的異常點或離群點檢測問題時通常表現不足,并且需要標注大量異常片段樣本序列,增加了人力成本。而基于生成式GAN(生成對抗網絡)[10]的方法則能夠在無監(jiān)督的場景下,通過對大規(guī)模數據集進行序列特征建模,從而很好地發(fā)現少量異常片段,在實現高精度異常報警的同時,降低人力標注成本[11]。
結合水電機組日常運維中分析運行數據存在的周期性和趨勢性異常,為盡早發(fā)現和切斷機組故障,結合Transformer 模型對大規(guī)模長序列特征提取和建模的能力,以及GAN在生成算法高效的訓練方式以及無監(jiān)督自訓練的能力,提出Trans-GAN模型,用于在大規(guī)模水電運行數據上進行序列異常檢測。本文將從機組運行數據分析、Trans-GAN 模型構建以及結果驗證3 個方面進行具體論述和分析。
水電機組系統(tǒng)采用InfluxDB 數據庫記錄不同傳感器的時序監(jiān)測序列數據,通過讀取接口可以獲取與需要的時間段對應的多維度監(jiān)測數據。
本文所使用的水電站機組數據對應時間段為2021—2022 年,數據包含60個維度不同的監(jiān)測數據。由于數據寫入水電機組時序數據庫系統(tǒng)時,每個時刻點的數據均會與前一時刻點數據進行比較,只有當數值發(fā)生變化、超過閾值時,才寫入該時刻點數據,如此雖然可以大幅節(jié)省存儲空間,但讀取到的數據存在較多缺失值。
60 個維度的監(jiān)測指標包括各組件的溫度、電流、電壓、水壓、水流量、油壓和振幅等。根據水電機組的工作原理,可以推斷單一組件各項指標間以及各個組件不同指標間必然存在隱含的關聯性。本文所采用的異常序列監(jiān)控方法僅需要對關鍵監(jiān)測指標進行異常分析即可,與關鍵指標存在隱含關聯性的其他指標存在相似異常屬性,重復監(jiān)測會導致系統(tǒng)處理壓力過大,負載增加,浪費計算資源、降低監(jiān)測實時性。因此前期的數據分析需要觀察指標互相關性,對數據做降維處理。
如前文所述,水電機組后臺系統(tǒng)實時錄入所有監(jiān)測指標,系統(tǒng)I/O 壓力較大,一般存儲的數據類型為浮點型數據,占用空間高。為了降低系統(tǒng)I/O 和存儲壓力,連續(xù)監(jiān)測指標沒有變化的數據通常不寫入數據庫,因此導致后期采集的數據存在大量缺失值。
實驗過程中對采集到的60 個維度的監(jiān)測指標數據缺失值比例進行統(tǒng)計,如圖1 所示(監(jiān)測指標名稱通過序列ID 替代),可以觀察到:由于缺失值占比超過50%的監(jiān)測指標占比較高,缺失值對降維分析和模型訓練均有很大影響;同時,由于待分析的監(jiān)測數據均為數值型數據,不存在分類指標或文本類型指標數據。因此,本文實驗中對缺失值的處理將按照上文提到的系統(tǒng)實際存儲行為完成缺失值填充,填充方法為:根據實際水電系統(tǒng)數據寫入規(guī)則以及避免在插值過程中引入額外的人為誤差(波動幅值一般源于環(huán)境噪聲或探測器電子學噪聲),如果傳入的監(jiān)測指標值與上一時刻非空(若為空值,則迭代回溯)的指標值相同,則錄入空值,否則錄入當前值。因此填充時可以直接將前一時刻數據值直接替換當前時刻缺失值,無須通過傳統(tǒng)的補充平均值、補零等方式填充。
圖1 數據缺失值占比Fig.1 Percentage of missing data values
通過以上方法填充前一時刻存在的記錄值,填充后數據頭部依然存在無法被填充的缺失值,但相對一年時間數據長度占比極小,如圖2 所示。從圖2 可以看到,填充后頭部缺失數據占比極小,平均約占總體數據量的0.02%,對后續(xù)序列特征變化特性建模的影響極小。因此實驗中直接移除頭部無法填充的數據段。
圖2 填充后缺失值占比Fig.2 Percentage of missing values after refilling
在時序序列數據分析中,獲得數據并進一步進行數據分析之前,需要先進行特征降維,避免因特征維數過高導致的維數災難,同時也可以使數據分析獲得更好的性能。水電機組數據中,存在隱形高度相關的監(jiān)測指標維度較高,例如對同一設備同時監(jiān)測的電壓和電流值等類似的監(jiān)測對,在其中一個指標發(fā)生異常的同時,另一個指標必然發(fā)生異常,可能為正相關或負相關關系,在實際監(jiān)測時只需要對其中一個指標進行監(jiān)測即可[12]。
一般通過數據采集時以人工選擇的方式提取互不相關的獨立監(jiān)測指標用于數據分析,但人工選擇非常耗費時間,并且存在漏篩選或過度篩選的問題。因此,本文對采集到的全量特征維度利用機器學習方法提取主要特征,以降低人工成本和錯誤率,提高數據鏈路自動化處理能力。常見的數據降維方法包括PCA(主成分分析)、隨機森林特征選擇、低秩表示等。PCA 是一種常見的無監(jiān)督學習方法,主要利用正交變換把由線性相關變量表示的少量觀測數據轉換為由線性無關變量表示的數據,最終獲得的線性無關的變量即為主成分[13]。隨機森林算法是一種基于決策樹的集成學習算法。決策樹的每個節(jié)點都是關于某種特征的條件,對于一棵決策樹,可以計算每個特征平均減少的不純凈度,并將該值作為特征選擇的判別依據[14]。
針對水電機組數據,由于同一部件存在多種相關監(jiān)測指標,互相關程度極高;同時原始時序數據包含重要序列周期信息。如果對水電機組數據采用PCA 降維算法,會將原始數據序列特征映射到新的特征空間中,導致原始序列特有的周期等特征丟失,模型無法學習合理的序列特征,影響最終序列重建效果。因此本文實驗采用隨機森林算法,結合特征互相關性矩陣對原始60 個維度的特征進行篩選,最終保留10 個維度的特征信息作為建模數據輸入。
早期的時序數據預測模型包括線性回歸、ARIMA 等,進入深度學習時代,基于RNN 結構的LSTM(長短期記憶神經網絡)模型由于其遺忘門的設計可以很好地處理長短時序信息而被廣泛應用[15]。然而對于較大規(guī)模,例如超過一年且以分鐘記錄的時序數據,LSTM 仍無法很好地提取遠距離上下文序列關系。而Transformer 模型則去掉了短期前后文的序列關系方法,完全采用注意力機制,結合位置編碼,能夠有效建模長距離上下文關系。大規(guī)模數據存在的另一個問題是很難進行人工標注,尤其是對于低頻出現的異常片段。因此,本文提出TransGAN,結合Transformer 和GAN網絡的無監(jiān)督模型,同時解決長距離上下文時序建模以及人工標注困難的問題。
Transformer模型摒棄了RNN的結構設計,網絡核心為堆疊式的自注意力結構,整體采用邊界結構設計;Transformer 基于此設計相比LSTM能夠更好地處理長文本上下文關聯信息,主動挖掘關鍵點,并學習關聯表征。Transformer 在機器翻譯領域大放異彩,尤其是基于Transformer 結構構建的預訓練模型,在自然語言處理領域被廣泛使用,獲得了很好的效果,甚至在計算機視覺、語音識別和其他領域也被采用。
Transformer 模型的核心是其自注意力機制,如式(1)所描述:
式中:Q∈RN×Dk,表示注意力機制中的自主性提示,即查詢向量;K∈RM×Dk,V∈RM×Dv,鍵和值在注意力機制中一一對應。
基礎Transformer 模型的結構如圖3 所示,其輸入同時包含序列的向量編碼以及位置編碼。圖3中左側結構為編碼器,輸入為編碼的時序特征向量以及對應的位置編碼向量,經過多頭注意力機制和前向神經網絡,多層次編碼,輸出低維度編碼向量,該向量獲得了時序特征序列的重要特征編碼信息。圖3右側為解碼網絡,該網絡包含3個維度的輸入信息:編碼的時序特征向量、位置編碼向量以及編碼網絡獲得的編碼向量。
圖3 Transformer網絡結構Fig.3 Transformer network structure
由于Transformer 結構中的自注意力機制善于處理上下文關聯性建模,因此在時序數據預測中,也可以很好地挖掘長時間上下文依賴關系。
在水電機組數據異常預測中,不同時間長度的數據之間的關聯性同樣需要建模,尤其針對機組裝備在長時間運營過程中,由于硬件工作參數受環(huán)境溫度、濕度、運行時間等影響時,可能發(fā)生累計形變、溫度異常等現象。因此相較傳統(tǒng)特征數據分析方法和基于循環(huán)神經網絡的方法,Transformer的長序列建模能力更加重要。
GAN由雙路架構構成,其中一個網絡用于從任意輸入(例如噪聲)生成目標,并使該目標不斷逼近真實目標;另一個網絡輸入生成目標和真實目標,并盡可能最大化兩者之間的差異,分辨兩者的不同。
判別器的損失函數如式(2)描述:
生成器的損失函數如式(3)描述:
同時訓練聯合損失函數如式(4)描述:
式中:G為生成模型;D為判別模型;x為真實數據;z為隨機噪聲;Ex~Pdata(x)[D(x)]表示在給定的真實數據分布中計算判別器分類的期望值;Ex~Pz(x)[D(G(z))]表示從純噪音數據中生成的數據,經過判別器判別真假的期望值。整體通過聯合交叉熵損失形式計算誤差,將誤差通過反向傳播算法,用于更新網絡參數。通過迭代訓練,模型最終收斂于最優(yōu)的生成模型和最優(yōu)的判別器。
基于GAN網絡架構的特殊性,其對抗性訓練方式能夠方便地應用于需要無監(jiān)督學習的場景中。當大規(guī)模數據中存在大量正樣本和極少量負樣本時,生成器將從大部分正樣本中學習到正常序列分布特征,同時判別器能夠通過上述損失函數通過反向傳播更新參數的方法不斷提升生成器對正常樣本的重建能力。水電機組數據在很大程度上具備上述屬性,較大比例時間內機組均處于正常工作狀態(tài),而異常報警的發(fā)生頻次較低,采用GAN網絡架構處理水電機組異常數據能夠降低負樣本篩選和標注工作。
綜上所述,結合Transformer 對時序序列強大的關聯信息建模能力,本文采用簡單的Transformer 模型作為主干網絡,編碼部分對水電機組時序數據提取隱藏層向量表示,再通過解碼網絡還原原始特征序列,實現時序特征數據自我重建能力。如圖3所示,網絡輸入部分包含原始特征序列和時序片段中各個時間點位置信息的編碼,編碼網絡由3 層堆疊的包含自注意力機制的模塊組成,前饋神經網絡包含一層獨立隱藏層。輸入經過編碼后,獲得對輸入時序序列隱含的重要特征信息的編碼向量。獲得編碼向量后,再將該向量結合特征序列以及位置編碼信息同時輸入解碼網絡,通過解碼網絡重建原始序列,編碼網絡也采用3層堆疊的包含自注意力機制的模塊組成,編碼向量為中間層輸入信號。獲得解碼向量后,通過線性層輸出,獲得重建的時序序列。
網絡訓練的監(jiān)督信息為原始時序數據,最終讓Transformer 模型通過正確的時序數據學習正確的編碼模式。
單獨用Transformer 模型進行序列重建無法正確從正常時序序列中獲得時序特征,降低異常序列的干擾。因此構建完成的Transformer 編解碼網絡需要結合GAN 訓練架構使用。本文將Transformer 模型作為生成器網絡,而對于判別器,僅需完成二分類任務,因此通過構建簡單的多層感知機實現判別器網絡,基于GAN 架構的Trans-GAN模型如圖4所示。
圖4 TransGAN網絡結構Fig.4 TransGAN network structure
網絡數據流過程如下:原始數據X通過基于Transformer模型的生成網絡G獲得重建的輸出X^,結合原始數據,一并輸入到基于多層感知機的判別網絡D中,經過多層感知機前向運算獲得真/假二分類概率值,結合式(4)計算聯合損失,再通過反向傳播算法更新模型參數梯度。
執(zhí)行預測任務時,只需要將時序序列片段數據x輸入訓練后得到的TransGAN模型,獲得重建后的預測序列T(x),然后依據式(5)計算原始序列與重建后的序列之間的誤差。
由于異常片段必定與正常序列存在不一致的趨勢,導致誤差增加。因此該誤差值可以準確反映異?,F象是否存在,其中差值存在的片段即為異常片段。
最終系統(tǒng)希望實現對異常值出現進行報警,因此只需要結合給定的閾值δ,如果Error大于δ,則判定當前序列存在異常。
實驗中,堆疊3 層Transformer 結構分別作為編碼器和解碼器,隱狀態(tài)維度設置為512維,注意力頭數量為8個。使用Adam優(yōu)化器,給定初始學習率10-4,訓練輪次為20 輪,批大小設置為32,序列片段長度設置為100,特征維度10。在NVIDIA RTX 3090顯卡環(huán)境下訓練。
在篩選的測試集中根據訓練集相同的特征提取方法,提取執(zhí)行預測的特征時序序列數據,通過模型輸出重建結果,圖5分別展示了兩個維度異常檢測的效果。根據實際水電機組在異常檢測過程中希望報警的經驗閾值,本實驗針對定子鐵芯、軸瓦等8個溫度相關指標,采用閾值5度作為誤差范圍δ,驗證模型預測準確率。其他指標則根據實際運行時經驗報警閾值判斷。
圖5(a)為某機組定子鐵芯溫度值的異常檢測結果,其中紅色曲線為原始數據經過TransGAN重建后的序列。從圖5(a)可知,某一時間點附近存在一個異常值,根據式(5)計算得知誤差約為13,遠超過設定閾值5,因此該處異常溫度點發(fā)出報警信息。
圖5(b)為某機組軸瓦溫度值異常檢測結果,可以明顯看到TransGAN 模型對正常溫度變化序列擬合效果很好,誤差普遍低于0.5。而某一時間點附近存在的異常點誤差為173,遠超過誤差閾值。
圖5 基于TransGAN的序列異常檢測結果Fig.5 Results of sequence anomaly detection based on TransGAN
通過TransGAN 對拆分的測試數據進行異常判斷,設定誤差閾值δ=5,人工統(tǒng)計系統(tǒng)異常報警數量與實際異常點數量,準確率為98.3%,遠超過人工監(jiān)控的準確率。
本文算法采用Transformer 模型作為主要建模模塊,從數據中建模正常序列模態(tài)。通過實驗對比RNN 為基礎的模型,證明Transformer 作為建模模塊可以更好地擬合更長時間周期的數據,建立長距離上下文關系。
對比實驗采用雙向LSTM 模型。為控制單一變量,實驗中僅將Transformer 建模模塊替換為雙向LSTM 模型,同時可以直接利用未標記負樣本的全量數據訓練模型。表1展示了替換后的模型進行異常檢測的結果。從查全率和查準率可以看出,Transformer 的建模能力強于雙向LSTM的建模能力,對學習水電機組運行數據正常特征模式有明顯效果。
表1 對比實驗查準/查全率Table 1 Accuracy rate and recall rate of comparison tests%
本文研究中,結合實際水電機組歷史數據,通過數據清洗、特征工程以及基于Transformer 和GAN的序列重建算法快速準確提取時序序列的異常片段,在測試集中獲得良好表現。在水電機組系統(tǒng)中完成該模型部署,實際運行可以達到實時異常監(jiān)測的效果,并且具有準確率高、誤報率低的特點,為降低機組維護人員工作負擔,提升監(jiān)測準確率和準時性的智慧化水電系統(tǒng)奠定了基礎。該方法可以在水電機組普遍使用,但對于不同的水電機組需要進行額外訓練。