陳 冰 唐永旺
1(河南工業大學漯河工學院 河南 漯河 462000) 2(中國人民解放軍戰略支援部隊信息工程大學信息系統工程學院 河南 鄭州 450001)
智能電網以其可靠、高效和經濟的傳輸特點成為現代電力系統最重要的組成部分,然而智能電網嚴重依賴數據通信和大規模數據處理技術,容易遭到各種惡意網絡攻擊[1]。盡管已經頒布了很多針對智能電網安全的通信標準、官方指南和監管法律(如IEC 61850-90-5、NISTIR7628等),惡意網絡攻擊仍活躍于智能電網中。
虛假數據注入攻擊FDIA是Liu[2]等提出的惡意網絡攻擊技術,被證明是一種對智能電網狀態估計產生嚴重影響的惡意網絡攻擊行為。其通過規避現有的數據注入監測系統,篡改電網的狀態估計數據,誘導電網控制中心做出錯誤決策,導致整個智能電網出現故障。如何高效地檢測 FDIA,對于保障智能電網安全運行具有重要意義。
傳統的FDIA檢測思路主要歸為兩種[3-4]。一是策略性地保護部分關鍵基礎測量數據的安全,避免惡意數據注入的發生。如Kim等[5]提出兩種快速貪婪算法分別用于選擇待保護的測量子集數據和尋找存儲安全相量測量單元的位置;Bi等[6]利用圖形分析研究方法引入到FDIA檢測中,提出精確、低復雜度的近似算法來選擇保護系統中最小的數據測量值。二是通過獨立檢驗每個狀態變量進行FDIA檢測。如Liu等[7]考慮到電網狀態時間測量的內在低維度以及FDIA的稀疏性質,將FDIA檢測視為低秩矩陣分離問題,并提出核規范最小化和低秩矩陣分解兩種優化方法來解決該問題;Ashok等[8]提出了一種在線FDIA檢測算法,該算法利用統計信息和狀態變量的預測來檢測量測異常。
近年來隨著智能電網通信數據量級的增加和FDIA方法的不斷升級, 傳統方法在進行FDIA檢測時越來越力不從心。機器學習以及深度學習算法逐漸應用在智能電網惡意網絡攻擊檢測中,并較傳統檢測方法檢測性能有明顯提升[9-13]。Ozay等[14]利用監督和半監督機器學習方法完成對高斯分布式攻擊的分類。Esmalifalak等[15]設計了一種基于分布式支持向量機的標簽數據模型和一種無監督學習的統計異常檢測器。He等[16]采用條件深度信念網絡有效學習了FDIA的高維時間行為特征。Niu等[17]利用卷積神經網絡提取和長短時記憶網絡(Long Short Term Memory Network, LSTM)學習量測狀態序列的時間和空間關系特征,進而實現FDIA檢測。James等[18]基于小波變換和單向門控循環單元(Gated Recurrent Unit,GRU)進行系統的狀態連續估計,檢測序列狀態中的FDIA。Wang等[19]利用3層LSTM作為序列編碼器,學習FDIA樣本的特征,在測試數據中準確率達90%。深度學習算法可以自動學習電網中各節點的狀態量測數據特征,發現異常狀態序列或對異常序列分類,整個過程不需要人工設定特征。
然而,現有基于循環神經網絡[17-19](Recurrent Neural Network, RNN)的FDIA檢測方法在訓練量測值時僅使用了多層單向的RNN訓練框架,單向的RNN模型在處理序列數據時只能利用已經出現過的序列元素,忽略了未來的序列信息,導致模型性能下降,影響特征最終的提取效果。另外,這些方法中只選取RNN最后一個時刻的隱狀態或者各時刻隱狀態的拼接作為提取的特征,無法突出注入攻擊數據的特征。因為注入攻擊向量不一定會對狀態量測數據的每一維都均勻地注入攻擊,有可能只對一部分維數的數據進行攻擊。自注意力機制[20]廣泛應用在自然語言處理領域,用于挖掘與當前預測詞關系緊密的上下文詞語。由此推斷可以通過自注意力機制關注量測數據中被注入攻擊的位置,從而在提取量測數據特征時對這些位置的隱狀態給予更高的權重。
綜上所述,在文獻[17-19]研究基礎上,本文提出一種基于Bi-GRU和自注意力的FDIA檢測方法,經查閱文獻可知,在FDIA檢測領域引入自注意力機制尚屬首次。首先將樣本數據進行去均值和歸一化處理,采用Bi-GRU對量測序列的前向和后向進行建模,輸出各時間步的前向和后向隱狀態,將前后向隱狀態的拼接作為當前元素包含上下文信息的特征。然后利用自注意力機制為被注入攻擊的時間步隱狀態分配更高的權重,將各隱狀態的線性加權和作為樣本序列的深層特征表示。最后,將該特征表示輸入到全連接神經網絡層和Softmax層,輸出樣本的預測概率,完成FDIA檢測。
在電力系統中,待估計的狀態變量包括電壓幅值V∈Rn和相位角θ∈([-π,π])n,n是總線數量。令z=[z1,z2,…,zm]T∈Rm表示量測向量,x=[x1,x2,…,x2n]T∈R2n代表狀態變量,e=[e1,e2,…,em]T∈Rm代表量測誤差向量。在標準直流系統下,可忽略電阻,電壓幅值均為1,僅考慮帶有相位角的狀態變量,量測值和狀態變量的關系為:
z=Tx+e
(1)
式中:T是m×n的拓展結構雅可比矩陣。求使加權殘差平方和最小的狀態估計變量x,目標函數為:
j(x)=(z-Tx)TR-1(z-Tx)
(2)
式中:R是協方差矩陣。利用加權最小二乘法求解式(2)的目標函數:
(3)

GRU和LSTM都是RNN的變種,性能在很多任務上不分伯仲,但是GRU少一個控制門,訓練參數較少,訓練時更容易收斂。因此,本文利用GRU[22]作為編碼器的基本組成單元,GRU的輸入輸出結構如圖1所示。

圖1 GRU的輸入輸出結構
圖1中,xt為當前輸入,ht-1為上一個節點傳遞的隱狀態,其包含之前節點的相關信息。GRU通過xt和ht-1得到當前隱藏節點的輸出yt和傳遞給下一個節點的隱狀態ht,其具體工作流程如圖2所示。

圖2 GRU內部工作原理圖
1) 在t時刻,GRU通過ht-1和xt來獲取重置門r和更新門z的狀態,如下所示:
rt=σ(Wrxt+Urht-1)
(4)
zt=σ(Wzxt+Uzht-1)
(5)
2) 利用重置門“重置”ht-1包含的信息,得到ht-1′=ht-1⊙rt,與xt拼接后,通過tanh激活函數將數據映射到[-1,1],得到ht′:
ht′=tanh(Wxt+rt⊙Uht-1)
(6)
式中:⊙表示矩陣對應元素相乘。
3) 利用更新門“更新記憶”:
ht=zt⊙ht-1+(1-zt)⊙ht′
(7)
更新門范圍取值范圍為[0,1],門控信號越接近1,代表“記憶”下來的數據越多;越接近0則代表“遺忘”的越多。
本文利用雙向GRU 網絡結合自注意力機制提取攻擊樣本的特征, 構建了基于Bi-GRU和自注意力機制的 FDIA 檢測模型,其結構如圖3所示。

圖3 本文提出的FDIA檢測模型框架
該模型主要分為Bi-GRU層、自注意力層以及全連接和Softmax層三大部分。
Bi-GRU由前向GRU和后向GRU組合而成,其具體結構如圖4所示。

圖4 Bi-GRU訓練流程

(8)
(9)

自注意力層的作用就是在H上施加注意力,具體過程如圖5所示。

圖5 自注意力機制計算示意圖
自注意力層將Bi-GRU的隱狀態集合H作為輸入,輸出注意力向量a:
a=Softmax(ws2tanh(Ws1HT))
(10)
式中,Ws1是維數為da×2u的權重矩陣;ws2是維數為da的參數向量;da為一個超參數;a的維數是n。Softmax函數保證輸出的注意力向量的每個元素代表一個概率,且所有元素和為1。按照注意力權重分配向量a將H線性加權求和即可得到狀態測量序列的嵌入表示m。
然而,一個m通常只關注序列S某些維度的特征,FDIA可以對狀態量測序列的多個維度值進行攻擊。因為一個m并不能代表序列S的所有攻擊特征,所以需要增強注意力,計算多個代表不同維度特征的m作為序列S的嵌入表示。假設需要計算序列r個方面的特征,則ws2的維度擴展為r×da并記作Ws2,a擴展為注意力權重分配矩陣A:
A=Softmax(Ws2tanh(Ws1HT))
(11)
序列S的嵌入表示由m擴展為維數是r×2u的M矩陣:
M=AH
(12)
隨后將M輸入全連接層和Softmax層,輸出識別概率,具體如下所示:
Y=Softmax(WfM+b)
(13)
式中:Wf是全連接層的權重矩陣;b為偏置;Y是Softmax層計算的概率結果。
本文選擇該領域主流的IEEE 30-bus和IEEE 14-bus節點測試系統作為測試環境,系統網絡拓撲、節點數據、支路參數等均從 Matpower 中獲得。在每個環境中利用Matpower軟件仿真生成150 000個正常量測數據樣本,標簽為-1。另外根據現有的FDIA種類[19]構造了50 000個可以繞過傳統基于殘差不良數據檢測的FDIA樣本,標簽為1。IEEE 30-bus中每個樣本包括112個量測值, IEEE 14-bus中每個樣本包括54個量測值。每個測試系統的量測值包括電壓幅值、總線相位角、總線注入有功功率和無功功率、各支路注入有功功率和無功功率等,將正常樣本和FDIA樣本進行去均值和歸一化處理,分別按照7∶3的比例隨機抽取樣本制作訓練集和測試集。
本文采用準確率、漏報率和誤報率三個FDIA檢測領域通用的評測指標驗證本文方法的可行性和有效性,首先定義以下變量:
真負類(Ture Negative) 表示將正常量測樣本正確地識別成正常量測樣本的數量, 記為Tn。
假負類(False Negative) 表示將正常量測樣本誤識別成FDIA樣本的數量, 記為Fn。
真正類(Ture Positve) 表示將FDIA樣本正確的識別成FDIA樣本的數量, 記為Tp。
假正類(False Positive) 表示將FDIA樣本誤識別成正常量測樣本的數量, 記為Fp。
(1) 準確率(記為Ac)計算表達式為:
(14)
式(14)表示所有被正確判斷的樣本數量占所有樣本的百分比。準確率越高,算法越好。
(2) 正報率計算表達式為:
(15)
式(15)表示在所有被檢測為FDIA樣本中,被正確預測FDIA樣本所占的百分比。正報率越高,算法越好。
(3) 誤報率計算表達式為:
(16)
式(16)表示在所有被檢測為正常樣本中,被錯誤預測樣本所占百分比。誤報率越高,算法越差。
本文選取文獻[15]、文獻[19]的方法作為對比方法。文獻[15]利用標簽數據的監督學習訓練分布式支持向量機對FDIA樣本檢測,測試結果記為SVM。文獻[19]基于兩層單向的LSTM模型學習狀態量測值序列的特征,測試結果記為LSTM。同等條件下,將LSTM替換為GRU,測試結果記為GRU。另外,僅利用雙向GRU模型學習狀態量測值序列的特征,利用該特征檢測FDIA樣本,測試結果記為Bi-GRU。
本文方法首先分別將兩個測試環境的樣本進行去均值和歸一化處理為112維和54維的序列數據,提高訓練速度。使用TensorFlow 深度學習框架構造Bi-GRU和自注意力機制組合的模型結構。根據訓練模型的經驗,本文采用一個輸入層、3個Bi-GRU和自注意力機制組合層、一個全連接層和一個Softmax層的結構。訓練IEEE 30-bus量測數據時,每個單向GRU層有112個GRU單元,訓練時間步長為112;訓練IEEE 14-bus量測數據時,每個單向GRU層有54個GRU單元,訓練時間步長為54。GRU單元的隱藏節點數為300,各單元之間共享訓練參數,優化算法選取Adam[23],epochs設置為100,每批數據batch_size大小為256,學習速率為0.01,全連接層的隱藏節點為3 000,使用dropout技術,避免過擬合問題,dropout設置為0.7[24],在測試集的評測結果記為Bi-GRU-SA。
實驗硬件配置為Intel Xeon E5-2650,128 GB內存的服務器,配備12 GB的雙GTX 1080Ti獨立顯卡進行加速訓練。
1) 綜合對比實驗 本文方法和各對比方法測試結果如表1-表2所示。

表1 IEEE 30-bus綜合實驗結果

表2 IEEE 14-bus綜合實驗結果
從表1和表2可以看出:LSTM和GRU的測試結果優于SVM,這是因為RNN網絡在處理高維度序列數據方面比SVM更有優勢。GRU和LSTM作為RNN的變種,三項評測指標差別不大。Bi-GRU在計算時刻t的隱狀態時可以綜合利用量測序列前向t-1時刻和后向t+1時刻的隱狀態,而單向的LSTM和GRU僅利用t-1時刻的隱狀態,無法準確預測當前時刻的隱狀態,因此Bi-GRU三項的評測指標優于LSTM和GRU。在Bi-GRU的基礎上加入自注意力層,計算每個時刻隱狀態的注意力分配值,將注意力著重放在被虛假數據注入攻擊的隱狀態,進而利用各時刻隱狀態的加權求和得出樣本最終的嵌入表示,該嵌入表示可以更加準確地代表量測樣本。Bi-GRU-SA的測試結果與對比方法相比有較顯著的提升;與次優結果相比,準確率平均提升7.1%,正報率平均提升3.95%,誤報率平均降低38.85%。
2) 自注意力提升參數r的分析 注意力提升是自注意力機制的關鍵一步,因此需要分析r對FDIA檢測的影響。以IEEE 30-bus為例,令r在[0,40]內取值,以5為步長訓練FDIA檢測模型,在測試集進行檢測任務,以評測指標準確率分析,結果如圖6所示。

圖6 準確率隨著r的變化分析
由圖6可以看出,在[0,25]的區間內,Ac隨著r的增加而增加,從FDIA樣本提取的特征也越來越全面,說明注意力提升對檢測性能有重要作用。當r在[25,40]之間時,Ac趨于平穩,且當r為25時達到峰值,說明對于本文實驗數據來說,25個矩陣m足以代表FDIA樣本的特征。
本文提出一種基于Bi-GRU和自注意力機制的FDIA檢測方法,解決了當前基于單向多層RNN的FDIA檢測方法中無法綜合利用序列上下文隱狀態的問題。另外,本文首次將自注意力機制引入FDIA樣本的特征提取中,以各時間步隱狀態的注意力加權和作為樣本的嵌入表示,通過注意力的提升準確地計算出樣本的深層特征表示,提升了FDIA檢測性能。GRU的結構特性決定其只能順序訓練序列的元素,在大規模的數據量下訓練模型和利用模型檢測均需要消耗大量的時間,如何構造一種可以并行訓練序列元素的網絡結構是下一步研究的重點方向。