黃朝凱,吳丹妍,鄭惠哲,黃小奇
(廣東電網有限責任公司汕頭供電局,廣東 汕頭 515041)
隨著網絡、大數據、物聯網、通信技術[1-3]的不斷發展,智能電網可基于智能電表收集大量用電數據。因此,對這些海量數據進行分析,可推動電力系統服務質量的提升。然而,在電力供應過程中存在有意或無意攻擊引起的異常用電行為,如非技術損失[4-5]的竊電行為。這種違法行為不僅嚴重擾亂了電力的正常使用,而且給電力系統造成了巨大的經濟損失。同時,未經授權修改線路或儀表容易導致停電和火災等事故,并對相關電力系統的安全構成嚴重威脅。
為此,大量學者對電力系統竊電檢測方法進行研究,并取得了豐碩成果。文獻[6]提出了基于遺傳算法-反向傳播(genetic algorithm- back propagation,GA-BP)神經網絡的竊漏電用戶識別方法,可實現電力系統實時運行數據記錄和竊漏電用戶識別。文獻[7]提出了1種基于隨機森林(random forest,RF)的電網用戶竊電檢測方法。文獻[8]提出了基于時延細胞神經網絡提取特征和支持向量機(support vector machine,SVM)的竊電檢測方法。文獻[9]基于差分整合移動平均自回歸模型和遞歸貝葉斯(recursive Bayes,RB),構建了1種針對配電網低壓竊電行為的識別方法。這些傳統的數據挖掘方法易于實現,適用于小樣本的竊電檢測。
然而,這些方法特征提取能力低且檢測精度有限。相對而言,深度神經網絡不僅具有強大的特征提取能力,而且可以映射復雜的非線性關系。這使其相比傳統方法具有更高的檢測精度[10-11]。此外,竊電檢測中另一個嚴重的問題是數據集中沒有足夠數量的竊電功率曲線。該問題為深度學習、SVM等監督學習方法帶來了挑戰。因此,有必要使用有限的竊電功率曲線進行數據增強,從而提高模型檢測精度。
為改善上述問題,本文提出了1種基于卷積神經網絡(convolutional neural network,CNN)的電力數據分析模型。首先,為了提高竊電檢測的準確性,本文提出了1種基于條件變分自動編碼器的竊電曲線數據增強方法。其次,本文設計了基于CNN的竊電檢測分類模型。
一般情況下,變分自動編碼器主要根據歷史數據X={x1,x2,…,xn}學習竊電功率曲線數據分布pθ(X)。竊電功率曲線數據分布可以分解為:
(1)
式中:n為歷史數據個數。
為了簡化計算過程,可對式(1)應用對數函數,獲得如式(2)所示結果。
(2)
本文令功率曲線的每個數據點包含潛在變量z,則任意數據點x可以重構如下。
(3)
式中:pθ(z)為先驗概率;pθ(x|z)為后驗概率。
竊電功率曲線的生成過程通常包含以下步驟。
首先,根據pθ(z)獲得潛在變量z;然后,根據pθ(x|z)生成竊電功率曲線pθ(x)。
然而,一般情況下pθ(z)以及pθ(x|z)無法獲取。根據貝葉斯式,有:
(4)

由于后驗概率通常非常復雜,因此可基于1個簡單的分布和參數φ近似估計后驗概率。
為有效獲取竊電功率曲線的分布,根據式(2),可先對log∏pθ(xi)進行估計。基于Kullback-Leibler散度與變分下界定義,有:
(5)


Eqφ(z|x)[-logqφ(z|x)+logpθ(x|z)]
(6)
本文將Kullback-Leibler散度用作對數似然的下界,則:
logpθ(x)≥L(θ,φ;x)
(7)
在這種情況下,L(θ,φ;x)可為:

Eqφ(z|x)[logpθ(x|z)]
(8)

基于上述條件,模型可以參數化為:
(9)
式中:f和g分別為具有1組參數的深度神經網絡。


Eqφ(z|x){logpθ[(x|y)|z]}
(10)
條件變分自動編碼器的主要優點是不需要假設竊電功率曲線的概率分布,因此只需要少量樣本即可訓練模型,且可以生成與原始竊電功率曲線相似的樣本。生成竊電功率曲線的執行流程如圖1所示。

圖1 生成竊電功率曲線的執行流程Fig.1 Execution process for generating power theft curves
根據圖1,基于條件變分自動編碼器的數據增強過程描述如下。
①在將數據輸入條件變分自動編碼器前,必須對竊電曲線的數據進行預處理,如歸一化操作等。否則,訓練的收斂速度將較慢,并且訓練模型的性能將較差。因此,在保留數據的統計特征的同時,本文基于最小-最大重縮放變換將所有特征轉換為固定范圍[m,M]。對于給定的時間序列{xi},數據重縮放過程可表示為:
(11)

(12)
式中:xmax為時間序列{xi}的最大值。
②使用深度CNN構造編碼器,將輸入數據映射到低維潛在變量,計算編碼器輸出數據的均值和方差,用于生成相應的高斯噪聲。所得高斯噪聲為解碼器的輸入數據。
③將高斯噪聲饋送到由深度轉置CNN組成的解碼器,從而生成新的竊電功率曲線。利用解碼器的輸出數據和實際數據計算損失函數。該損失函數用于通過反向傳播方法更新編碼器和解碼器的權重。
④在訓練條件變分自動編碼器后,將高斯噪聲饋送到解碼器,以生成指定攻擊模型下的竊電功率曲線。將生成的竊電功率曲線和來自訓練集的原始樣本進行融合,以形成增強數據集,并分別代入分類器進行訓練,以實現竊電檢測。
竊電功率曲線可分為4類,分別為一般竊電、拒絕攻擊竊電、注入攻擊竊電和交換攻擊竊電。
一般竊電功率曲線低于正常功率,具體可表示為:
(13)

改裝路由表、丟棄數據包和斷開連接電表等攻擊會導致拒絕服務。在這種情況下,電力表將停止報告消費者信息,即電力表數值為0。上述攻擊下竊電功率曲線描述為:
(14)

虛假信息攻擊通過信息注入、特權訪問、錯誤配置等手段生成虛假消費記錄。注入攻擊模型下,竊電功率曲線描述為:
(15)

此外,交換低電價時段和高電價時段之間的消費記錄,也構成竊電行為。其竊電功率曲線描述為:
(16)

作為深度學習技術的代表算法之一,CNN以其強大的特征提取能力而廣泛應用于圖像分類、故障診斷和時間序列預測等領域。與傳統分類方法相比,CNN不僅可以映射更復雜的非線性關系,而且具有良好的泛化能力。因此,本文選擇CNN作為竊電檢測的分類器。
2.2.1 模型結構
CNN由卷積層、池化層、展平層、全連接層等組成。具體而言,卷積層和池化層負責提取竊電功率曲線的特征。其數學式如下。
(17)
式中:xi為第i個卷積層的輸入數據;yi為第i個卷積層的輸出數據;y′為第i個最大池層的輸出數據;fi為激活函數;bi和wi分別為第i個卷積層的偏移向量和權重。
為了緩解過度擬合,本文引入Dropout層以使某些神經元以一定的概率失去效能。同時,全連接層的數學式為:
(18)

考慮用電功率曲線的特點,本文提出的CNN結構如圖2所示。

圖2 CNN結構示意圖Fig.2 Schematic diagram of CNN structure
圖2中方塊表示特征的維度,且每個特征大小已在方塊上方說明。首先,為了便于訓練,本文使用1×49維用電功率曲線將數據預處理為三維向量,并將其作為卷積層的輸入數據。然后,本文使用2個卷積層和最大池層來提取功率曲線的關鍵特征。此外,2個卷積層中的卷積核數量分別為16和32。池化層后面接1個Dropout層,并令失效概率為0.25。最后,模型包括2個完全連接層,分別有15個和6個神經元。同時,模型中除最后一層使用softmax函數作為激活函數,其余層均使用ReLU函數作為激活函數。損失函數是分類交叉熵。優化器是Adadelta算法。
2.2.2 損失函數
一般情況下,網絡訓練時采用測量預測輸出的絕對誤差作為損失函數。具體描述如式(19)所示。
(19)

(20)
(21)
式中:α為調整權重的常數。
(22)
此外,對于第i個數據鏈,時間步t處的用電功率曲線可計算如下。
(23)
(24)
(25)
因此,縮放前的絕對誤差計算如下。
(26)
在原始尺度上,不同樣本的絕對誤差具有不同的重要性。考慮到誤差率為評估結果更常用的測量方法,本文進一步修正每個樣本的損失。具體計算式如式(27)所示。
(27)
為驗證所提模型的有效性,本節基于中國某電網公司智能電表數據集進行模擬和分析。該數據集統計了中國某市2018年3月至2020年12月住宅及部分商業用戶用電情況。功率曲線的采樣周期設置為30 min。本文根據竊電曲線分類模型,隨機選擇一些樣本生成竊電功率曲線,同時結合真實樣本構成混合電力數據樣本集。
上述數據集中竊電功率曲線樣本均衡性較差,部分樣本數量較低。為此,本文根據所提基于條件變分自動編碼器的數據增強模型對竊電數據進行增強,從而進一步提高樣本均衡性、加快模型訓練速度及訓練性能。數據增強后樣本集數據統計情況如表1所示。

表1 數據增強后樣本集數據統計情況Tab.1 Data statistics of sample set after data enhancement
為保證相同試驗條件,所有試驗均運行在相同的環境。仿真環境具體如下:軟件環境為由pycharm搭建算法框架,并由Python基于keras 2.2.4和tensorflow 1.12.0搭建CNN基礎網絡;硬件環境為酷睿i7 CPU、內存為128 GB ARM的聯想服務器;操作系統為Ubuntu 18.04 64位,顯卡為 NVIDIA RTX2080Ti 11G。
本文采用隨機梯度下降(stochastic gradient descent,SGD)優化器訓練模型。試驗時,部分參數定義如下:批量大小設置為16;初始學習率設置為10-2;學習率衰減率設置為10-1;學習率衰減周期設置為10;最大迭代次數設置為150;每次迭代訓練次數設置為100次。為消除試驗過程因隨機誤差造成的影響,本文對不同模型分別執行30組試驗,并取平均值作為測試結果。
3.3.1 基礎網絡性能對比分析
首先,本節對比了所提模型與RF、SVM、RB、人工神經網絡(artificial neural network,ANN)等模型的性能,從而驗證所提模型的優勢。試驗時選取均方根誤差(root mean square error,RMSE)指標來衡量模型性能。RMSE計算如式(28)所示。
(28)
式中:Pi為第i個樣本的真實值;Oi為第i個樣本的估計值。
RMSE較小表示模型估計能力較高,較大表示模型估計能力較低。不同模型比較結果如表2所示。

表2 不同模型比較結果Tab.2 Comparison results of different models
由表2可知,RF和SVM模型在測試數據上產生的RMSE通常比在訓練數據上產生的RMSE高得多。這表明這些模型存在過度擬合問題。同時,RB和ANN等模型較RF和SVM模型性能有所提升,但RMSE仍有提升空間。所提模型性能優勢明顯,訓練集中RMSE為3.69%,測試集中為4.80%。所提模型較RB和ANN在測試集中的RMSE分別下降5.26%和4.09%。
3.3.2 數據增強策略性能分析
為了驗證所提模型生成竊電功率曲線的有效性,本節對比了基于隨機過采樣(random over-sampling,ROS)、人工少數類過采樣技術(synthetic minority over-sampling technique,SMOTE)和生成對抗網絡(generative adversarial network,GAN)等數據增強算法在所提基礎CNN模型下的性能。對比指標分別選取準確率、F1分數和G均值。其中,指標G均值可有效評估不平衡樣本性能。不同數據增強方法性能對比如表3所示。

表3 不同數據增強方法性能對比Tab.3 Performance comparison of different data enhancement methods
由表3可知,通過不同方法增加數據后,基礎CNN的檢測性能得到了顯著改善。具體而言,在通過ROS進行數據增強后,與原始數據集相比,CNN的準確率、F1分數和G均值分別提高了2.00%、1.64%和1.69%。經過SOMTE數據增強后,與原始數據集相比,CNN的準確率、F1分數和G均值分別提高了3.50%、2.90%和3.33%。經過GAN數據增強后,與原始數據集相比,CNN的準確率、F1分數和G均值分別提高了4.46%、4.46%和4.68%。經過無數據增強后,與原始數據集相比,CNN的準確率、F1分數和G均值分別提高了7.00%、6.65%和6.01%。因此,與現有的數據增強方法相比,所提數據增強方法可以根據竊電功率曲線的實際形狀和分布特征擴展訓練集,并且對CNN性能改善效果更優。
本文對電力網電力數據進行了研究與分析,建立了1種基于CNN的電力數據分析模型。首先,本文基于條件變分自動編碼器的數據增強,提高了樣本的多樣性和均衡性,提升了模型的準確性和訓練效率。其次,本文提出了1種基于CNN的竊電檢測模型,從而實現了用電數據的準確分類。該模型為電力數據分析及安全故障隱患的發現提供了借鑒。未來可對電力數據安全管理領域進行研究,如引入區塊鏈、云計算等技術提高混合配電網數據交互可靠性及效率,以進一步完善智能化電力故障診斷及定位方案。