張明明,劉文盼,宋 滸,夏 飛
(1.國網江蘇省電力有限公司信息通信分公司,江蘇 南京 210024;2.南瑞集團有限公司,江蘇 南京 211106)
電力通信網絡主要是為了保證電力系統能夠安全穩定運行而存在的[1]。近年來,物聯網進入了飛速發展階段,已深入各行各業,其中就包括電力行業。由物聯網中各個信息采集設備獲取的信息經由電力通信系統整合與處理分析,從而更好地實現信息交互。與此同時,數據量異常龐大會導致網絡堵塞甚至崩潰[2]。邊緣計算主要是將一些不需要在云端進行的操作放在本地邊緣計算層完成,時有效降低網絡計算量,提高數據處理效率[3]。物聯網中包含的數據量較大,網絡故障以及外來入侵行為檢測存在一定難度。目前,基于密度的噪聲應用空間聚類(density-based spatial clustering of applications with noise,DBSCAN)算法被廣泛應用于通信網絡的故障及入侵檢測[4]。DBSCAN算法能夠檢測離群點,應用于電力通信監測時有助于及時發現故障或外來非法入侵的情況,避免造成重大損失[5]。但DBSCAN算法受輸入參數的影響較大,其設置存在經驗性和盲目性的缺點,且傳統的物聯網邊緣計算框架依舊面臨計算成本高以及計算時間長等問題。
基于上述問題,本文構建了基于改進密度聚類算法的電力通信網絡故障及入侵監測模型,以及基于深度強化學習的邊緣計算優化方法。本文研究旨在為電力通信網絡故障以及入侵行為的監測提供技術支撐。
1.1.1 DBSCAN算法
DBSCAN算法主要是通過數據類別的密度連通性快速識別任意形狀的簇,將具有足夠密度的區域劃分為簇[6]。
(1)核心對象:將密度達到算法設定閾值的點視為核心點,即鄰域半徑(E)內點的數量不小于最小數目閾值。領域內點的集合表示為:
NE(m)={n∈D|d(m,n)≤E}
(1)
式中:NE為從m點出發的領域內點集合;D為全部點的集合;d(m,n)為m、n兩點間的歐氏距離。
(2)將點m視為從點n直接密度可達的條件,其條件為當且僅當:
m∈NE(n),|NE(n)|≥Nminpts
(2)
式中:Nminpts為使點n為核心點的領域內最小數目閾值。
(3)若一系列點m1,m2,...,mp,有m1=n、mp=m且mi+1到mi直接密度可達,則點m從點n密度可達。
(4)若點m與點n均從點o密度可達,則點m與點n密度相連。
(5)對于集合D,將簇C視為D的子集,必須滿足以下兩個條件。
①?m,n:ifm∈C,且點n從點m密度可達,則n∈C。
②?m,n∈C:點m和點n密度可達。
(6)噪聲是指不屬于任何一個簇Ci的離散點,可表示為:
Cnoise={m∈D|?i:m≠Ci}
(3)
綜上所述,DBSCAN算法工作流程如圖1所示。

圖1 DBSCAN算法工作流程圖
在采用DBSCAN算法劃分簇時,需要提前手動輸入E和Nminpts。這兩個參數的設置是否合理對于算法的聚類效果影響較大[7]。本文將借助于K-means算法確定DBSCAN算法所需的參數值。
1.1.2 改進K-means聚類算法
傳統K-means聚類算法在處理數據過程中計算量較大[8]。本文提出了一種單遍權重K-means(single pass weighted K-means,SPWK)聚類算法。該算法對初始點的選取和聚類時影響因素的權值選取進行了優化。SPWK算法是在Spark平臺中運行的[9]。Spark平臺是專門為大數據處理而設計的一種快速計算引擎。
改進K-means聚類算法工作流程如圖2所示。

圖2 改進K-means聚類算法工作流程圖
首先,建立若干個大小為n的數據子集,將每個子集中的樣本權重設置為1。通過計算第一組權值為1的樣本 K-means 聚類中心y,得到最小的聚類誤差平方和D(y):
(4)
式中:ωi為第i個指標的權重;yi為第i個指標的數據庫映射值;yi,k為第k個聚類中心第i個指標數據庫映射值。
定義本聚類算法的距離為歐幾里德距離,兩點之間的歐幾里德距離計算如式(5)所示。

(5)
基于Spark平臺可實現距離的快速計算,大大降低計算量。具體計算如式(6)所示。

(6)
基于改進密度聚類算法的電力通信網絡故障及入侵監測模型架構如圖3所示。

圖3 電力通信網絡故障及入侵監測模型架構圖
1.2.1 物聯網邊緣計算執行過程設定
邊緣計算執行過程如下。

(7)
式中:di為通信信道長度。

(8)
式中:pi為物聯網中的能量密度。
(9)
物聯網的數據傳輸速率si計算如式 (10)所示。
(10)
式中:W為物聯網中無線帶寬;β(t)為計算周期內物聯網累計能量值;fi為物聯網中用戶數據傳輸功率;X2為高斯白噪聲方差值。
過程延時的計算如式(11)所示。
(11)
1.2.2 物聯網邊緣計算資源分配
本文以卷積神經網絡(convolutional neural networks,CNN)模型為基礎,對物聯網邊緣計算資源進行合理分配。具體方法如下。
將兩個信號的卷積結果r(n)以離散的形式表現,如式(12)所示。

(12)
式中:l(n)、j(n)為資源分配中的離散序列;h(n-1)為邊緣計算中的信號。
根據CNN模型的參數特征,對資源分配過程中的權值以及偏置進行設定,以此作為連接數,則計算中的參數個數U可表示為:
U=Nk×(mc×sk×qk)
(13)
式中:mc為邊緣計算中的通道數;sk、qk分別為卷積核的寬度與高度。
對計算量mc×sk×qk展開合理化分配,可表示為:
(14)
1.3.1 改進K-means算法性能測試
本文選取傳統的K-means算法以及基于權值的K-means算法,以算法執行時間和并行加速比、迭代次數以及總聚類時間為指標,與本文設計的SWPK聚類算法進行算法的性能比較。其中,并行加速比Sp計算如式(15)所示。
(15)
式中:ts為單節點在運算過程中消耗的時間;tp為p個節點在運算過程中消耗的時間。
1.3.2 邊緣計算優化方法測試
本文選取目前較為流行的改進貓群算法[10]以及邊緣-云合作[11]作為對照,以服務器占用時間以及計算等待時間作為測試指標,與本文設計的優化方法進行比較。在測試過程中,將邊緣計算環境設置為全部工作以及部分工作兩種,以此來提升測試的有效性。
1.3.3 電力通信網絡故障及入侵監測模型測試
①數據標準化。
數據標準化是對獲得的全部數據做無量綱化處理,可以提升模型的收斂速度與精度。目前常用的標準化方法為Z分數。
(16)

②網絡故障檢測方法。
電力通信網絡故障檢測主要是基于國家電網通信管理系統進行的。本文從系統中抽取了H、I、J、K、L這5個省的實際電網通信數據對模型進行驗證。首先,采用本監測模型標注電力網絡中的異常數據,將結果與人工標注的結果進行對比。然后,選取傳統的K-means聚類算法以及凝聚的層次聚類(AGglomerative NESting,AGNES)算法作為對照,研究本文模型的準確率。
③網絡入侵檢測方法。
電力通信網絡入侵檢測主要是在KDD CUP 99數據集進行的。KDD CUP 99數據集仿真了各種用戶類型、不同的網絡流量和攻擊手段,主要用于網絡入侵檢測。本文從KDD CUP 99數據集中隨機選取包含Smurf、Back和Nmap三種入侵攻擊以及正常數據的大量數據構建模型訓練集,測試集也在數據集上隨機選取。在相同條件下,以文獻[12]提出的基于劃分和凝聚層次聚類的無監督異常檢測方法以及文獻[13]提出的基于并行聚類算法的無監督異常檢測方法作為對照組,以正確率(correct rate,CR)和誤報率(false positive rate,FPR)作為評價指標,與本文設計的監測模型進行對比。CR與FPR計算如式(17)、式(18)所示。
(17)
式中:C為正確率,%;CTotal為檢測到的入侵總數;DTotal為數據集中的入侵總數。
(18)
式中:F為誤報率,%;I為被認為是入侵的正常數據的數量;NTotal為數據集中正常數據的總數。
三種聚類算法的性能測試結果對比如圖4所示。

圖4 三種聚類算法的性能測試結果對比圖
由圖4可知,傳統的K-means聚類算法以及基于權值的K-means聚類算法的平均執行時間分別為2.344 s、2.468 s,SWPK聚類算法為0.762 s,SWPK算法低于其他兩種算法67.5%以上。三種算法的并行加速比平均值分別為1.52、1.575、2.093,SWPK算法高出其他算法76.4%以上。三種算法的迭代次數分別為23次、10次、8次,總聚類時間分別為2.909 s、1.455 s、0.909 s。SWPK算法的迭代次數更少,總聚類時間低于其他兩種算法37.5%以上。這表明SWPK算法性能遠遠高于其他兩種算法。
2.2.1 服務器占用時間
本文對改進貓群算法的優化方法、邊緣-云合作的優化方法以及深度強化學習的優化方法在物聯網邊緣計算時的服務器占用時間進行了測試。三種優化方法計算時的服務器占用時間測試結果如圖5所示。

圖5 三種優化方法計算時的服務器占用時間測試結果
由圖5可知,未進行優化時的邊緣計算服務器占用時間平均為103 s;采用改進貓群算法平均約為60.8 s;采用邊緣-云合作的優化方法平均約為54.7 s;經過深度強化學習優化后平均約為16.2 s。在部分工作環境下,未經優化的邊緣計算服務器占用時間平均為53 s;改進貓群算法平均約為19.5 s;邊緣-云合作優化方法平均約為26 s;深度強化學習優化方法平均約為4.2 s。
2.2.2 計算等待時間
三種優化方法的計算等待時間測試結果如圖6所示。

圖6 三種優化方法的計算等待時間測試結果
由圖6可知,采用改進貓群算法進行優化后的計算等待時間平均約為118.8 ms;邊緣-云合作優化平均約為108.4 ms;經深度強化學習優化后平均約為22.5 ms。
綜上所述,在同一任務數量條件下,本文提出的基于深度強化學習的物聯網邊緣計算優化方法的服務器占用時間低于其他兩種方法70.4%以上,計算等待時間低于其他兩種方法79.2%以上,性能更優,更適用于邊緣計算應用下的電力通信數據處理。
采用本文設計的監測模型、K-means算法以及AGNES算法所得到的異常數據標注結果與人工標注結果對比如圖7所示。

圖7 異常數據標注結果與人工標注結果對比圖
由圖7可知,采用本文構建的監測模型DBSCAN對數據集中異常數據標注的結果與人工標注結果只有微小的差異,最高時僅有9個數據的差值。K-means算法與AGNES算法平均準確率分別為72.89%以及73.18%,DBSCAN異常數據識別準確率最高可達100%,平均為90.64%,高于其他兩種算法23.86%以上。
采用本文監測模型與其他兩種方法對訓練數據集中的各種攻擊類型進行檢測,將檢測正確率以及各個算法在測試集上的總檢測率和誤報率進行對比。不同算法對各種攻擊的檢測結果對比如圖8所示。
由圖8可知,基于劃分和凝聚層次聚類算法的無監督異常檢測方法,以及基于并行聚類算法的無監督異常檢測方法對三種類型的攻擊平均檢測率分別為79.98%以及86.98%,本文算法的平均檢測率為93.75%,高出其他兩種方法7.8%以上。兩種對照算法的攻擊總檢測率分別為80.22%以及89.36%,本文算法則為93.68%,高出4.8%以上。此外,本文算法誤報率也低于其他兩種算法65.4%以上。

圖8 不同算法對各種攻擊的檢測結果對比
綜上所述,本文模型較其他兩種算法具備更優異的性能,在電力通信網絡故障以及入侵檢測方面有廣闊的應用前景。
傳統的DBSCAN算法需要手動輸入參數E和Nminpts,參數設置存在經驗性以及盲目性的問題。邊緣計算有效降低了傳統的物聯網計算成本高以及計算時間過長等問題。本文構建了基于改進密度聚類算法的電力通信網絡故障及入侵監測模型以及基于深度強化學習的邊緣計算優化方法。仿真試驗結果表明: SPWK聚類算法的迭代次數更低,平均執行時間以及總聚類時間分別低于其它算法67.5%、37.5%,并行加速比高出76.4%以上,聚類效率更高;邊緣計算優化算法的服務器占用時間以及計算等待時間分別低于其他算法70.4%以上和79.2%以上,性能更優;電力通信監測模型對異常數據的平均識別準確率高出其他算法23.86%以上,入侵檢測率高出其他算法4.8%以上,誤報率降低65.4%以上,具備優異的檢測性能。本文的不足之處在于選取了部分省份的電力通信數據進行了研究,代表性不足。后期還需擴大數據集,以對模型的適應性作進一步的完善。本文模型研究的開展旨在為電力通信網絡故障以及入侵行為的監測提供技術支撐。