張碩, 周小林, 張宇, 唐鈞
(復(fù)旦大學(xué), 信息科學(xué)與工程學(xué)院, 上海 200433)
近年來(lái),由于人口的不斷增長(zhǎng)和科技的飛速發(fā)展,建筑能耗總量及其比重持續(xù)上升,其中,住宅能耗占建筑能耗總量的四分之三[1]。住宅能耗主要來(lái)自居民家用電器。隨著社會(huì)對(duì)電力系統(tǒng)運(yùn)行的安全性、穩(wěn)定性以及經(jīng)濟(jì)性要求的不斷提高,用電量預(yù)測(cè)的重要性也日益突出。然而,住宅用電量具有明顯的趨勢(shì)性、季節(jié)性和隨機(jī)性,而且還與居民的日常生活和工作規(guī)律相關(guān),再加上數(shù)據(jù)采集時(shí)可能出現(xiàn)異常、缺失、冗雜等影響,準(zhǔn)確地對(duì)其進(jìn)行預(yù)測(cè)并非易事。
利用傳統(tǒng)的ARMA、ARIMA等統(tǒng)計(jì)方法對(duì)用電量進(jìn)行預(yù)測(cè)已越來(lái)越不能滿足實(shí)際應(yīng)用的需求。KNN、隨機(jī)森林、SVM等多種傳統(tǒng)的機(jī)器學(xué)習(xí)方法也只能提取較淺層的特征,且缺少對(duì)時(shí)間序列的分析。近幾年,隨著CNN和LSTM算法分別在圖像識(shí)別和語(yǔ)音識(shí)別等方面取得的巨大成功,它們的應(yīng)用范圍也越來(lái)越廣泛。許多研究者也開(kāi)始將這兩種模型相結(jié)合應(yīng)用在建筑能耗預(yù)測(cè)領(lǐng)域中[2-5]。
鑒于CNN強(qiáng)大的數(shù)據(jù)特征提取能力以及LSTM出色的時(shí)間序列分析能力,本文將其結(jié)合,并應(yīng)用于可以處理變長(zhǎng)序列的編碼器-解碼器結(jié)構(gòu)中,提出了一種基于CNN編碼—LSTM解碼混合神經(jīng)網(wǎng)絡(luò)的住宅用電量預(yù)測(cè)模型(以下簡(jiǎn)稱CE—LD模型)。CNN編碼器用于提取特征變量之間的關(guān)系,并將其編碼為定長(zhǎng)矢量。LSTM解碼器用于對(duì)時(shí)間序列進(jìn)行建模分析,并解碼定長(zhǎng)矢量為變長(zhǎng)序列。最后,通過(guò)實(shí)例分析,將該模型與其他競(jìng)爭(zhēng)基準(zhǔn)模型進(jìn)行對(duì)比,結(jié)果表明,CE—LD模型具有更高的準(zhǔn)確性和有效性。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)的基本結(jié)構(gòu)包括卷積層、池化層和全連接層。卷積層的主要功能是通過(guò)卷積單元進(jìn)行卷積運(yùn)算提取不同的輸入特征。池化層的功能是對(duì)輸入變量進(jìn)行二次采樣,將卷積層得到的特征的維度降低,以防止出現(xiàn)過(guò)擬合的現(xiàn)象。全連接層可以將卷積層或池化層提取的局部特征整合成全局特征。
長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)能夠?qū)W習(xí)長(zhǎng)期依賴關(guān)系,有效解決RNN中存在的梯度消失問(wèn)題。它增加了一個(gè)記憶細(xì)胞,細(xì)胞主要由遺忘門、輸入門和輸出門構(gòu)成,如圖1所示。遺忘門用于控制丟棄或保留多少前一時(shí)刻記憶細(xì)胞中的信息,輸入門用于控制當(dāng)前時(shí)刻多少信息能被輸入和保存到記憶細(xì)胞中,輸出門用于控制記憶細(xì)胞中哪些信息會(huì)在當(dāng)前時(shí)刻輸出。
圖1 LSTM結(jié)構(gòu)示意圖
編碼器—解碼器(Encoder—Decoder)是一類模型框架,并非特指某一種具體的算法。在這個(gè)框架下,輸入和輸出的內(nèi)容可以是任意的文字、語(yǔ)音、圖像、視頻數(shù)據(jù)等,所以可以使用各種不同的算法來(lái)解決不同的任務(wù)。它主要應(yīng)用于序列到序列(seq2seq)問(wèn)題的求解。如圖2所示,由一個(gè)編碼器將輸入序列轉(zhuǎn)化成一個(gè)定長(zhǎng)矢量C,再由一個(gè)解碼器將定長(zhǎng)矢量C轉(zhuǎn)化成輸出序列。
圖2 編碼器-解碼器框架圖
本文提出的利用CNN編碼—LSTM解碼(CE—LD)模型預(yù)測(cè)住宅用電量的流程如圖3所示,可分為以下三個(gè)步驟。
圖3 CE—LD模型流程圖
(1) 數(shù)據(jù)預(yù)處理:先進(jìn)行缺失值填補(bǔ),然后劃分訓(xùn)練集與測(cè)試集。
(2) 模型訓(xùn)練:將訓(xùn)練集的數(shù)據(jù)輸入模型進(jìn)行訓(xùn)練。CNN編碼器用于提取特征變量之間的關(guān)系,并將其編碼為定長(zhǎng)矢量。LSTM解碼器用于對(duì)數(shù)據(jù)進(jìn)行時(shí)間序列的建模分析,并解碼定長(zhǎng)矢量為變長(zhǎng)序列,最后通過(guò)兩個(gè)全連接層輸出預(yù)測(cè)數(shù)據(jù)。
(3) 結(jié)果評(píng)估:將訓(xùn)練好的模型在測(cè)試集上進(jìn)行預(yù)測(cè),使用性能評(píng)估指標(biāo)對(duì)預(yù)測(cè)值和真實(shí)值的擬合度進(jìn)行度量。
為驗(yàn)證所提出模型的準(zhǔn)確性和有效性,本文采用法國(guó)巴黎某家庭2006年12月16日至2010年11月26日采集的數(shù)據(jù)集進(jìn)行分析。該數(shù)據(jù)集是一個(gè)多變量時(shí)間序列數(shù)據(jù)集,采樣速率為1分鐘,總共2 075 259條數(shù)據(jù)。
1) 缺失值填補(bǔ)
原數(shù)據(jù)集中存在兩種數(shù)據(jù)缺失情況。一種為數(shù)據(jù)在某一時(shí)刻或短時(shí)間內(nèi)存在缺失(缺失時(shí)間不超過(guò)1小時(shí)),另一種為數(shù)據(jù)在某一很長(zhǎng)的時(shí)間段內(nèi)連續(xù)缺失(缺失時(shí)間長(zhǎng)達(dá)1~5天)。
針對(duì)第一種情況,由于在短時(shí)間內(nèi),用電量具有一定的趨勢(shì)性,可以近似為一條直線,所以我們可以用缺失值之前最后—個(gè)和其后第一個(gè)有效值的線性內(nèi)插值進(jìn)行填補(bǔ)。
但上述方法并不適用于第二種情況,因?yàn)檫@樣會(huì)導(dǎo)致用電量曲線長(zhǎng)時(shí)間保持為一條特定的直線,與實(shí)際情況不符。而對(duì)于一個(gè)普通家庭來(lái)說(shuō),不考慮節(jié)假日、住戶生病等特殊情況的影響,每周同一天的用電量曲線基本會(huì)保持較高的相似度,所以我們可以用缺失值的上周同一時(shí)刻的數(shù)據(jù)進(jìn)行填補(bǔ)。
2) 劃分訓(xùn)練集與測(cè)試集
本文將前3年的數(shù)據(jù)作為訓(xùn)練集,剩下的作為測(cè)試集。
本實(shí)驗(yàn)程序使用Python編寫,基于Keras深度學(xué)習(xí)工具的TensorFlow框架來(lái)搭建模型,訓(xùn)練過(guò)程中使用“Relu”作為激活函數(shù),均方誤差(MSE)作為損失函數(shù),優(yōu)化算法optimizer為Adam算法,評(píng)價(jià)指標(biāo)metrics為平均絕對(duì)誤差(MAE)。如圖3所示,CNN編碼器由兩組卷積-池化層和一層平坦層組成,卷積核數(shù)目依次設(shè)為64和32。LSTM解碼器由兩層LSTM網(wǎng)絡(luò)層組成,各層神經(jīng)元數(shù)量依次為64和128。由于LSTM解碼器的輸入是時(shí)序數(shù)據(jù),即有多個(gè)時(shí)間步,而CNN編碼器只輸出一個(gè)定長(zhǎng)矢量,和LSTM的輸入要求不匹配,所以我們使用RepeatVector函數(shù)作為適配器,將輸入重復(fù)n次,這樣就可以簡(jiǎn)單地將CNN編碼器固定的輸出與LSTM解碼器期望的輸入相匹配。此外,我們?cè)谧詈笠粋€(gè)全連接層之前使用Dropout方法隨機(jī)地在神經(jīng)網(wǎng)絡(luò)中放棄20%的神經(jīng)元,以降低模型過(guò)擬合的風(fēng)險(xiǎn)[6]。
本文使用了4種常見(jiàn)的性能評(píng)估指標(biāo):均方誤差(MSE)、均方根誤差(RMSE)、平均絕對(duì)誤差(MAE)和平均相對(duì)誤差(MAPE)對(duì)預(yù)測(cè)值和真實(shí)值的擬合度進(jìn)行度量。它們的數(shù)學(xué)公式在式(1)~式(4)中給出。
(1)
(2)
(3)
(4)
圖4為CE—LD模型的預(yù)測(cè)曲線圖。從圖中我們可以看出,CE—LD模型的預(yù)測(cè)結(jié)果精度較高,與實(shí)際曲線變化趨勢(shì)基本一致。
圖4 CE-LD模型的用電量預(yù)測(cè)結(jié)果
此外,我們?cè)谠瓟?shù)據(jù)集以每分鐘采樣的基礎(chǔ)上,又按每時(shí)、每日、每周等不同時(shí)間單位進(jìn)行重采樣,并且與其他適用于同一數(shù)據(jù)集的競(jìng)爭(zhēng)基準(zhǔn)模型[2-5]進(jìn)行了比較,以驗(yàn)證CE—LD模型在不同時(shí)間分辨率下的性能。表1~表4總結(jié)了不同時(shí)間分辨率下各種競(jìng)爭(zhēng)基準(zhǔn)的性能評(píng)估指標(biāo)。結(jié)果表明,不論在何種時(shí)間分辨率下,不論是哪種性能評(píng)估指標(biāo),我們所提出的CE—LD模型的預(yù)測(cè)誤差均明顯小于其他模型,各項(xiàng)指標(biāo)均有大幅度下降,MAPE在每分、每時(shí)、每日、每周分別為4.82%、2.67%、3.66%、6.08%,預(yù)測(cè)精度極大提高。
表1 每分分辨率下不同模型的性能比較
表2 每時(shí)分辨率下不同模型的性能比較
表3 每日分辨率下不同模型的性能比較
表4 每周分辨率下不同模型的性能比較
本文提出了一種基于CNN編碼—LSTM解碼混合神經(jīng)網(wǎng)絡(luò)(CE—LD)的住宅用電量預(yù)測(cè)模型。CE—LD模型充分利用了CNN強(qiáng)大的特征提取能力和LSTM出色的時(shí)間序列分析能力以及編碼器—解碼器結(jié)構(gòu)獨(dú)特的變長(zhǎng)序列處理能力,具有更強(qiáng)的泛化能力和更高的預(yù)測(cè)精度。實(shí)驗(yàn)結(jié)果表明,與其他競(jìng)爭(zhēng)基準(zhǔn)模型相比,CE—LD模型不依賴于時(shí)間分辨率,任意一種性能評(píng)估指標(biāo)的比較都表明該模型的預(yù)測(cè)誤差最小,證明了其有效性和優(yōu)越性。