成貴學,陳博野,趙晉斌,費敏銳
(1.上海電力大學計算機科學與技術學院,上海 200090;2.上海電力大學電氣工程學院,上海 200090;3.上海大學機電工程與自動化學院,上海 200072)
構建智能用電策略是智能電網[1]適應新時代生產生活的迫在需求,智能用電策略對于改善居民用戶用電方式,減少電能消耗具有重要作用。智能用電策略制定的關鍵是了解用電用戶電器設備的耗能分配與使用習慣。傳統的負荷分解采用在各用電器接口處安裝傳感器的方式直接監測用電情況。1992 年,Hart 提出非侵入式負荷監測技術NILM(non-intrusive load monitoring),相比之下,這是一種經濟便利的監測方法[2]。隨著大數據技術、人工智能算法的進步,以及智能電網、能源互聯網[3]戰略的推進,非侵入式負荷分解NILD(non-intru?sive load disaggregation)作為需求側精細化能量管理的關鍵技術逐漸成為研究熱點。
國內外研究者針對非侵入式負荷分解問題已經做了大量的研究。按照負荷數據的采樣頻率,可分為高頻數據和低頻數據兩大類,其中高頻數據包含總諧波畸變率、電壓噪聲和V-I軌跡這些狀態信息。文獻[4]將總諧波失真系數作為特征,提出一種改進的動態粒子群尋優算法,解決了過早收斂的缺陷,負荷辨識準確率顯著提升;文獻[5]采用主成分分析法對電網絡數據降維后,利用Fisher 有監督判別算法對負荷數據實現有效分離。然而獲取高頻數據必須安裝多個量測設備獲取監測數據[6],這會大大加重用戶的使用成本。
有學者結合機器學習的方法,提出了K近鄰[6]、支持向量機[8]、隱馬爾可夫模型HMM(hidden Mar?kov model)[9]等分解方法。文獻[10]以電器電流序列與總電流序列的歐式距離為目標,對鳥群算法進行改進,達到識別負荷以及估測電器電流的目的,但是對于電流幅值較小的電器效果并不理想。2014年Batra 和Kelly 等對模型進行組合,實現了組合優化CO(combinatorial optimization)方法和因子隱馬爾可夫模型FHMM(factorial hidden Markov model)算法以提高非侵入式監測準確率,并做成了工具包NILMTK 作為非侵入式監測準確率的對比算法[11],但是組合模型的計算效率不高,無法處理復雜數據。
隨著人工智能的不斷發展,已經有學者將一些已經在圖像識別、自然語言處理中成熟使用的深度學習模型應用到負荷分解的研究中。文獻[12]應用了長短期記憶LSTM(long short term memory)網絡、去噪自編碼器DAE(denoising autoencoder)以及卷積神經網絡CNN(convolutional neural network),是深度學習在非侵入式負荷分解中的開創性應用,其效果較傳統方法大有提升;文獻[13]對去噪自編碼器的網絡拓撲結構進行了研究,通過使用中值濾波器重新組合負荷分解的輸出來改進算法;文獻[14]使用滑動窗口的方法,提出了一種序列到點的卷積神經網絡模型,能使神經網絡將其表征能力集中在窗口中點,從而產生更準確的分解;文獻[15]提出采用深度卷積生成對抗網絡進行負荷分解,并且使用有類別判斷的輔助分類器生成對抗網絡進行改進,盡管效果沒有明顯提升,但是表明了生成對抗網絡在負荷分解中的應用前景。
為了進一步提高深度學習方法在非侵入式負荷分解領域的效果,本文將圖像翻譯模型Pix2pix 引入到負荷分解算法中,提出一種基于條件生成對抗網絡的非侵入式負荷分解方法。該模型包含兩個相互競爭的神經網絡模型,不斷學習真實樣本分布的生成器,判斷訓練樣本來自真實樣本還是生成樣本的判別器。通過兩個模型不斷地對抗訓練,最終生成器產生令判別器無法辨別真偽的負荷序列,從而達到負荷分解的目的。利用英國UK-dale數據集對模型進行訓練與測試,并與DAE,LSTM,Seq2point幾種算法進行比較,驗證本文所提模型的優越性。
2014 年,Goodfellow 等[16]提出了一種通過對抗訓練來評估生成模型的新框架——生成對抗網絡GAN(generative adversarial network)。GAN的主要構思來源于博弈論中零和博弈的思想,由一個生成器G(generator)和一個判別器D(discriminator)構成,如圖1所示。生成器的目的是學習真實樣本的分布,生成相似度逼近真實樣本的生成樣本,而判別器的作用則是判斷輸入的樣本是生成樣本還是真實樣本。生成器和判別器不斷地對抗訓練,盡可能地提高判別器準確判斷出數據是生成樣本還是真實樣本的能力,最終目的是達到生成器的生成數據與真實數據的相似度最大化。訓練過程可以看作是關于函數V(G,D)的極小化極大的博弈問題,表示為

圖1 GAN 網絡模型結構Fig.1 Architecture of GAN model

式中:Pdata(x)為真實數據分布;D(x)為判別器判斷輸入數據為真實數據的概率;x為真實樣本;z為輸入生成器中的隨機噪聲;Pz(z)為生成數據分布;G(z)為生成器在隨機噪聲作用下的生成數據。
訓練流程通常是先初始化判別器和生成器的參數,生成器生成樣本后固定生成器,訓練判別器盡可能地準確判別真實數據和生成數據。對判別器更新若干次后,固定判別器,更新生成器參數,訓練生成器盡可能減小生成數據與真實數據之間的差異。如此交替迭代,直至模型趨于穩定。
Goodfellow等[16]證明了當且僅當Pz=Pdata時,極大極小化的雙方博弈問題存在全局最優解,即達到納什均衡,此時生成器學會了與真實樣本Pdata的近似的概率分布,使得判別器的準確率穩定停留在1/2上。
原始GAN 對于生成器幾乎沒有任何約束,使得生成過程過于自由。條件生成對抗網絡CGAN(conditional generative adversarial network)改善了GAN過于自由的問題,使網絡朝著既定的方向生成樣本,是個對GAN 進行條件約束的GAN 變種網絡[17]。CGAN 的網絡結構如圖2 所示,其生成器和判別器的輸入多了一個約束項y,該約束項可以是一個類別標簽,也可以是部分數據屬性。CGAN 目標函數為


圖2 CGAN 網絡模型結構Fig.2 Architecture of CGAN model
Phillip 于2017 年 提 出 一 種Pix2pix 的 網 絡 架構[18],在圖像翻譯的任務中取得較好的效果。Pix2pix即像素點(輸入信息)對像素點做出預測,達到圖像與圖像之間不同形式風格的轉換,生成器使用U-net 網絡,判別器使用馬爾可夫判別器模型。負荷分解問題也可以看成輸入的總負荷序列對某電器負荷做出預測。本文根據負荷數據是一維序列的特點,對Pix2pix 框架中生成器和判別器做針對性改進,神經網絡卷積層從二維改成一維,使之能接受負荷數據。在U-net 網絡中使用批大小為1的實例歸一化,保持樣本之間的獨立性。
Pix2pix 框架下的負荷分解模型如圖3 所示。將用戶用電總表負荷序列a作為生成器模型的輸入,通過在生成器模型的解碼器部分加入Drop?out 來模擬噪聲,生成一個類似某電器真實負荷序列b的生成序列G(a,c),判別器則把a與b或者a與G(a,c)的成對序列作為輸入進行判別,即將總表負荷序列a作為CGAN的條件信息。生成器與判別器以對抗的方式不斷進行訓練,從而優化總表負荷序列和生成的某電器負荷序列之間的映射關系,最后得到近乎穩定的模型,其中生成器網絡G為可以對未知總負荷序列進行分解的最終目標模型。

圖3 Pix2pix 框架下的負荷分解模型Fig.3 Load disaggregation model under Pix2pix framework
Pix2pix目標函數為

U-net網絡[19]相較于普通的先降采樣到低維度,再上采樣到原始維度的編碼-解碼網絡(encoder-de?coder)有所不同,其具有跳躍連接結構,對應的特征圖和解碼之后的同樣大小的特征圖按通道拼接在一起。淺層網絡會保留明顯的內容信息,網絡層越深,內容信息會減少,U-net網絡具有的跳躍連接結構能將在編碼網絡靠近輸入的淺層提取到簡單特征和靠近輸出的深層提取到復雜特征裁剪復制到解碼器。通過整合多尺度信息,可以使得解碼階段恢復的特征細節更加豐富,并且降低生成器學習的難度。
生成器U-net 結構如圖4 所示,序列上方的數字代表通道數,左下方數字表示序列的長度。網絡左半邊為收縮路徑,使用4×1的一維卷積核進行卷積操作后添加實例歸一化[20],激活函數Leaky Relu[21]的負區間斜率取0.2,來提高網絡訓練速度。網絡右邊為擴張路徑,使用4×1的一維反卷積核進行上采樣操作。解碼器部分Dropout 的參數keep_prob設置為0.5,即隨機丟掉50%網絡節點。

圖4 生成器U-net 結構Fig.4 U-net structure of generator
普通的GAN 判別器一般只需輸出一個真或假的標量。本文采用馬爾可夫判別器[18],相比直接判斷生成的序列是否為真,馬爾可夫判別器在判別過程中將生成序列分為若干片段,對每個片段做真假判別,將所有片段的判別結果取平均作為輸出。這種方法實現了局部序列特征的提取和表征,能夠實現相比單標量輸出更為精確的整體差異表示,從而提高生成對抗網絡的效率和效果。
本文的判別器網絡結構及參數如表1 所示。輸出序列的每個值代表一個片段序列與真實序列的相似度,取平均值后,即為判別器的最終輸出。

表1 判別器結構及參數Tab.1 Structure of discriminator and its parameters
訓練過程中,生成器和判別器循環交替地進行梯度下降,針對生成器使用自適應矩估計Adam(adaptive moment estimation)[22]作為優化器,學習率設置為0.000 2,β1= 0.5,β2= 0.999。針對判別器使用隨機梯度下降SGD(stochastic gradient de?scent)作為優化器,學習率設置為0.001。
本文使用英國能源研究中心發布的UK-dale公開數據集[23]作為源數據進行實驗。該數據集通過電流傳感器、功率記錄儀等設備共記錄5戶英國家庭的負荷數據,包括有功功率、電流信息、以及電器開關狀態。采樣時間跨度從2012 年11 月持續到2015 年1 月,采樣頻率為1/6 Hz。每個住宅的負荷數據包含1 個總表功率記錄和5~52 個數量不等的電器每個時刻單獨功率記錄。
本文選取水壺、冰箱、洗衣機、微波爐以及洗碗機這5 種在該數據集中各住宅內均存在的電器作為研究對象,暫未考慮同類負荷存在多個的情況下進行負荷分解。用于訓練和用于測試的數據并不來自于同一住宅,可以滿足深度學習泛化性的要求。另外,這5 種用電器具有不同的運行特性:水壺和冰箱的負荷只有兩種狀態,且冰箱有周期性,洗衣機和洗碗機的負荷變化具有狀態多時間長的特點,而微波爐運行時間短且功率變化頻繁。因而可以全面地驗證本文所提模型的分解性能。
對5 種用電器,其訓練集與測試集的設置如表2所示。

表2 訓練、測試住宅分配Tab.2 Distribution of residences used for training and testing
對于因為設備原因導致的數據缺失,短于3 min的做正向填充,長于3 min的做0填充。為了避免文獻[12]的等長度序列到序列模型導致的收斂難度大,以及文獻[14]的序列到點模型導致的預測過程運算量偏大。本文采用輸出序列長度為輸入序列一半的構造方式,通過更長的輸入信息來提升生成器模型對目標序列前后特征信息的感知能力。
數據集中用電器大多數時間處于無功耗待機狀態,因此可以用作訓練樣本的有效數據比例有限。通過定步長順序滑動窗口和隨機位置滑動窗口兩種方式來合成數據,以1∶1的比例從合成數據中提取包含負荷激活的正樣本和不包含負荷激活的負樣本。
本文實驗環境為Intel(R)Core(TM)i5-8300H CPU@2.30GHz 處理器,16 GB 運行內存,NVIDIA GeForce GTX 1060顯卡。整體模型在TensorFlow深度學習框架實現。
圖5 為各負荷真實功率與經模型分解后功率的直觀對比。可以看出:通過所設計的生成網絡和判別網絡多次的對抗訓練后,生成器的分解效果可以滿足對于用電器功率切換特征的學習;分解所得的負荷功率曲線與真實功率曲線有一定重合度;對于洗衣機、冰箱、水壺,本文的模型分解準確度較高;對于洗碗機和微波爐,因為使用的模式和時間隨機性較大,模型并不能特別好地進行分解,分解的起始或終止位置容易出現偏差,但對于負荷狀態切換能做出有效識別,且分解功率值也較為準確。以上實驗結果表明,某一住宅使用經其他住宅數據訓練后的模型進行負荷分解,也能獲得良好的分解效果,證明了條件生成對抗網絡分解模型具有較強的穩定性與魯棒性。


圖5 各用電器真實功率與分解功率對比Fig.5 Comparison between real and disaggregated powers of each electric appliance
本文選取召回率、精確率、F1分數、準確率以及平均絕對誤差(MAE)[12]對所提模型的分解效果做出量化評價,具體計算方法表示為

式中:TP為分解數據和真實數據都是運行狀態的序列點數目;FP為分解數據中運行而真實數據中關閉的序列點數目;TN 為分解數據和真實數據都是運行狀態的序列點數目;FN 為分解數據中關閉而真實數據中運行的序列點數目;P為真實數據中運行的序列點總數;N為真實數據中關閉的序列點總數;yt為t時刻用電器真實功率,y?t為t時刻模型分解功率。
以上指標經由前期研究者提出并多次評價驗證,可很好地反映非侵入式負荷分解的性能。準確率以及F1分數可以反映生成對抗網絡分解模型對于用電設備工作狀態判斷的準確度。平均絕對誤差反映分解得到的負荷與真實值之間的偏離程度。
文獻[12]和文獻[24]是非侵入式負荷分解領域應用深度學習方法比較成功的研究。本文以文獻[12]和文獻[24]中使用的DAE、LSTM 和Seq2point 的分解模型作為對照模型,3 種模型的負荷分解效果對比如圖6所示。對于所選取的用電設備,本文提出的模型負荷分解能力具有較高可靠性。負荷工作模式較為規律的水壺,冰箱和洗碗機已經在其他神經網絡模型中有不錯效果,相較之下本文模型提升不明顯。對于微波爐和洗衣機,對照模型的分解效果一般,本文模型在F1分數和平均絕對誤差上均提升明顯。說明了本文所提的條件生成對抗網絡模型在非侵入式負荷分解問題上具有適用性。

圖6 本文模型與文獻[12]和[24]模型負荷分解效果對比Fig.6 Comparison of load disaggregation performance among the proposed model and those in Refs.[12]and[24]
本文采用深度學習的方法,借鑒Pix2pix 模型在圖像翻譯中的使用,提出了一種基于條件生成對抗網絡的非侵入式負荷分解方法。根據數據特征,針對性優化了生成器U-net 網絡和馬爾可夫判別器。利用U-net網絡模型能保留潛在序列特征的優點,通過生成器和判別器對抗式地進行訓練,構建用戶總負荷和用電器負荷之間的映射關系,最終生成可以用于對總負荷進行分解的模型,從而實現非侵入式負荷分解的目的。通過真實數據集驗證,本文模型的F1分數和平均絕對誤差指標均不同程度優于目前非侵入式負荷分解領域熱門的幾種深度學習分解模型。
本文所提模型雖然在分解效果上有優勢,但是因為深度學習對模型訓練的數據量以及計算機內存、運算能力要求較高,該方法的實際計算速度較慢。下一步將繼續對生成對抗網絡的結構和參數進行優化,在提升分解效率方面展開研究。