盧錦玲,張夢雪,郭魯豫
(華北電力大學(xué) 電氣與電子工程學(xué)院,河北 保定071003)
隨著智能電網(wǎng)的發(fā)展,越來越多的傳感器和智能電表安裝到配電網(wǎng)絡(luò)中,用來監(jiān)控和預(yù)測電能的使用。從負荷監(jiān)控點收集的隨時間變化的功率損耗數(shù)據(jù)形成負荷曲線??蛻舻呢摵汕€顯示了其電力消費行為,通過對負荷曲線分類,提取用電模型,對于電力系統(tǒng)的負荷預(yù)測、風(fēng)險預(yù)警、需求響應(yīng)分析等具有重要意義。
負荷分類問題的研究在國內(nèi)外已經(jīng)取得了一定成果??傮w來說,負荷分類方法包括以K-means、模糊 C 均值聚類(fuzzy C-means,F(xiàn)CM)、自組織映射(self-organizing maps,SOM)等為代表的無監(jiān)督聚類和以BP神經(jīng)網(wǎng)絡(luò)、支持向量機(support vector machine,SVM)等為代表的有監(jiān)督分類。文獻[2]結(jié)合多種聚類算法構(gòu)建用戶的用電模式分析模型,并提出一種新方法來評估聚類效果,實現(xiàn)了典型用電模式的自動識別。文獻[3]結(jié)合深度學(xué)習(xí)中的卷積自編碼器,提出了一種多維模糊C均值聚類方法,對日趨海量的負荷數(shù)據(jù)進行了有效的分類。文獻[4]基于牽引負荷實測數(shù)據(jù),提出了一種改進的自適應(yīng) FCM方法,以自動獲取最佳聚類數(shù),提高了牽引負荷分類的精度。文獻[5]提出了一種基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)負荷分類方法,采用遺傳算法對BP網(wǎng)絡(luò)的初始權(quán)重和閾值進行優(yōu)化,得到了較好的分類效果。文獻[6,7]采用高斯混合模型聚類和SVM算法相結(jié)合,提出了一種利用負荷數(shù)據(jù)進行用戶辨識的方法,并驗證了算法的有效性。文獻[8]首先通過無監(jiān)督算法獲得負荷數(shù)據(jù)的標(biāo)簽,然后采用稀疏自動編碼神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)負荷曲線的特征,實現(xiàn)了負荷曲線的高精度分類。然而,上述研究都是在假設(shè)負荷類別相差不大的前提下展開的,均沒有考慮負荷類別不均衡這一問題。
不平衡分類屬于分類問題的一種,即不同類別的樣本數(shù)目存在較大的差距。近年來,類別不平衡問題在機器學(xué)習(xí)分類任務(wù)中日益凸顯,如欺詐識別、垃圾郵件檢測等。欺詐交易與垃圾郵件樣本較少,屬于小樣本類別,其分類是否正確對結(jié)果影響巨大。負荷曲線的隨機性較強且模式多樣,但是各個模式下的負荷樣本數(shù)量不均衡,傳統(tǒng)的分類模型往往對于不平衡的負荷數(shù)據(jù)分類具有較大的偏向性,即產(chǎn)生小類樣本負荷數(shù)據(jù)錯分或被大類負荷數(shù)據(jù)吞噬等現(xiàn)象,進而導(dǎo)致分類效果欠佳[9]。針對不平衡分類問題,傳統(tǒng)方法一般對數(shù)據(jù)進行過采樣或欠采樣處理,其中隨機過采樣和隨機欠采樣只是簡單的隨機復(fù)制小類樣本或丟失大類樣本,因而對于分類效果的提高往往不理想。為此本文提出一種基于生成式對抗網(wǎng)絡(luò)(GAN)的小類負荷樣本的過采樣方法,首先基于K-Means算法為負荷數(shù)據(jù)加上標(biāo)簽,然后采用GAN對小類負荷數(shù)據(jù)進行樣本擴充,最后使用SVM算法進行分類建模。
采用神經(jīng)網(wǎng)絡(luò)對負荷數(shù)據(jù)分類時,需要對訓(xùn)練數(shù)據(jù)進行學(xué)習(xí)以獲得良好的分類性能,本文采用K-means聚類為局部數(shù)據(jù)添加類別標(biāo)簽,并通過基于聚類結(jié)果 GAN方法擴大訓(xùn)練數(shù)據(jù)中的小樣本類簇數(shù)據(jù)規(guī)模。
聚類是無監(jiān)督學(xué)習(xí)算法的一種。聚類分析是在缺乏足夠的先驗知識,難以人工標(biāo)注類別的情況下,通過樣本的某些特征,以相似性為基礎(chǔ),利用某種度量準(zhǔn)則,可以對未知類別的數(shù)據(jù)進行自動模式識別的一種分析方法。K-means算法以其簡單、運算速度快、時空復(fù)雜度低等優(yōu)點,在聚類分析領(lǐng)域得到了廣泛的應(yīng)用[10]。其基本思想是最小化所有樣本到聚類中心的距離平方和。最小化損失函數(shù)為:
式中:Ci為第i個簇;μi為簇Ci的中心。
具體步驟如下:
步驟1:隨機選取k個樣本點作為各個簇的中心點{μ1,μ2,???,μk}。
步驟2:計算所有樣本點與各個簇中心之間的歐式距離,對每個樣本點進行分類,并將其劃分到距離最近的一個簇中[11]。
式中:i=1,2,???,k;ni表示簇 Ci中所包含樣本點數(shù);x表示簇Ci中的樣本點。
步驟4:重復(fù)步驟2、3,直到簇中心在迭代過程中變化不大時停止,即得到最佳聚類結(jié)果。
GAN是Goodfellow在2014年提出的一種生成式模型,其思想源于零和博弈,由生成器和判別器構(gòu)成,生成模型可以看作一個樣本生成器,它負責(zé)學(xué)習(xí)數(shù)據(jù)樣本的分布規(guī)律,通過輸入隨機噪聲,產(chǎn)生新的樣本數(shù)據(jù),判別模型類似于一個二分類器,它負責(zé)判斷輸入數(shù)據(jù)是否為真實數(shù)據(jù),并使準(zhǔn)確率最大化。二者通過對抗訓(xùn)練不斷提升各自網(wǎng)絡(luò)的性能,最終到達二者之間的納什均衡點。
圖1 生成式對抗網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Structure chart of generative adversarial network
對于生成器網(wǎng)絡(luò),從分布 Pz中采樣的噪聲數(shù)據(jù)z作為網(wǎng)絡(luò)輸入[13],然后生成器的輸出G(z)是一個新的隨機變量,其分布用PG表示,生成器優(yōu)化目標(biāo)生成可信樣本來欺騙判別器,為了完成這項任務(wù),需要定義損失函數(shù)LG來更新生成網(wǎng)絡(luò)的參數(shù)θ(G)。LG最小化表示分布為PG的生成樣本從判別器的角度來看幾乎與真實樣本相同。
對于判別器網(wǎng)絡(luò),其輸入樣本來自生成器或真實樣本,輸出一個連續(xù)值以測量輸入樣本,判別器網(wǎng)絡(luò)和生成器網(wǎng)絡(luò)交替進行訓(xùn)練[14],對于不同的輸入樣本,判別器的輸出值如式(3)和式(4)所示:
判別器網(wǎng)絡(luò)通過訓(xùn)練來區(qū)分Pr和PG,也就是最大化 E[D(?)]和 E[D(G(?))]之間的差異,類似的,需要定義一個損失函數(shù)LD來更新判別器的網(wǎng)絡(luò)參數(shù),當(dāng)判別器區(qū)分生成樣本和真實樣本的能力很強時,LD的值應(yīng)該很小。損失函數(shù)LG和LD定義如下:
式中:E表示計算期望;G(z)表示生成器生成的數(shù)據(jù);D(~)為判別器網(wǎng)絡(luò)的輸出。
對于給定的判別器,最大化LD意味著最小化-E[D(G(?))],從而可得式(5)。對于給定的生成器網(wǎng)絡(luò),判別器網(wǎng)絡(luò)應(yīng)最大化 E[D(?)]同時最小化 E[D(G(?))],從而得式(6)?;诖?,GAN式的訓(xùn)練過程其實是一個極大極小博弈問題,通過不斷對生成器和判別器進行迭代優(yōu)化,使二者達到納什均衡[15],其博弈過程的目標(biāo)函數(shù)為:
針對負荷曲線樣本擴充問題,使用傳統(tǒng)的過采樣方法難以充分挖掘曲線的各種特征并建立模型,擴充的數(shù)據(jù)缺乏真實性和多樣性。而采用GAN模型能夠充分學(xué)習(xí)真實負荷數(shù)據(jù)的分布特征,并能同時保證生成數(shù)據(jù)的多樣性。
卷積神經(jīng)網(wǎng)絡(luò)以其強大的特征提取能力在圖像識別、分類等領(lǐng)域發(fā)揮著巨大潛力。本文采用卷積神經(jīng)網(wǎng)絡(luò)代替?zhèn)鹘y(tǒng)的多層感知器來構(gòu)建生成器和判別器網(wǎng)絡(luò)模型,以提高GAN的學(xué)習(xí)能力。生成器網(wǎng)絡(luò)輸入為100維噪聲向量,由于負荷數(shù)據(jù)為一維時間序列,通過全連接層和1D上采樣使維度碰撞,并采用1D卷積層對時間序列進行特征提取并對維度進行縮減,卷積核大小和數(shù)量根據(jù)實驗進行選取,步長均取 1,填充方式取 valid,同時為了加快網(wǎng)絡(luò)訓(xùn)練速度,提高網(wǎng)絡(luò)的魯棒性,每個卷積層后面均添加批量歸一化(batch normalization,BN)層[16]。考慮到 BN 層會是輸出規(guī)范化到 N(0,1)的正態(tài)分布,輸出層后不添加BN層。為減少稀疏梯度的可能,輸入層和隱藏層激活函數(shù)采用LeakyReLU,鑒于負荷數(shù)據(jù)均為大于0的數(shù),輸出層使用ReLU作為激活函數(shù),將結(jié)果規(guī)范化到(0,1)之間。各層網(wǎng)絡(luò)經(jīng)過設(shè)計,輸出為24維向量。
判別器的主要任務(wù)是對生成樣本和真實樣本進行特征提取并劃分類別,因此判別器網(wǎng)絡(luò)同樣采用1D卷積層,生成器網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)如表1所示,判別器網(wǎng)絡(luò)的結(jié)構(gòu)及參數(shù)如表2所示。
表1 生成器結(jié)構(gòu)及參數(shù)Tab.1 Structure and parameters of generator
表2 判別器結(jié)構(gòu)及參數(shù)Tab.2 Structure and parameters of discriminator
Vapnik首先提出使用支持向量機(support vector machine,SVM)進行模式識別和分類[17]?;诮y(tǒng)計學(xué)原理,SVM以一個或一組高維超平面的形式實現(xiàn)其功能,相比于神經(jīng)網(wǎng)絡(luò)等傳統(tǒng)機器學(xué)習(xí)方法,具有更小的泛化誤差。
SVM的基本目標(biāo)是尋找一個超平面來分離n維空間中不同類的數(shù)據(jù)點。超平面與訓(xùn)練數(shù)據(jù)點之間的距離稱為函數(shù)間隔,函數(shù)間隔用來表示分類結(jié)果的可信度。作為最大間隔分類器,SVM得到的超平面與最近訓(xùn)練數(shù)據(jù)點的函數(shù)間隔最大,具有最優(yōu)的分類效果。
如圖2所示,以線性可分的二分類問題為例,假定T={(xi,yi)}為訓(xùn)練集,其中xi為n維特征向量,yi為類別標(biāo)簽,其取值+1或-1,表示不同的類別。尋找其最優(yōu)分類超平面可轉(zhuǎn)化為式(8)優(yōu)化問題的最優(yōu)解。
圖2 SVM示意圖Fig.2 Diagram of SVM
式中:ω為超平面的法向量;||?||表示 L2范數(shù);b為超平面的截距。
顯然求得其最優(yōu)解即可得最優(yōu)分類超平面和決策函數(shù),然而式(8)為一個包含不等式約束的凸二次規(guī)劃問題,為方便求解,引入拉格朗日乘子,并將其轉(zhuǎn)化為對偶問題,如式(9)所示。
式中:αi、αj為拉格朗日乘子;〈,〉表示內(nèi)積運算。
求解對偶問題的最優(yōu)解 α*、b*,可得決策函數(shù)如式(10)所示。
上述分析是在假設(shè)數(shù)據(jù)線性可分的前提下展開,然而實際的樣本數(shù)據(jù)并不一定是線性可分,因此需要采用更復(fù)雜的分類方法。針對線性不可分問題,SVM首先引入懲罰系數(shù)和松弛變量[18],優(yōu)化的目標(biāo)函數(shù)如式(11)所示。
式中:C為懲罰系數(shù);ξ為松弛變量。
然后將樣本數(shù)據(jù)映射到更高維的空間,并在高維空間中尋找最優(yōu)分類超平面[19],決策函數(shù)改寫為:
式中:?表示原始低維空間到高維空間的映射。
由于高維空間中的點積運算是復(fù)雜的,難以顯示表達,因此定義合適的核函數(shù)來隱式表示,核函數(shù)應(yīng)滿足:
常用的核函數(shù)有高斯核函數(shù)、徑向基核函數(shù)、多項式核函數(shù)等[20]。
負荷數(shù)據(jù)的類別不平衡性會導(dǎo)致機器學(xué)習(xí)算法在訓(xùn)練的過程中無法充分學(xué)習(xí)不同類別樣本之間的差距,進而造成較差的分類結(jié)果。因此針對此問題,本文提出一種基于GAN-SVM不平衡負荷數(shù)據(jù)分類模型。模型的總體框架如圖3所示。
圖3 GAN-SVM模型框架Fig.3 The framework of GAN-SVM model
對日負荷曲線進行聚類后,首先判斷是否存在不平衡問題,然后確定合成數(shù)據(jù)量,再通過GAN進行樣本生成,之后將樣本平衡后的數(shù)據(jù)集作為SVM模型的輸入,從而實現(xiàn)對不均衡負荷數(shù)據(jù)的分類。本文樣本不平衡問題的判斷依據(jù)為:其中一類負荷數(shù)據(jù)的樣本量小于最大類負荷數(shù)據(jù)樣本量的十分之一。
本文算例采用Python3.7作為編程語言,在操作系統(tǒng)為Win10的PC機上進行仿真分析。其中GAN采用Goole工程師開發(fā)的Keras框架進行搭建。K-means、SVM 等其他機器學(xué)習(xí)算法使用scikit-learn機器學(xué)習(xí)庫進行搭建。
實驗數(shù)據(jù)采用愛爾蘭智能電表2009年11月~12月的實測用戶用電數(shù)據(jù),共包含6 370個用戶,數(shù)據(jù)采集頻率為30 min,將對每個用戶用電數(shù)據(jù)進行歸一化處理后的月平均(除去周末)負荷曲線作為該用戶的典型日負荷曲線,歸一化后的所有負荷曲線如圖4所示。
圖4 歸一化后的日負荷曲線Fig.4 Curve of normalized daily load curve
5.1.1 聚類結(jié)果評價指標(biāo)
本文選用輪廓系數(shù)(silhouette cofficient,SC)和Davies-Bouldin指數(shù)(DBI)作為聚類結(jié)果的評價指標(biāo)。
SC指數(shù)綜合了聚類的類內(nèi)凝聚度和類間分離度,取值范圍[-1,1],SC值越接近邊界值表示聚類效果越佳,計算方法如式(14):
式中:SC(i)表示第i個樣本的輪廓系數(shù);ai表示樣本i到同一類內(nèi)其他樣本的平均距離;bi表示樣本i到非本身所在類的其他樣本的平均距離。
DBI指數(shù)表示任意兩類別的類內(nèi)樣本到類中心平均距離之和與兩類中心點之間的距離的比值,取最大值。DBI越小則類內(nèi)距離越小,類間距離越大,同時聚類效果也最好,計算方法如式(15):
5.1.2 聚類結(jié)果展示
由于實際的用戶用電數(shù)據(jù)缺乏真實類別,因此在對用戶日負荷曲線進行分類時,首先采用K-means算法對負荷曲線數(shù)據(jù)集進行聚類,為數(shù)據(jù)建立標(biāo)簽,以獲取訓(xùn)練數(shù)據(jù)集。聚類結(jié)果的DBI與SC指數(shù)隨聚類數(shù)K的變化如圖5所示。
圖5 不同聚類數(shù)K下的DBI與SC指標(biāo)Fig.5 The indexs of DBI and SC under different cluster number K
綜合考慮DBI最小、SC最接近邊界值時的K值作為最優(yōu)聚類數(shù)。根據(jù)圖5,K=4與K=7時相比,雖然DBI指數(shù)較小,但是此時SC指數(shù)離邊界值較遠,因此綜合考慮DBI與SC指數(shù),確定最優(yōu)聚類數(shù)為K=7,各類負荷的均值中心如圖6所示。
圖6 聚類中心Fig.6 Clustering center
根據(jù)圖5各負荷類型的均值中心可以看出,用戶側(cè)用電方式多種多樣,不同負荷之間的差異較大。第1類、第2類、第3類、第7類負荷水平較低,不同的是類別1用電量相對穩(wěn)定,日負荷曲線大致呈一條水平線,類別2和類別3的用戶用電集中在10:00~15:00,而類別7則是上午時段較高,下午和夜間相對較低;第4類負荷始終保持在較高水平,尤其是5:00~12:00用電量偏高;第5類負荷上午用電量較高,下午時段用電量驟降,第6類則相反,上午時段處于較低水平,15:00左右負荷水平驟升,屬于典型的夜間負荷。由此可見,K-means能夠很好地劃分不同類型的負荷。各類負荷的分布如表3所示。
表3 聚類結(jié)果Tab.3 Results of clustering
由表3可知,第1、3、7類負荷占比較多,第 2、4、5、6類負荷占比較少,其中最大類負荷為第1類。第1類負荷曲線數(shù)量與第5、6類的比值分別接近16:1、59:1,均判斷為少數(shù)類。
本文通過對比GAN與隨機過采樣、隨機欠采樣、SMOTE等傳統(tǒng)樣本不平衡處理方法在負荷數(shù)據(jù)集上的表現(xiàn)以及不同樣本不平衡比例分類精度的影響對所提方法進行有效性評估。
實驗中使用經(jīng)K-menans聚類后的電力負荷數(shù)據(jù),由上文可知,負荷共有7種類型,其中第5、6類滿足不平衡條件,采用WGAN算法分別對這兩類負荷進行數(shù)據(jù)擴充(擴充至與大類樣本量相當(dāng))。
考慮到負荷曲線的波動性,若將少數(shù)類所有樣本均作為GAN的輸入,則可能出現(xiàn)生成器受邊界樣本影響而導(dǎo)致學(xué)習(xí)不充分甚至失敗的情況,因此本文采用歐式距離法,按照距離聚類中心的遠近對所有樣本進行排序,并最終選取占樣本總數(shù)1/3且歐式距離最小的樣本,作為GAN的輸入。在模型的實際仿真中,本文采用每訓(xùn)練一次生成器,訓(xùn)練15次鑒別器的策略進行模型訓(xùn)練。設(shè)定epochs為20 000,當(dāng)判別器判斷準(zhǔn)確率接近50%時停止訓(xùn)練,此時輸入100維隨機向量到生成器,就能得到所需的負荷樣本。少數(shù)類的擴充樣本如圖7所示。
圖7 擴充結(jié)果展示Fig.7 Extended result
從圖7可以看出,GAN算法能夠準(zhǔn)確地學(xué)習(xí)原始負荷數(shù)據(jù)的分布,生成效果較好,而且生成的樣本具有多樣性,能夠提高分類模型的泛化性。
接下來進行模型的性能評估,分別將擴充前后的數(shù)據(jù)集輸入SVM分類器(其參數(shù)采用網(wǎng)格搜索法確定)。同時將本文所提出的方法同其他幾種傳統(tǒng)的不平衡處理方法(包括隨機欠采樣、隨機過采樣、SMOTE方法)進行對比,結(jié)果如表4所示。
表4 各模型分類結(jié)果Tab.4 Classification results of each model
從表4可知,與不進行平衡處理相比,這些方法均降低了數(shù)據(jù)集的類別不平衡度,并在一定程度上提高了分類準(zhǔn)確率。在所采用的方法中,隨機過采樣與隨機欠采樣的分類準(zhǔn)確率均低于80%,精度較差。SMOTE算法的分類精度較高,接近90%,而經(jīng)GAN算法平衡后的數(shù)據(jù)集分類精度最高,達到了94.779%。
在傳統(tǒng)的類別不平衡處理方法中,隨機過采樣是采用隨機復(fù)制樣本的策略來擴充少數(shù)類樣本,實際上沒有為模型引入新的樣本,導(dǎo)致模型的泛化性不足,產(chǎn)生過擬合,從而分類準(zhǔn)確度較低。隨機欠采用是采用隨機丟棄大量多數(shù)類樣本的策略來減小不平衡的比例,同樣存在過擬合問題。SMOTE方法是隨機過采樣的一種改進方案,其基本思想是分析少數(shù)類樣本,人工合成新的樣本并將其添加到數(shù)據(jù)集中,具有較高的泛化性。
本文提出了一種適用于不平衡負荷分類的機器學(xué)習(xí)方法,以SVM算法為基礎(chǔ),配合GAN數(shù)據(jù)合成算法,為類別不平衡數(shù)據(jù)分類問題提出了一種解決方案。
通過算例分析,進行樣本合成方法的分類準(zhǔn)確率要明顯高于簡單的通過隨機復(fù)制或丟棄樣本來降低不平衡度的方法。而在樣本合成算法中,本文所提出的基于深度學(xué)習(xí)中的 GAN進行自動生成樣本的方法要優(yōu)于 SMOTE等采用人工合成新樣本的方法。