董哲,陳玉梁,薛同來,邵若琦
(北方工業(yè)大學(xué),北京 100043)
有專家學(xué)者提出非侵入式負荷監(jiān)測[1-2],目的是將整體能耗分解為單個設(shè)備的能耗。由此可以通過幫助家庭了解具體單個設(shè)備的能耗情況,從而合理規(guī)劃家庭的整體能源使用[3-6],文獻[7]研究表明,分類信息可以幫助家庭減少多達5%~15%的能源消耗。除此以外,非侵入式負荷分解是配電網(wǎng)需求側(cè)精細化管理的關(guān)鍵技術(shù),同時也是人工智能技術(shù)在配電領(lǐng)域的重要應(yīng)用方向之一。相較于傳統(tǒng)的侵入式負荷分解,利用信號處理或人工智能等方法的非侵入式負荷分解成本更加低廉,也更加安全可靠。
NILM是從一個監(jiān)測的整體能耗中提取單個能耗信息,這屬于單通道盲源分離(a single-channel blind source separation,BSS)問題。通常人們可以從用電總負荷數(shù)據(jù)中識別出包含哪種具有豐富特征的用電設(shè)備,例如,冰箱的工作狀態(tài)(見圖1),但在分解過程中,還存在著一些不確定因素的干擾,包括采集功率數(shù)據(jù)中的噪聲,或多種相似工作狀態(tài),以及多個設(shè)備同時開啟或同時關(guān)閉的情況,所以僅憑經(jīng)驗來對負荷進行分解是很不可靠的。
圖1 冰箱的工作狀態(tài)
文獻[8-10]提出了加性階乘隱式馬爾可夫模型(AFHMM)是可以構(gòu)造NILM模型的自然方法,在此基礎(chǔ)上使用推理算法來預(yù)測設(shè)備信號,但效果并不理想。為了解決可識別性問題,文獻[11]提出加入數(shù)據(jù)的本地信息(例如,設(shè)備功率水平,開關(guān)狀態(tài)變化和持續(xù)時間),文獻[12]在模型中納入了全局信息(例如循環(huán)總數(shù)和總能耗)。但是,這些方法所需的標注需要手動提取,這使得這些方法難以應(yīng)用。因此,使用深度學(xué)習在訓(xùn)練過程中自動提取這些特征信息更為有效。
文獻[13]將深度學(xué)習方法應(yīng)用于NILM,文章中提出了三種深度學(xué)習方案,分別是卷積神經(jīng)網(wǎng)絡(luò)(CNN),長短期記憶網(wǎng)絡(luò)(LSTM)和堆疊式降噪自動編碼器,并在UK-DALE[14]數(shù)據(jù)集上驗證了深度學(xué)習方法應(yīng)用在NILM的。文獻[15]在提取單個負荷激活特征時,采用了具有兩層的雙向長短期記憶(LSTM)單元的遞歸神經(jīng)網(wǎng)絡(luò)架構(gòu),并在數(shù)據(jù)集(REDD)上測試了其模型[16]。這些方法學(xué)習具有相同時間戳的總負荷功率和單個負荷功率之間的非線性回歸,但是這些方法存在著分解功率滯后,變化速度較慢,沒有對于真實功率保持良好的跟蹤性的問題。
為此,本文采用深度學(xué)習框架,提出一種基于全局與滑動窗口結(jié)合的Attention機制的負荷分解的方法,利用文獻[17]發(fā)布的 REFIT數(shù)據(jù)集進行模型的訓(xùn)練與測試,并與文獻[13]提出的基于CNN 和長短時記憶模型 (Long Short Term Memory,LSTM)的模型進行對比,驗證本文所提模型的優(yōu)越性。
模型由6個部分組成,分別是輸入層、功率嵌入層、雙向LSTM組成的編碼層、Attention層、單向LSTM的解碼層、和輸出層(見圖2)。并加入Dropout等方法以解決可能出現(xiàn)的過擬合問題。
圖2 系統(tǒng)結(jié)構(gòu)框圖
低頻數(shù)據(jù)集采樣的總用電功率數(shù)據(jù)可能記錄了幾個月甚至幾年的時間,而一整天的采樣點就成千上萬條,模型的輸入長度是有限的且固定,所以對數(shù)據(jù)進行分段是必不可少的。對于m種用電負荷設(shè)定其輸入深度學(xué)習模型的長度分別為N1,N2…Nm。
(1)
相較于自然語言處理中的詞嵌入,通過捕捉不同的語言信息或依靠語法語義以及相似度的方法來構(gòu)造詞嵌入矩陣,本文采用均勻分布的初始化矩陣作為功率嵌入矩陣E=[v_s×e_s],v_s的大小取決于可能出現(xiàn)的總功率最大值,若取值不夠大則可能會導(dǎo)致某些功率值沒有對應(yīng)映射向量的情況。e_s為單類功率值經(jīng)由功率嵌入矩陣映射后的序列長度。
(2)
從功率序列到功率矩陣的映射保證了功率與高維向量的對應(yīng)關(guān)系,有利于編碼器抽取功率序列的時序信息,且可以有效降低深度學(xué)習模型的運算量以及提高分解功率的準確性。
序列到序列(sequence to sequence,Seq2seq)是一種編碼-解碼(encoder-decoder)結(jié)構(gòu)的模型,模型結(jié)構(gòu)如圖3所示,其中,Encoder部分是將輸入的序列壓縮成指定長度的向量,稱其為向量C,Decoder部分負責將向量C解碼成輸出序列。
圖3 Seq2seq模型
但隨著輸入序列長度的增加,編碼器難以將所有輸入信息編碼為單一向量,編碼信息缺失,難以完成高質(zhì)量的解碼。Bahdanau attention是一種加性Attention機制,如圖4所示,將Decoder的隱藏狀態(tài)和Encoder所有位置輸出通過線性組合對齊,并計算相關(guān)權(quán)重得到向量C,進而保證用于解碼的信息的完整性。
(3)
將每一時刻的ai與前一時刻解碼層的隱藏狀態(tài)st-1拼接,然后將其輸入到全連接層并采用Softmax激活函數(shù)得到對于當前時刻的權(quán)重,計算公式如下:
et,i=Softmax(tanh(st-1Wdecoder+XWencoder)Wdense)
(4)
(5)
在解碼過程中,在時間步t時,將語義向量C、前一時刻的隱藏狀態(tài)st-1和輸出yt-1作為輸入,計算公式如下:
st=f(C,st-1,yt-1),t=1,2,…,Nm
(6)
再得到從d1到dNm的分解功率概率分布序列:
dt=g(st),t=1,2,…,Nm
(7)
式中g(shù)為從隱藏狀態(tài)st到dt=[v_s*1]的分解功率概率密度分布的映射函數(shù)。由功率嵌入可得,v_s代表可能出現(xiàn)的總功率大值,那么dt即為分解功率在各個整數(shù)功率值的概率密度分布,選取其中概率大的功率值作為t時刻分解功率輸出yt。
yt=ArgMax(dt)
(8)
Attention的計算方法時間和空間復(fù)雜度都是O(n2),這使得難以在長序列上進行訓(xùn)練。比如洗衣機,洗碗機等電器負荷激活時間一般較長,在訓(xùn)練模型的時候會有較大的計算量。因此本文采用全局注意力機制結(jié)合滑動窗口注意力機制(GSWA,global+sliding window attention)的方法來降低模型的運算量。
1.3.1 滑動窗口注意力機制
局部注意力機制(local attention)是一種介于soft attention和hard attention之間的一種attention方式,可以將注意力定位在關(guān)鍵數(shù)據(jù)附近,進而減少attention機制的運算量。local attention首先會為decoder端當前的詞,預(yù)測一個Encoder端對齊位置(aligned position)pt,然后基于pt選擇一個窗口,用于計算向量C。其中位置向量pt預(yù)測的準確率直接影響到最終結(jié)果。然而在功率預(yù)測模型中,輸入和輸出是在相同時間戳下的總負荷功率和單負荷功率,其中位置向量pt就是當前t時刻的位置,故采用滑動窗口注意力機制(SWA,sliding window attention)可以在保證結(jié)果準確率的情況下提升attention 機制的運算效率。選擇滑動窗口的范圍(見圖5)。
圖5 滑動窗口的選取
計算公式如下:
(9)
1.3.2 空洞滑動窗口注意力機制
為了進一步增加提取特征的范圍而不增加計算量,可以將滑動窗口“擴大”。本文在滑動窗口上加入空洞以此來增加提取功率變化特征的范圍,即空洞滑動窗口注意力機制(DSWA,dilated sliding window attention),類似于空洞卷積神經(jīng)網(wǎng)絡(luò)(dilated/atrous convolution)[18-20],是在標準的卷積層(convolution map)里注入空洞,以此來增加感受野(reception field)。相比原來的正常卷積層,dilated convolution 多了一個超參數(shù),稱之為空洞率,指的是卷積核之間的間隔數(shù)量。本文在滑動窗口上加入擴張大小為d=1的間隙,窗口范圍選擇計算公式如下:
(10)
式中在范圍內(nèi)每個點相隔d個點,則每一層注意力區(qū)域約為d×w,即使d的值很小,也可以讓提取信息的區(qū)域成倍增加。
1.3.3 全局與滑動窗口結(jié)合的注意力機制
DSWA相較于SWA雖然擴大了信息提取的區(qū)域,但不夠靈活,空洞的加入也可能會漏掉功率變化的特征信息。因此,本文提出全局注意力機制與滑動窗口注意力機制相結(jié)合的方法,對功率輸入序列進行處理,在功率值變化較大的地方加上標簽,標簽處采用全局注意力機制(global Attention)用于更好的關(guān)注功率序列的整體信息。其中標簽的數(shù)量與電器的工作狀態(tài)有關(guān),而與輸入序列的長度無關(guān),故全局和滑動窗口組合的注意力機制在計算復(fù)雜度上仍為O(Nm)。
由于本文模型將分解功率的值回歸問題轉(zhuǎn)換為了求取功率分解值在各個離散整數(shù)功率值下概率的多分類問題,故采用多分類交叉熵作為模型的損失函數(shù),其定義如下:
(11)
式中Nm是單個用電負荷序列長度;v_s代表總負荷功率可能出現(xiàn)的類數(shù);yt,i為t時刻真實功率為j的概率,該概率僅在j與t時刻真實功率相等時為 1,其余時刻為 0;ft,i(x) 為t時刻模型輸出分解功率為j的概率。
本文選取了文獻[17]于2015 年發(fā)布的REFIT (Cleaned)數(shù)據(jù)集進行模型的訓(xùn)練與測試,其中包含20戶家庭的單個負荷有功功率及家庭總負荷有功功率信息,有功功率的采樣間隔為8 s。數(shù)據(jù)集的采集時間跨度從2013年持續(xù)到2015年,并對其中的數(shù)據(jù)進行了清洗:對于重復(fù)的時間戳進行合并,單個設(shè)備出現(xiàn)超過4 000 W的功率置零,對于缺失的數(shù)據(jù)進行填充。
本文選取冰箱、熱水壺、微波爐、洗衣機及洗碗機這5種常見用電器作為研究對象(見表1)。這5種用電器具有不同的工作狀態(tài),其中冰箱是周期性運行用電器,熱水壺是大功率用電器,微波爐運行時間短且功率變化頻率高,洗衣機和洗碗機是的長時間多狀態(tài)用電器,可以全面驗證本文所提模型的負荷分解性能。
表1 電器數(shù)據(jù)選擇
根據(jù)每種用電電器的實際工作狀態(tài),從數(shù)據(jù)集中提取它們在運行時的功率數(shù)據(jù),稱為提取負荷激活特征,負荷激活特征參數(shù)與數(shù)量如表2所示。
表2 負荷激活特征提取的參數(shù)
在提取負荷激活特征后,構(gòu)造訓(xùn)練數(shù)據(jù)集。在本文模型中,每種負荷模型的輸入為固定長度的序列,其輸入的序列長度如表2所示。對于5種用電器,分別按照下列步驟構(gòu)造其對應(yīng)訓(xùn)練數(shù)據(jù):
1)根據(jù)該用電器模型的輸入序列長度Nm創(chuàng)建兩個全零序列,一個用作存儲輸入的總用電功率,一個用作存儲模型輸出的單負荷功率;
2)在50%概率下,從該用電器的負荷激活特征中隨機選取,即某次運行階段的功率消耗數(shù)據(jù),并在保證該段負荷激活可以完全放入序列的前提下,隨機選取起點將放入序列中;在另外50%概率下,保持全零序列不變;
3)將其它四個用電器作為干擾電器,均以25%的概率隨機選取一次負荷激活(無需保證序列的完整),隨機選擇起點放入序列中。
根據(jù)實際多種用電器同時工作的情況,調(diào)整訓(xùn)練集中干擾電器的選取概率,使得模型更符合實際的負荷分解情境。本文對于每種電器構(gòu)造400萬條數(shù)據(jù)用作訓(xùn)練數(shù)據(jù)集。
本文選擇準確率、召回率、F1值、平均絕對誤差作為評價模型的指標,計算方法如下:
(12)
式中Precision為準確率;Recll為召回率;F1代表F1分數(shù),又稱平衡F分數(shù);TP表示用電器實際處于工作狀態(tài)且模型分解結(jié)果也為工作狀態(tài)的序列點總數(shù);FP表示用電器實際處于工作狀態(tài)但模型分解結(jié)果為非工作狀態(tài)的序列點總數(shù);FN表示用電器實際未工作但模型分解結(jié)果為在工作狀態(tài)的序列點總數(shù);yt為時刻用電器真實功率;ft(x)為t時刻模型分解功率,MAE為時間段T0到T1內(nèi)功率分解值的平均絕對誤差。Precision反映了模型預(yù)測用電器處于工作狀態(tài)的精確度;Recall代表著正確召回用電器處于工作狀態(tài)的概率;F1分數(shù)綜合Precision和Recall反映模型判斷用電器是否處于工作狀態(tài)的準確度,是負荷分解的基本指標,前人的研究已經(jīng)將其做到了較高的水平。MAE可以反映模型每時刻分解功率值的準確性,其值越低,則功率分解值的準確性越高。
總功率經(jīng)模型預(yù)測輸出的分解功率與真實功率如圖6所示,對于功率的跟蹤效果比較好,僅在起始點與終止點的定位有所偏差,故分解功率值仍是非常高的。這也說明對于不同工作狀態(tài)的電器具有良好的負荷分解能力。
圖6 各電器真實功率與模型分解功率對比
選取文獻[13]所提出的LSTM模型與本文模型做訓(xùn)練時間上的對比,如表3所示,可以看出本文模型可以大幅度降低模型的訓(xùn)練時間測試結(jié)果總體如圖7所示。
表3 模型訓(xùn)練耗時
圖7 測試結(jié)果
本文與文獻[13]所提出的LSTM模型對比,準確率上有著較大的提高,可見本文所提模型對于多種工作狀態(tài)的電器均有著優(yōu)秀的建模能力。從滑動窗口,空洞滑動窗口,全局與滑動窗口結(jié)合的三種注意力機制來看,雖均有著較好的提升,但在全局與滑動窗口相結(jié)合的注意力機制更能全面而有效的提取長序列信息。
本文采用基于GSWA和Seq2seq的非侵入式負荷分解模型。該模型對Attention機制進行改善,將解碼集中注意在與當前時刻相關(guān)度最高的編碼層隱藏狀態(tài),在大幅提高模型分解功率準確值的同時,降低了模型計算量,加快了訓(xùn)練網(wǎng)絡(luò)的速率。本文模型在準確率,召回率,F1值等指標上較前人均有提升,并顯著降低訓(xùn)練時間。未來在對于提升網(wǎng)絡(luò)的泛化能力以及對于小功率噪聲的處理能力上開展研究。