趙 敏,王慧卿,張 超,李 洋,張建亮,高 楓,任學武
1.國網山西省電力公司信息通信分公司,山西 太原030001
2.北京謙潤和科技有限公司,北京100190
大數據技術作為新一代技術,其隱藏的價值將會給很多行業帶來顛覆性的改變[1]。近年來,中國電機工程學會信息化專委會正式發布《中國電力大數據發展白皮書》,國家電網公司也開展了各類智能電網大數據應用的科研項目[3],智能電網中的大數據來源寬泛,如智能電表測量用電數據等[4]。
當前智能電網領域數據量總體呈現指數增長,因此可通過合理、高效利用大數據技術,分析電力領域數據潛在價值[5]。當前智能電網領域數據量總體呈現指數增長,因此可通過合理、高效利用大數據技術,分析電力領域數據潛在價值[5]。
對于電力領域的大數據,由于行業特殊性,對數據的完整性有一定的要求。文獻[6]基于Spark框架對電力能源大數據的數據清洗模型進行研究,該模型未考慮數據集中的短時相關性,不考慮時間關聯,數據異常點的判斷偏差會增大。文獻[7]中提出了將棧式自編碼器網絡應用于電力大數據的清洗與恢復中,在訓練中隨機加入噪聲信息,通過對噪聲數據的特征進行解析,消除噪聲還原數據。
本文結合電力信息通信資產對數據質量有較高要求的特點,提出了一種基于棧式自編碼器的數據清洗算法(Data cleaning algorithm based on SDAE,DCbS),DCbS 算法可以辨別異常數據,恢復重構奇異點和缺失數據,通過引入滑動窗口來保存數據之間的短時相關性并從殘差的角度訓練模型,以減少模型辨別異常數據點所需的訓練數據。針對電力信息通信資產運行異常的情況,該方法可以有效的過濾干擾數據。
降噪自編碼器(Denoising auto encoder,DAE)作為自編碼器的改進,兩者具有相同的網絡結構和目標,降噪自編碼器是一類接受損壞數據作為輸入,并訓練來預測原始未被損壞數據作為輸出的自編碼器。DAE 在訓練時會主動向樣本數據中隨機添加噪聲數據,在訓練的過程中主動學習消除噪聲干擾重構污染數據,以增加系統的穩定性[8]。
輸入數據為d,在訓練過程中數據d經過破壞,得到d0,經過編碼d0的隱藏層表示如下:

此為數據的編碼模型,式中:W為m×n階的編碼權重矩陣,b為m階的偏置向量;s函數表達式為:

Sigmoid 函數對邊緣進行抑制,對中間的細微變化較為敏感,因此對特征識別度更好,故而選取Sigmoid 函數作為激活函數。
經過解碼,隱藏特征F的重構表示如下:

此為數據的解碼模型,式中W′為m×n階的解碼權值矩陣,b′為m階的反偏置向量。
重構數據的結果F并不能完全精確的與原始結果相同,為了計算誤差函數RH表示為:

式中d為原始數據集合,F為恢復之后的數據集合,在進行處理之前需要進行歸一化處理。損失函數說明訓練的效果,當損失函數最小時,輸入數據d與重構數據F所具有的共性特征被最大化的提取。將DAE 組合成深度學習的層級結構,可以最大化的提取細致抽象的特征,將殘差學習的方法引入進而得到DCbS 算法。
由于電力信息通信資產的狀態數據異常主要來自于兩個方面,一是數據記錄異常,此種情況為DCbS 算法所需清洗的對象,另一種為由于資產運行狀態異常所引起的運行數據異常。因此在訓練過程中,將樣本誤差和誤差持續時間作為數據類型的判斷標準,將最大誤差函數預置設為RMAX,最大誤差持續時間為TMAX,將數據中誤差超過RMAX且誤差持續時長低于TMAX的數據判定為一類異常數據,這些數據為數據異常點;將數據中誤差超過RMAX且長期為0 或者某一特定值的數據判定為二類異常數據,此數據為數據缺失,在數據中如誤差超過RMAX且存在一定變化規律,判定為三類異常數據,此數據為設備狀態異常數據。DCbS 算法清洗目標為一二類異常數據。
電力信息通信資產的狀態參量信息間具有非線性相關性,且各監測參數為時間序列數據,具有短時相依特征,若直接采用電力信息通信資產原始監測數據訓練SDAE 模型,雖能學習獲得各參數間的非線性關系,然而各監測參數固有的短時相依性會被忽略,影響機組狀態監測結果的準確性[9]。具體滑動窗口處理方法的具體步驟為:
記X={x(j)i}為電力信息通信資產狀態參數數據集,其中,i=1,2,…,n,j=1,2,…,m,n為監測變量數,m為采集的樣本數據數量。則數據X的第i個分量表示機組第i個監測變量樣本數據,即。設滑動窗口的寬度為β(即滑動窗口內包含β個時間點數據),窗口每次移動一個時間點,對于m個樣本數量的數據X共有m-β+1 個滑動窗口,記為第l個滑動窗口采集的第i個監測參量的數據,則:

第l個滑動窗口采集的數據為:

因此,由公式(5)、(6),對電力信息通信資產狀態參數數據采用滑動窗口處理得到SDAE 模型的輸入數據增廣狀態數據矩陣:

此外,當β=1 時,Y=X,此時增廣狀態數據矩陣即為原始狀態參數數據。采用滑動窗口技術處理,SDAE 的輸入數據由原始數據X的n維增至增廣狀態數據矩陣Y的n·β維,樣本數據量也相應由m變為m-β+1。
訓練過程為對DAE 進行逐層無監督的預訓練,在預訓練過程中,誤差進行反向傳播。傳統的堆式降噪自編碼器的優化目標為對原始數據d和破壞數據d0之間進行端到端的優化,這種優化方法需要較多特征,并且計算量較大。但是如果從殘差的角度出發,原始的函數映射則變為d和d+n,n表示數據中的噪聲,DCbS 算法的目標為d和n之間的映射,誤差函數則變更為:

式中n為噪聲,為了防止模型的過擬合,通過引入重衰減項(正則項)防止模型出現過擬合現象,式中為權值衰減項。

λ為權值衰減系數,λ=3e-3;表示連接l層第j個神經元與l+1 層第i個神經元的權值參數;s1、s2、s3分別為第一、二、三層的節點數,即網絡輸入層、隱藏層和輸出層的節點數。
算例采用某地區部分變電站交換機2014 至2015 的狀態檢測信息作為訓練及測試數據,測試數據中,對交換機吞吐量這一指標人為的加入噪聲以檢測算法性能。選取正常運行狀態訓練,得到初始模型;選取包括異常運行狀態的真實信息進行訓練,得到故障數據模型。其中模型輸入層規模為80,包含3 個隱藏層,規模分別為70、50、70,學習周期為1000,訓練樣本數量為10000 組。

表1 DCbS 數據清洗部分結果Table 1 Cleaning partial results of DCbS data
表1 中展示了部分增加噪聲之后進行清洗的數據集,可以看出經過DCbS 算法清洗的數據與真實值基本一致,對于污染數據也具有較好的恢復能力,經過處理的無損數據與原始數據的偏差保持在5%之內,對于設備狀態異常數據,也能進行良好的識別,設備狀態異常數據經過處理之后,依然保存其特征,方便后續進行繼續的處理,對于第一類和第二類數據異常點,DCbS 算法也保持了良好的識別特性,并對其進行了預測恢復,變化4 和5 的數據為缺失數據,人為將真實數據置零,DCbS算法將器恢復至真實值水平,與真實值誤差最大相差3.26。編號8 和9 的數據為人為造成的奇異點,即數據產生較大偏差且持續時間較短,DCbS 算法對于奇異值的恢復也較為理想??梢?,通過DCbS算法對電力信息通信資產大數據進行清洗,清洗結果負荷真實數據分布特點。
圖1 為將某一連續時刻的檢測數據輸入CDbS 算法、SDAE模型以及DAE 模型中的數據清洗結果,時刻點13、37、122 和187 為測試數據設置的奇異點,時刻點65、150 和166 為設置的數據缺失點,時刻20 至26 為設備狀態異常點。從圖2 中可以看出,三種降噪編碼器數據清洗模型都可以對異常數據進行一定程度上重構,其中本文提出的CDbS 算法重構效果最優,SDAE次之,整體上SDbS 算法的重構數據與無損數據保持在5%以內。

圖1 不同樣本時間點下路由器吞吐量Fig.1 Router throughput at different sample time points

表2 錯誤檢測率仿真結果Table 2 simulation results from error detection rate
表中可以看出,隨著測試樣本數量的上升,CDbS 算法檢測的正確率有所下降,但是錯誤的檢測率可以保持在90%以上,檢測的正確率也能保持在82%以上,可見CDbS 算法可以較好的發現數據集中存在的異常點。隨著檢測數據量的上升,CDbS 算法的錯誤檢測率和檢測正確率有所下降,但是均保持在一個合理范圍之內,說明CDbS 算法可以通過對于數據集中存在異常的檢驗,發現數據集中存在的誤差,為后續的資產狀態評估提供有力的數據支持。
圖2 為訓練樣本數量與檢測樣本數量為500 的錯誤檢測率和檢測正確率之間的關系,隨著樣本訓練數量的上升,錯誤檢測率和檢測正確率也隨之上升,可見CDbS模型隨著訓練樣本的上升,性能也在上升。樣本數量為2.5 萬時,CDbS 模型的錯誤檢測率為93.01%,檢測正確率為86.73%,錯誤檢測率提升2.54%,檢測正確率提升4.13%。隨著訓練樣本的增加,更多的噪聲特征被CDbS 算法模型所學習,故而檢測正確率有所提高。

圖2 錯誤查找準確率Fig.2 Accuracy of finding error
文中提出了一種基于棧式自編碼器的數據清洗算法(Data cleaning algorithm based on SDAE,DCbS),通過滑動窗口保存數據之間的短時相關性以及含噪數據與無損數據之間的殘差分析,以減少模型辨別異常數據點所需的訓練數據。針對電力信息通信資產運行的異常情況,該方法可以有效地過濾干擾數據。實驗結果表明所提算法提高了對于數據異常點的辨別和恢復能力,最終從數據的恢復以及異常值的辨別兩方面凸顯算法的優越性