劉海東,崔昊楊,樓志斌
(上海電力大學 電子與信息工程學院,上海 200090)
隨著智能電能表大規模安裝部署以及大數據技術的發展應用使得對用戶負荷的能耗監測成為可能。非侵入式負荷監測(Nonintrusive Load Monitoring, NILM)技術是指在用戶總功率信息中提取出單個電器的功率數據,來判斷各電器的運行狀態和能耗值。
非侵入式負荷分解最早于上世紀90年代由Hart提出,通過非侵入式采集硬件,獲得總功率信號并分析,進而識別出電器設備的消耗曲線[1]。家庭用電行為習慣的差異以及智能家用電器運行狀態的復雜性對算法模型的泛化能力提出了更高的要求。與高頻采樣相比,低頻采樣在硬件設備方面要求較低,在負荷側易于推廣實施。
以高頻采樣數據為主的研究,主要針對在電器發生瞬態行為時,通過數據中包含豐富的暫態特征信息[2]提取出各家用電器的獨有負荷特征,實現負荷分解。文獻[3]基于改進匈牙利算法對負荷開啟與關閉時的暫態特征進行匹配,實現負荷事件檢測。文獻[4-5]采用電器暫態特征融合的方法,并基于神經網絡模型實現負荷的識別與分解。文獻[6]提出了一種動態時間規整(Dynamic Time Warping, DTW)算法,通過提取暫態特征與參照模板進行匹配,從而對負荷進行識別,但未考慮用電器重合的情況。
以低頻采樣數據為主的研究,主要通過穩態功率、均方根電壓等穩態負荷特征建立分解模型。文獻[7]提出了一種基于隱馬爾科夫(Hidden Markov Models, HMM)算法和改進Viterbi算法結合的分解方法。文獻[8]以穩態電流諧波幅值作為負荷特征,用Adaboost算法和改進后的反向傳播神經網(Back Propagation, BP)實現負荷識別。
Kelly等人在2015年首次將深度學習應用到NILM領域,提出了長短期記憶網絡(Long Short Term Memory, LSTM)、去噪自編碼器(Denoised Auto Encoder, DAE)和回歸分解器三種模型并進行驗證[9]。文獻[10-11]將機器翻譯領域中的端到端(Sequence to Sequence,Seq2Seq)模型應用到非侵入式負荷分解中,并采用編解碼機制的網絡模型,其分解效果有很大改善。文獻[12-14]則在已有算法模型的基礎上進行優化,在負荷分解準確率上有所提高。
不同國家和地區,其采樣頻率、采樣設備、環境以及用戶用電行為習慣存有較大差異[15-16],而上述基于深度神經網絡模型的研究在不同數據集中測試效果較差,網絡模型跨域分解的泛化能力并不理想。 雖然文獻[23]提出了基于CNN的序列到點模型,并討論了有關跨數據集分解問題,但僅是初步嘗試,未做進一步研究,且分解準確率較差。
文中基于深度學習,提出了一種雙向LSTM編解碼的序列到點模型,并運用遷移學習[17]實現跨域分解,在UKDALE[18]、REFIT[19]、REDD[20]和DRED[21]四種數據集上訓練和測試。文章首先與目前分解效果較好的DAE[22]模型和基于CNN網絡的Seq2Seq[23]模型進行遷移預測對比,驗證本模型神經網絡架構的優越性。其次在跨域分解泛化性方面與文獻[16]中基于CNN網絡進行跨域分解的模型進行對比,該模型也屬于Seq2Point模型的一種。
文中所提出的非侵入式負荷跨域分解模型流程圖如圖1所示。

圖1 非侵入式負荷跨域分解流程圖
文中所提模型通過對源域低頻數據學習訓練,得到預訓練模型,然后在不同數據集中對預訓練模型進行遷移學習,獲得適用于目標域數據集分解任務的網絡模型,從而實現跨域負荷分解。
由于深度學習模型的輸入序列長度有限且固定,而負荷功耗數據是一種長序列數據,不能直接輸入。因此文章采用滑動窗口的方法,通過設定負荷輸入窗口的大小對功耗數據進行分段,每個窗口包含功耗數據的時間序列索引和各種power特性。模型的輸入窗口范圍設定為10 min~30 min,類似于一個mini_batch的大小。以6 s的采樣周期為例,每個窗口的大小為100~300個采樣點。
基于CNN和LSTM的算法采用了端到端(Seq2Seq)模型,該模型的輸出值是對窗口數據的平均預測,平滑了邊緣數據,造成負荷分解誤差。文章采用序列到點(Seq2Point)模型預測窗口的中點值,減小了窗口邊緣信息的影響,凸顯輸入窗口中處于穩定狀態的真實信息,提高了模型的泛化性。
1.2.1 負荷分解模型
分解任務模型可以描述為:Y={y1,y2,……,yT}表示在一段時間內某用戶的總功率消耗,假設房屋內有M種電器,其中電器i在相應時間段內的功率消耗可表示為Xi={xi1,xi2,……,xiT},每個時間步長內的總功率是該段時間內所有負荷設備功率的總和,完整的分解模型可以表示為:
(1)
式中ut表示未知電器在t時刻的功率數據;∈t表示t時刻的零均值高斯噪聲[24]。
1.2.2 基于LSTM編解碼機制的Seq2Point模型
文章采用端到點的模型結構,并引入了基于LSTM網絡的編解碼架構對輸入信息進行提取和訓練。相比于基于CNN網絡的Seq2Point模型[16]LSTM網絡能夠提取時間關聯信息,減少源信息的丟失。模型針對不同電器設計輸入窗口Yt:(t+win-1)的大小,所提編解碼結構如圖2所示。

圖2 基于LSTM網絡的編解碼結構圖
輸入窗口功耗數據yt:θt經編碼器對時間序列的先后順序編碼,生成當前時刻隱藏狀態向量ht:
ht=f(ht-1,yt:θt)
(2)
式中θt=(t+win-1),編碼過程中由輸入序列每時刻的隱藏狀態{h1,h2,…,hT},獲取包含窗口全部功耗信息的上下文向量C:
C=f(h1,h2,…,hT)
(3)
解碼時將上下文向量C作為輸入信號的一部分參與運算,并生成解碼向量C過程中的隱藏狀態St,解碼器網絡將包含的功耗信息分解出來。
St=f(St-1,xt-1:σt-1,C)
(4)
P(xt:σt|x1:σ1,x2:σ2,…,xt-1:σt-1)=g(st,xt-1:σt-1,C)
(5)

文章采用基于LSTM網絡的Encoder-Decoder結構,神經網絡架構如圖3所示。

圖3 神經網絡架構圖
網絡架構采用一個卷積層讀取輸入層已處理好的窗口數據,編碼器采用兩層雙向LSTM網絡,生成包含Yt:(t+win-1)中全部功耗信息的上下文向量C,解碼器采用與編碼器相同的網絡架構,經過Dense全連接層,在輸出層得到輸出窗口的預測中點元素。
為防止預訓練模型時過度擬合的現象發生,編碼器層間同樣加入Dropout層,keep_prob設置為0.5,采用Adam優化器,損失函數采用均方誤差(Mse)函數,定義如下:
(6)

遷移學習在NLP領域應用較為廣泛,能夠極大地減小計算資源和訓練時間,文中進行遷移學習的過程如圖4所示。
針對NILM領域中不同數據集同類型電器負荷特征相似,且需訓練數據量大的特點,文章基于負荷特征信息,采用模型遷移的方式,對預訓練模型進行微調來實現遷移學習。
在微調過程中,將源域訓練模型中全連接層之前的網絡層凍結,即共享編解碼網絡及其網絡權重,通過降低未凍結層中的學習率進行多次微調,在目標域數據集中重新訓練全連接層,進而獲得新的隨機權重。此遷移學習過程節省了主要網絡的訓練時間地同時,獲得了對目標數據集有較好分解能力的網絡模型,極大地提高了模型的泛化性。

圖4 遷移學習模型
為了驗證所提分解算法的有效性和準確性,本文選擇了以下四個公開的數據集,涵蓋了不同國家不同地區的數據樣本。
UK-DALE數據集[18]是英國的Jack Kelly在2015年首次發布的包含5個英國家庭的總電源和子設備的有功功率,數據集中的采樣周期為6 s,其中也記錄了16 kHz的高頻數據,采集時間大致為1年~2.5年。
REFIT數據集[19]是英國的Stratitclyde大學于2015年發布,包含了來自英國拉夫堡地區20個家庭的總電源和9個子設備的有功功率測量,采樣周期為8 s,采集時間為兩年。
REDD數據集[20]于2011年發布,采集了6個美國家庭的總功率和子設備能耗數據,采樣頻率為1 Hz,其中還包含兩個房屋主電源的高頻數據。
DRED數據集[21]是荷蘭TUDelft大學發布的荷蘭一所房屋的電力數據,包含了房屋環境信息和電器設備能耗信息,采樣頻率為1 Hz,采集時間為6個月。
上述數據集的格式不統一,選擇通過NILMTK工具包[22]的解析器將其轉換為hdf5格式。
為了使最終的結果與其他文獻有可比性,選擇的電器分別為冰箱、電水壺、洗衣機、微波爐以及洗碗機。由于四種不同數據集的采樣頻率不同,使得跨數據集間的負荷激活提取以及訓練完成后的測試存在困難,采取的方法是對于采樣周期大于1 s的數據集,將窗口讀取到的輸入序列通過正向填充的方法預處理到1 s,然后返回到原來的采樣間隔,將得到的輸入序列數據減去激活設備的平均值,再除以標準差。該方法只作為一種數據標準化的處理手法并不會對原有數據中包含的負荷特征信息產生影響。針對各電器的工作周期不同,本文通過對窗口的大小進行多次微調,選擇出激活設備的序列長度,以及對應的平均功率值與標準差功率值,相關參數如表1所示。

表1 文中對每種電器設備使用的參數
因采集所采用的設備以及測量時激活或捕獲設備狀態存在不確定性,使得數據集中難免存在噪聲數據。噪聲占比過大會嚴重影響分解性能,因此,選取數據集中的可靠數據作為訓練數據十分重要。多數文獻采用能量比(Energy Ratio, ER)作為房屋數據集的評價指標,但評價結果較單一,文章引入了測試集比率(Test Set Ratio, TSR)和噪聲總比率(Noise to Aggregate Ratio, NAR)[25]兩種關于數據集的評價指標。
NAR的設定源于實際數據集中總功率信號所包含的未知設備及其他噪聲信號所引起的誤差項,為了量化有功功率信號的噪聲量,引入噪聲總比率,其定義為:
(7)
式中yt是總功率信號;xit為電器設備i(i=1,2,3,…,M)的功率信號;t為觀察到的時間幀的長度。
TSR用于描述能量時間序列的測試持續時間與總持續時間之間的比率,即有效采集時間與總時間的比率,定義為:
(8)
基于這兩種評價標準文中測試了所選4個測試集中所有的房屋數據,以一到兩個月為時間間隔對其進行評價,選取評分較高時間段的作為訓練和測試數據。另外,REDD數據集中House3中的數據只有40多天,不作為訓練集。所選數據集的相關評價如表2所示。

表2 所選數據集房屋的NAR和TSR評分
軟件平臺為Win10操作系統,Python3.7.3(64位)Tensorflow-gpu1.14.1、Keras,開發環境基于開源NILMTK工具包,編譯IDE為Jupyter與Spyder。
為了對所述模型全面評價,并方便與其它文獻的方法進行對比,文中選取了準確率(Accuracy)、精準度Precision、召回率Recall、F1分數(狀態預測)、平均絕對誤差(MAE)和均方根誤差(RMSE)六種評價指標。
(9)
(10)
(11)
(12)
(13)
(14)

基于上節所述評價指標,在4個數據集上做了大量測試,由于數據集和房屋數量大,其訓練和測試的組合方式也很多,文章主要以UK-DALE和REFIT兩個數據集作為訓練集,REFIT、REDD和DRED三個數據集作為測試集。所選訓練數據與測試數據如表3所示。

表3 所選訓練集和測試集
該實驗選取UK-DALE數據集House1,House2中三到四個月的電器數據作為訓練集,以REFIT數據集House2中的10天電器數據作為測試集。采用遷移學習在訓練集中進行預訓練,在目標域中對比三種算法在五種常用電器測試效果,并對文章模型功率分解結果進行可視化展示,如圖5所示。
可以看出文章關注的并不僅僅是各電器運行時短時間內預測的準確度,還包括未運行時長時間內預測情況。所提模型在電器未啟用的較長時間段,能夠較為準確地判斷出電器的開關狀態。針對冰箱,所提模型經過一個運行周期的適應,分解的預測值能夠穩定在真實值附近波動;對于洗衣機和水壺兩種設備,功率分解預測曲線與真實值曲線基本重合,且在其他關閉時間未有明顯波動;對于洗碗機而言雖出現誤差,但總體分解效果較好。由于微波爐是一種短時運行用電器,運行時間只有幾分鐘,測試選取的時間相比其他用電器跨度大,所以分解效果出現較大偏差。圖6為三種算法對五種電器功耗預測分解后的評價對比結果。


圖5 文章算法對各電器的跨域負荷分解結果



圖6 測試結果評價
由圖6中測試評價結果可以看出,所提跨域分解遷移學習模型在5種家用電器的負荷分解準確率均能達到92%以上,準確度和f1分數的得分比另外兩種模型均高,說明本模型的分解準確性和泛化性更具優勢。文章同樣在REDD與DRED數據集中進行大量對比測試,結果顯示文中模型在三種電器中均取得了較好的分解效果,尤其以對DRED數據集中的冰箱功耗分解測試中,分解準確率達到了90%較于DAE和Seq2Seq模型分別提高12%和36%,分解誤差則分別降低了42%和48%。
所提模型與文獻[16]提出的基于CNN網絡跨域分解模型進行對比,該模型不僅所選數據集覆蓋的地域范圍廣,并且在2019年歐洲NILM會議上與其他最新研究成果對比均取得較高的效果。選取REFIT作為訓練集,REDD中的House2作為測試集,與文獻[16]中評價指標一致。測試結果表明文中模型的網絡架構在很大程度上提高了負荷跨數據集分解的準確率,誤差也大幅度縮小,選取其中四種指標其結果如表4所示。

表4 文中模型與文獻模型結果對比
文章針對低頻數據,采用深度學習架構,提出了一種更具泛化性的跨域分解模型。
(1)采用滑窗算法實現對輸入序列分段,解決了深度學習模型不能輸入長序列的問題,并針對不同用電器設定了窗口大小;
(2)采用序列到點模型預測輸出序列窗口的中點值,減小了邊緣數據的影響;
(3)引入基于雙向LSTM網絡的Encoder-Decoder結構,能夠對信息有效提取與利用從而增大數據樣本預測正確的概率;
(4)采用基于模型遷移的學習方法實現不同數據集間的跨域分解,提高了網絡模型的泛化能力。
文章模型在多個評價指標上均取得較好的結果,證明了該模型在實現跨數據集預測的優越性以及更好的泛化性。