戚元星,崔雙喜
(新疆大學(xué) 電氣工程學(xué)院,新疆 烏魯木齊 830047)
目前,時代進步促進信息和科技的高速發(fā)展,高速通信和高度集成的信息網(wǎng)絡(luò)成為了電力系統(tǒng)的重要支撐.在電網(wǎng)中,攻擊者為了達到破壞電網(wǎng)正常運行、誤導(dǎo)控制中心操作、獲取不正當(dāng)利益的目的,會選擇對電網(wǎng)的數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(supervisory control and data acquisition,SCADA)進行攻擊.電力系統(tǒng)的采集單元覆蓋電網(wǎng)的全拓撲,所以,攻擊者會把預(yù)先設(shè)定的攻擊向量注入到采集單元中,為了不被電網(wǎng)檢測模塊檢測出來,攻擊者會制造最優(yōu)攻擊向量來躲避檢測模塊檢測.虛假數(shù)據(jù)的攻擊會造成依賴電網(wǎng)行業(yè)不同程度的癱瘓,給國家、社會、人民帶來很大的危害,因此對于虛假數(shù)據(jù)檢測的研究顯得尤為重要[1-4].傳統(tǒng)的電網(wǎng)虛假數(shù)據(jù)檢測有很多[5-7],比如用核范數(shù)最小化或低秩矩陣分解對虛假數(shù)據(jù)進行檢測[8].機器學(xué)習(xí)的發(fā)展也為虛假數(shù)據(jù)的檢測提供了新的方案,最典型的有3種實現(xiàn)方式:監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)[9],其中監(jiān)督學(xué)習(xí)的分類技術(shù)最為優(yōu)秀,預(yù)測精度高且整體效果較好,但需要完整的帶標簽的樣本,數(shù)據(jù)的質(zhì)量和數(shù)量決定最終的模型效果.集成學(xué)習(xí)作為機器學(xué)習(xí)的重要部分,也逐漸被應(yīng)用于入侵檢測領(lǐng)域[10-13],現(xiàn)有實驗結(jié)果表明運用機器學(xué)習(xí)中的單分類器來檢測虛假數(shù)據(jù)會出現(xiàn)準確率低以及模型區(qū)分能力差等問題,因此,針對該類問題結(jié)合虛假數(shù)據(jù)檢測原理,本文提出一種新的集成學(xué)習(xí)檢測方法并對其可行性進行驗證,實驗結(jié)果表明本文在電網(wǎng)虛假數(shù)據(jù)檢測分類問題上具有一定研究價值.
對于含有n個狀態(tài)量的向量x=[x1,x2,x3,…,xn]以及m個量測值的向量z=[z1,z2,z3,…,zm],兩者之間的關(guān)系為
z=Hx+e,
(1)
(2)
其中,H表示為直流維度模型m×n的雅克比矩陣,e為誤差.
(3)
對于標準的直流系統(tǒng),只考慮帶相位角的狀態(tài)變量,直流系統(tǒng)線路電阻可忽略不計,直流系統(tǒng)電壓幅值全部設(shè)為 1,本文攻擊前的量測值樣本采用的是IEEE14節(jié)點14個標準的母線負載有功功率,20個分支路首端有功功率,20個分支路末端有功功率,一組攻擊前的樣本共54個狀態(tài)變量.攻擊后的量測值za如式(4),攻擊后的狀態(tài)變量xa如式(5)
za=Hx+a+e,
(4)
xa=x+a,
(5)
其中,a為攻擊的向量;e為量測的誤差.
第j個子區(qū)域攻擊后狀態(tài)估計的殘差、全部域攻擊后的狀態(tài)估計的殘差如式(6)、(7)所示
(6)
(7)
為了構(gòu)造出最優(yōu)的電網(wǎng)虛假數(shù)據(jù)攻擊向量,使虛假數(shù)據(jù)逃避電網(wǎng)檢測模塊檢測,應(yīng)讓攻擊后的殘差值處在電網(wǎng)虛假數(shù)據(jù)檢測閥值以內(nèi),在滿足式(8)條件下求式(9)最優(yōu)解
(8)
(9)
β為優(yōu)化量,λ為正則化參數(shù),j=1,2,…,n.
(10)
(11)
當(dāng)且僅當(dāng)
Pb=0時,
(12)
(13)
由式(12),求電網(wǎng)SCADA系統(tǒng)注入虛假數(shù)據(jù)向量b殘差最小的最優(yōu)解函數(shù)
(14)
bj-θ=0,
(15)
θ為優(yōu)化變量,λ為正則化參數(shù),j=1,2,…,n.
根據(jù)式(14),可求非全部網(wǎng)絡(luò)拓撲雅克比矩陣虛假數(shù)據(jù)攻擊的注入向量.
梯度提升樹(gradient boosting decison tree, GBDT)由決策樹和梯度提升組合而成,可處理大部分的分類回歸任務(wù).
在GBDT的迭代過程中,初始化基學(xué)習(xí)器F0(x),對數(shù)損失函數(shù)L(y,F(x)),如下所示:
(16)
L(y,F(x))=log(1+exp(-2yF(x))),
(17)
β為損失函數(shù)最小化的常數(shù)值.
設(shè)迭代數(shù)量為m,為進一步擬合本輪損失,需得到損失函數(shù)的數(shù)值
(18)
損失函數(shù)梯度下降最優(yōu)步長βnm
(19)
定義學(xué)習(xí)率為ν∈(0,1],進一步構(gòu)建更高精度的弱分類器模型Fm(x),
(20)
迭代結(jié)束后,得到由m個高精度的弱分類器結(jié)合的決策樹模型
(21)
XGBoost使用一階導(dǎo)數(shù)和二階導(dǎo)數(shù),對代價函數(shù)進行泰勒展開,為了使模型簡單化,加入了正則項Ω.本文使用表示第i個葉子節(jié)點上的分數(shù).為了學(xué)習(xí)出模型參數(shù),對目標函數(shù)正則化,公式如下:
(22)
(23)
經(jīng)對損失函數(shù)的一階梯度和二階梯度,再去掉常數(shù)項并展開Ω,得到的目標函數(shù)
(24)
(25)
(26)
樹結(jié)構(gòu)選擇增益下降最大的特征作為最優(yōu)分割點,增益下降的公式為
(27)
LightGBM是在GBDT的算法的基礎(chǔ)上進行改進.LightGBM解決了在大樣本高維度數(shù)據(jù)出現(xiàn)的耗時且耗內(nèi)存問題.該算法改進了2個方面:gradient-based one-side sampling(GOSS)和exclusive feature bundling(EFB).互補特征壓縮(EFB)通過將相近的特征進行合并達到2種目的:1)使特征維度從高維變?yōu)榈途S來尋找最優(yōu)分割點;2)使降維對數(shù)據(jù)特征的損失最小.對實例進行采樣時,基于梯度的單面采樣(GOSS)是為保持信息增益的準確保留較大貢獻的實例,刪除一部分小梯度的樣本.
RF-LightGBM是在LightGBM攻擊檢測模型的基礎(chǔ)上,對需要檢測的樣本數(shù)據(jù)集先采用隨機森林(RF)對特征值進行重要性排序.通過去除沒有必要的特征來降低模型訓(xùn)練時間及升高模型的準確度.隨機森林結(jié)合多個決策樹,每個決策樹的建立取決于獨立提取樣本,不純度和袋外數(shù)據(jù)錯誤率決定最佳分裂節(jié)點,對于決策樹森林可以計算出每個特征減少的樹的不純度,并作為特征選擇的值.
Bagging的決策樹算法通過對原始數(shù)據(jù)隨機采樣,并選擇信息增益為計算指標進行分類,根據(jù)方差和偏差對分類結(jié)果進行優(yōu)化.該算法的特點是各個決策樹之間沒有依賴關(guān)系,每個基模型可以分別、獨立、互不影響地生成并且擬合.
Bagging算法的集成過程如下所示.
Input: Data setS={(x1,y1),(x2,y2)...(xn,yn) }
Process:
Fork=1,2,…,K
Sk=Bootsrap(S)
hi=L(S)
H(x)=H(hi)
End
ReturnH(x)
本文分別訓(xùn)練多個優(yōu)秀的分類器:gradient boosting decision tree(GBDT)、XGBoost、lightGBM、RF-LightGBM、Bagging.檢測訓(xùn)練好的分類器是否符合要求,用測試樣本集對訓(xùn)練好的各分類器進行測試.最后,把多個分類器合并成一個集強分類器,在采用軟投票的方法綜合不同分類器的檢測概率,使整個數(shù)據(jù)集的情況可以較全面地反映出來,原理如圖 1所示.
圖1 多分類器集成學(xué)習(xí)入侵檢測原理Fig.1 Principle of multi classifier ensemble learning intrusion detection
基于集成學(xué)習(xí)的入侵檢測的算法
輸入:樣本數(shù)據(jù)集S.
輸出:檢測結(jié)果.
1)將樣本數(shù)據(jù)集S按照1∶1劃分為2部分,得到訓(xùn)練集S1和測試集S2;
2)用python標記好的數(shù)據(jù)集NT;
3)Foriin
S1進行轉(zhuǎn)換→帶標簽的Si
Si分別輸入到LightGBM,RF-LightGBM,XGBoost,gradient boosting decision tree(GBDT), Bagging進行訓(xùn)練→分類器i;
4)Forjin;
S2輸入分類器j→概率j;
5)用軟投票機制對多個分類器的概率結(jié)果進行集成得到強分類器,T為分類器數(shù)量,hi(x)為分類器檢測概率
6)Return檢測結(jié)果
模型選擇的特征決定模型的性能上限,而參數(shù)調(diào)優(yōu)使模型更接近這個上限,在模型的準確度與復(fù)雜度之間尋找平衡,防止模型過擬合并提高魯棒性.貝葉斯調(diào)參的基本思想:在貝葉斯定理下,用先驗數(shù)據(jù)估計目標函數(shù)的后驗分布,然后再根據(jù)后驗分布來確定下一個最優(yōu)先驗數(shù)據(jù)進而確定超參數(shù)組合.調(diào)參步驟如下:
1) 確定初始學(xué)習(xí)速率0.15,估計treebased參數(shù)調(diào)優(yōu)數(shù)目;
2) 控制樹的數(shù)量(nestimators)來提高模型的速度;
3) 對樹的最大深度(max depth)和最小葉子節(jié)點樣本權(quán)重(min child weight)參數(shù)調(diào)優(yōu),對比模型分類的錯誤率,防止模型過擬合;
4) 調(diào)整subsample,使每棵樹采樣的比例適中;
5) 降低學(xué)習(xí)速率,待模型基本收斂,停止迭代.
在標準 IEEE14-bus節(jié)點系統(tǒng)中假設(shè)攻擊者已知局部網(wǎng)絡(luò)拓撲雅克比矩陣的前提下,注入虛假數(shù)據(jù)向量b進行攻擊,攻擊電網(wǎng)SCADA系統(tǒng)網(wǎng)絡(luò)成功后,可在 Python環(huán)境下進行:標注受到攻擊量測值標注為0,未受攻擊量測值標注為1,構(gòu)建了10 000個樣本數(shù)據(jù)集:8 000條訓(xùn)練樣本和2 000條測試樣本.數(shù)據(jù)樣本集D,攻擊檢測數(shù)據(jù)樣本X,樣本類標記Y,如下所示:
D={X,Y}={(x1,y1),(x2,y2),…,(x1000,y1000)},
X=(x1,x2,…,x1000),
Y=(y1,y2,…,y1000∈{0,1}
.
(28)
在 Python環(huán)境下,先使用測試集對訓(xùn)練好的5種分類器進行測試:LightGBM、RF-LightGBM、XGBoost、gradient boosting decision tree、bagging,使用貝葉斯進行調(diào)參,電網(wǎng)假數(shù)據(jù)檢測集成學(xué)習(xí)模型是由幾個基分類器合并而成的,因此需要對其中的LightGBM、RF-LightGBM和XGBoost這3個基分類器進行調(diào)參.
LightGBM、RF-LightGBM和XGBoost參數(shù)范圍為:設(shè)置樹的數(shù)量(1,100),最小葉子節(jié)點樣本權(quán)重(1,20),樹的最大深度(2,20),subsample(0.1,1),貝葉斯調(diào)參采用高斯過程,考慮之前的參數(shù)信息,不斷更新先驗來比較模型運行的時間,分類錯誤率等指標,判斷模型是否收斂,經(jīng)過不斷測試模型迭代到20次左右已經(jīng)基本收斂.
最后,選擇的模型參數(shù)如表1、表2、表3所示.
表1 LightGBM模型參數(shù)Tab.1 LightGBM model parameters
表2 RF-LightGBM模型參數(shù)Tab.2 RF-LightGBM model parameters
表3 XGBoost模型參數(shù)Tab.3 XGBoost model parameters
將本文5種分類器分別對數(shù)據(jù)集樣本進行檢測,通過對虛假數(shù)據(jù)檢測結(jié)果的評估指標分析 ,各分類器之間不僅可以做對比還是集成模型中的基分類器.評估指標如下:分類器模型能力度area under ROC(AUC)、查確率 average precision (AP)、準確率balanced accuracy (BA)、 平均幾何正確率G-mean、服從正態(tài)分布度KS-Value,上述指標均是越高越好,誤檢率false detection rata (FDR)越低越好.
1)根據(jù)表4和表5中模型對虛假數(shù)據(jù)檢測的各評估指標百分比,為更直觀的表達各分類器及優(yōu)化后集成模型中每個評估指標之間差異,畫出了各分類器每個評估指標之間的對比圖,如圖2所示,其中縱坐標為評估指標的百分比,橫坐標為各評估指標.
表4 各分類器評估指標Tab.4 Evaluation index of each classifier
以本文以上階段所得到的基分類器為主,使用軟投票策略集成基分類器的決策,構(gòu)建一個新的集成模型.
表5 優(yōu)化后集成模型的評估指標Tab.5 Evaluation index of optimized integration model
2)當(dāng) AUC 為 0.5時,即代表模型的區(qū)分能力與隨機猜測能力一致;當(dāng) AUC 值越高其模型能力越強. 由表4和表5知,關(guān)于優(yōu)化后集成模型分類器的模型區(qū)分能力(AUC)高達93.12%. 從圖2不難看出,優(yōu)化后集成模型的區(qū)分能力是本文提到的幾種分類器最好的,說明此模型的檢測虛假數(shù)據(jù)能力可信度較高. 由圖2也可以看出AP、BA、G-mean、KS-Value的指標是這幾個分類器最高的,尤其是優(yōu)化后集成模型的查準率(AP)高達91.68%,準確率(BA)高達90.91%,誤檢率(FDR)為7.09%,比單個分類器檢測的查準率提升了至少11%,準確率提升了至少9%,誤檢率降低了至少5.22%,說明由5種基分類器集成的模型具有較好的檢測效果,進一步說明了檢測模型泛化能力也得到了進一步提升,在入侵檢測中,誤檢率帶來的損失較大,因此,研究人員都期望在能夠保證提升查準率、準確率的情況下,使誤檢率盡可能低,這樣更符合實際應(yīng)用的要求.
圖2 各分類器評估指標對比Fig.2 Comparison of evaluation indexes of each classifier
為了進一步檢測優(yōu)化后集成模型的分類效果,本算法與2種經(jīng)典分類算法做了對比,分別是擴展卡爾曼濾波算法和與主成分分析結(jié)合的支持向量機(PCA+SVM),如圖3所示.在不同樣本數(shù)的情況下,隨著樣本數(shù)增多,本算法的準確率大多高于PCA+SVM算法的分類準確率,但是圖3中也存在準確率優(yōu)于本算法,主要原因在于數(shù)據(jù)集預(yù)處理上對選取樣本的隨機性造成的樣本集的差異,這種差異是每種算法對樣本數(shù)劃分的劃分標準不同而導(dǎo)致的.而擴展卡爾曼濾波檢測算法除了存在小樣本數(shù)據(jù)集上的準確率會略高于本算法,但絕大多數(shù)的樣本集分類效果不如本算法,其原因是擴展卡爾曼濾波檢測算法在真假數(shù)據(jù)不平衡的樣本集中,其分類準確率會隨樣本數(shù)的增多而降低.
圖3 準確率對比Fig.3 Comparison of accuracy
本文基于集成學(xué)習(xí)算法對電網(wǎng)假數(shù)據(jù)進行檢測,經(jīng)仿真實驗,該算法在解決單分類器檢測查準率和準確率不高和單分類器檢測不穩(wěn)定問題基礎(chǔ)上,可有效提高對電網(wǎng)虛假數(shù)據(jù)的檢測能力,比采用傳統(tǒng)的檢測算法查準率和準確率有明顯提升.此外,該檢測算法在檢測電網(wǎng)假數(shù)據(jù)的應(yīng)用上也是創(chuàng)新.在保證各項評估指標較好的前提下再次提高檢測精確率和降低誤檢率將成為下步研究方向和工作.