閆西慧,周敬召,李巖,張愛偉
(國網石家莊供電公司,河北 石家莊 050000)
我國電力公司每年的竊電損失約200億元,給電力市場經濟秩序和電網安全運行帶來極大影響[1-3]。竊電類型主要為欠壓竊電和欠流竊電[4],竊電手段具有很多種,且難以人為發現,人為排查耗時耗力且難以收集有效地竊電證據。因此,智能有效的竊電識別方法對電力行業維護電力系統穩定性有重要意義。
通過電表采集的原始電量數據提取竊電特征指標,建立竊電分類器模型以識別是否存在竊電。常見的竊電特征提取法中的自編碼神經網絡(autoencoder neural network,AENN)具有強大的特征提取能力[5]。智能電網下量測體系的完善促進了基于數據驅動或者特征工程的竊電方法的研究。基于物理拓撲網絡啟發或數據挖掘的竊電框架具有良好的竊電識別性能[6-9]。梯度提升樹(gradient boosting decision tree,GBDT)等集成算法可應用于竊電數據的特征工程預處理,以提高檢測性能和時間復雜度[10],或進行竊電檢測[11]。
目前常見的竊電檢測算法為異常點檢測算法、各種架構的神經網絡、各種聚類算法(比如支持向量機)和大數據算法等[12-17]。局部離群因子、局部密度因子、核密度估計、基于相對密度的離群值檢測和基于距離的離群點檢測等算法能較好地識別竊電異常值[18-19]。神經網絡算法在竊電辨識應用中較為廣泛,通過不同優化算法改進的神經網絡用于提取或優化竊電特征,可以準確識別竊電行為數據的不同特性[20-22]。深度神經網絡比傳統神經網絡具有更強的特征提取能力,但基于此方法進一步識別竊電實施方式的研究較少。
本文提出了融合AENN和隨機森林的竊電識別算法。首先基于AENN映射正常用電數據的重建值,當出現竊電異常時,模型實際值與重建值之間的誤差增大,從而實現竊電的提前預警。然后訓練隨機森林模型實現對AENN檢測到的異常數據進一步推測其可能的竊電方式。最后通過算例驗證算法的有效性。
本文所提出的竊電識別模型可分為三個階段,如圖1所示。首先第一階段為AENN檢測用戶異常用電行為,第二階段將實際電量曲線和定義的竊電指標作為特征量,以及其所對應的竊電類型標簽訓練隨機森林。為了使得隨機森林模型具有較強的泛化性能,運用隨機搜索和k-折交叉驗證算法優化其模型參數。第三階段驗證所建立的模型檢測竊電的準確率。

圖1 模型整體框架Fig.1 Whole framework of the model
為降低訓練過程中AENN重建輸入向量所需的時間開銷,將用戶的日用電曲線數據作為AENN模型的輸入。對整個已有數據集進行隨機分割,其中測試集和驗證集數據占整個數據的30%,測試集用來測試建立后模型的預測結果;模型在訓練集上訓練,在驗證集上驗證訓練模型。以用戶正常用電的非竊電數據訓練AENN模型并驗證,之后為加強隨機森林分類性能,在原有用電曲線數據上增加竊電指標,通過隨機搜索和k-折交叉驗證訓練隨機森林并驗證以確定AENN檢測的異常用電數據。將全部訓練完畢建立的AENN和隨機森林融合,通過測試集確定數據中的異常數據及其可能的竊電類別。AENN模型檢測出的用戶異常數據輸入至隨機森林模型中,對竊電類別預判。
用戶竊電行為會反映在其入戶點監測電表的電氣參數上,改變功率曲線等電氣參數的變化趨勢。本節基于AENN識別用戶用電過程中的異常用電行為。當用戶實施竊電行為時,會導致電表監測信息出現異常,通過判斷AENN輸入與輸出數據向量差異的大小,識別可能存在竊電事件的用戶。
本文構建的AENN是由一系列標準的受限波爾茲曼機(restricted Boltzmann machine,RBM)連接組成,如圖2所示。RBM具有兩層結構、對稱連接且沒有自反饋的隨機神經網絡模型,層間全連接,層內無連接。AENN的本質是將輸入的原數據壓縮為一個低維度的向量,并解壓縮且要求解壓縮所得值與原數據接近程度高[23]。

圖2 自編碼神經網絡的結構Fig.2 Structure of AENN
AENN由編碼器和解碼器兩部分構成,具有單隱含層的AENN,其編碼器和解碼器如式(1)和式(2)所示。

式中:W和b為AENN的權重和偏置;σ為非線性變換函數。
式(1)表示的編碼器通過非線性函數將輸入向量x映射至隱含層表示為h。式(2)所示的解碼器通過與編碼器相同的變換將隱含層h映射至原始的輸入空間作為重建值。原始輸入向量x與其全變量重建z之間的差定義為如式(3)所示的重建誤差。AENN的學習過程即最小化式(3)中的重建誤差。針對一個多層AENN,其編碼器和解碼器分別表述為f?和gθ,其訓練過程為:依據訓練數據集重復地計算式(4)所示的重建誤差和,通過隨機梯度下降算法更新參數?和θ,直至參數滿足收斂條件。

式中:x和z為AENN的輸入和輸出。x(i)為訓練數據集的第i個分量,共N個分量構成整個訓練集;f?和gθ表示AENN的編碼器和解碼器,其中?和θ分別為編碼器和解碼器函數的參數。本文定義式(3)和式(4)中的差值為歐幾里得范數,即歐式距離。
AENN通過逐層預訓練的方式獨立訓練每層神經網絡,低層RBM輸出作為高層RBM的輸入;訓練完成后將各層RBM組合構成深層AENN,然后采用BP神經網絡對AENN微調,使網絡輸出向量接近其原始輸入向量[24-26]。本文選用正常用戶的日負荷曲線構成的數據集訓練AENN以建立竊電檢測模型。
基于AENN的異常檢測算法以重建誤差的大小作為研究對象(比如用戶用電行為)是否存在異常的評分標準,具有較高重建誤差的數據被判定為異常數據。以無竊電數據通過上述訓練過程所構建的AENN,其可以很好地對正常數據進行重建;但對于竊電數據,將異常竊電數據作為通過正常數據建立AENN模型的輸入所得的輸出,兩者之間的誤差比正常時增大,當大于某值時判斷用戶存在異常用電。圖3為本文AENN基于重建誤差建立用戶用電模式的異常檢測算法的結構圖。

圖3 自編碼神經網絡異常檢測算法Fig.3 Anomaly detection algorithm of AENN
為進一步確定用戶竊電的類型,提出基于隨機森林的竊電用戶識別算法。隨機森林由多個隨機數據子集所建立的分類回歸樹(classification and regression tree,CART)構成,如圖4所示,其中每棵CART都是獨立訓練的,其通過對每棵樹輸出結果投票確定最終的分類結果[27-29]。通過隨機采樣將原始數據集劃分為多個子數據集,并在各子數據集上訓練各自數據集上的弱分類器,通過多個弱分類器結果的投票確定隨機森林強分類器的最終結果。

圖4 隨機森林的結構Fig.4 Structureof random forest
隨機森林考慮多個特征來構建CART結構并進行決策分類以預測竊電標簽,在CART的節點處根據某個特征的規則分裂出下一層葉子節點。在一個含有n個樣本、m個特征變量的數據集D={(Xi,Yi)}上訓練隨機森林,通過訓練完成的隨機森林模型預測未知標簽的用戶竊電行為。數據集D中Xi∈Rm,Yi∈R;Yi是Xi對應的標簽值,即用戶用電行為類別,包括正常用電和竊電行為標簽。訓練隨機森林的目的是找到一個能準確預測標簽值Y的函數f(X),此預測函數由損失函數L(Y,f(X))的期望值最小來確定,即:

式中:EXY表示X和Y聯合分布的期望。
損失函數L(Y,f(x))衡量隨機森林函數f(X)和Y的接近程度,其懲罰距離真實值Y較遠的模型預測值f(X)。典型用于衡量分類的0-1損失函數(zero-one loss)為:

通過基學習器(即CART)的集成h1(x),…,hJ(x)構建最終的強學習器(即隨機森林)f(x),即:

式中:標簽值Y取值空間為Γ,共有J個基學習器。
隨機森林中第j個基學習器表示為hj(X,Θj),其中Θj表示隨機變量的集合,對于j=1,…,J不同取值的Θj之間相互獨立。隨機森林的每個基學習器是從總的數據集中有放回地隨機抽取訓練樣本進行訓練所得,在構建CART的結構時,從m個特征變量中隨機選擇m′個特征作為CART的候選分裂屬性,重復候選分裂過程,直至此CART達到所要求的分類精度。本文選用基尼系數作為不純度,即算法能否將目標標簽變量正確分為所對應的類別。
CART尋找最純凈的劃分包含建樹和剪枝兩部分,其中選擇預剪枝方法防止分類過擬合;CART選擇基尼系數作為分裂規則,遍歷所有特征,選取當前結點分裂前后基尼系數減小較多的分裂規則,重復分裂過程完成建樹。

式中:Pi為類別i與樣本數據集中D′中出現的頻率;ni為數據集D′中類別i的個數;S為數據集D′中樣本個數;D′1和D′2分別為兩個子數據集,s1和s2為此兩個數據集的樣本個數。
圖5為隨機森林進行用戶竊電識別的結構圖,對收集的竊電數據添加具體竊電方式的標簽作為模型訓練或測試的輸入。AENN起到竊電預警的作用,隨機森林可以對AENN所預警的竊電,進一步通過多個CART推導用戶可能實施的竊電手段。

圖5 隨機森林竊電識別算法Fig.5 Identification algorithm of electricity stealing in random forest
本文選擇某省正常用戶用電行為的日負荷數據(篩選出370個用戶3年的監測數據,其竊電實施類型現場已知,不同用戶存在時間不等的數據缺失),訓練AENN竊電識別模型。采用正常的日負荷數據訓練完成的AENN的重建誤差較小,若用戶實施竊電行為,其入戶側電表監測的日負荷曲線發生改變,而AENN仍然依據正常時的規則對用戶的負荷曲線進行重建,導致重建的用戶負荷曲線與真實的竊電曲線之間的誤差較大,通過識別異常重建誤差判斷用戶是否竊電。
利用正常用戶訓練的AENN所產生的重建誤差示例如圖6所示,其重建誤差不大于20,由于節假日、特殊天氣和季節用電等用電特性,用戶正常用電存在波動,AENN的重建誤差也具有相似的波動性。通過AENN輸入輸出之間的重建誤差雖有波動性,但其波動性不具明顯的周期性。

圖6 正常情況下AENN的重建誤差Fig.6 Reconstruction error of AENN under normal conditions
為了使AENN不受異常數據的影響,并能準確識別用戶異常用電行為,本文基于正常情況下重建誤差的分布并預留一定裕度,設置重建誤差閾值為23。針對某用戶連續的用電記錄,采用AENN進行異常用電檢測,如圖7所示。圖7案例1中存在3處超越重建誤差閾值的情況,可認為該用戶存在異常用電,但是此處超越閾值時間較短,而竊電行為大部分是長期行為,可認定此時間段內是用戶負荷突增或突減造成AENN重建誤差的增大。圖7案例2中存在3處長時間超過重建誤差閾值的情況,且三處各自持續天數較長,可初步判定此用戶存在用電異常時段且可能在異常時段有竊電行為。


圖7 竊電情況下AENN的重建誤差Fig.7 Reconstruction error of AENN in case of electricity theft
AENN能夠精確地識別用戶的異常用電,其識別精度如表1所示。本文構建的AENN為8層,編碼過程每層神經元個數分別為400、200、100和50,解碼過程個數為編碼過程的逆序。深層自編碼神經網絡檢測異常用電精度比淺層自編碼神經網絡(共4層,編碼過程神經元個數為200和50)提高4.34%,比普通淺層神經網絡(僅含一層隱含層)提高8.52%。表明深層AENN比淺層AENN特征提取能力更強,而傳統的BP神經網絡特征提取能力不及自編碼網絡。深層AENN對輸入輸出之間重建規則更靈敏,與淺層AENN和淺層BP神經網絡相比,用戶用電數據與其之前正常用電數據兩者之間的差異更易被深層AENN從重建誤差上將用戶異常用電偏離其常規用電的差異放大,從而被識別為異常用電。

表1 不同算法的性能對比Tab.1 Performance comparison of different algorithms
本節對高精度的AENN用電異常檢測模型所探測的異常用戶,進一步判斷其竊電行為。除了將每時刻的日負荷數據(頻率為1h一個點)作為輸入數據外(通過隨機森林挖掘負荷數據的隱含分裂特征),增加竊電衡量指標作為直觀特征訓練隨機森林模型。
附加的竊電指標為電量趨勢下降指標、線損指標和告警類指標[30-31]。第i天的電量趨勢指標考慮該天前后d天的電量斜率,即:

式中:ki表示第i天的電量趨勢,ej表示第j天的用電總量。
某線路的線損率表征此線路的電能損失大小,對于某線路其線損為:

式中:Ej為此線路第j天的供電總量;ek j為線路上第k個用戶在第j天的用電總量。
與竊電相關的告警類指標主要包含為電壓缺相、電流反極性和電壓斷相等,將其作為竊電識別的特征。
本文通過scikit-learn庫構建隨機森林分類器算法,在訓練過程中需要確定分類器的多個超參數,訓練流程如圖5所示。采用隨機搜索方法一次性確定隨機森林分類器的超參數,此參數確定方法比網格搜索方法效率更高。通過在已知用戶竊電行為標簽的訓練集上采用隨機搜索算法確定隨機森林超參數,并為了使隨機森林模型具有較優的泛化性能,采用10-折交叉驗證對模型參數調優,構建的模型參數如表2所示。采取有放回抽樣方式建立的隨機森林模型共包含135棵決策樹,其中的決策樹的最大深度為11,建立決策樹所需最大的特征變量數目為5。

表2 隨機森林的超參數量Tab.2 Hyperparameters of random forest
在測試集中驗證隨機森林算法的分類性能,其分類結果如表3所示。表3中混淆矩陣的每列表示為分類器的分類實例數,每行表示現場實際的竊電類型實例數;分類I~III分別表示改變TA結構、改變TV結構和外接元件破壞電量記錄三類竊電方式。訓練過程包括三種竊電標簽和正常標簽,在測試過程中選擇三種竊電數據。混淆矩陣可以用來衡量分類器的不同類別的分類性能。隨機森林對于驗證集數據雖然整體性能表現較好,但是依舊存在將實際中的竊電行為預測為其他竊電方式或者正常用電,需要進一步改進模型或增加竊電指標以提高算法性能。

表3 混淆矩陣Tab.3 Confusion Matrix
隨機森林與其他分類算法的性能對比如表4所示,隨機森林的分類精度最高。算法執行的硬件配置為:處理器Intel(R)Core(TM)I5-6500 CPU@3.20GHz,內存8.00GB。雖然梯度下降樹(GBDT)分類精度接近隨機森林,但是隨機森林在訓練過程中為并行建樹比GBDT效率更高,訓練耗時約為GBDT的1/6。隨機森林是多個決策樹的集成算法,其比單純的決策樹分類精度大幅提高。故隨機森林算法具有較快的訓練速度和較高的準確度,但是針對更多竊電類型的識別,需要增加相關現場數據的訓練。

表4 分類器性能比較Tab.4 Performance comparison of classifiers
本文基于用戶正常用電數據建立了深度自編碼神經網絡竊電行為檢測模型,其相比于淺層神經網絡更精確地識別用戶用電行為的異常,具有較高的竊電識別靈敏度。通過隨機搜索和k-折交叉驗證優化了隨機森林模型的超參數,建立了竊電行為分類模型。通過原始竊電數據和定義的竊電指標(即電量趨勢下降指標、線損指標和告警類指標)訓練分類模型,基于多個決策樹學習竊電行為的分類規則。通過實際算例驗證了隨機森林比其他分類算法具有較快的訓練速度和較高的分類精度。本文提出的竊電識別算法可為現場排查竊電提供技術參考,此外可繼續開展對用戶竊電行為數據獲取及高精度算法等方面的研究。