張碩, 周小林, 張宇, 唐鈞
(復(fù)旦大學(xué), 信息科學(xué)與工程學(xué)院, 上海 200433)
近年來,由于人口的不斷增長和科技的飛速發(fā)展,建筑能耗總量及其比重持續(xù)上升,其中,住宅能耗占建筑能耗總量的四分之三[1]。住宅能耗主要來自居民家用電器。隨著社會對電力系統(tǒng)運行的安全性、穩(wěn)定性以及經(jīng)濟性要求的不斷提高,用電量預(yù)測的重要性也日益突出。然而,住宅用電量具有明顯的趨勢性、季節(jié)性和隨機性,而且還與居民的日常生活和工作規(guī)律相關(guān),再加上數(shù)據(jù)采集時可能出現(xiàn)異常、缺失、冗雜等影響,準(zhǔn)確地對其進行預(yù)測并非易事。
利用傳統(tǒng)的ARMA、ARIMA等統(tǒng)計方法對用電量進行預(yù)測已越來越不能滿足實際應(yīng)用的需求。KNN、隨機森林、SVM等多種傳統(tǒng)的機器學(xué)習(xí)方法也只能提取較淺層的特征,且缺少對時間序列的分析。近幾年,隨著CNN和LSTM算法分別在圖像識別和語音識別等方面取得的巨大成功,它們的應(yīng)用范圍也越來越廣泛。許多研究者也開始將這兩種模型相結(jié)合應(yīng)用在建筑能耗預(yù)測領(lǐng)域中[2-5]。
鑒于CNN強大的數(shù)據(jù)特征提取能力以及LSTM出色的時間序列分析能力,本文將其結(jié)合,并應(yīng)用于可以處理變長序列的編碼器-解碼器結(jié)構(gòu)中,提出了一種基于CNN編碼—LSTM解碼混合神經(jīng)網(wǎng)絡(luò)的住宅用電量預(yù)測模型(以下簡稱CE—LD模型)。CNN編碼器用于提取特征變量之間的關(guān)系,并將其編碼為定長矢量。LSTM解碼器用于對時間序列進行建模分析,并解碼定長矢量為變長序列。最后,通過實例分析,將該模型與其他競爭基準(zhǔn)模型進行對比,結(jié)果表明,CE—LD模型具有更高的準(zhǔn)確性和有效性。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)的基本結(jié)構(gòu)包括卷積層、池化層和全連接層。卷積層的主要功能是通過卷積單元進行卷積運算提取不同的輸入特征。池化層的功能是對輸入變量進行二次采樣,將卷積層得到的特征的維度降低,以防止出現(xiàn)過擬合的現(xiàn)象。全連接層可以將卷積層或池化層提取的局部特征整合成全局特征。
長短期記憶網(wǎng)絡(luò)(LSTM)能夠?qū)W習(xí)長期依賴關(guān)系,有效解決RNN中存在的梯度消失問題。它增加了一個記憶細胞,細胞主要由遺忘門、輸入門和輸出門構(gòu)成,如圖1所示。遺忘門用于控制丟棄或保留多少前一時刻記憶細胞中的信息,輸入門用于控制當(dāng)前時刻多少信息能被輸入和保存到記憶細胞中,輸出門用于控制記憶細胞中哪些信息會在當(dāng)前時刻輸出。

圖1 LSTM結(jié)構(gòu)示意圖
編碼器—解碼器(Encoder—Decoder)是一類模型框架,并非特指某一種具體的算法。在這個框架下,輸入和輸出的內(nèi)容可以是任意的文字、語音、圖像、視頻數(shù)據(jù)等,所以可以使用各種不同的算法來解決不同的任務(wù)。它主要應(yīng)用于序列到序列(seq2seq)問題的求解。如圖2所示,由一個編碼器將輸入序列轉(zhuǎn)化成一個定長矢量C,再由一個解碼器將定長矢量C轉(zhuǎn)化成輸出序列。

圖2 編碼器-解碼器框架圖
本文提出的利用CNN編碼—LSTM解碼(CE—LD)模型預(yù)測住宅用電量的流程如圖3所示,可分為以下三個步驟。

圖3 CE—LD模型流程圖
(1) 數(shù)據(jù)預(yù)處理:先進行缺失值填補,然后劃分訓(xùn)練集與測試集。
(2) 模型訓(xùn)練:將訓(xùn)練集的數(shù)據(jù)輸入模型進行訓(xùn)練。CNN編碼器用于提取特征變量之間的關(guān)系,并將其編碼為定長矢量。LSTM解碼器用于對數(shù)據(jù)進行時間序列的建模分析,并解碼定長矢量為變長序列,最后通過兩個全連接層輸出預(yù)測數(shù)據(jù)。
(3) 結(jié)果評估:將訓(xùn)練好的模型在測試集上進行預(yù)測,使用性能評估指標(biāo)對預(yù)測值和真實值的擬合度進行度量。
為驗證所提出模型的準(zhǔn)確性和有效性,本文采用法國巴黎某家庭2006年12月16日至2010年11月26日采集的數(shù)據(jù)集進行分析。該數(shù)據(jù)集是一個多變量時間序列數(shù)據(jù)集,采樣速率為1分鐘,總共2 075 259條數(shù)據(jù)。
1) 缺失值填補
原數(shù)據(jù)集中存在兩種數(shù)據(jù)缺失情況。一種為數(shù)據(jù)在某一時刻或短時間內(nèi)存在缺失(缺失時間不超過1小時),另一種為數(shù)據(jù)在某一很長的時間段內(nèi)連續(xù)缺失(缺失時間長達1~5天)。
針對第一種情況,由于在短時間內(nèi),用電量具有一定的趨勢性,可以近似為一條直線,所以我們可以用缺失值之前最后—個和其后第一個有效值的線性內(nèi)插值進行填補。
但上述方法并不適用于第二種情況,因為這樣會導(dǎo)致用電量曲線長時間保持為一條特定的直線,與實際情況不符。而對于一個普通家庭來說,不考慮節(jié)假日、住戶生病等特殊情況的影響,每周同一天的用電量曲線基本會保持較高的相似度,所以我們可以用缺失值的上周同一時刻的數(shù)據(jù)進行填補。
2) 劃分訓(xùn)練集與測試集
本文將前3年的數(shù)據(jù)作為訓(xùn)練集,剩下的作為測試集。
本實驗程序使用Python編寫,基于Keras深度學(xué)習(xí)工具的TensorFlow框架來搭建模型,訓(xùn)練過程中使用“Relu”作為激活函數(shù),均方誤差(MSE)作為損失函數(shù),優(yōu)化算法optimizer為Adam算法,評價指標(biāo)metrics為平均絕對誤差(MAE)。如圖3所示,CNN編碼器由兩組卷積-池化層和一層平坦層組成,卷積核數(shù)目依次設(shè)為64和32。LSTM解碼器由兩層LSTM網(wǎng)絡(luò)層組成,各層神經(jīng)元數(shù)量依次為64和128。由于LSTM解碼器的輸入是時序數(shù)據(jù),即有多個時間步,而CNN編碼器只輸出一個定長矢量,和LSTM的輸入要求不匹配,所以我們使用RepeatVector函數(shù)作為適配器,將輸入重復(fù)n次,這樣就可以簡單地將CNN編碼器固定的輸出與LSTM解碼器期望的輸入相匹配。此外,我們在最后一個全連接層之前使用Dropout方法隨機地在神經(jīng)網(wǎng)絡(luò)中放棄20%的神經(jīng)元,以降低模型過擬合的風(fēng)險[6]。
本文使用了4種常見的性能評估指標(biāo):均方誤差(MSE)、均方根誤差(RMSE)、平均絕對誤差(MAE)和平均相對誤差(MAPE)對預(yù)測值和真實值的擬合度進行度量。它們的數(shù)學(xué)公式在式(1)~式(4)中給出。
(1)
(2)
(3)
(4)

圖4為CE—LD模型的預(yù)測曲線圖。從圖中我們可以看出,CE—LD模型的預(yù)測結(jié)果精度較高,與實際曲線變化趨勢基本一致。

圖4 CE-LD模型的用電量預(yù)測結(jié)果
此外,我們在原數(shù)據(jù)集以每分鐘采樣的基礎(chǔ)上,又按每時、每日、每周等不同時間單位進行重采樣,并且與其他適用于同一數(shù)據(jù)集的競爭基準(zhǔn)模型[2-5]進行了比較,以驗證CE—LD模型在不同時間分辨率下的性能。表1~表4總結(jié)了不同時間分辨率下各種競爭基準(zhǔn)的性能評估指標(biāo)。結(jié)果表明,不論在何種時間分辨率下,不論是哪種性能評估指標(biāo),我們所提出的CE—LD模型的預(yù)測誤差均明顯小于其他模型,各項指標(biāo)均有大幅度下降,MAPE在每分、每時、每日、每周分別為4.82%、2.67%、3.66%、6.08%,預(yù)測精度極大提高。

表1 每分分辨率下不同模型的性能比較

表2 每時分辨率下不同模型的性能比較

表3 每日分辨率下不同模型的性能比較

表4 每周分辨率下不同模型的性能比較
本文提出了一種基于CNN編碼—LSTM解碼混合神經(jīng)網(wǎng)絡(luò)(CE—LD)的住宅用電量預(yù)測模型。CE—LD模型充分利用了CNN強大的特征提取能力和LSTM出色的時間序列分析能力以及編碼器—解碼器結(jié)構(gòu)獨特的變長序列處理能力,具有更強的泛化能力和更高的預(yù)測精度。實驗結(jié)果表明,與其他競爭基準(zhǔn)模型相比,CE—LD模型不依賴于時間分辨率,任意一種性能評估指標(biāo)的比較都表明該模型的預(yù)測誤差最小,證明了其有效性和優(yōu)越性。