汪繁榮,向堃,吳鐵洲
(1.湖北工業(yè)大學 太陽能高效利用及儲能運行控制湖北省重點實驗室,武漢 430068;2.無錫風繁偉業(yè)科技有限公司,江蘇 無錫 214171)
非侵入式負荷監(jiān)測(Non-Intrusive Load Monitoring,NILM)由Hart提出[1],也稱為非侵入式負荷分解(Non-Intrusive Load Decomposition,NILD)。它通過在用戶用電系統(tǒng)入口處安裝監(jiān)測設備收集其用電負荷數(shù)據(jù)對用戶內(nèi)部用電負荷進行細分及能耗合理分配[2]。由于智能電表的普及和大數(shù)據(jù)技術的發(fā)展,NILD受到了更多關注。
特征選擇是NILD中的重要環(huán)節(jié),一般來說有暫態(tài)特征和穩(wěn)態(tài)特征兩種[3]。暫態(tài)特征主要是用電設備投切或狀態(tài)類別變換時的參數(shù)變化特征。文獻[4]利用小波分解提取暫態(tài)特征,并用深度置信網(wǎng)絡對其波形進行類別識別,有較好的辨識精度,但是其數(shù)據(jù)來自軟件模擬數(shù)據(jù),若用于實際中還需進一步檢驗。文獻[5]利用多尺度排列熵算法確定設備狀態(tài)變化區(qū)間提取設備暫態(tài)特征然后利用Yamamoto算法進行區(qū)間檢測,辨識用電設備啟停時刻實現(xiàn)負荷分解,該方法有較好的降噪和辨識效果。文獻[6]利用主成分分析法進行降維來構(gòu)造低維度的特征空間,之后通過KNN鄰近算法完成負荷分解。這類基于暫態(tài)特征的NILD方法對于收集數(shù)據(jù)的軟硬件設備要求較高,在實際運用中有一定的局限性。穩(wěn)態(tài)特征包括穩(wěn)態(tài)電壓、電流、有無功率等數(shù)據(jù)特征,隨著智能電表的普及與發(fā)展,圍繞穩(wěn)態(tài)特征的NILD方法層出不窮。由于深度學習在各個領域表現(xiàn)突出[7-8],所以近年來其在非侵入式負荷分解領域的應用也逐漸增多。文獻[9]利用深度學習的框架,提出了新的非侵入式負荷分解模型,其利用詞嵌入處理輸入數(shù)據(jù)然后利用單層雙向長短時記憶網(wǎng)絡和單層單向長短時記憶網(wǎng)絡分別編碼解碼,其中加入注意力機制,最終得到負荷分解序列,其分解效果明顯。文獻[10]將穩(wěn)態(tài)特征數(shù)據(jù)圖像化后進行辨識,利用局部平均分解法對輸入數(shù)據(jù)進行預處理然后基于卷積神經(jīng)網(wǎng)絡對家用電設備的負荷特征進行提取,最后經(jīng)過softmax層概率輸出分解結(jié)果。文獻[11]利用循環(huán)卷積神經(jīng)網(wǎng)絡模型對總功率進行負荷分解,在利用深度學習模型的時候沒有建立負荷特征集,導致精度、魯棒性下降。以上文章都建立了比較優(yōu)秀的深度學習應用模型,但大多數(shù)深度學習的非侵入式負荷分解方法忽略了對多個用電器同時運行情況下進行分解分析比較,其一是因為多個用電設備同時運行時會造成數(shù)據(jù)混疊難以分辨,其二是輸入數(shù)據(jù)復雜,難以精確辨識。
為解決辨識精度低,需要考慮多個用電設備同時工作等問題,本文利用深度學習的框架,提出一種基于改進k-means迭代聚類算法數(shù)據(jù)集結(jié)合序列到序列(sequence-to-sequence,seq2seq)的一維深層卷積神經(jīng)網(wǎng)絡的(One-Dimensional Deep Convolutional Neural Network,1-D-DCNN)非侵入式負荷分解方法(km++-1-D-DCNN),通過數(shù)據(jù)的訓練和測試,與再次建立的seq2seq單、多層,單、雙向長短時記憶(Long Short-Term Memory,LSTM、Bilateral Long Short-Term Memory,Bi-LSTM)網(wǎng)絡模型以及常用的廣義回歸神經(jīng)網(wǎng)絡(General Regression Neural Network,GRNN)模型、反向傳播神經(jīng)網(wǎng)絡(Back Propagation Neural Network,BPNN)模型進行對比,根據(jù)所有設備共同的狀態(tài)識別準確率以及單個設備各狀態(tài)識別準確率等評價指標驗證本文方法的有效性。
將深度學習模型應用于非侵入式負荷分解問題時,建立用于網(wǎng)絡訓練所需的用電設備負荷特征數(shù)據(jù)集是關鍵環(huán)節(jié)[12]。由于長時間采集用電設備負荷具有較大的實現(xiàn)難度,且種種原因?qū)е掠秒娯摵蓵嬖谡婵諈^(qū)間即沒有用電設備運行狀態(tài),因此,通過獲取典型用電設備短時間運行數(shù)據(jù)或?qū)㈤L時間數(shù)據(jù)進行截斷以提取負荷特征,然后生成大量設備訓練數(shù)據(jù)是目前一種較為理想可行的方法。
用電設備的不同運行狀態(tài)特征可以通過聚類方法對負荷數(shù)據(jù)進行挖掘得到。在聚類過程中,簇中心數(shù)目會影響聚類效果即影響用電設備運行狀態(tài)的提取,簇中心數(shù)目過少會造成聚類不徹底,部分近似質(zhì)點無法分開,導致用電設備提取不全;簇中心數(shù)目過多則會使用電設備運行狀態(tài)類別增加,甚至聚類過細產(chǎn)生用電設備實際所不存在的運行狀態(tài),進而增加分解算法的復雜度。本文在k-means聚類算法的基礎上利用k-means++算法進行簇中心初始化并引入輪廓值指標以篩選更加有效的聚類數(shù)目,然后迭代執(zhí)行避免結(jié)果陷入局部最優(yōu),最后使用新的初始簇中心位置尋求更為合理的聚類方案。輪廓值是該點與其自身聚類中的點的相似程度的度量。第i個點的輪廓值Ai定義為:
Ai=(bi-ai)/max(ai,bi)
(1)
式中ai是從第i個點到與i相同的簇集中其他點的平均距離;bi是從第i個點到不同簇集中的點的最小平均距離。輪廓值的范圍為-1到1。較高的輪廓值表示i與其自身的簇集完全匹配,若大多數(shù)點具有較高的輪廓值,則聚類結(jié)果是合適的。反之,則聚類結(jié)果不合適。k-means++算法使用啟發(fā)式方法尋找k-means聚類的質(zhì)心,改進了原k-means聚類算法中Lloyd[13]算法的運行時間和最終解質(zhì)量。
k-means++算法按如下方式選擇質(zhì)心,假設簇數(shù)為K[14]:
(1)從數(shù)據(jù)集X中隨機均勻選擇一個觀測值該值為第一個質(zhì)心c1;
(2)計算從每個觀測值到c1的距離,將cj和觀測值m之間的距離表示為d(xm,cj);
(3)從X中隨機選擇下一個質(zhì)心c2,概率為:
(2)
(4)選擇中心cj有以下操作:
1)計算從每個觀測值到每個質(zhì)心的距離,并將每個觀測值分配給其最近的質(zhì)心;
2)對于m=1,…,n和p=1,…,j-1,從X中隨機選擇質(zhì)心cj,概率為:
(3)
式中Cp是最接近質(zhì)心cp的所有觀測值的集合,而xm屬于Cp。也就是說,選擇每個后續(xù)中心時,其選擇概率與它到已選最近中心的距離成比例。
(5)重復步驟(4),直到選擇了K個質(zhì)心。
本文提出的改進迭代k-means聚類方法步驟如下:
1)給定數(shù)據(jù)集X,選擇K個初始簇中心(質(zhì)心),使用k-means++算法進行簇中心初始化;
2)計算所有觀測值到每個質(zhì)心的點到簇質(zhì)心的距離;
3)兩階段迭代更新:一階段批量更新,將每個觀測值分配給離質(zhì)心最近的簇。二階段在線更新,只要將觀測值重新分配給另一質(zhì)心可減少簇內(nèi)點到質(zhì)心距離平方和的總和,就對該觀測值執(zhí)行此分配;
4)計算每個簇中觀測值的平均值,以獲得K個新質(zhì)心位置;
5)重復步驟2)~步驟4),直到簇分配不變,或達到最大迭代次數(shù);
6)再次重復1)~步驟5),迭代n次,尋找距離總合最小的解。
本文使用文獻[15]數(shù)據(jù)集,該數(shù)據(jù)集包含21個家庭2013年10月到2015年5月的10種不同用電設備的單個負荷有功功率數(shù)據(jù)和總負荷有功功率數(shù)據(jù),采樣時間為8秒。因為有些家庭的數(shù)據(jù)不全,本文選取了2號家庭的冰箱、洗衣機、電視、水壺4個主要用電設備的有功功率數(shù)據(jù)。電視為小功率用電設備,水壺為大功率用電設備,冰箱為長時間工作設備,洗衣機為多狀態(tài)工作設備,這些設備能夠較好的驗證后文分解方法的性能。為了建立用電設備負荷特征集,首先對原始數(shù)據(jù)進行預處理,本文取各用電設備有功功率數(shù)據(jù)中前100萬個采樣點數(shù)據(jù)并將各個用電設備運行狀態(tài)的有功功率消耗數(shù)據(jù)提出且剔除相同時間的功率消耗數(shù)據(jù),設立提取參數(shù)以保證數(shù)據(jù)的有效性,表1展示了各用電設備參數(shù)。數(shù)據(jù)篩選后,為保證工作狀態(tài)和非工作狀態(tài)的區(qū)別,需將采樣點數(shù)量大于8萬點的用電設備數(shù)據(jù)序列隨機抽取8萬點,再用0補長序列長度到10萬點,反之若數(shù)據(jù)小于8萬點則直接將原序列用0補長至10萬點長度。
表1 主要用電設備提取參數(shù)及序列長度
數(shù)據(jù)篩選后,將采樣點數(shù)量大于8萬點的用電設備數(shù)據(jù)序列隨機抽取8萬點,再用0補長序列至10萬點長度,反之直接將原序列用0補長至10萬點長度。接下來利用本文所提出的聚類方法對各用電設備運行狀態(tài)進行提取建立負荷特征集,輸入數(shù)據(jù)為1維數(shù)據(jù),距離度量選用絕對差之和,重復聚類次數(shù)為100。各用電設備運行狀態(tài)聚類結(jié)果如表2所示。
表2 各設備運行狀態(tài)聚類結(jié)果
表中K為聚類數(shù)目,即用電設備運行狀態(tài)數(shù)量(包含不工作狀態(tài),即簇中心值為0),一般來說家用電器運行狀態(tài)不會超過6個,所以K取值最大為6。冰箱、電視和水壺均為2種運行狀態(tài),其輪廓值在K=2時也是最大的,洗衣機雖然在K=2時輪廓值最大但就實際運行情況來看其運行狀態(tài)不只2個,所以取次大值K=4為其最終結(jié)果。圖1展示了冰箱和洗衣機的聚類效果。冰箱的聚類效果較好,每個簇中輪廓值均較大且無負值點,洗衣機雖有負值點但數(shù)量較少,且其他簇分布良好。
圖1 冰箱和洗衣機聚類效果
深度學習已經(jīng)廣泛應用于多個領域,作為機器學習的一個重要分支,簡單來說其領域的多種算法就是深層的神經(jīng)網(wǎng)絡算法。卷積神經(jīng)網(wǎng)絡在圖像處理領域一直以來有出色的表現(xiàn),處理二維數(shù)據(jù)時具有很大優(yōu)勢[14]。就上一節(jié)建立的設備狀態(tài)特征數(shù)據(jù)集,本文將輸入的一維數(shù)據(jù)(總有功功率)進行增維擴增至4維矩陣作為模型的輸入,完成數(shù)據(jù)轉(zhuǎn)化,實質(zhì)上數(shù)值沒有改變,提出一種序列到序列的一維深層卷積神經(jīng)網(wǎng)絡模型進行負荷辨識,完成非侵入式負荷分解,分解模型流程如圖2所示。另外,在負荷分解的過程中,每個用電設備都有其時間特性或其它未知特性,所以本文還構(gòu)建了LSTM和Bi-LSTM網(wǎng)絡模型進行負荷辨識。
圖2 非侵入式負荷分解模型流程圖
卷積神經(jīng)網(wǎng)絡中包含卷積層、池化層、全連接層等基本功能層。各個層具有獨立的神經(jīng)元,不同層神經(jīng)元間相互連接,同層神經(jīng)元間無連接[16]。卷積層計算公式為:
(4)
(5)
(6)
(7)
(8)
圖3 卷積神經(jīng)網(wǎng)絡運算流程圖
圖4為深層卷積神經(jīng)網(wǎng)絡的層構(gòu)圖,本文在常用的卷積神經(jīng)網(wǎng)絡利用二維數(shù)據(jù)圖分類的基礎上,改進輸入層數(shù)據(jù)形式(本質(zhì)還是通過2維卷積來實現(xiàn)分類),達到1維時間序列輸入實現(xiàn)分類的目的,并加深網(wǎng)絡層數(shù)使其提取特征魯棒性更強,分類結(jié)果更加精確。一維深層神經(jīng)網(wǎng)絡的輸入是總有功功率序列轉(zhuǎn)化的4-D矩陣??傆泄β市蛄袨?×n行向量,將其重構(gòu)成1×1×1×n的矩陣,其中前兩維表示1×1像素,第3維1表示灰度顏色通道,第4維n表示序列長度。深層卷積網(wǎng)絡由輸入層、A類層、B類層、全連接層、softmax層和分類層組成,共47層。A類層一共10組40層,每組由2-D卷積層、批量歸一化層、Relu函數(shù)層以及最大池化層構(gòu)成,每層2-D卷積層過濾器數(shù)量分別為8/16/32/64/128/256/512/1024/2048/4096,大小均為1×1。B類層由2-D卷積層(過濾器數(shù)量為8 192,大小為1×1)、批量歸一化層和Relu函數(shù)層組成。為了使該模型辨識效果更好,在訓練模型時加入了更多的網(wǎng)絡參數(shù),為防止模型過度擬合加入了L2正則化因子[17],其值為0.000 5,使用具有動量的梯度隨機下降(SGDM)優(yōu)化器訓練網(wǎng)絡,動量大小為0.97,梯度閾值為0.5,最大迭代數(shù)為300,在每一代訓練時增加數(shù)據(jù)混淆,初始學習率為0.01,為了效果更佳設定學習率梯度下降,每過50代學習率在原有基礎上乘0.2。
圖4 深層卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)圖
LSTM是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(RNN),它解決了長依賴問題,在處理時間序列時有良好的表現(xiàn)[18-19]。隨著研究深入,根據(jù)雙向循環(huán)神經(jīng)網(wǎng)絡(Bi-RNN)特性,一種Bi-LSTM神經(jīng)網(wǎng)絡也被廣泛運用,其實現(xiàn)了信息雙向傳遞,在處理已知序列時,性能優(yōu)于單向LSTM神經(jīng)網(wǎng)絡[20-22]。
為了驗證文中所提方法的有效性,本文還建立了seq2seq的LSTM神經(jīng)網(wǎng)絡和seq2seq的Bi-LSTM神經(jīng)網(wǎng)絡模型。LSTM神經(jīng)網(wǎng)絡由序列輸入層、LSTM層、全連接層、dropout層(值為0.1)、softmax層以及分類層組成。網(wǎng)絡訓練參數(shù)設置如下,使用具有動量的梯度隨機下降(SGDM)優(yōu)化器訓練網(wǎng)絡,動量大小為0.97,L2正則化因子為0.000 5,梯度閾值為2,最大迭代數(shù)400,小批量訓練大小為500,初始學習率0.01,每過50代學習率在原有基礎上乘0.2。Bi-LSTM神經(jīng)網(wǎng)絡由序列輸入層、Bi-LSTM層、全連接層、dropout層(值為0.2)、softmax層以及分類層組成。網(wǎng)絡訓練參數(shù)設置如下,使用具有動量的梯度隨機下降(SGDM)優(yōu)化器訓練網(wǎng)絡,動量大小為0.97,L2正則化因子為0.000 5,梯度閾值為1,最大迭代數(shù)300,小批量訓練大小為500,初始學習率0.01,每過50代學習率在原有基礎上乘0.2。由于實驗測試得知增加LSTM層和Bi-LSTM層層數(shù)會導致辨識效果很差,所以不再建立更深的LSTM和Bi-LSTM神經(jīng)網(wǎng)絡。
本文將運用第1節(jié)已經(jīng)處理過的用電設備特征數(shù)據(jù)集結(jié)合第2節(jié)介紹的深度學習分類模型來完成非侵入式負荷分解。為驗證本文提出模型的性能,選取4種典型用電設備,根據(jù)家庭2的用電情況整理了12種設備用電狀態(tài),每種用電設備與其對應的運行狀態(tài)編碼方式如表3所示,其中冰箱、電視、水壺有2種狀態(tài)(2表示運行,1表示非運行),洗衣機有4種狀態(tài)(2~4為3個不同運行狀態(tài),1表示非運行)。網(wǎng)絡的訓練集一共12組12 000個采樣點,每組1 000個數(shù)據(jù),測試集與訓練集不重復,為10 000個采樣點數(shù)據(jù)序列,該序列具有時序性。網(wǎng)絡輸入為用電設備總有功功率序列,即1×1×1×120004-D矩陣,輸出為12個。
表3 用電設備運行編碼數(shù)據(jù)表
非侵入式負荷分解評價指標有很多,本文選取了6種評價指標:準確度、精確率、召回率、F分數(shù)、均方根誤差以及平均功率失真率。其計算方法如下:
(9)
(10)
(11)
(12)
(13)
(14)
式中QP為模型分解結(jié)果與實際結(jié)果相同的采樣點數(shù)量;N為測試采樣點總量;TP表示用電設備實際處于工作狀態(tài)且分解結(jié)果也處于工作狀態(tài)的點數(shù)量;FP表示用電設備實際處于工作狀態(tài)但分解結(jié)果處于非工作狀態(tài)的點數(shù)量;EP表示用電設備實際處于非工作狀態(tài)但模型分解結(jié)果處于工作狀態(tài)的點數(shù)量;x1…xn表示模型分解后擬合功率;x表示實際功率。P5表示單個用電設備分解后擬合總功率,P6表示單個用電設備實際總功率。
P1、P2、P3、F均為非侵入式負荷分解的基本評價指標,已被大多研究者研究到比較高的水平,RMSE能夠反映模型分解后擬合功率曲線的效果,其值受數(shù)值影響較大,但在比較相似數(shù)據(jù)時能夠展示擬合水平高低,其值越小表明擬合效果越好。各個模型的分解結(jié)果如表4所示(表中的準確度是指4種設備共同識別正確時的準確度)。
表4 各模型分解結(jié)果及耗時
整體來說深度學習模型較常用神經(jīng)網(wǎng)絡模型有更高的準確度和更低的均方根誤差,但耗時較高,深度學習模型中深層CNN模型表現(xiàn)最為出色,但是會消耗更多的時間,Bi-LSTM模型表現(xiàn)略好于LSTM模型,為了確保高準確率我們愿意花時間以訓練模型,由于常用神經(jīng)網(wǎng)絡模型的準確度和RMSE值不理想,所以后文不再對其進行討論。將各個模型分解之后的結(jié)果結(jié)合表2中的簇中心值對總有功功率進行重構(gòu)擬合,擬合效果如圖5所示,與前文所得結(jié)果一致,1-D-DCNN模型的擬合效果最佳,Bi-LSTM模型次之,LSTM效果一般。
圖5 各深度學習模型分解效果對比圖
單從擬合效果以及準確度還無法說明模型性能優(yōu)劣,表5展示了每種模型將總有功功率分解后得到每個用電設備狀態(tài)的準確度。由于部分用電設備各狀態(tài)功率相似且設備運行存在多個用電設備同時運行等情況,所以有些設備狀態(tài)類型沒有被很好地辨識出來,就各個設備狀態(tài)辨識效果來看深層CNN模型辨識效果更好,沒有未辨識出來的狀態(tài),Bi-LSTM效果次之,有2個狀態(tài)未辨識出來,LSTM效果最差有4個狀態(tài)未辨識出來。由于1-D-DCNN模型在多個方面都表現(xiàn)優(yōu)秀,對其進行更為細致的分析。1-D-DCNN模型分解結(jié)果各項評價指標如表6所示,將該模型的分解結(jié)果進行重構(gòu)擬合。圖6展示了1-D-DCNN模型分解各用電設備運行狀態(tài)效果。洗衣機、水壺各方面指標表現(xiàn)良好,冰箱、電視召回率稍低即出現(xiàn)了一些不該出現(xiàn)的設備狀態(tài),電視的平均功率失真率較高,表明功率較小的設備不易識別。
圖6 深層卷積神經(jīng)網(wǎng)絡分解結(jié)果與實際結(jié)果對比圖
表6 1-D-DCNN模型分解各評價指標數(shù)據(jù)
從單個用電設備的分解效果來看,該模型下有較好的非侵入式負荷辨識效果,雖然冰箱和電視的分解結(jié)果中出現(xiàn)了一些辨識錯誤的點位,這些點位可能處于多設備同時運行狀態(tài),由于當多設備運行時會造成總功率相似,但是其他時間段分解效果很好??傮w來說本文所提出的模型分解性能高于LSTM和Bi-LSTM以及一般神經(jīng)網(wǎng)絡模型,具有實際運用價值。
充分挖掘用電設備運行特征可以為用戶和供電公司帶來便利,本文轉(zhuǎn)換了傳統(tǒng)CNN模型輸入數(shù)據(jù)維度以及改變其深度建立了新的深度學習模型,與seq2seq LSTM以及seq2seq Bi-LSTM模型相比,seq2sqe 1-D-DCNN模型具有更高的辨識準確率。另外,在建立特征集時本文在傳統(tǒng)k-means算法的基礎上運用k-means++算法初始化簇中心,利用重復迭代聚類操作避免局部最小,并提出輪廓值指標以確定聚類數(shù)目,經(jīng)驗證本文所提KM++-1-D-DCNN方法具有較好的NILD效果。由于輸入數(shù)據(jù)僅為總有功功率,所以對硬件設備要求不會過高,具有一定的實用性。未來,還能進一步提升模型泛化性以及對數(shù)據(jù)集擴容至云數(shù)據(jù),計算更大的數(shù)據(jù)集提升辨識精度,同時隨著智能電表的發(fā)展,作為輸入因素的數(shù)據(jù)也可多維化。