張夢(mèng)楠,李紅嬌
(上海電力大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,上海 200090)
竊電檢測(cè)是保證電力系統(tǒng)安全運(yùn)行的基礎(chǔ),有效識(shí)別竊電用戶能夠提高電力系統(tǒng)運(yùn)行的可靠性。智能電網(wǎng)的快速發(fā)展使得電力系統(tǒng)中的電力數(shù)據(jù)倍速增長(zhǎng),竊電手段也變得多樣化,但現(xiàn)有的竊電檢測(cè)方法存在分類準(zhǔn)確性低和計(jì)算開銷大等問(wèn)題。因此,如何有效提高竊電檢測(cè)的準(zhǔn)確率具有現(xiàn)實(shí)意義。
傳統(tǒng)的機(jī)器學(xué)習(xí)中的分類算法常被用于竊電檢測(cè),如極限學(xué)習(xí)機(jī)(ELM)、支持向量機(jī)(SVM)。文獻(xiàn)[5]利用SVM對(duì)不同類型的電力數(shù)據(jù)進(jìn)行竊電用戶的識(shí)別,證明了SVM能夠用于竊電檢測(cè)。文獻(xiàn)[7]利用粒子群算法(PSO)對(duì)支持向量回歸機(jī)(SVR)進(jìn)行優(yōu)化,克服了小樣本的檢測(cè)缺陷且改善了效率,但對(duì)于大規(guī)模特征的準(zhǔn)確率沒(méi)有明顯提高。文獻(xiàn)[8]則提出了一種自適應(yīng)增強(qiáng)算法(AdaBoost)和SVM結(jié)合的集成方法,提高了檢測(cè)性能和準(zhǔn)確率。文獻(xiàn)[9]首先使用決策樹(DT)提取特征數(shù)據(jù),然后采用SVM進(jìn)行竊電檢測(cè),證實(shí)了DT提取特征有助于提高SVM的分類準(zhǔn)確率。文獻(xiàn)[10]利用SVM對(duì)主成分分析(PCA)降維后的特征進(jìn)行竊電檢測(cè),結(jié)果表明PCA降低特征維度能夠提高分類精度。上述分析表明,SVM對(duì)輸入特征的要求較高,冗余的輸入特征會(huì)導(dǎo)致SVM檢測(cè)的準(zhǔn)確性偏低,因此通常將SVM與其它算法聯(lián)合使用以提高分類精度。
深度學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)模型也被廣泛運(yùn)用于竊電檢測(cè)等方面。文獻(xiàn)[12-13]使用了循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)進(jìn)行竊電檢測(cè),驗(yàn)證了神經(jīng)網(wǎng)絡(luò)可以用于竊電檢測(cè)。文獻(xiàn)[14]使用實(shí)值置信網(wǎng)絡(luò)(RDBN)對(duì)不平衡電力數(shù)據(jù)進(jìn)行竊電檢測(cè),獲得了理想中的檢測(cè)結(jié)果。文獻(xiàn)[15]首次利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)中的LeNet-5模型進(jìn)行竊電檢測(cè),證實(shí)了CNN提取特征數(shù)據(jù)可以提高竊電檢測(cè)的準(zhǔn)確率。文獻(xiàn)[16]使用寬深度卷積神經(jīng)網(wǎng)絡(luò)(WDCNN)分別提取電力數(shù)據(jù)的一維和二維特征數(shù)據(jù),然后組合兩種特征進(jìn)行竊電檢測(cè),結(jié)果表明檢測(cè)效果優(yōu)于普通模型。由上可得,神經(jīng)網(wǎng)絡(luò)算法自主學(xué)習(xí)特征數(shù)據(jù),有利于提高檢測(cè)精度。
綜合以上分析可知,SVM的分類思想簡(jiǎn)單且效果較好,但對(duì)于大規(guī)模特征的分類存在困難。而神經(jīng)網(wǎng)絡(luò)可以提取特征數(shù)據(jù),減少特征維數(shù),但傳統(tǒng)竊電檢測(cè)方法對(duì)二維特征的研究較少。為此,提出一種基于DCNN和SVC的竊電檢測(cè)方法??紤]到傳統(tǒng)方法對(duì)一維電力數(shù)據(jù)進(jìn)行竊電檢測(cè)的局限,將數(shù)據(jù)預(yù)處理過(guò)后對(duì)電力數(shù)據(jù)進(jìn)行了矩陣化,突出數(shù)據(jù)的周期特征。然后改進(jìn)DCNN算法對(duì)大規(guī)模的二維電力數(shù)據(jù)進(jìn)行特征提取,有效減少了特征的輸入維度,克服SVC對(duì)大規(guī)模數(shù)據(jù)的分類局限性。將DCNN和SVC進(jìn)行組合,不僅綜合了DCNN自動(dòng)提取特征和SVC分類效果好的優(yōu)點(diǎn),還避免了SVC對(duì)輸入數(shù)據(jù)的直接特征提取,有效提高了分類的準(zhǔn)確率。使用國(guó)家電網(wǎng)公布的開放數(shù)據(jù)集進(jìn)行仿真,驗(yàn)證了提出竊電檢測(cè)方法的有效性。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種多層神經(jīng)網(wǎng)絡(luò),一般由輸入層、卷積層、池化層、全連接層、輸出層組成。卷積層利用不同大小的卷積核和偏置對(duì)輸入數(shù)據(jù)進(jìn)行局部特征的提取,再應(yīng)用激活函數(shù)進(jìn)行對(duì)局部特征進(jìn)行非線性映射,常用的有sigmoid、tan h、Relu函數(shù)。如果經(jīng)過(guò)卷積層處理的特征維度依舊較大,可以選擇池化層進(jìn)行降維,主要是為了避免結(jié)構(gòu)出現(xiàn)過(guò)擬合的現(xiàn)象。常用池化法有最大池化、平均池化。全連接層既可以通過(guò)權(quán)值將所有局部特征全部整合成整體特征,也能在整個(gè)CNN構(gòu)造中起到“分類器”的作用。通過(guò)邏輯函數(shù)對(duì)整體特征進(jìn)行激活,得到分類結(jié)果。最后,輸出層則會(huì)輸出分類標(biāo)簽。
CNN作為最基礎(chǔ)的深度學(xué)習(xí)算法,對(duì)特征數(shù)據(jù)的提取具有良好的學(xué)習(xí)效果。傳統(tǒng)竊電檢測(cè)算法基本是對(duì)一維電力數(shù)據(jù)挖掘數(shù)據(jù)特征,而深度CNN可以利用二維卷積層對(duì)電力數(shù)據(jù)提取局部周期特征,從而提高竊電檢測(cè)的分類精度,為此本文使用DCNN算法提取出電力數(shù)據(jù)的重要二維特征,其詳細(xì)使用過(guò)程在第3部分討論。
w
是決策邊界的法向量,b
是偏移量,ε
是懲罰函數(shù),最優(yōu)超平面可以表示為(1)
式(1)是一個(gè)含有不等式的優(yōu)化問(wèn)題,選擇拉格朗日乘數(shù)法進(jìn)行求解。因?yàn)殡娏?shù)據(jù)線性不可分,所以使用非線性變換將非線性分類問(wèn)題轉(zhuǎn)化為高維空間內(nèi)的線性分類問(wèn)題。通常由內(nèi)核函數(shù)實(shí)現(xiàn)非線性變換,如RBF、sigmoid、多項(xiàng)式內(nèi)核。
非線性SVC分類步驟如下:
輸入:T
=(x
,y
)、(x
,y
)…(x
,y
),其中x
∈R
,y
∈{+1,-1},i
=1,2,…N
;輸出:最優(yōu)分離超平面;
1) 選擇合適的內(nèi)核函數(shù)K
(x
,z
)、懲罰函數(shù)C
,構(gòu)造最優(yōu)分類超平面:(2)
(3)
3) 求解出內(nèi)核函數(shù)對(duì)應(yīng)的最優(yōu)超平面:
(4)
綜上所述,SVC利用核函數(shù)能夠有效解決非線性分類問(wèn)題,為此本文將其用于竊電用戶的識(shí)別,從而提高檢測(cè)精度,其詳細(xì)使用過(guò)程在第3部分。
3.1.1 用電量周期性分析
從國(guó)家電網(wǎng)的公開數(shù)據(jù)集中選取一個(gè)正常用戶和一個(gè)竊電用戶,分別畫出一個(gè)月內(nèi)用電量按日期和按周數(shù)排列的波動(dòng)圖,如下圖1、2所示。
圖1 正常用戶用電量波動(dòng)圖
圖2 竊電用戶用電量波動(dòng)圖
圖1(a)是正常用戶用電量按日期排列的波動(dòng)圖,如圖所示數(shù)據(jù)在不斷變化,但較難觀察變化的周期性。因此畫出每周的用電數(shù)據(jù)進(jìn)行對(duì)比,如圖1(b)所示正常用戶每周電力數(shù)據(jù)的變化具有相似性。例如,每周三的用電數(shù)據(jù)基本達(dá)到最高,每周日的用電數(shù)據(jù)達(dá)到最低(第四周的周五用電數(shù)據(jù)最低)。
同樣,圖2(a)是竊電用戶用電量按日期排列的波動(dòng)圖,從中沒(méi)有看出數(shù)據(jù)變化的周期性。因此,畫出每周用電量對(duì)比圖。如圖2(b)所示前兩周的用電量普遍偏高,每周日達(dá)到最高值。第三周開始,用電數(shù)據(jù)有大幅度的下降,相對(duì)前兩周經(jīng)常保持在低水平。
從圖1與圖2的對(duì)比中得出,將數(shù)據(jù)按周數(shù)排列更容易看出正常用戶用電量的周期特征。相比正常用戶明顯的周期性,竊電用戶的用電量周期性較小,甚至沒(méi)有。這一結(jié)論也被不同國(guó)家和地區(qū)的數(shù)據(jù)集所證實(shí)。因此,在使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)用電數(shù)據(jù)進(jìn)行特征提取時(shí),考慮將一維用電數(shù)據(jù)轉(zhuǎn)化為按周排列的二維數(shù)據(jù)格式。
3.1.2 數(shù)據(jù)預(yù)處理與矩陣化
在DCNN運(yùn)算過(guò)程中,數(shù)據(jù)通常為矩陣的形式。因此在數(shù)據(jù)送入輸入層之前,將一維用戶數(shù)據(jù)升成二維。詳細(xì)步驟如下:
1)在電能傳輸過(guò)程中,數(shù)據(jù)傳輸層損壞、智能電表被破壞等問(wèn)題會(huì)導(dǎo)致電力數(shù)據(jù)存在一些缺失值或離群值。
利用插值法填補(bǔ)缺失值:
(5)
式中:NaN
代表空集合。利用三σ
經(jīng)驗(yàn)法修正離群值:(6)
式中:avg
(x
)代表的x
平均值,std
(x
)代表x
的標(biāo)準(zhǔn)偏差。2)為了減少不同量綱對(duì)竊電檢測(cè)的影響,且考慮到DCNN對(duì)數(shù)據(jù)的要求,使用MAX-MIN方法對(duì)數(shù)據(jù)進(jìn)行歸一化處理:
(7)
式中:x
是歸一化后的特征數(shù)據(jù),x
是原始特征,x
和x
分別是輸入特征中最大值和最小值。3)對(duì)m
個(gè)用戶1×n
格式的一維向量補(bǔ)零。如果n
不能整除7,則補(bǔ)零到能整除7為止。然后將補(bǔ)零后的一維向量轉(zhuǎn)換成格式為7×(n/
7)的二維矩陣。DCNN-SVC的網(wǎng)絡(luò)架構(gòu)分為兩部分,DCNN提取特征數(shù)據(jù),SVC對(duì)特征數(shù)據(jù)進(jìn)行分類。如圖3所示。
圖3 基于DCNN和SVC的竊電檢測(cè)模型
1)輸入層:升維后的三維矩陣被送入輸入層,此時(shí)輸入層數(shù)據(jù)大小為m×7×(n/7)。
2)卷積層:卷積核與三維矩陣進(jìn)行局部的連接,通過(guò)卷積運(yùn)算提取局部特征數(shù)據(jù),并選擇Relu作為激活函數(shù)。三層卷積層的步長(zhǎng)都是1,所以經(jīng)過(guò)卷積后生成了四維特征,大小為m×1×([n/7]-6)×c,c為特征通道。
3)池化層:使用最大值池化法,從過(guò)濾器覆蓋的數(shù)據(jù)中選取最大值進(jìn)行采樣,保留顯著特征并降低維數(shù)。隨后,將每位用戶的三維特征按序展開成一維向量送入全連接層。
4)全連接層:在全連接層中,每個(gè)神經(jīng)元與權(quán)值相乘并加上偏置,將局部特征整合成最終特征向量。本文的全連接層只起到整合特征的作用,因此輸出時(shí)不使用SoftMax等激活函數(shù)進(jìn)行映射。
5)SVC層:當(dāng)DCNN模型結(jié)束訓(xùn)練,全連接層輸出的一維特征作為SVC的輸入向量。由于特征線性不可分,使用RBF內(nèi)核函數(shù)將非線性特征映射到高維空間,構(gòu)造最優(yōu)超平面對(duì)輸入特征進(jìn)行分類。
在全連接層和SVC之間設(shè)置一層隱藏輸出單元,其作用是將全連接層輸出的最終特征等價(jià)為SVC的輸入向量。DCNN提取出的最終一維特征向量從隱藏單元輸出后作為SVC的輸入向量繼續(xù)進(jìn)行分類訓(xùn)練,直到實(shí)現(xiàn)最優(yōu)的訓(xùn)練模型。訓(xùn)練結(jié)束后,使用最優(yōu)DCNN-SVC訓(xùn)練模型對(duì)測(cè)試集進(jìn)行竊電用戶的識(shí)別。
在模型訓(xùn)練過(guò)程中,損失函數(shù)選擇交叉熵函數(shù)。使用Adam對(duì)模型進(jìn)行優(yōu)化,不僅參數(shù)可以達(dá)到最優(yōu)值,并能夠設(shè)計(jì)自適應(yīng)學(xué)習(xí)率抑制梯度稀疏。
最終竊電檢測(cè)流程圖如圖4所示。
圖4 基于DCNN和SVC的竊電檢測(cè)模型
詳細(xì)步驟如下:
K
與輸入特征進(jìn)行卷積映射,輸出m
個(gè)三維特征X
(i
=1,2,…,c
)。(8)
式中:X
是第i
層的特征,K
是第i
層卷積核,b
是第i
層偏置向量。3)使用最大池化對(duì)卷積層提取后的特征進(jìn)行降維。
(9)
y
=y
-1·ω
+b
(10)
式中:y
、ω
、b
分別是第l
層全連接層的神經(jīng)元、權(quán)值、偏置,全連接層的層數(shù)將在第四部分進(jìn)行討論。5)隱藏輸出單元將全連接層輸出的最終特征等價(jià)為SVC的輸入向量。
x
=y
(11)
式中:x
是SVC
輸入向量,y
是全連接層輸出特征。6)SVC利用RBF核函數(shù)構(gòu)建最優(yōu)超平面,對(duì)竊電用戶進(jìn)行識(shí)別。RBF表達(dá)式為:
(12)
假設(shè)超平面為f
(x
),最后的分類決策函數(shù)為:(13)
其中:α
是拉格朗日乘子。以國(guó)家電網(wǎng)公布的開放數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集,原始數(shù)據(jù)中主要包含了42372位用戶從2014年1月1日到2016年10月31日一共1035天的真實(shí)用電數(shù)據(jù),數(shù)據(jù)每天采集一次,每位用戶數(shù)據(jù)向量大小為11035。由于1035不能整除7,因此對(duì)特征補(bǔ)零,使每位用戶矩陣大小變成7×148,再將特征升維成三位矩陣作為模型的輸入,矩陣大小為42372×7×148。
竊電檢測(cè)方法采用python語(yǔ)言實(shí)現(xiàn),在Keras深度學(xué)習(xí)框架和Sklearn庫(kù)下實(shí)現(xiàn),所有實(shí)驗(yàn)均在CPU為Intel Core i5-8250的電腦上完成。
為了評(píng)估檢測(cè)方法的有效性,采用曲線下面積(AUC)和正確性(ACC)兩種評(píng)價(jià)方式。
1)AUC量化了ROC曲線表達(dá)的分類能力,AUC越大,分類精度越高。
(14)
式中:Rank
表示樣本i
的等級(jí);M
表示陽(yáng)性樣本的總數(shù);N
表示陰性樣本的總數(shù)。2)ACC
是樣本分類正確的概率。(15)
(16)
1)迭代次數(shù)的設(shè)置
DCNN訓(xùn)練是否完成由迭代次數(shù)(epoch)決定。因此,為了確定DCNN的訓(xùn)練次數(shù),對(duì)不同的迭代次數(shù)進(jìn)行實(shí)驗(yàn)對(duì)比。由于數(shù)據(jù)集規(guī)模較大,迭代次數(shù)過(guò)多容易導(dǎo)致時(shí)間過(guò)長(zhǎng),因此限定迭代次數(shù)在[0,100]內(nèi)。其中,3層卷積層的卷積核個(gè)數(shù)都設(shè)置為10,1層池化層的個(gè)數(shù)為2*2。最終,不同的epoch的分類結(jié)果如表1所示。
表1 采用不同epoch的分類結(jié)果
從表1可知,隨著迭代次數(shù)的增加,分類精度明顯增高,損失函數(shù)也明顯減小。
圖5 分類精度/損失函數(shù)epoch的變化
如圖5所示,當(dāng)?shù)淮螘r(shí)訓(xùn)練模型不穩(wěn)定,分類精度只有55%,隨后呈陡峭化的上升趨勢(shì);當(dāng)?shù)螖?shù)達(dá)到7次時(shí),分類精度能夠接近90%,隨后分類精度呈平穩(wěn)化的上升趨勢(shì);直到迭代次數(shù)接近100時(shí),分類精度也達(dá)到了92.61%。同時(shí)在迭代次數(shù)在[0,5)內(nèi),損失函數(shù)值以陡峭化的變化減少;迭代次數(shù)在(5,100]內(nèi),損失函數(shù)也平穩(wěn)地下降,直到迭代次數(shù)接近100次,損失函數(shù)值也達(dá)到0.2716,還有下降趨勢(shì)。因此確定DCNN的迭代次數(shù)為100。
2)全連接層參數(shù)的設(shè)置
全連接層層數(shù)不同會(huì)導(dǎo)致最終特征數(shù)據(jù)不同,因此對(duì)不同全連接層數(shù)的模型進(jìn)行實(shí)驗(yàn),進(jìn)而確定分類性能最優(yōu)的全連接層層數(shù)。所使用的不同模型的參數(shù)以及不同全連接層結(jié)構(gòu)的模型的分類結(jié)果見表2。
表2中,F(xiàn)CL(n)表示全連接層有n層。Conv表示卷積層,1、2、3是卷積層的層數(shù),(10*3*3)表示10個(gè)卷積核的格式為3*3。Maxpool是最大池化層,(2*2)是濾波器窗口的大小。Fcl表示全連接層,1、2、3、4表示全連接層的層數(shù),100、50、10、2分別對(duì)應(yīng)不同全連接層的大小。
表2 采用不同全連接層結(jié)構(gòu)模型分類結(jié)果
從表2可知,2個(gè)全連接層結(jié)構(gòu)的DCNN-SVC模型的分類精度最高。
圖6 不同全連接層結(jié)構(gòu)的分類精度
圖7 不同全連接層結(jié)構(gòu)的損失函數(shù)
如圖6、7所示,2個(gè)全連接層結(jié)構(gòu)的DCNN-SVC模型具有良好的分類精度,而且損失函數(shù)一直呈現(xiàn)下降的趨勢(shì),這也說(shuō)明DCNN-SVC模型中過(guò)擬合現(xiàn)象得到抑制,具有良好的泛化能力。當(dāng)?shù)螖?shù)小于10次時(shí),只有1個(gè)全連接層結(jié)構(gòu)的分類精度甚至沒(méi)有達(dá)到91%。雖然剛開始訓(xùn)練時(shí)2個(gè)全連接層結(jié)構(gòu)的分類精度有所下降,但在迭代次數(shù)大于5時(shí),分類精度穩(wěn)定上升并居于第一,最高達(dá)到了93.04%。因此確定DCNN-SVC結(jié)構(gòu)最終的全連接層為2層。
3)不同算法的竊電檢測(cè)結(jié)果
為了驗(yàn)證DCNN-SVC竊電檢測(cè)方法的性能,分別使用Wide-Deep-CNN 算法、CNN算法、SVC算法、邏輯回歸算法進(jìn)行竊電檢測(cè),并對(duì)比實(shí)驗(yàn)結(jié)果,如表3所示。
表3 采用不同算法的竊電檢測(cè)結(jié)果
從表3可知, DCNN-SVC模型的竊電檢測(cè)結(jié)果比WDCNN、CNN、SVC、邏輯回歸等模型精度要高。所提方法相比WDCNN、CNN、SVC、LR在AUC指標(biāo)上分別上升13.93%、15.67%、17.82%、22.44%;在ACC指標(biāo)上分別上升了0.66%、1.88%、9.84%、12.78%。一方面是因?yàn)楸疚牡哪P屠肈CNN對(duì)按周排列的二維數(shù)據(jù)進(jìn)行了建模,提高了DCNN特征提取的性能。另一方面,相比較單獨(dú)使用SVC進(jìn)行竊電檢測(cè),本文模型利用DCNN提取特征數(shù)據(jù),充分發(fā)揮了DCNN的自主學(xué)習(xí)特征的優(yōu)勢(shì),大大減少了SVC的輸入特征維數(shù),提高了檢測(cè)的精度。而且,相較于WDCNN和CNN的檢測(cè)方法,本文模型使用SVC分類器更改DCNN中可訓(xùn)練分類器來(lái)實(shí)現(xiàn)竊電用戶的識(shí)別,進(jìn)一步提高了竊電檢測(cè)的精度。綜上所述,采用DCNN-SVC模型對(duì)大規(guī)模用電數(shù)據(jù)進(jìn)行竊電檢測(cè)優(yōu)于其它模型的分類效果。
為了提高電網(wǎng)企業(yè)中對(duì)用戶竊電行為檢測(cè)的準(zhǔn)確率,本文提出了一種基于DCNN和SVC的竊電檢測(cè)方法,主要開展了以下的研究:
1)考慮到用戶電力數(shù)據(jù)的周期性,對(duì)一維電力數(shù)據(jù)按周排列并進(jìn)行矩陣化,減少電力數(shù)據(jù)的規(guī)模并突出了周期特征。
2)通過(guò)對(duì)不同全連接層配置的模型進(jìn)行對(duì)比實(shí)驗(yàn)來(lái)改進(jìn)DCNN模型,選擇最優(yōu)模型提取二維特征數(shù)據(jù)。
3)將DCNN和SVC進(jìn)行組合,利用DCNN對(duì)大規(guī)模數(shù)據(jù)進(jìn)行特征提取,SVC則從提取的最終特征中識(shí)別竊電用戶。降低了SVC輸入特征的維數(shù)和運(yùn)算復(fù)雜度,并提高了竊電檢測(cè)的準(zhǔn)確率。
以國(guó)家電網(wǎng)公布的公開數(shù)據(jù)集進(jìn)行仿真,實(shí)驗(yàn)數(shù)據(jù)顯示提出的方法在AUC指標(biāo)上提升了22.44%,在ACC指標(biāo)上最大提升了12.78%。結(jié)果表明提出的方法不僅能夠提取出重要的二維特征,而且更加準(zhǔn)確地識(shí)別出竊電用戶。