常 顥,徐俊俊,王曉兵,周 憲
(1.國網(wǎng)江蘇省電力有限公司泰州供電分公司,江蘇 泰州 225300;2.南京郵電大學 自動化學院/人工智能學院,江蘇 南京 210023)
在電動汽車迅猛發(fā)展、分布式電源廣泛接入、相量測量單元(phasor measurement unit,PMU)等新型量測傳感大規(guī)模運用背景下,城市配電網(wǎng)運行與控制逐步向低碳化和智能化演變,但系統(tǒng)安全性也易受到黑客攻擊等潛在威脅[1]。其中,虛假數(shù)據(jù)注入攻擊[2](false data injection attacks,F(xiàn)DIAs)被認為是影響城市配電網(wǎng)安全穩(wěn)定運行的重要因素之一,通過篡改系統(tǒng)量測數(shù)據(jù),并利用系統(tǒng)監(jiān)測漏洞達到破壞電網(wǎng)信息傳輸與利用的目的。FDIAs具有極強的隱蔽性、破壞性,是電網(wǎng)安全運行的重大威脅[3]。
自從文獻[4]提出FDIAs 概念,國內(nèi)外學者已經(jīng)對FDIAs 的檢測方法開展了較為翔實的分析與研究。研究主要分為兩個方向:基于模型的檢測算法和數(shù)據(jù)驅(qū)動[5]的檢測算法。文獻[6]提出一個基于多維數(shù)據(jù)關聯(lián)和智能分析模型的高級網(wǎng)絡安全分析框架,應對城市配電網(wǎng)的FDIAs 問題;文獻[7]提出一種基于長短期記憶循環(huán)神經(jīng)網(wǎng)絡的攻擊檢測模型,應對城市配電網(wǎng)復雜動態(tài)行為背景下的FDIAs行為;文獻[8]提出將無跡卡爾曼濾波與基于加權(quán)最小二乘法的狀態(tài)估計算法結(jié)合,實時檢測估計值之間的差異,從而識別虛假數(shù)據(jù)攻擊。然而上述方法均需要系統(tǒng)運行狀態(tài)、拓撲結(jié)構(gòu)、量測數(shù)據(jù)。隨著信息物理系統(tǒng)的發(fā)展,量測數(shù)據(jù)規(guī)模增大、拓撲結(jié)構(gòu)復雜化,上述方法的適用性降低,F(xiàn)DIAs 的檢測效率下降[9]。
隨著城市配電網(wǎng)與信息物理系統(tǒng)的發(fā)展,系統(tǒng)接入大量量測裝置,收集儲存大量量測數(shù)據(jù)。機器學習和數(shù)據(jù)驅(qū)動技術(shù)具有強大的信息提取能力和靈活的可拓展性,可以廣泛應用于城市配電網(wǎng)的系統(tǒng)運行[10]。目前,提出多種基于機器學習,包括:深度信念網(wǎng)絡(deep belief network,DBN),支持向量機(support vector machine,SVM)和深度神經(jīng)網(wǎng)絡(deep neural network,DNN)的配電網(wǎng)系統(tǒng)FDIAs 識別,檢測與防御的技術(shù)。文獻[11]提出一種基于灰狼優(yōu)化多隱層極限學習機的電力信息物理系統(tǒng)FDIAs 檢測方法,通過將攻擊檢測問題轉(zhuǎn)化為多標簽二分類問題,解決極限學習機特征表達能力有限的問題;文獻[12]提出一種利用自動編碼器檢測FDIAs 的方法,具備壞數(shù)據(jù)檢測與剔除能力;文獻[13]提出了一種基于自動編碼器神經(jīng)網(wǎng)絡的檢測方法,克服對歷史量測數(shù)據(jù)的過度依賴;文獻[14]提出一個基于單調(diào)注意力的自動編碼器,實現(xiàn)FDIAs 檢測的無監(jiān)督學習;文獻[15]提出一種基于DBN 的FDIAs 檢測方法,利用無監(jiān)督學習為網(wǎng)絡提供初始權(quán)重,通過反向傳播算法對模型參數(shù)進行調(diào)整。文獻[16]提出一種增強型的DBN 對微電網(wǎng)的攻擊進行檢測與緩解,通過使用分層微電網(wǎng)架構(gòu),在檢測與緩解上更加靈活和快速。文獻[17]提出一種基于數(shù)據(jù)驅(qū)動的機器學習方法,用于檢測系統(tǒng)中的FDIAs,通過使用多個分類器,并進一步分類單個分類器的決策,優(yōu)化檢測質(zhì)量與效率。雖然數(shù)據(jù)驅(qū)動的檢測算法能擺脫系統(tǒng)本身的桎梏,依靠量測數(shù)據(jù)即可完成FDIAs 檢測,但實際電網(wǎng)多為交流電力系統(tǒng),這些在直流系統(tǒng)上執(zhí)行的算法在運用時,容易受電力系統(tǒng)復雜性影響。為了克服在交流系統(tǒng)中,難以檢測不可觀測的FDIAs的問題,文獻[18]提出使用小波變換和DNN 技術(shù),分析捕獲異常測量和正常測量的不一致,判斷是否受到攻擊。但是,文獻[18]需要在連續(xù)采樣中使用有標簽的測量,實行難度高,計算負擔大。現(xiàn)在,大多數(shù)用于FDIAs 檢測的機器學習算法都是有監(jiān)督的,而測試的異常數(shù)據(jù)不同于訓練期間的標記數(shù)據(jù),昂貴的標記成本導致無法將量測數(shù)據(jù)全部標記,并且,實際系統(tǒng)中無標記的數(shù)據(jù)規(guī)模遠大于有標記數(shù)據(jù),對無標記數(shù)據(jù)的忽略,會導致有效信息的丟失,甚至導致檢測失敗。
現(xiàn)階段,針對FDIAs 檢測的研究大多為輸電系統(tǒng)方面,配電系統(tǒng)的相關研究較少,如何處理三相不平衡配電網(wǎng)的FDIAs 檢測問題,如何解決基于模型的檢測方法可擴展性差的問題,如何在少量標記數(shù)據(jù)、較低測量精度的情況下實現(xiàn)FDIAs 檢測,是本文要研究的問題。為此,針對城市配電網(wǎng)系統(tǒng)受到FDIAs 的情況,提出一種基于對抗性自動編碼器的配電網(wǎng)FDIAs 檢測方法,可以根據(jù)實時的數(shù)據(jù)變化進行及時更新;且所提檢測方法為半監(jiān)督模式,只需要少量樣本數(shù)據(jù)作為驅(qū)動,適用于拓撲變化的場景,系統(tǒng)成本低廉。隨著城市配電網(wǎng)發(fā)展,量測裝置部署量增加,可以更加高效地對實時更新的拓撲數(shù)據(jù)進行采集,并對對虛假數(shù)據(jù)注入攻擊做出快速檢測。
狀態(tài)估計作為配電網(wǎng)態(tài)勢感知理論體系的關鍵技術(shù),是城市配電網(wǎng)實現(xiàn)優(yōu)化調(diào)度的前提,為負荷分配等重要決策提供數(shù)據(jù)支持[19]。
在已知量測,網(wǎng)絡參數(shù)和結(jié)線狀態(tài)的前提下,量測向量和狀態(tài)向量的關系為[20]
式中:x為狀態(tài)向量;ν為m維量測誤差;H為量測雅可比矩陣;z為量測向量。量測向量包括支路三相有功功率、無功功率和電流幅值,節(jié)點三相電壓幅值和相角,相連支路上的三相電流幅值和相角等實時量測數(shù)據(jù),以及常規(guī)負荷功率、光伏發(fā)電系統(tǒng)出力、風力發(fā)電系統(tǒng)出力等偽量測數(shù)據(jù)。
基于加權(quán)最小二乘法可以建立目標函數(shù)J(x)[21]為
式中:R為量測誤差的方差矩陣,在量測誤差服從均值為0 的正態(tài)分布的背景下,通過加權(quán)最小二乘法,可以求得系統(tǒng)狀態(tài)變量x的最優(yōu)估計值x^[22]。
虛假數(shù)據(jù)注入攻擊主要利用狀態(tài)估計的不良數(shù)據(jù)檢測機制存在的漏洞有針對性地構(gòu)建攻擊向量,從而破壞配電網(wǎng)量測數(shù)據(jù)的真實性和完整性,因此,不良數(shù)據(jù)檢測環(huán)節(jié)尤為重要[23]。
通過不良數(shù)據(jù)檢測,可以排除由于系統(tǒng)采樣誤差導致的壞數(shù)據(jù),提高系統(tǒng)狀態(tài)估計的穩(wěn)定性。
采用基于殘差協(xié)方差矩陣的歸一化檢驗[24]進行不良數(shù)據(jù)檢測,即為:
當最大歸一化殘差maxr~ 超過設定范圍時,此時系統(tǒng)存在不良數(shù)據(jù)。
攻擊者通過事先了解系統(tǒng)參數(shù),搭建攻擊向量a,并將虛假數(shù)據(jù)注入系統(tǒng)中。受到攻擊的系統(tǒng)量測向量za為
此時,系統(tǒng)狀態(tài)變量最優(yōu)估計值為
式中:c為任意常數(shù)向量。此時,狀態(tài)估計方程為
由此可知攻擊后的系統(tǒng)殘差矩陣ra可計算為
如果虛假數(shù)據(jù)注入攻擊向量a滿足
將式(11)代入式(10)可得
由式(12)可知,當FDIAs 向量a滿足式(11)時,攻擊前后系統(tǒng)殘差一致,逃避系統(tǒng)的不良數(shù)據(jù)檢測機制,成功篡改了系統(tǒng)的狀態(tài)估計結(jié)果。
對抗性自動編碼器(adversarial autoencoder,AAE)結(jié)合了自動編碼器和生成對抗網(wǎng)絡,AAE 將判別器網(wǎng)絡添加在自動編碼器的編碼器和解碼器之間[25]。AAE 的訓練階段分為兩個步驟:
1)編碼器與解碼器組成自動編碼器進行工作,最小化重構(gòu)誤差;
2)編碼器與判別器組成生成對抗網(wǎng)絡進行工作,編碼器作為生成器,二者互相博弈,直至達到納什平衡。
2.2.1 自動編碼器
自動編碼器由編碼器和解碼器構(gòu)成,廣泛運用于高維數(shù)據(jù)的降維和相關數(shù)據(jù)的解碼[26]。編碼器與解碼器由神經(jīng)網(wǎng)絡構(gòu)成,編碼器將輸入數(shù)據(jù)壓縮為低維,解碼器將低維升維為與原數(shù)據(jù)相似的數(shù)據(jù)。自動編碼器的結(jié)構(gòu)如圖1 所示,由于映射的存在,數(shù)據(jù)輸入與輸出之間存在誤差,通過訓練,能減少該誤差。
圖1 自動編碼器結(jié)構(gòu)Fig.1 Structure diagram of autoencoder
在自動編碼器中,輸入C=[cij]m×m,ci∈k m×1為相似度矩陣C中i節(jié)點的對應向量,作為第i個輸入向量輸出至自動編碼器。當ci輸入b個神經(jīng)元的編碼層后,利用式(13)可得隱藏層特征ηi∈kb。
式中:af為非線性激活函數(shù);Y∈k b×m為權(quán)重矩陣;o∈k b×1為編碼層的偏置向量;Encoding 為編碼器函數(shù)。
解碼器通過式(14)處理隱藏層特征ηi,得到輸出數(shù)據(jù)∈km×1。
式中:ag為解碼器的激活函數(shù)=YT∈k m×b為自動編碼器的權(quán)重矩陣;o^ ∈k m×1為解碼層的偏置向量;Decoding 為解碼器函數(shù)。
當?shù)玫綌?shù)據(jù)的輸入ci,輸出ci′后,通過式(15)降低兩者之間的差別[27]。
2.2.2 生成對抗網(wǎng)絡
生成對抗網(wǎng)絡由生成器和判別器組成,生成器、判別器均為神經(jīng)網(wǎng)絡,兩者互為博弈關系[28]。在運行過程中,生成器負責生成足夠真實的新數(shù)據(jù),使判別器無法分辨真假,判別器負責判斷數(shù)據(jù)是否為生成數(shù)據(jù),兩者訓練同時進行,直至達到納什平衡。
由于標記成本較高,實際電力系統(tǒng)中可用于訓練標記數(shù)據(jù)較少,通過生成對抗網(wǎng)絡,可生成足量合格數(shù)據(jù),用以訓練。
提出一種基于對抗性自動編碼器的三相配電網(wǎng)FDIAs 檢測方法,如圖2 所示。
圖2 基于對抗性自動編碼器的三相配電網(wǎng)FDIAs檢測方法Fig.2 Detection method of FDIAs in three-phase distribution network based on adversative autoencoder
首先讀取網(wǎng)絡參數(shù)h(x),采集量測數(shù)據(jù),得到量測數(shù)據(jù)矢量z,進行配電系統(tǒng)狀態(tài)估計;然后針對狀態(tài)向量x開展殘差檢測,排除部分FDIAs;此時使用少量標記量測數(shù)據(jù),按照式(16)—式(22)的方式對AAE 進行訓練,得到合適的編碼器,編碼器生成足量數(shù)據(jù)訓練模型,最后,將狀態(tài)向量輸入FDIAs 檢測器,判斷是否受到攻擊。
使用對抗性自動編碼器提取正常節(jié)點和受攻擊節(jié)點到其他節(jié)點的特征以及相到相的特征,再檢測這些特征,判斷網(wǎng)絡是否受到攻擊。另外為描述方便,定義輸入為C,是U個標記樣本{(b1,s1),(b2,s2),…,(bU,sU)}和V個未標記樣本{bU+1,bU+2,…,bU+V}的量測數(shù)據(jù)集,sU=0或1 是第U組的標記,U遠小于V;標記樣本的隱層輸入為Dl,對應未標記樣本的隱層輸入為Dn;標記樣本的隱層輸出為De,對應未標記樣本的隱層輸出為Dq;半監(jiān)督學習中的編碼器和解碼器分別為tτ(Dn,D∣lC) 和uτ′(C|Dn,Dl);標記樣本的隱層輸出De的生成樣本為,未標記樣本的隱層輸出Dq的生成樣本為Dq′,假設先驗分布u(De)和u(Dq)符合高斯分布,后驗分布t(De)和t(Dq)符合高斯分布,判別器的標記數(shù)據(jù)和未標記數(shù)據(jù)的輸入數(shù)據(jù)分別表示為Kcat和Kgauss。
AAE 的訓練過程可以分成3 個階段,如圖3 所示。在訓練期間,使用Adamax 算法計算,優(yōu)化每個參數(shù)的自適應學習率。AAE 的訓練樣本由標記和未標記的輸入組成,由量測數(shù)據(jù)決定。標記的輸入是已知真實值的量測值,而未標記的輸入是真實值未知的量測值。AAE 選取量測數(shù)據(jù)構(gòu)成的量測向量作為輸入,量測向量考慮配電網(wǎng)的電壓和電流數(shù)據(jù)、功率和頻率數(shù)據(jù)以及電能質(zhì)量數(shù)據(jù)等。
圖3 AAE的訓練過程Fig.3 AAE training process
1)AAE 作為自動編碼器運行,通過訓練編碼器和解碼器,最小化輸入C的重構(gòu)損失JH為
式中:τ、τ′為在訓練過程中利用隨機梯度下降進行的反向傳播;Li為輸入樣本的數(shù)量;C′為C映射回輸入空間的輸入。
2)判別器對標記數(shù)據(jù)的輸入數(shù)據(jù)Kcat和未標記數(shù)據(jù)的輸入數(shù)據(jù)Kgauss進行分類,將數(shù)據(jù)分為真實數(shù)據(jù)和生成的樣本數(shù)據(jù)。輸入數(shù)據(jù)Kcat的損失函數(shù)為
式中:G為生成器;A(*)為定義的函數(shù)為的數(shù)學期望,其中為標記樣本的隱層輸出De的生成樣本符合二維分布;為標記樣本的隱層輸出De的數(shù)學期望。
生成器的損失函數(shù)為
隨后,標記數(shù)據(jù)的雙方博弈為
式中:EDe~u(De)為標記樣本先驗分布u(De) 的數(shù)學期望。
同理,未標記數(shù)據(jù)的雙方博弈為
3)對抗性自動編碼器使用標記數(shù)據(jù)更新編碼器網(wǎng)絡。將最小化交叉熵JR作為監(jiān)督成本,訓練標記數(shù)據(jù)的編碼器。
式中:u(De)為階段2 中De的后驗分布;ui(C) 為輸入C的數(shù)據(jù)分布;t(Dl)為標記樣本隱層輸出Dl的后驗分布;Et(De)為后驗分布t(De)的數(shù)學期望。
使用IEEE 13 節(jié)點(母線)和123 節(jié)點(母線)配電系統(tǒng)驗證算法的優(yōu)越性。系統(tǒng)以三相不平衡為前提,添加多種分布式電源,符合城市配電網(wǎng)的使用場景,系統(tǒng)的具體參數(shù)可見文獻[29]。在MATLAB 中運行潮流程序和狀態(tài)估計,在Python 環(huán)境中運行對抗性自動編碼器。IEEE 13 總線網(wǎng)絡及量測布置,如圖4 所示,IEEE 123 總線網(wǎng)絡及量測布置,如圖5 所示,節(jié)點網(wǎng)絡中布置微型同步相量測量單元(microsynchronous phasor measurement unit,μPMU),數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(supervisory control and data acquisition,SCADA)。
圖4 IEEE13節(jié)點配電網(wǎng)絡及量測布置Fig.4 IEEE 13-node distribution network and measurement layout
圖5 IEEE123節(jié)點配電網(wǎng)絡及量測布置Fig.5 IEEE 123-node distribution network and measurement layout
對抗性自動編碼器的輸入來自系統(tǒng)中量測裝置的采集數(shù)據(jù),模擬3 000 次系統(tǒng)遭受不可觀測的FDIAs 的測量結(jié)果,選取2 400 次作為訓練數(shù)據(jù)集,其余600 次作為評估組,另外,為體現(xiàn)半監(jiān)督的優(yōu)越性,選擇各500 組數(shù)據(jù)將其標記為安全數(shù)據(jù)及受攻擊數(shù)據(jù),并輸入對抗性自動編碼器中訓練。
對抗性自動編碼器的編碼層,解碼層,判別層各設為兩層,每層設置1 000 個帶有ReLU 激活函數(shù)的隱藏單元,輸出層設置sigmoid 激活函數(shù),小批量訓練的數(shù)量設為60,學習率設為0.000 1,epoch 數(shù)設為500。
為驗證FDIAs 檢測方法在IEEE 13 節(jié)點和IEEE 123 節(jié)點等不同配電網(wǎng)的性能,基于Intel(R)Core(TM)i5-12400F CPU@4.0 GHz 平臺開展測試。測試結(jié)果如圖6—圖9 所示,所提方法在IEEE 13 節(jié)點和123 節(jié)點配電網(wǎng)遭受FDIAs 時表現(xiàn)較好,IEEE 13 節(jié)點配電網(wǎng)系統(tǒng)訓練準確度達到了96.8%以上,IEEE 123 節(jié)點配電網(wǎng)系統(tǒng)訓練準確度達到98.5%以上;另外,此方法的檢測精度在13 總線配電網(wǎng)系統(tǒng)中為97%,在IEEE 123 節(jié)點配電網(wǎng)系統(tǒng)為98.2%,本文方法在IEEE 13 節(jié)點和123 節(jié)點配電系統(tǒng)中檢測所需時間分別為8.7 ms 和13.8 ms。
圖6 訓練準確性測試結(jié)果Fig.6 Results of training accuracy
圖7 平均檢測時間測試結(jié)果Fig.7 Results of average test time
圖8 檢測精度測試結(jié)果Fig.8 Results of test accuracy
圖9 網(wǎng)絡訓練時間測試結(jié)果Fig.9 Results of network training time
為體現(xiàn)本文方法的優(yōu)越性,現(xiàn)與其他數(shù)據(jù)驅(qū)動的檢測算法進行對比,方法1 是本文方法,方法2 是人工神經(jīng)網(wǎng)絡(artificial neural network,ANN),方法3 是支持向量機(support vector machine,SVM)。本文噪聲由電壓向量、電流向量、復功率組成,且符合高斯分布。圖10 為3 種方法在不同的噪聲環(huán)境下的檢測精度對比。
圖10 檢測精度橫向?qū)Ρ菷ig.10 Comparison of detection accuracy
由圖10 可知,本文方法在不同的噪聲環(huán)境下,均取得了較好的檢測精度,通過使用AEE,在少量標記數(shù)據(jù)的基礎上,即可訓練出合適的編碼器,緩解了高昂的標記成本,而方法3 因為使用大量未標記數(shù)據(jù)進行訓練,分類性能大打折扣,檢測效果較差。
為驗證本文方法在使用少量標記數(shù)據(jù)下的攻擊檢測性能,在13 總線系統(tǒng)的訓練過程中使用不同數(shù)量的標記數(shù)據(jù)。圖11 為不同標記數(shù)據(jù)量場景下的檢測精度。由圖11 可知,隨著標記數(shù)據(jù)使用數(shù)量的增加,檢測精度隨之增加,而當使用300 組標記數(shù)據(jù)時,系統(tǒng)的檢測精度為91.3%,上述數(shù)據(jù)表明系統(tǒng)在少量標記數(shù)據(jù)的基礎上,仍擁有較好的檢測精度,且隨著標記數(shù)據(jù)使用量的上升,檢測精度隨之上升。
圖11 不同標記數(shù)據(jù)量場景下的檢測精度Fig.11 Detection accuracy in different labeled data volume scenarios
提出一種基于對抗性自動編碼器的城市配電網(wǎng)虛假數(shù)據(jù)注入攻擊檢測算法。該方法只需要少量標記數(shù)據(jù)即可訓練出效果較好的編碼器,大大降低了標記成本。與其他檢測算法相比,所提方法具有較好的魯棒性,較高的檢測精度,對系統(tǒng)拓撲結(jié)構(gòu)依賴小,僅需要少量標記數(shù)據(jù)。
未來,隨著多種分布式電源的更高比例接入,分布式電源不同的滲透率會導致配電系統(tǒng)中系統(tǒng)運行特性持續(xù)動態(tài)變化,針對FDIAs 檢測將不再是一個二元分類問題,如何提高所提方法的檢測精度將是下一步重點關注問題之一。