張卓淵
(廣東工業(yè)大學(xué),廣東廣州 510006)
中國提出了力爭在2060年前實現(xiàn)碳中和的目標(biāo),其中建筑部門作為造成碳排放的主要責(zé)任領(lǐng)域之一,建筑運行時的節(jié)能減排備受關(guān)注[1]。與此同時,隨著經(jīng)濟(jì)社會的發(fā)展,人們對建筑環(huán)境的要求日益提高,準(zhǔn)確地預(yù)測建筑能耗將有助于蓄冷策略規(guī)劃和可再生能源耦合等一系列建筑節(jié)能減排措施的實施[2-3]。
建筑能耗預(yù)測方法根據(jù)時間步長一般可分為單步預(yù)測和多步預(yù)測方法[4]。單步預(yù)測方法僅預(yù)測下一時刻的能耗,但在建筑能耗預(yù)測任務(wù)中,通常需要預(yù)測多個時間步長判斷未來的能耗變化趨勢,因此許多研究者對建筑能耗多步預(yù)測方法進(jìn)行研究。而在建筑能耗多步預(yù)測方法中,深度學(xué)習(xí)模型是研究的主流方向。Rahman等[5]運用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)對商業(yè)建筑和住宅建筑能耗進(jìn)行中長期預(yù)測,Zhou等[6]將長短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)用于辦公室照明插座能耗多步預(yù)測,Kim等[7]將LSTM和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)相結(jié)合預(yù)測住宅能耗數(shù)據(jù)。
近年來,生成對抗網(wǎng)絡(luò)[8](Generative Adversarial Networks,GAN)能夠以其獨特的對抗思想,利用反向傳播直接修正網(wǎng)絡(luò)輸出的分布,進(jìn)一步捕捉數(shù)據(jù)間的深層次非線性關(guān)系,在金融[9]、農(nóng)業(yè)[10]相關(guān)序列預(yù)測研究中均顯示了其有效性。為進(jìn)一步提高建筑能耗多步預(yù)測的精度,本文提出了一種基于GAN的建筑能耗多步預(yù)測方法,將LSTM作為生成器,CNN作為判別器,利用GAN中生成器和判別器的對抗思想進(jìn)一步捕捉數(shù)據(jù)間的深層次非線性關(guān)系,降低預(yù)測誤差。本文以美國某大學(xué)實驗樓的能耗數(shù)據(jù)進(jìn)行實驗,直接預(yù)測未來24小時的能耗數(shù)據(jù),結(jié)果驗證了本文提出方法的有效性。
根據(jù)文獻(xiàn)[4]總結(jié),建筑能耗預(yù)測方法分為單步預(yù)測和多步預(yù)測方法。多步預(yù)測原理如圖1所示,通過輸入長度為n的歷史能耗序列進(jìn)入模型,預(yù)測出未來m個時刻的能耗序列。
圖1 多步預(yù)測方法
生成對抗網(wǎng)絡(luò)是Goodfellow等[8]基于零和博弈思想提出的模型。如圖2所示,模型由兩個神經(jīng)網(wǎng)絡(luò):生成器網(wǎng)絡(luò)和判別器網(wǎng)絡(luò)組成。生成器網(wǎng)絡(luò)不斷學(xué)習(xí)真實數(shù)據(jù)的分布,擬合偽造數(shù)據(jù)去欺騙判別器網(wǎng)絡(luò),而判別器網(wǎng)絡(luò)則盡力去辨別輸入的數(shù)據(jù)是生成器網(wǎng)絡(luò)擬合的偽造數(shù)據(jù)還是真實數(shù)據(jù),兩者的最終目標(biāo)是達(dá)到納什平衡,讓生成器網(wǎng)絡(luò)學(xué)習(xí)到真實的數(shù)據(jù)分布。其損失函數(shù)表達(dá)式如式(1)所示:
圖2 生成對抗網(wǎng)絡(luò)基本結(jié)構(gòu)
式(1)中,Px為真實數(shù)據(jù)分布,Pz為輸入的噪聲分布,生成器為了學(xué)習(xí)真實分布Px,通過輸入隨機(jī)分布的噪聲z生成偽造數(shù)據(jù)G(z),生成器的目標(biāo)是騙過判別器,使得D(G(z))的值越大。而判別器的目標(biāo)則是正確判別數(shù)據(jù)的真?zhèn)?,使得D(x)值越大,D(G(z))值越小。
本模型結(jié)構(gòu)如圖3所示,給定一段真實歷史能耗數(shù)據(jù)X={x1,x2,…,xt},t為時間窗口長度,將序列X輸入生成器,生成器輸出預(yù)測序列Xf={x^t+1,x^t+2,...,x^t+24},其對應(yīng)的真實序列為Xr={xt+1,xt+2,...,xt+24}。接著將預(yù)測序列Xf和對應(yīng)的真實序列Xr橫向拼接組成序列Xfake和真實序列Xreal輸入判別器,判別器區(qū)分輸入序列的真?zhèn)?。之所以拼接成序列的形式輸入而不是直接將Xf和Xr輸入進(jìn)判別器,是為了使判別器能夠捕獲相關(guān)的時間序列信息。判別器將判別的結(jié)果反饋給生成器,生成器再根據(jù)判別器的結(jié)果調(diào)整自己的輸出,再次嘗試騙過判別器。兩者互相對抗,最終生成器準(zhǔn)確預(yù)測出建筑能耗數(shù)據(jù)的未來分布。
圖3 基于建筑能耗預(yù)測的生成對抗網(wǎng)絡(luò)
本文模型生成器結(jié)構(gòu)為LSTM,LSTM在處理時間序列數(shù)據(jù)時具有長期記憶的能力,具有較好的預(yù)測效果。判別器采用CNN卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),CNN具有良好的提取深層特征的能力,作為判別器能夠有效分辨出輸入數(shù)據(jù)的真?zhèn)?。通過LSTM和CNN在訓(xùn)練之間互相的對抗博弈,模型能夠進(jìn)一步捕捉數(shù)據(jù)間的深層次非線性關(guān)系,得到更精準(zhǔn)的預(yù)測結(jié)果。
由于原始GAN網(wǎng)絡(luò)的損失函數(shù)在訓(xùn)練過程中存在梯度消失或梯度爆炸的問題,Mao[11]提出最小二乘損失(Least Squares GANs,LSGAN),它可以根據(jù)樣本與決策邊界的距離對樣本進(jìn)行懲罰,從而解決原始GAN訓(xùn)練不穩(wěn)定的問題。本文引入最小二乘損失作為判別器和生成器的損失函數(shù),判別器損失函數(shù)定義為:
生成器損失函數(shù)定義為:
同時,為了使生成模型的預(yù)測結(jié)果更接近真實能耗分布,本文在生成器訓(xùn)練過程中加入x^t+1和xt+1的L1范數(shù)作為生成器損失函數(shù)的一部分,定義為:
因此生成器的總損失函數(shù)為:
建筑能耗預(yù)測的整體算法流程圖如圖4所示。首先將數(shù)據(jù)集按7:3的比例劃分為訓(xùn)練集和測試集,對訓(xùn)練集數(shù)據(jù)歸一化到[0,1]之間,測試集數(shù)據(jù)再根據(jù)訓(xùn)練集進(jìn)行歸一化,這樣做是為了防止歸一化過程中數(shù)據(jù)泄露的問題。接著利用時間窗口劃分?jǐn)?shù)據(jù)集,為充分利用訓(xùn)練集進(jìn)行訓(xùn)練,訓(xùn)練集時間窗口步長設(shè)置為1,而測試集時間窗口步長設(shè)置為24。運用重構(gòu)的訓(xùn)練集對建筑能耗預(yù)測GAN模型進(jìn)行訓(xùn)練。通過生成器和判別器的對抗博弈,生成器能夠預(yù)測出未來的建筑能耗。
圖4 建筑能耗預(yù)測流程圖
本實驗基于Pytorch框架進(jìn)行,CPU為AMD2700X,GPU為NVIDIA RTX 2080,選用美國某大學(xué)實驗樓從2014年12月1日到2015年11月29日總共364天的能耗數(shù)據(jù),數(shù)據(jù)間隔為每小時采樣一次,總共8736個數(shù)據(jù)點,將其按照7:3比例劃分為訓(xùn)練集和測試集。每日能耗分布箱型圖如圖5所示,由圖5得出每日的能耗高峰分布在日間(8:00-18:00),而夜間非工作時間能耗較低,與現(xiàn)實情況相符合。
圖5 每日能耗分布箱型圖
為客觀評價模型的預(yù)測效果,本文采用平均絕對誤差(Mean Absolute Error,MAE),均方根誤差(Root Mean Squared Error,RMSE)和回歸決定系數(shù)R2作為本文模型的客觀評價指標(biāo)。以上指標(biāo)的公式定義如下,式中i為預(yù)測值,xi為對應(yīng)的真實值,n為數(shù)據(jù)集長度為真實數(shù)據(jù)平均值。
4.3.1 LSTM神經(jīng)元數(shù)目
神經(jīng)元數(shù)目是影響模型性能的因素之一,神經(jīng)元數(shù)目過小或過大都會導(dǎo)致模型性能的降低。本文設(shè)置神經(jīng)元數(shù)目為{128,256,512,1024},預(yù)測結(jié)果如表1所示。由表1可得神經(jīng)元數(shù)目取512時MSE最低,預(yù)測誤差最小,因此選擇LSTM神經(jīng)元數(shù)目為512。
表1 LSTM不同神經(jīng)元數(shù)目的對比
4.3.2 時間步長
如圖6所示為隨機(jī)選取的兩周能耗數(shù)據(jù),由圖6可知,在工作日(周一~周五)的能耗較高,而在非工作日(即周末)的能耗較低,整體能耗以一周為單位呈現(xiàn)周期性波動,因此設(shè)置時間步長為一周(即t=7×24=168)。
圖6 兩周的能耗數(shù)據(jù)
為了客觀驗證本文模型的準(zhǔn)確性,本文選擇了LSTM[6]、CNN-LSTM[7]模型進(jìn)行對比,預(yù)測結(jié)果如表2所示,從表2中可以看出,基于GAN的預(yù)測模型在MAE和RMSE指標(biāo)上均為最低,說明相比于其他模型,GAN的預(yù)測結(jié)果與真實能耗值之間的誤差最小。而在R2指標(biāo)上GAN相比于其他方法更接近1,說明GAN的預(yù)測能耗值和真實能耗值之間相關(guān)性越強(qiáng)。證明了通過生成器和判別器的對抗訓(xùn)練,能夠進(jìn)一步學(xué)習(xí)到數(shù)據(jù)間的深層次非線性關(guān)系,得到更精確的結(jié)果。
表2 不同模型的指標(biāo)對比
LSTM、CNN-LSTM和GAN模型的預(yù)測結(jié)果(隨機(jī)選取兩周)如圖7~圖9所示。由圖可得,三種模型都能預(yù)測出能耗的大致趨勢,但由于非工作日(周六日)與工作日(周一~周五)相比能耗變化幅度較大,因此三種模型在非工作日的預(yù)測結(jié)果都出現(xiàn)一定的誤差,其中LSTM誤差較大,而CNN-LSTM和GAN的誤差較小。從總體上看,GAN模型的預(yù)測曲線與實際曲線的重合度最高,這也與表2的結(jié)論相符合。
圖7 LSTM的預(yù)測結(jié)果
圖8 CNN-LSTM的預(yù)測結(jié)果
圖9 GAN的預(yù)測結(jié)果
本文提出一種基于生成對抗網(wǎng)絡(luò)的建筑能耗多步預(yù)測方法,以LSTM為生成器,以CNN為判別器,以歷史能耗數(shù)據(jù)作為輸入,預(yù)測建筑未來24小時的能耗值。實驗結(jié)果證明,通過生成對抗網(wǎng)絡(luò)的對抗性訓(xùn)練,能夠進(jìn)一步學(xué)習(xí)數(shù)據(jù)間的隱層關(guān)系,降低預(yù)測模型的誤差。通過超參數(shù)的調(diào)整,本文模型在MAE、RMSE、R2指標(biāo)上達(dá)到了最佳,準(zhǔn)確預(yù)測出未來的建筑能耗,可為建筑的能源規(guī)劃、能耗管理和節(jié)能減排的優(yōu)化提供一定的指導(dǎo)。后續(xù)工作將考慮天氣狀況及室內(nèi)人數(shù)等條件因素對建筑能耗的影響,構(gòu)建更精確的建筑能耗預(yù)測模型。