夏云舒,王勇,周林,樊汝森
(1.上海電力大學計算機科學與技術學院,上海市 200120;2.國網上海電力公司青浦供電公司,上海市 201799)
隨著智能電網建設的不斷推進,傳統電力系統與信息控制設備及通信傳感網絡深度融合,形成電力信息物理系統 (cyber physical system,CPS)。新型能源互聯網含有高比例的分布式新能源,是一個大型的電力CPS,能更有效地發揮信息融合帶來的優勢,但也更容易遭受網絡攻擊[1]。網絡攻擊不僅會破壞信息系統的正常功能,還可能傳導至物理系統,威脅電力系統的安全運行[2]。虛假數據注入攻擊(false data injection attack,FDIA)是一種破壞電網信息完整性的網絡攻擊,它通過篡改電網量測數據,引起電網誤動或拒動,是對電力系統威脅程度較高的攻擊方式之一[3]。因此,研究如何提高FDIA檢測率對于能源互聯網安全運行有重要意義。
傳統的FDIA檢測方法主要基于狀態估計。文獻[4]使用自適應卡爾曼濾波對系統內部狀態和噪聲作出估計;文獻[5]在掌握電網局部信息的情況下,針對單節點與多節點攻擊場景提出一種基于非線性狀態估計的模型;文獻[6]提出了一種基于節點時間相關性的短期狀態預測方法,通過計算實際得到的量測量與預測得到的量測量的一致性判斷是否發生攻擊。
隨著能源互聯網的建設與發展,量測數據的規模日益增長,傳統FDIA檢測方法逐漸難以應對。近年來,基于人工智能的FDIA 檢測方法被提出,如支持向量回歸[7]、卷積神經網絡[8]、長短期記憶(long short-term memory,LSTM)網絡[9]等。這類方法不需要預先獲取電力系統的模型參數信息,有強大的計算能力,能夠快速、大規模地檢測攻擊。然而,基于人工智能的FDIA檢測方法存在嚴重的數據不平衡問題。由于FDIA發生的頻率低,目前在真實電網中還沒有捕獲FDIA的實例[10],直接在不平衡的數據集上訓練得到的算法性能較差[11],很可能造成誤判。
目前解決數據不平衡問題的方法主要基于算法層面和數據層面[12]。前者對傳統分類算法進行改進以提高算法對少數類樣本的識別能力,如集成學習法、代價敏感法;后者通過數據欠采樣、過采樣等技術調整樣本數據的分布。少類樣本合成過采樣技術(synthetic minority oversampling technique,SMOTE)通過線性插值在2個少數類樣本間合成新的樣本[13],是一種經典的數據過采樣方法。但在面臨不同類型的不平衡數據(如大數據、流數據、高維數據、數值型標簽數據)時SMOTE方法還存在一些缺陷[14]。
生成對抗網絡(generative adversarial network,GAN)能夠學習復雜數據的概率分布并生成人工樣本[15-16],已被應用于生成電網中不同類型的數據。文獻[17]使用WGAN(Wasserstein GAN)生成電網量測數據,解決由于數據敏感,研究者難以獲取真實可信數據的問題;文獻[18]通過訓練GAN生成FDIA攻擊數據,達到在電力市場中獲得經濟利益的目的;文獻[19]使用cGAN(conditional GAN)構建能夠逃過電網不良數據檢測機制的FDIA;文獻[20]訓練GAN學習電網正常運行場景下的量測數據分布,以恢復FDIA下電力CPS數據的完整性。
鑒于以上分析,若能訓練GAN生成高質量的正常量測數據與FDIA攻擊數據,對于解決電力CPS缺少真實數據、數據不平衡導致攻擊檢測率低等問題具有多重意義。為此,本文首先考慮GAN訓練不穩定、模式崩塌等問題對生成數據質量的影響,設計結構更穩定的CTGAN(conditional tabular GAN);其次,考慮接入分布式能源后能源互聯網各量測數據間的相互影響,使用Copula函數構建電力系統狀態變量間的空間相關性;然后,使用改進的GAN對FDIA數據過采樣,提出基于極端隨機樹(extremely randomized trees,ET)的FDIA檢測模型,解決數據不平衡問題。此外,構建數據有效性指標,基于多個分類器的性能評估生成數據所包含的有效信息。最后,通過對比實驗對所提方法進行驗證。
原始生成對抗網絡由兩個互相博弈的神經網絡組成,分別為生成器(generator,G)與判別器(discriminator,D)。生成器負責生成新數據,判別器負責判斷生成數據的好壞。在這個零和博弈的過程中,判別器旨在分辨真實數據與生成數據,生成器旨在生成足夠真實的數據,使判別器無法準確分辨數據的真假,這2個網絡同時訓練,直到達到納什平衡。GAN的目標函數如式(1)所示:
(1)

原始GAN在設計之初主要用于生成圖像樣本,圖像的像素值近似服從高斯分布。然而,許多表格類數據(tabular data)不服從高斯分布且存在多模態,直接使用原始GAN會遇到梯度消失、模式崩塌、不收斂等問題。為了增強原始GAN學習表格類數據的能力,并捕捉數據間的相關性,CopulaGAN將CTGAN與Copula函數結合[21-22],使用高斯Copula函數學習數據的概率分布,描述隨機變量間的關聯,并改進了原始GAN的網絡結構和學習步驟。
Copula函數可用于描述隨機變量間的非線性相關性,近年來受到廣泛關注[23]。設電網量測數據中n維隨機變量x=(x1,x2,…,xn),其中xk(k=1,2,…,n)的邊緣分布函數為F(xk),令uk=F(uk),故uk為服從[0,1]間均勻分布的隨機變量,則聯合概率分布函數H(x)與Copula分布函數C(u)(u=(u1,u2,…,un))之間的關系如式(2)所示:
H(x)=H(x1,x2,…,xn)=C(u1,u2,…,un)=C(u)
(2)
對式(2)求導可得到對應的聯合概率密度函數,如式(3)所示:

(3)
式中:f(x1,x2,…,xn)為聯合概率密度分布;c(u)為n維Copula密度函數,表示相關性結構;f(xk)為xk的邊緣概率密度函數。
隨機森林(random forest,RF)是一種基于Bagging理論的集成學習算法,它不容易陷入過擬合,對噪聲和異常值有較好的容忍性,對高維數據分類問題有良好的可擴展性和并行性[24]。
極端隨機樹是在隨機森林的基礎上改進得到的,具有更強的隨機性[25]。在構成決策樹時,它使用所有的訓練樣本,保證了訓練樣本的利用率;在劃分節點時,它對分裂閾值設置進一步的隨機,保證每顆決策樹間的結構差異,減少過擬合。因此,使用極端隨機樹算法構建攻擊檢測分類器能夠提高少數類樣本的利用率,提升模型的泛化能力。
基于CopulaGAN的FDIA檢測框架如圖1所示,由CopulaGAN模型訓練、FDIA攻擊檢測、模型評估3部分組成。首先,通過CopulaGAN生成器與判別器的對抗訓練,得到能夠同時生成正常量測數據與攻擊數據的數據增強模型;然后,使用該模型對FDIA數據過采樣,得到平衡的攻擊檢測數據集,并使用極端隨機樹分類器進行攻擊檢測;最后,使用數據增強模型生成相同數目的正常量測數據與攻擊數據,得到一個平衡的數據集。以該數據集為訓練集,原始數據集為測試集構建多個分類器,利用分類器在測試集上的性能指標評估CopulaGAN模型生成數據的有效性。

圖1 基于CopulaGAN的FDIA檢測框架Fig.1 Structure of FDIA detection based on CopulaGAN method
步驟1:數據預處理。能源互聯網作為一個整體,其中各量測值之間相互影響。采用單一GAN難以采集不同數據樣本間的聯系,生成的訓練數據與實際電網數據具有較大差別。因此,通過對原始樣本中的隨機變量進行概率積分變換,使變換后的樣本在服從高斯分布的基礎上,仍保持數據間的相關性,根據變換后的樣本生成接近真實電網的數據,使訓練過程更加精確,具體步驟如下:
1)將原始電力CPS量測數據集分為訓練集和測試集。
2)使用高斯Copula函數學習數據的概率分布,描述訓練集中的n維隨機變量間的關聯關系并轉換數據。
3)對轉換后的數據進行歸一化。對于離散值,使用獨熱編碼處理;對于連續值,具體轉換策略如下:
(1)使用變分高斯混合模型估計隨機變量的模態個數,擬合得到高斯混合分布;
(2)計算數據在每個模態中的概率,得出概率密度函數;
(3)由給定的概率密度函數采樣得到模態,并用此模態對數據進行歸一化處理。
步驟2:GAN結構設計。首先,為了確保訓練過程穩定、收斂快速,引入WGAN-GP(Wasserstein GAN with gradient penalty)[26]中梯度懲罰的概念,把Lipchitz限制作為一個正則項加到Wasserstein損失上,如式(4)所示:

(4)

其次,為了捕獲數據之間所有可能的關聯關系,使用全連接網絡。對于生成器,使用批標準化(batch normalization)和ReLU激活函數,標量值由tanh函數激活,離散值由softmax函數激活;判別器中,在每個隱藏層上使用leaky ReLU函數和dropout方法。此外,使用Adam優化器,設置生成器與判別器的學習率衰減率,衰減率為10-6。并采用打包生成對抗網絡(packing GAN,PacGAN)[27]的方法,在將樣本傳遞給判別器之前,將同一類別的n個樣本(本文選取n=10)打包,使得判別器能夠同時看見多個樣本,從一定程度上防止模式崩塌。
步驟3:調整超參數。本文使用基于高斯Copula過程的貝葉斯優化方法[28]尋找GAN模型的最優超參數,設計相似性分數A為優化目標。貝葉斯優化在選擇參數時考慮了選擇的方向問題,可以縮短尋優時間,減少尋優過程的盲目性,基于Copula過程的貝葉斯優化方法把邊緣參數變量變換為均勻分布參數變量,無需考慮參數的邊緣分布,簡化參數尋優過程。具體步驟如下:
1)對判別器和生成器進行交替對抗訓練。
2)每訓練得到一個模型,就生成一個包含相同數目正常運行數據和FDIA數據的數據集,并對該數據集進行反歸一化處理。
3)使用K-S檢驗(Kolmogorov-Smirnov test)和KL散度(Kullback-Leibler divergence,KLD)計算數據集與訓練集之間數據的相似性,得到相似性分數A。
4)以相似性分數A為目標,尋找模型的超參數。GAN生成的數據與原數據越接近,A越接近于1,以得分最高時獲得的超參數作為CopulaGAN模型的最優超參數。
CopulaGAN模型捕捉樣本間的關聯性,生成大量攻擊樣本,使極端隨機樹分類器在提升少數類樣本訓練精度的同時選取更全面的特征來尋找全局最優的分裂屬性,增強分類效果。具體步驟如下:
步驟1:數據過采樣。使用CopulaGAN模型對訓練集的FDIA數據過采樣,得到平衡的訓練集,用于攻擊檢測分類器的訓練。
步驟2:構建極端隨機樹分類器。
1)基于CART決策樹算法生成基分類器,隨機有放回地從攻擊檢測數據集中抽取所有樣本,作為基分類器的訓練集。
2)隨機地從訓練集所有特征中選取m個特征,作為待選擇特征庫。以基尼指數或信息增益熵選擇最優屬性進行分裂,且分裂過程不剪枝,對分裂產生的子集進行進一步分裂直到生成一顆決策樹。
3)重復2),得到由多顆決策樹集成的極端隨機樹。
4)使用極端隨機樹識別測試集的量測數據是否被篡改。
步驟3:分類效果評價。使用混淆矩陣呈現分類器的預測結果,二分類算法檢測FDIA得到的混淆矩陣如表1所示。

表1 二分類混淆矩陣Table 1 Confusion matrix for binary classification
算法性能的評估指標可通過混淆矩陣計算,如準確率(ηAccuracy)、查準率(ηPrecision)、查全率(ηRecall)以及查準率與查全率的調和平均值F1值(ηF1):
(5)
(6)
(7)
(8)
在檢測FDIA時,相比于將正常運行樣本預測為FDIA樣本的誤判情況,將FDIA樣本預測為正常運行樣本的漏檢情況會導致更加嚴重的后果。因此,在預測結果準確率較高的情況下,算法的查全率越高,檢測效果越好。
CopulaGAN模型能夠生成大量的正常運行量測數據和FDIA數據,通過調整模型的超參數可以確保模型生成的數據與原始數據相似,并以相似性分數A表示。然而,生成的數據不僅需要與原始數據有較高的相似性,還需要提供有效信息,使得分類器充分學習樣本的特征,提高分類器的性能。
因此,本文設計數據有效性指標評估CopulaGAN模型生成數據的有效性,生成數據包含越多的有效信息,分類器的性能越好,具體步驟如下:
1)假設訓練集中正常運行量測數據的樣本數為q,使用CopulaGAN模型分別生成q個正常運行數據樣本和q個FDIA數據樣本作為模型評估的訓練集。
2)使用多種經典機器學習算法構建多個攻擊檢測分類器,在訓練集上訓練,在原始測試集上測試。
3)以分類器的準確率、F1值為指標評估CopulaGAN模型生成數據所包含的有效信息。
本文使用的數據集來源于密西西比州立大學和美國橡樹嶺國家實驗室[29],包含6類不同程度FDIA攻擊場景(場景0至5)、1類電力系統正常運行場景(場景6)。攻擊者通過改變參數值(如電流、電壓、序列分量等)模擬有效故障,使操作員誤判電力系統的運行情況并誤操作。算例選取這7類場景作為FDIA檢測數據集,每條樣本中包含4個同步相量量測單元(phasor measurement unit,PMU)量測得到的三相電壓幅值、電壓相角、電流幅值、電流相角。為保持數據分布的一致性、減少過擬合,按照6∶2∶2的比例使用分層采樣法將數據集劃分為訓練集、驗證集和測試集。表2記錄了訓練集中各類場景的具體情況。實驗在Python3.8環境下完成。

表2 訓練集中各類場景的具體描述Table 2 Description of the training set
使用基于高斯Copula過程的貝葉斯優化方法尋找GAN模型的最優超參數,以相似性分數A為優化目標,訓練50輪,超參數優化結果如表3所示。

表3 模型超參數優化結果Table 3 Hyperparameters of the model
使用GAN模型分別生成7類場景的數據各3 524條,得到用于模型評估的平衡數據集,該數據集的相似性分數A如表4所示。

表4 生成數據的相似性分數Table 4 Similarity score of synthetic data
由表4可見,調參后,模型生成的正常運行數據得分均在0.85以上,FDIA數據得分均在0.88以上。由此可見,GAN可以作為一種數據增強方法,生成大量與原始數據相似的量測數據。
為了評估GAN數據增強模型,分別基于ET、RF、XGBoost集成學習算法在模型評估數據集上訓練多個分類器,根據分類器在原始測試集上的準確率、F1值指標評估合成數據的有效性,結果如圖2所示。

圖2 生成數據的有效性評估Fig.2 Effectiveness evaluation of synthetic data
由圖2可見,調參后的CopulaGAN提高了每個分類器的性能,這說明GAN模型生成的數據能夠在分類器訓練時提供有效信息,且CopulaGAN對算法性能的提升效果略高于CTGAN。
在原始數據集上使用ET算法構建攻擊檢測分類器,與Adaboost、K鄰近算法(k-nearest neighbors,KNN)、RF、XGBoost進行對比,算法的準確率如表5所示。

表5 各種算法在原始數據集上的準確率Table 5 Accuracy of algorithms on original dataset
由表5可見,ET算法的準確率達到93%,遠高于其他機器學習算法,這是因為在訓練的過程中ET算法充分使用了所有的訓練樣本,且在劃分節點時保證了每顆決策樹間的結構差異,提高了分類性能。
對FDIA攻擊數據進行過采樣得到平衡的訓練集后,將編號為0至5的6類不同程度的FDIA重新編號為1,編號為6的正常運行數據重新編號為0,如圖3所示,得到FDIA檢測的混淆矩陣。

圖3 FDIA檢測混淆矩陣Fig.3 Confusion matrix of FDIA detection
分別使用調參后的GAN模型、隨機過采樣法(random over-sampling,ROS)、SMOTE方法對原始數據集中的FDIA攻擊數據進行過采樣得到平衡的訓練集,使用ET算法構建攻擊檢測分類器,得到的準確率、查全率如表6所示。
由表6可見,相對于其他數據過采樣方法,CopulaGAN模型提高了ET算法的準確率、查全率,減少了FDIA漏檢的次數。本文提出的基于CopulaGAN-ET的檢測方法對FDIA的檢測率達到98.95%。

表6 各數據過采樣方法下ET算法的性能Table 6 Performance of ET algorithm with diffrent oversampling methods
針對新型能源互聯網中FDIA攻擊檢測的數據不平衡問題,本文提出一種基于改進生成對抗網絡和極端隨機樹算法的攻擊檢測方法。在電力系統攻擊數據集上進行實驗,得到以下結論:
1)CopulaGAN模型能夠合成質量較高的電力CPS正常量測數據與攻擊數據,解決了現實中電力量測數據不足的問題。
2)相較于KNN、Adaboost、隨機森林等經典機器學習算法,ET算法能夠減少攻擊檢測分類器誤判攻擊的情況,有效提高FDIA檢測的準確率。
3)相較于隨機過采樣、SMOTE方法,本文數據增強方法能夠提高FDIA檢測率,減少漏檢事件的發生。
4)使用GAN時通常不需要定義規則或約束,便于推廣應用于合成電力CPS中各種類型的數據。
未來,除了進一步提升GAN生成數據的精度,還可以研究GAN在新型能源互聯網的數據隱私保護、數據壓縮中的應用。