夏炳森,唐元春,汪智平
(1.國網(wǎng)福建省電力有限公司 經(jīng)濟(jì)技術(shù)研究院,福州 350012;2.重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
隨著電網(wǎng)規(guī)模的不斷擴(kuò)大及電力系統(tǒng)的不斷升級改造,電網(wǎng)的信息化與智能化程度越來越高,電力數(shù)據(jù)量及種類呈現(xiàn)幾何級數(shù)倍增的趨勢,促使電網(wǎng)發(fā)展進(jìn)入了大數(shù)據(jù)時代[1]?;陔娏π畔⒕W(wǎng)絡(luò)的廣泛業(yè)務(wù)帶來了海量的業(yè)務(wù)數(shù)據(jù),隨之也大大增加了網(wǎng)絡(luò)異常流量帶來的風(fēng)險[2-3]。以電力無線專網(wǎng)系統(tǒng)為目標(biāo)的網(wǎng)絡(luò)攻擊和異常流量入侵等突發(fā)事件會引發(fā)用戶端的不正常斷電和中斷,造成巨大的經(jīng)濟(jì)損失和安全事故。因此,基于機(jī)器學(xué)習(xí)的電力系統(tǒng)異常檢測具有重要的研究價值和現(xiàn)實(shí)意義[4]。
目前,電力接入專網(wǎng)配電終端常采用基于國際電工委員會(IEC)60870-5-10規(guī)約(IEC 104)進(jìn)行控制,由于無線接入信道質(zhì)量伴隨著業(yè)務(wù)存在著多變性,電力網(wǎng)絡(luò)均存在多變不可靠的業(yè)務(wù)流量,如延遲、吞吐量等。因此,其流量具有特征維度高、規(guī)律性強(qiáng)、非線性的特點(diǎn),導(dǎo)致異常流量檢測處理時間長、實(shí)時性差等,然而選擇較少的特征可能會導(dǎo)致畸形數(shù)據(jù)包、木馬、緩沖區(qū)溢出等攻擊類型難以被發(fā)現(xiàn)[5]。
由于大多數(shù)網(wǎng)絡(luò)流量數(shù)據(jù)具有時序性,因此,長短期記憶網(wǎng)絡(luò)(convolution-long short-term memory network,LSTM)作為檢測方法也得到諸多研究。如S.A.Althubiti等[6]將rmsprop(學(xué)習(xí)率自適應(yīng))優(yōu)化器用于LSTM模型的入侵檢測,使用rmsprop優(yōu)化器可以構(gòu)造一個適合網(wǎng)絡(luò)入侵的分類檢測器。
LSTM網(wǎng)絡(luò)具備一定的處理時序數(shù)據(jù)的信息挖掘能力,但當(dāng)輸入增多時,隨著數(shù)據(jù)量的增大,單一LSTM網(wǎng)絡(luò)訓(xùn)練時會出現(xiàn)梯度消失現(xiàn)象,并且伴隨著模型的不穩(wěn)定[7]。因此,研究人員開始融合CNN與LSTM用于網(wǎng)絡(luò)異常檢測、語音識別、圖像處理等領(lǐng)域[8]。如Zhang等[8]一種基于網(wǎng)絡(luò)流量的CNN-LSTM混合預(yù)測無線網(wǎng)絡(luò)故障模型:首先對網(wǎng)絡(luò)流量進(jìn)行預(yù)處理,通過兩級時間窗提取樣本,然后通過CNN提取樣本特征,最后將提取的特征輸入LSTM進(jìn)行預(yù)測。
因此,消除梯度消失問題以及提高檢測精度成為電力網(wǎng)異常檢測的首要目的,通過對電網(wǎng)流量數(shù)據(jù)特點(diǎn)的分析,本文結(jié)合前人研究內(nèi)容,提出一種基于注意力機(jī)制的CNN-LSTM模型用來電網(wǎng)異常檢測。加入注意力機(jī)制可以加強(qiáng)對重要特征的提取,從而防止序列過長信息丟失的問題。并且由于電力網(wǎng)數(shù)據(jù)具有海量、復(fù)雜、冗余等特點(diǎn),因此,加入注意力機(jī)制可以更加合理地處理數(shù)據(jù)。通過與各類經(jīng)典算法實(shí)驗(yàn)對比,本文所提方法具有更高的檢測精度。
本文提出一個面向電力無線接入專網(wǎng)的異常流量檢測方法,如圖1,控制服務(wù)運(yùn)行于OpenFlow控制器之上[9],自動轉(zhuǎn)換開關(guān)電器(automatic transfer device, ATD)與無線核心網(wǎng)設(shè)備相連接。在異常流量識別方面,ATD 對底層數(shù)據(jù)流進(jìn)行采樣導(dǎo)入到控制器中,對數(shù)據(jù)流的異常狀態(tài)進(jìn)行動態(tài)識別、預(yù)警和阻斷。
通過對數(shù)據(jù)流的預(yù)處理以及標(biāo)準(zhǔn)歸一化之后,使用基于注意力機(jī)制的CNN-LSTM算法來進(jìn)行異常流量實(shí)時檢測。
圖1 面向電力無線接入網(wǎng)的異常流量檢測架構(gòu)Fig.1 Abnormal flow detection architecture for electric power wireless access network
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)是一種具有高效識別能力的人工神經(jīng)網(wǎng)絡(luò)。
CNN網(wǎng)絡(luò)采用局部連接和權(quán)重共享的方式,降低了網(wǎng)絡(luò)模型的復(fù)雜度,并且減少了權(quán)重的數(shù)量。通過交替使用卷積層和池化層,從原始數(shù)據(jù)中自動提取數(shù)據(jù)的局部特征,并建立特征向量。
1)輸入層。要將電力網(wǎng)絡(luò)數(shù)據(jù)輸入CNN網(wǎng)絡(luò),首先需要在輸入層輸入流量數(shù)據(jù)Xi,以便向量化成矩陣。輸入長度限制為m,每條流量數(shù)據(jù)轉(zhuǎn)換成n維向量。最后輸出層輸出二維矩陣Z=[W1,…,Wi,…,Wm],其中,Wi=[Xi1,…,Xij,…,Xin]表示為流量Xi的矩陣。
圖2 CNN網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 CNN network structure
2)卷積層。卷積層的目的是提取特征,每個卷積核對應(yīng)提取某一部分特征。卷積核對輸入層輸出的矩陣Z進(jìn)行如下卷積運(yùn)算
S=f(WZ+b)
(1)
(1)式中:S是卷積運(yùn)算得到的特征矩陣;W是權(quán)重矩陣;b是偏移向量;f()表示為卷積運(yùn)算;W和b是通過網(wǎng)絡(luò)學(xué)習(xí)得到的參數(shù)。在卷積運(yùn)算中,濾波器的權(quán)重保持不變,需要學(xué)習(xí)的模型參數(shù)數(shù)量減少,簡化了傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。卷積層之后,在卷積層的輸出中加入激活函數(shù),在映射卷積層的輸出中起到非線性作用。在本文實(shí)驗(yàn)中使用了ReLU激活函數(shù),表示為
ReLU=max(0,x)
(2)
3)池化層。在卷積運(yùn)算之后,提取的特征被傳遞到K-max池化層。池化層進(jìn)一步聚集這些特征,選擇K個最重要的特征,并簡化特征的表達(dá)。
在CNN單元中引入一種注意力機(jī)制來提高對重要特征的關(guān)注。需要注意的是,由于信息處理的瓶頸,人們會選擇性地關(guān)注信息的重要部分,而忽略其他可見信息[10]。受上述事實(shí)啟發(fā),人們提出了注意力機(jī)制,以提高在計算機(jī)視覺和自然語言處理等各種任務(wù)中的特征提取能力。因此,注意力機(jī)制可以通過關(guān)注重要特征來提高模型的性能。注意力得分機(jī)制的定義如下
ei=a(u,vi)
(3)
(4)
(5)
(3)—(5)式中:u是匹配的特征向量基于當(dāng)前任務(wù)和用于與環(huán)境交互;vi是時間序列中時間戳的特征向量;ej是非規(guī)范注意力分?jǐn)?shù);αj為規(guī)范化注意力分?jǐn)?shù);c是根據(jù)注意力分?jǐn)?shù)和特征序列vi計算出來的當(dāng)前時間戳上的上下文特征。
W(i,c)=WCNN(i,c)?Wattention(i,c)
(6)
(6)式中:?表示元素乘式;i為時間序列在特征層中的對應(yīng)位置;c表示通道。使用AMCNN的最終特征層輸出作為LSTM層的輸入。
LSTM是循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)的改進(jìn)。LSTM可以學(xué)習(xí)長期依賴,尤其是在文本處理方面。在語言模型中,可以通過一定范圍的上下文信息來預(yù)測下一個單詞信息。它解決了長序列數(shù)據(jù)處理中梯度消失和長期記憶不足的問題。LSTM被廣泛應(yīng)用于語音識別和自然語言學(xué)習(xí)。LSTM的基本結(jié)構(gòu)如圖3。
圖3 LSTM網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 LSTM network structure
LSTM使用設(shè)計良好的“門”結(jié)構(gòu)來刪除信息或向單元的狀態(tài)添加信息?!伴T”結(jié)構(gòu)是一種選擇性過濾信息的方法。LSTM單元包括遺忘門ft,輸入門it和輸出門Ot。3種門結(jié)構(gòu)的計算定義如下
ft=σl(Wf·[ht-1,xi]+bf)
(7)
it=σl(Wi·[ht-1,xt]+bi)
(8)
Ct=tanh(WC·[ht-1,xt]+bC)
(9)
ot=σl(WO·[ht-1,xt]+bO)
(10)
ht=ot·tanh(Ct)
(11)
(7)—(11)式中:Wf,Wi,WC,Wo和bf,bi,bC,bo分別為時間步長t時輸入向量xt的權(quán)矩陣和偏置向量;σl是激活函數(shù);*表示矩陣的元素乘法;Ct表示單元狀態(tài);ht-1是時間步長t-1時隱藏層的狀態(tài);ht是時間步長t時隱藏層的狀態(tài)。
將OpenFlowS上讀取的時間序列數(shù)據(jù)歸一化處理,以加速模型收斂。數(shù)據(jù)歸一化,即用以消除不同維度數(shù)據(jù)之間的差異。對設(shè)備采集到的數(shù)據(jù)集中的數(shù)值型特征全部采用線性函數(shù)歸一化處理進(jìn)行等比例縮放。每一種特征數(shù)值轉(zhuǎn)換為[0,1] ,轉(zhuǎn)換公式為
(12)
在完成數(shù)據(jù)歸一化標(biāo)準(zhǔn)處理后,將使用兩級時間窗口提取樣本。第1時間窗記錄作為輸入序列的當(dāng)前網(wǎng)絡(luò)工作狀態(tài);第2時間窗記錄作為標(biāo)簽預(yù)測的未來網(wǎng)絡(luò)狀態(tài)。將2個時間窗口設(shè)置為長度相等,本文將根據(jù)不同時間窗的長度來比較模型的性能。
AMCNN-LSTM模型用于檢測電力網(wǎng)絡(luò)異常檢測的工作流程如圖4。首先,CNN的卷積層和池化層分別通過卷積運(yùn)算和最大池化運(yùn)算提取網(wǎng)絡(luò)流量的特征,隨后使用注意力模塊進(jìn)一步提取序列細(xì)粒度特征,將CNN單元處理后的輸出與注意力單元的輸出結(jié)合,得到AMCNN模塊對序列數(shù)據(jù)特征提取后的輸出矩陣。然后,將提取到的特征矩陣輸入到LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中進(jìn)行網(wǎng)絡(luò)異常預(yù)測,從LSTM模型中輸出的矢量矩陣輸入到Dropout層以防止數(shù)據(jù)過擬合。具體算法流程如算法1。
算法1 基于注意力機(jī)制的CNN-LSTM檢測算法
Step 1:OpenFlows讀取電網(wǎng)流量數(shù)據(jù),并做歸一化、標(biāo)準(zhǔn)化處理;
Step 2:使用兩級時間窗口提取樣本數(shù)據(jù),并輸入至CNN單元;
Step 3:標(biāo)準(zhǔn)訓(xùn)練集數(shù)據(jù)通過CNN卷積層及最大池化層提取特征;
Step 4:并行注意力機(jī)制模型同時與CNN模塊進(jìn)行細(xì)粒度特征提取,并輸出特征矩陣;
Step 5:通過LSTM網(wǎng)絡(luò)訓(xùn)練分析特征矩陣,并對下一時間窗口數(shù)據(jù)進(jìn)行預(yù)測;
Step 6:LSTM矢量矩陣經(jīng)過Dropout層防止過擬合;
Step 7:使用驗(yàn)證集及測試集評估模型性能。
最后,通過sigmoid函數(shù)對全連通層的輸出進(jìn)行處理,得到0-1的結(jié)果概率p,并設(shè)置閾值對預(yù)測結(jié)果進(jìn)行分類。本文設(shè)定的閾值為0.5。當(dāng)p大于0.5時,預(yù)測未來會出現(xiàn)網(wǎng)絡(luò)故障,當(dāng)p小于0.5時,預(yù)測未來不會出現(xiàn)網(wǎng)絡(luò)故障。
圖4 基于AMCNN-LSTM異常檢測框架圖Fig.4 Anomaly detection framework based on AMCNN-LSTM
用于測試本文所提模型的數(shù)據(jù)集取自愛爾蘭社會科學(xué)數(shù)據(jù)檔案(ISSDA),由愛爾蘭能源監(jiān)管委員會(CER)提供。該數(shù)據(jù)集包含2009年至2010年收集的5 000名用戶的用電設(shè)備上傳數(shù)據(jù)。參與該計劃的用戶有住宅消費(fèi)者、中小行業(yè)等。每隔30分鐘收集一次流量上傳數(shù)據(jù)。在驗(yàn)證所提出的模型之前,對數(shù)據(jù)集進(jìn)行了預(yù)處理。為避免過擬合和欠擬合問題,本文將預(yù)處理后的數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測試集,按數(shù)據(jù)條數(shù)劃分比例為6∶3∶1。其中訓(xùn)練集、驗(yàn)證集用來訓(xùn)練模型性能,在測試集上測試模型的泛化性能和準(zhǔn)確性。
在訓(xùn)練過程中,以訓(xùn)練精度和模型損失函數(shù)作為參考,調(diào)整模型的超參數(shù),使系統(tǒng)模型達(dá)到最優(yōu)狀態(tài)。在模型收斂后,在測試數(shù)據(jù)集上組織測試,評估模型的有效性。然后,對比幾類經(jīng)典機(jī)器學(xué)習(xí)算法,來驗(yàn)證本文所提算法在預(yù)測精度以及模型損失方面的性能。
ISSDA數(shù)據(jù)集收集的為AMI中智能電表流量數(shù)據(jù),智能電網(wǎng)是智能電網(wǎng)系統(tǒng)的重要組成部分。在AMI中,智能電表取代了傳統(tǒng)的數(shù)字和模擬電表。因此,網(wǎng)絡(luò)異常具體可以體現(xiàn)在智能電表的被攻擊與反常數(shù)據(jù)。
在本文中,使用Xl=[x1,x2,…,x48]表示第l天智能電表的良性數(shù)據(jù)和Yl=[y1,y1,…,y48]表示第l天的惡意功耗數(shù)據(jù)。為了測試所提出的方法,本文考慮了5種不同類型的異常。
1)A1:Yl=X24-(l-1);
2)A2:Yl=mean(Xl-1)
3)A3:Yl=αlmean(Xl-1),αl=[αl1,αl2,…,αl48];
where:αli=random(mini,maxi)
4)A4:Yl=αlXl,αl=[αl1,αl2,…,αl48];
where:αli=random(mini,maxi);
5)A5:Yl=αXl,α=random(min,max)。
在A1中,攻擊者反轉(zhuǎn)前一天的用戶數(shù)據(jù),并將這些被操縱的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)。在A2中,攻擊者將前一天的消費(fèi)平均值發(fā)送到數(shù)據(jù)收集中心。在A3中,具有均勻分布的隨機(jī)數(shù)與前一天的平均值相乘;在A4中,一個不同的隨機(jī)數(shù)乘以當(dāng)天的每個消費(fèi)讀數(shù);在A5中,某一天的所有能量讀數(shù)都乘以一個隨機(jī)數(shù)。
在本文中,采用4種模型預(yù)測評價指標(biāo):準(zhǔn)確率、精準(zhǔn)率、召回率和F-Measure被用作評估指標(biāo)。準(zhǔn)確率(Accuracy)能夠體現(xiàn)出檢測模型能正確檢測出正常和異常行為的概率,精確率(Precision)值能體現(xiàn)出模型判定為異常行為的數(shù)據(jù)中真實(shí)的異常行為所占的比重,召回率(Recall)值能體現(xiàn)出模型正確檢測出異常行為的概率,綜合評價指標(biāo)F-measure是精確率和召回率的綜合。各類指標(biāo)的具體計算方法為
(13)
(13)式中:TP表示實(shí)際為樣本正常預(yù)測也為正常;FP表示樣本實(shí)際為異常但預(yù)測為正常;TN表示樣本實(shí)際為異常預(yù)測也為異常;FN樣本表示實(shí)際為正常預(yù)測為異常。
3.4.1 模型關(guān)鍵參數(shù)設(shè)置
運(yùn)用固定參數(shù)法選取本文模型的關(guān)鍵參數(shù),其中包括AMCNN單元的注意力深度、CNN模型深度以及 LSTM模型步長,各類測試的評價結(jié)果如圖5。隨著模型的深度以及步長的加大,整體效果均表現(xiàn)為先變好后逐漸下降,因?yàn)殡S著模型深度及步長的加深,模型處理的數(shù)據(jù)量不斷加大,并且隨著注意力深度的加深,模型整體擬合能力超過一定預(yù)期,過擬合效果使得模型的預(yù)測能力變差。
圖5 模型參數(shù)設(shè)置對比Fig.5 Comparison of model parameter Settings
3.4.2 模型收斂性分析
為了驗(yàn)證模型的收斂性,本文選擇在訓(xùn)練集與驗(yàn)證集上進(jìn)行模型損失對比,在ISSDA數(shù)據(jù)集上訓(xùn)練AMCNN-LSTM模型。圖6顯示了200個輪次的訓(xùn)練和驗(yàn)證損失。
3.4.3 不同預(yù)測算法對比
為了驗(yàn)證本文算法模型的優(yōu)越性,按照3.3節(jié)介紹的4個評價標(biāo)準(zhǔn),將該模型算法與CNN,LSTM,CNN-LSTM算法進(jìn)行對比,結(jié)果如圖7。圖7a中展示了不同算法在不同迭代輪次下的預(yù)測準(zhǔn)確率;圖7b體現(xiàn)為不同算法的精準(zhǔn)率對比;圖7c為不同算法的預(yù)測召回率對比;圖7d為綜合Precision與Recall的評價指標(biāo)F-measure得分對比。
3.4.4 實(shí)驗(yàn)結(jié)果分析
通過對實(shí)驗(yàn)結(jié)果的分析得出,本文提出的AMCNN-LSTM算法在檢測電力網(wǎng)絡(luò)環(huán)境中的正確樣本有著更加優(yōu)越的性能。
預(yù)測召回率,即正常樣本中檢測為正常方面,經(jīng)過150輪迭代后達(dá)到了89.14%的召回率,表明本文所提的算法具有更高的靈敏度,對于一些隱蔽的難以發(fā)覺的網(wǎng)絡(luò)異常具有更好的響應(yīng)。此外,根據(jù)圖7a的結(jié)果顯示,基于注意力機(jī)制的CNN-LSTM算法具有更高的檢測正確率。加入了注意力機(jī)制,可以有效提高對時間序列數(shù)據(jù)的細(xì)粒度特征的提取,因此,相較于其他類深度學(xué)習(xí)檢測模型,AMCNN-LSTM算法能夠達(dá)到更高的精度要求。
圖6 模型Loss對比Fig.6 Model Loss comparison
圖7 不同算法性能對比結(jié)果Fig.7 Comparison results of performance of different algorithms
在信息檢索中,準(zhǔn)確率和召回率是互相影響的,高準(zhǔn)確率不一定會給網(wǎng)絡(luò)檢測帶來正相關(guān)的收益,在檢測為負(fù)樣本,即網(wǎng)絡(luò)攻擊或異常數(shù)據(jù),一定程度上會帶來誤判。根據(jù)圖7b結(jié)果顯示,本文算法在預(yù)測準(zhǔn)確率上高于其他幾類算法,因此,綜合準(zhǔn)確率及召回率結(jié)果,本文最終采用F-measure得分來評判模型預(yù)測性能。從圖7d可以得出,基于注意力機(jī)制的CNN-LSTM算法具有89.67%的綜合F-measure得分,高于CNN-LSTM模型的81.24%。
通過對電力網(wǎng)絡(luò)系統(tǒng)流量的分析,針對網(wǎng)絡(luò)數(shù)據(jù)增多和人工特征提取不足等問題,提出了一種基于注意力機(jī)制的CNN-LSTM的電力網(wǎng)絡(luò)故障預(yù)測模型來檢測網(wǎng)絡(luò)異常狀態(tài)。在實(shí)驗(yàn)中,首先對日志數(shù)據(jù)進(jìn)行預(yù)處理,然后將對數(shù)文本輸入嵌入層進(jìn)行向量轉(zhuǎn)換為矩陣,將矩陣輸入神經(jīng)網(wǎng)絡(luò),由注意力機(jī)制模塊與CNN并行提取細(xì)粒度特征,然后使用LSTM進(jìn)行預(yù)測。對該數(shù)據(jù)集的實(shí)驗(yàn)仿真結(jié)果表明,本文提出的基于注意力機(jī)制的CNN-LSTM混合神經(jīng)網(wǎng)絡(luò)的預(yù)測性能優(yōu)于CNN,LSTM和CNN-LSTM預(yù)測模型。
結(jié)合上文分析,基于AMCNN-LSTM的電力無線接入專網(wǎng)流量異常檢測機(jī)制可以提供較高的檢測準(zhǔn)確率以及較低的漏報誤報率。針對電力網(wǎng)環(huán)境下,可以快速地應(yīng)對因?yàn)榱髁慨惓6l(fā)生網(wǎng)絡(luò)故障,從而大大提高整體電力網(wǎng)絡(luò)的魯棒性,增強(qiáng)電力信息網(wǎng)絡(luò)的安全性。