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

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

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

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

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

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

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

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

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

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