段志尚, 冉 懿, 呂篤良, 祁 杰, 鐘佳晨, 袁培森
(1. 國網新疆電力有限公司 營銷服務中心(資金集約中心、計量中心), 烏魯木齊, 830000;2. 南京農業大學 人工智能學院, 南京 210031)
在智能電網系統的運行中存在兩種類型的電力損失: 技術性和非技術性損失[1]. 技術性電力損失的產生由電力設備的物理性能量損耗所引起; 非技術性電力損失的產生主要由用戶竊電和電表計量錯誤所引起[2]. 由于技術性電力損失是物理設備產生的, 無法通過其他非物理技術手段來避免, 因此大量的研究都專注于智能電網的非技術性電力損失. 用戶竊電是非技術性電力損失影響智能電網電力經濟損失的主要原因[3], 全球每年因竊電的損失近千億美元[4]. 竊電行為是每個國家智能電網系統都要面對的嚴重問題, 其造成的損失嚴重危害到國家經濟建設和電力安全. 為了免遭損失和維護用電安全,必須進一步加強對竊電行為的檢測.
傳統的竊電行為檢測方法主要依靠突擊檢查和電能表檢測, 但存在的缺陷和不足很大. 伴隨著機器學習的發展,Z-score[5]等方法常用作竊電檢測的手段, 但是這種完全基于數據統計信息的竊電分類方法, 在分類效果上往往很差. 在傳統機器學習中, 分類器不能獲得較強的鑒別性特征, 表現結果一般較差. 值得注意的是, 隨著計算機算力的提升, 深度學習作為一項特殊的機器學習分支, 逐步體現出強大的模型泛化能力和分類準確度[6]. 因此, 本文考慮將深度學習思想運用在竊電判別工作中, 以嘗試獲得較強的鑒別性特征, 提升分類器的鑒別能力.
在深度學習中, 卷積神經網絡 (convolution neural network, CNN)[6]經常被用于數據的淺層特征和深層特征的學習和提取, 即通過梯度下降法的策略, 使CNN 模型通過分類器的分類評價自動地學習和調整特征提取層的參數, 不斷地對數據進行迭代訓練, 最終會獲得一個非常好的特征提取器.Li 等[7]提出了混合隨機森林 (random forest, RF)[8]的CNN 竊電檢測模型, 該模型首先使用竊電數據訓練卷積特征提取層, 再將獲得的特征用于訓練RF 分類器, 通過RF 的最終分類結果來決策用戶是否竊電. Hossein 等[9]使用引導聚類 (bootstrap aggregating, Bagging)[10]集成學習與CNN 相結合的方法, 對電力消費數據的正常用戶和竊電用戶識別分類, 但是使用此集成技術的深度神經網絡(deep neural network, DNN)計算的代價高昂, 并不適宜用于竊電行為的實時監控.
由于竊電檢測的數據通常是時間序列型的, 除了會包含內在的復雜特征, 也會存在時間索引之間的相關性依賴. CNN 模型在局部特征提取上的性能表現得十分優越, 但是在時間序列的長依賴相關性提取上表現效果較差. 注意力機制 (attention mechanism)[11]和長短時記憶網絡 (long short-term memory, LSTM)[12]在學習長時間依賴相關性方面要優于CNN 模型. Chen 等[13]利用多尺度卷積(multiscale convolution) 和注意力機制相結合的方法, 提出了多尺度注意力CNN 模型框架, 用于時間序列分類任務. Nazmul 等[14]使用一種基于CNN 和LSTM 的深度學習算法模型, 結合不平衡數據過采樣技術對為期一年的竊電數據進行識別, 在評價指標上超過了僅使用CNN 的竊電識別模型.
考慮到傳統機器學習的不足以及注意力機制在處理時序數據中的優勢, 本文考慮使用自注意力機制學習長時間序列的相關性依賴作為CNN 提取特征的彌補. 最終, 本文結合殘差網絡 (residual network, ResNet)[15]和深度可分離卷積增強自注意力 (depthwise separable convolution enhanced self attention, DSCAttention)[16]機制, 提出了智能竊電識別方法, 并在真實竊電數據上進行了實驗和分析. 相比于其他方法, 本文方法提升了竊電識別的準確率, 并有更好的AUC、MAP@100 和MAP@200 指標結果.
時序數據的預處理與分析過程, 是建立時序分類模型的關鍵. 特征分析的好壞在很大程度上會影響時序分類模型的質量. 平穩序列是一種可認為在某個固定水平上隨機波動的序列, 基本不存在趨勢特征. 非平穩序列是一種變量, 無法呈現出一個長期趨勢并最終趨于一個常數或是一個線性函數的時間序列[17]. 電力數據通常具有時序特點, 因此電力行業通常研究的是非平穩序列. 圖1 所示的本文選取的竊電數據變化曲線即是非平穩序列.

圖1 選取2014 年9 月的竊電數據變化曲線Fig. 1 Select change curve of electricity theft data from September 2014
圖1 所示是正常用電戶和竊電用戶在2014 年9 月的用電數據. 其中, 縱軸表示用電量, 單位為千瓦時 (kW·h) ; 橫軸表示數據記錄的日期; 藍色時序變化曲線是正常用電戶; 紅色時序變化曲線是竊電用戶. 初步分析正常用電戶和竊電用戶的時序特征, 通過觀察, 難以得出有用的鑒別特征. 因此, 本文使用加性模型分解和格拉姆角場(Gramian angular field, GAF) 這兩個方法來完成時序的特征工程處理.
非平穩時序數據的趨勢項和季節性特征, 一般表現為較為復雜的形式. 因此難以對原序列數據進行特征分析. 使用加性模型對時間序列進行分解, 將時序復雜的內在特征分解為趨勢項特征和季節項特征, 從而可容易地分析時序的內在特征. 時序加性模型所對應的公式為
式 (1) 中:Tt是原時間序列;Ttrend,t是時間序列加性模型的趨勢項;Sseasonal,t為季節項;Rresid,t是時間序列的加性模型的殘差項. 時序加性模型的趨勢項Ttrend,t的計算公式為
式(2)中:yt+i表示時間序列T在t+i時刻的值;m=2k+1,表示m階滑動平均. 本文在時序復雜特征提取上使用二維CNN[16], 采用文獻[18] 的以7 d 為1 個周期的劃分方法, 將一維時序數據轉換為二維空間時序數據, 所以滑動平均的階數或周期為7, 即k=3 . 根據式 (1) 對加性模型的定義, 季節項與殘差項的和為時間序列減去趨勢項. 定義t+i的集合為{t+1,t+2,··· ,t+m}, 則時序加性模型季節項的計算公式為
需要指出的是, 式 (1) 中的殘差項Rresid,t為原時間序列Tt減去趨勢項和季節項; 然而本文最終使用的完整模型已包含殘差項的處理(ResNet), 因此, 此處無需重復使用和體現, 即殘差項取值為0.
格拉姆角場 (GAF)[19]是一種可以把時序數據轉換為空間數據的方法. GAF 將笛卡兒坐標系的時序數據轉換到極坐標系, 通過計算極坐標系中各時間上的數據特征之間的夾角, 計算分析時序在不同時間之間的相關性. GAF 的計算公式為
式 (4) 中:G是一個大小為n×n的方陣; c os(φi+φj) 形式的方程是GAF 定義的特殊內積. 設需要計算GAF 的一維向量為X={x1,x2,···,xn}, 向量X的長度剛好為n, 式 (4) 中的φ1為 a rccos(x1) , 那么cos(φi+φj)的具體計算過程所對應的公式為
其中,i、j表示一維向量X的索引. 根據式 (4) 和式 (5), 對正常用電數據和異常用電數據分別求GAF 值, 并進行時間相關性的分析.
本文所提的竊電分類算法研究工作的實施流程如圖2 所示, 且具體實施步驟如下.

圖2 所提的竊電分類模型整體實施流程Fig. 2 Overall implementation process of proposed electric theft classification model
(1) 對獲得的數據進行數據分析. 通過趨勢季節分析和相關性分析, 得出可鑒別性較強的時序數據特征, 并依此準備深度學習算法模型的設計和構建.
(2) 在進行數據的特征分析之后, 進入數據預處理環節. 數據預處理環節主要是分析和處理數據存在的缺失值, 并構造掩碼矩陣. 使用分位數變換對數據規范化降低模型對異常值的敏感度; 使用分層拆分數據集的方法劃分訓練集和驗證集.
(3) 當數據處理完畢, 即進入深度學習模型的搭建和訓練階段. 在模型訓練過程中, 需要調整不同的超參數以期找到在分類評價上效果最好的超參數組合. 最后, 用在各評價指標上的最佳模型與其他模型進行對比, 得出本文所用模型的優勢所在.
竊電數據預處理方法主要有缺失值、標準化和異常值、不平衡數據處理這3 種.
2.1.1 缺失值
本文采用文獻[1] 處理缺失值的方式來解決樣本數據缺失的問題. 首先創建一個和樣本數據尺寸相同的掩碼矩陣, 掩碼矩陣初始化為全0 矩陣; 然后確定樣本中缺失值的位置, 在掩碼矩陣中相同的位置處補1, 樣本數據矩陣則在缺失值處補0. 缺失值填充方法所對應的公式為
式(6)中: NaN (not a number)表示非數據類型值;i表示原數據矩陣中值的位置;xi表示原數據矩陣位置i處的值;F(xi) 即為處理后的填充值. 使用的缺失值填充方法中的掩碼矩陣的構造方式為
其中H(xi) 即為對應數據在掩碼矩陣中的掩碼值.
2.1.2 標準化和異常值
常見的標準化方法為最大和最小歸一化 (maximum and minimum normalization) . 其公式為
式 (8) 中:Xmin是X中 的 最 小 值;Xmax是X中 的 最 大 值;xi是X中 的 值. 最 大 值 和 最 小 值 歸 一 化 方 法對異常值敏感. 為了解決這一問題, 使用分位數轉換的數據標準化處理方法. 分位數轉換是利用數據的分位數信息進行轉換的方法, 適合平滑存在異常分布問題的數據.
2.1.3 不平衡數據處理
由于數據集的不平衡性, 隨機拆分訓練集和驗證集的方法將會導致訓練集的負樣本很少或沒有,也可能會導致驗證集的負樣本很少或沒有. 為了解決上述問題, 本文采用分層抽樣 (stratified sampling)隨機拆分訓練集和驗證集的方法. 相應公式為
首先, 計算原數據集的正/負樣本比例Dold-normal:Dold-outlier; 然后, 在訓練集和驗證集隨機抽取時, 保證訓練集和驗證集中的正/負樣本比例Dnew-normal:Dnew-outlier維持在原數據集中的正/負樣本比例.
基于ResNet 和DSCAttention 的模型框架由ResNet 結構、基于CNN 的竊電數據復雜特征提取、通道自注意力機制和深度可分離卷積增強自注意力機制等組成.
2.2.1 ResNet 結構
本文基于ResNet 卷積網絡和深度可分離卷積增強自注意力機制 (DSCAttention) 的竊電分類模型框架如圖3 所示. 其中,α表示 depthwise3-8 的輸出結果,β表示 depthwise3-16 的輸出結果,f表示 pointwise1-48 對結果的聯合計算操作, 這些網絡結構詳見表1. DSCAttention 是圖3 模型結構圖中紅色虛線框部分的深度可分離卷積增強自注意力. 該模型的主要創新點在于將ResNet 卷積網絡的直連部分改為由卷積增強的自注意力機制進行加權. DSCAttention 可用于學習時間相關性特征, 以及彌補CNN 在特征提取過程中所缺失的長時間依賴特征.

表1 網絡參數對比Tab. 1 Comparision of network parameters

圖3 ResNet + DSCAttention 整體模型結構圖Fig. 3 ResNet + DSCAttention model structure diagram
本文模型在ResNet18 網絡基礎上, 加入了注意力層和深度可分離卷積結構, 模型結構的各層網絡參數詳見表1. 本文模型修改了ResNet18 的第一個卷積層(convolution, Conv)和最大池化層(maxpool), 降低了對原特征輸入的下采樣倍數; 除了修改了ResNet18 的第二個卷積層和第三個卷積層的輸出通道數, 還引入了深度可分離(depthwise)卷積結構中的逐通道卷積和逐通道自注意力(attention)機制; 逐點(pointwise)卷積層與上層逐通道卷積構成完整的深度可分離卷積結構; 兩層全連接(full connection, FC)神經網絡作為分類器.
2.2.2 基于卷積神經網絡的竊電數據復雜特征提取
本文模型用于時序趨勢項和季節性特征提取的CNN 是圖4 所示的深度可分離卷積(depthwise separable convolution, DSC) 操作計算過程. 逐通道卷積對輸入矩陣X的特征通道進行計算, 輸出變換后的輸出矩陣, 再使用逐點卷積對每個通道的特征進行融合.

圖4 深度可分離卷積操作Fig. 4 Depthwise separable convolution (DSC) operation
2.2.3 通道自注意力機制
注意力機制是一種考慮全局信息的方法. 卷積神經網絡的缺點一般在于具有很強的提取局部信息的能力, 而對全局信息的考慮和關注則較少. 在竊電時序數據中, 用戶的用電行為具有長時間相關性, 局部性卷積無法勝任學習長時間相關性的任務.
注意力機制主要有Soft Attention[20]、Hard Attention[21]和自注意力[22]這3 種, 本文使用的注意力機制方法多頭自注意力機制, 它是自注意力機制方法中的一種, 其計算公式為
其中,Q、K、V為輸入矩陣X經過權重參數分別為WQ、WK、WV的全連接層映射后的輸出矩陣.使用公式 (10) 即可計算出輸入矩陣X的自注意力分布. 本文使用的自注意力分布計算方法是文獻[1] 結合通道注意力思想的多頭自注意力機制方法. 其計算過程詳見圖5.

圖5 逐通道自注意力計算Fig. 5 Channel-by-channel self-attention computation
2.2.4 深度可分離卷積增強自注意力機制
由于本文使用的自注意力機制是逐通道多頭自注意力方法, 因此將卷積增強部分的常規卷積神經網絡替換成了逐通道卷積神經網絡, 從而形成基于深度可分離卷積(DSC)增強的自注意力方法,即DSCAttention. 該方法的計算過程如圖6 所示.

圖6 深度可分離卷積增強自注意力機制Fig. 6 DSC enhanced self-attention mechanism
實驗平臺為Windows10 操作系統, CPU 處理器為Intel(R) Core(TM) i7-8750H CPU @ 2.20 GHz,內存為16 GB, GeForce GTX 1050, 顯存為8 GB. 模型采用PyTorch 1.10.2、 Python 3.9.7、 scikitlearn1.2.1 和CUDA 10.2 實現.
本文實驗數據來自https://github.com/henryRDlab/ElectricityTheftDetection, 該數據集包含從2014-01-01—2016-10-31 共1 034 d 的42 372 條樣本數據. 樣本數據詳見表2.

表2 樣本數據Tab. 2 Sample data
本文采用ROC (receiver operating characteristic) 曲線下與坐標軸圍成的面積 (area under curve,AUC) 和平均準確率 (mean average precision, MAP) 這2 個評價指標.
3.3.1 AUC
AUC 評價指標是模型對正樣本和負樣本的預測, 且正樣本預測值大于負樣本預測值的概率, 本文用SAUC表示. 相應公式為
3.3.2 MAP
MAP 也常被用來評價模型的質量, 本文用PMA表示. MAP 計算如下. 首先, 定義公式
式 (12) 中:k表示對預測進行降序排序后的前k個用電用戶;Yk表示前k個用電用戶當中實際產生竊電行為的用戶數;P@k表示前k個用電用戶中預測為竊電用戶并且真實值為竊電用戶的平均概率. 然后定義MAP. 其計算公式為
式 (13) 中:S表示對預測值降序排序后的前S個用電用戶;r表示這S個用電用戶中實際產生竊電行為的用戶數;ki表示實際發生竊電行為的用戶在S中的位置. 本文使用MAP@100 和MAP@200 分別對排序后的預測值向量選取前100 和200 個用戶進行實際分類效果評價.
3.4.1 基于加性模型分解的竊電趨勢和季節特征實驗分析
對原時間序列使用趨勢項分解方法, 得到圖7 所示的時間序列趨勢變化曲線, 其中, 縱坐標的趨勢值通過公式 (2) 計算得出, 其單位為千瓦·時 (kW·h) . 在電力時間序列的趨勢項中, 正常用電戶樣本的趨勢值整體要比竊電用戶樣本的趨勢值的波動性更強.

圖7 電力消費數據的趨勢變化曲線Fig. 7 Variation curve of electricity consumption data in trend
本文采用文獻[18] 劃分時序周期的方法, 設置滑動平均階數為7, 故需要對每7 d 的用電量的時間變化曲線進行分析和二維重建. 正常用戶和切點用戶的趨勢項每7 d(1 周)的變化曲線, 如圖8 (a)和8 (b) 所示.

圖8 以周為間隔的趨勢變化曲線Fig. 8 Variation curve of trend with weekly intervals
圖8 所示的以周(7 d)為間隔劃分的趨勢項, 在正常用電戶樣本和竊電用戶樣本之間的區別與圖7中所示沒有改變.
對原時間序列分解得到時序季節項如公式 (3) , 得到如圖9 所示的時間序列季節性特征. 季節項是使用每7 d 的原時間序列減去趨勢項后, 求平均得到的每7 d 的季節項值. 該季節項值反映的是每7 d為1 個周期的季節項變化.

圖9 以周為間隔的季節項變化曲線Fig. 9 Variation curve of season with weekly intervals
從圖9 可以看到, 正常用電戶樣本的季節項與竊電用戶樣本的季節項區別明顯. 從序列的周期性方面分析, 正常用電戶樣本的季節性變化剛好落后于竊電用戶樣本的季節性變化1 個周期的時間.
3.4.2 基于格拉姆角場的竊電時序相關性實驗分析
時間序列除季節性、趨勢等內在復雜特征外, 還存在時間索引之間的相關性特征. 為了證明電力消費數據之間存在時間索引的相關性, 本文使用GAF 公式計算樣本內周與周之間的相關性. 其結果如圖10 所示. 圖10 是以周為間隔劃分數據后, 求得的周與周之間的GAF 相關性值的可視化結果.

圖10 電力消費數據的格拉姆角場Fig. 10 Gramian angular field (GAF) of electricity consumption data
由圖10 (a) 和圖10 (b) 中的GAF 值可知, 正常用電戶樣本和竊電用戶樣本的第1 周與其他周的相關性有明顯不同. 通過使用GAF 計算時間序列之間的相關性, 并可視化分析后可得, 本文所使用的時間序列數據的正負樣本之間存在可區別的時間相關性特征.
3.4.3 本文模型與其他模型實驗結果對比
為評價本文模型在竊電識別任務上的性能, 將本文模型與 RF[8]、支持向量機 (support vector machine, SVM)[23]和 WDCNN (wide & deep convolutional neural networks)[18]這3 種模型在指標AUC、MAP@100 和MAP@200 上的評價進行對比. 比對結果如表3 所示.

表3 不同方法的分類評價指標Tab. 3 Classification evaluation indicators for different methods
⑴ 在各模型最佳的AUC 上, 本文模型比RF 提升了11.84%, 比SVM 提升了10.34%, 比WDCNN提升了11.46%.
⑵ 在MAP@100 上, 本文模型比RF 提升了14.33%, 比SVM 提升了9.23%, 比WDCNN 提升了31.01%.
⑶ 在MAP@200 上, 本文模型比RF 提升了20.62%, 比SVM 提升了13.04%, 比WDCNN 提升了29.76%. 相比MAP@100, MAP@200 在不同模型下的性能均有所下降. 這是因為MAP@200 所選取的數據更多, 模型擬合情況也更為復雜. 考慮到竊電數據中存在的噪聲等系統性干擾, MAP@200 的實驗結果依然是符合預期的.
圖11 是本文模型與其他對比模型實驗的ROC 曲線. 通過觀察這4 個模型的ROC 曲線, 可以看到, 本文模型的ROC 曲線 (圖中的藍色曲線) 比WDCNN、SV 和RF 的都要高, 即本文模型在竊電識別任務上的性能表現更好.

圖11 不同模型的ROC 曲線Fig. 11 Receiver operating characteristic (ROC) curves of different models
因此可得出結論, 本文模型相比于RF、SVM 和WDCNN, 在電力數據的竊電識別任務上表現更好, 識別的準確度更高.
本文在ResNet 結構基礎上, 引入注意力機制提取時間序列相關性特征, 使用深度可分離卷積作為卷積增強學習序列周期間和周期內的局部相關性, 對竊電用戶進行智能化分類, 并在真實用電數據集上進行了實驗對比與分析. 實驗結果表明, 相比于本文中所對比的其他模型, 本文方法的AUC、MAP@100 和MAP@200 指標都較好, 本文方法可以用于竊電智能化檢測.