王 玨
(上海電力大學(xué) 電子與信息工程學(xué)院,上海 200000)
公共建筑面積與能耗逐年增長,建筑節(jié)能對全球節(jié)能減排有著重要意義。建筑能耗受到多方面的影響,如室內(nèi)外溫濕度、設(shè)備運(yùn)行情況、人流密度等?;跀?shù)據(jù)驅(qū)動的預(yù)測模型,需要大量的數(shù)據(jù)作為算法支撐,其中氣象數(shù)據(jù)是多維度且復(fù)雜的,不必要的自變量也會產(chǎn)生誤差[1]。若僅對每個變量分別進(jìn)行分析,會形成信息孤島,導(dǎo)致預(yù)測結(jié)果必然存在偏差。對于波動性過大數(shù)據(jù),PCA存在丟失有效信息的問題,不能做到精準(zhǔn)降維[2]。
由于建筑能耗數(shù)據(jù)具有非線性不穩(wěn)定的特點(diǎn),近年來,研究人員主要通過機(jī)器學(xué)習(xí)(Machine Learning,ML)方法來對建筑能耗進(jìn)行預(yù)測。其中深度學(xué)習(xí)可以從大量無標(biāo)識數(shù)據(jù)中自動獲取有效特征,比物理模型計(jì)算出的預(yù)測結(jié)果效率更高[3]。隨著能耗數(shù)據(jù)噪聲增加,單一模型已經(jīng)不能適應(yīng)數(shù)據(jù)特征,混合模型逐漸得到應(yīng)用[4]。
本文以上海市嘉定區(qū)某建筑大樓(下文用A建筑表示)為研究對象,通過公共能耗檢測系統(tǒng)獲得該建筑夏季一周內(nèi)每5 min記錄1次的空調(diào)冷負(fù)荷作為樣本數(shù)據(jù)進(jìn)行訓(xùn)練測試,提出一種面向建筑能耗短期預(yù)測的混合模型AE-AdaBoost-BP。本文主要內(nèi)容包括:(1)對明顯波動與非線性的大量數(shù)據(jù)標(biāo)準(zhǔn)化處理后剔除毛刺;(2)使用DAE對多維氣象參數(shù)精準(zhǔn)降維;(3)對AdaBoost算法進(jìn)行改進(jìn),優(yōu)化了迭代過程;(4)利用改良后的AdaBoost算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值與閾值完成對建筑能耗的預(yù)測;(5)應(yīng)用DAE-AdaBoost-BP混合模型對上海某大型建筑能耗進(jìn)行短期預(yù)測,仿真結(jié)果驗(yàn)證了該模型的可行性。
自編碼器(AutoEncode,AE)屬于無監(jiān)督學(xué)習(xí),利用神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)對數(shù)據(jù)進(jìn)行降維。自編碼器結(jié)構(gòu)內(nèi)有一個隱含層,輸入層和輸出層維度相同,隱含層的維度可選擇。該網(wǎng)絡(luò)可由2部分組成,輸入層經(jīng)過一次編碼得到隱含層,隱含層再經(jīng)過解碼得到輸出層,通過訓(xùn)練網(wǎng)絡(luò)中的權(quán)重和偏置,得到輸入層和輸出層誤差最小時(shí)的參數(shù),自編碼器結(jié)構(gòu)圖如圖1所示。
圖1自編碼器結(jié)構(gòu)圖
圖1 中b1和b2是輸入層和隱含層的偏置,W1和W2是網(wǎng)路各變量的權(quán)重,X和Z分別是輸入層和輸出層,H為中間的隱含層,L(X,Z)為目標(biāo)函數(shù)。當(dāng)目標(biāo)函數(shù)達(dá)到最小值時(shí)的權(quán)重和偏置即為所求,隱含層即降維后的數(shù)據(jù),使用隱含層的數(shù)據(jù)即可代表原輸入數(shù)據(jù)的主要信息。
去噪自編碼器(DenoisingAutoEncode,DAE)是改良版的自編碼器,并使得特征值具有一定的魯棒性。其原理是以一定的概率分布,是輸入層的部分?jǐn)?shù)據(jù)置為0,即使得部分輸入層數(shù)據(jù)丟失,使用丟失過后的數(shù)據(jù)去進(jìn)行編碼。破損的輸入層數(shù)據(jù)與原輸入層數(shù)據(jù)相比,丟失的數(shù)據(jù)中也將噪聲一起丟棄,具有一定的去噪功能,這樣得到的特征值魯棒性更高。其基本構(gòu)架如圖2所示。
圖2 去噪自編碼器結(jié)構(gòu)圖
BP神經(jīng)網(wǎng)絡(luò)作為人工神經(jīng)網(wǎng)絡(luò)中最常見的算法之一,其缺點(diǎn)是很容易陷入局部最小值,對BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化主要在尋找全局最優(yōu)解上面,如遺傳算法和BP神經(jīng)網(wǎng)絡(luò)的結(jié)合,但遺傳算法的優(yōu)化效果并不是絕對的,沒有解決全局最優(yōu)解的問題。
集成學(xué)習(xí)作為機(jī)器學(xué)習(xí)的一個分支,在算法上展現(xiàn)了更高的精度。集成算法和多種基礎(chǔ)算法都可以結(jié)合,并且相對于基礎(chǔ)算法在精度上有一定的提升[5]。AdaBoost算法屬于Boosting算法中的一種,需要選擇一種基算法并進(jìn)行優(yōu)化,本次實(shí)驗(yàn)將采用BP神經(jīng)網(wǎng)絡(luò)作為基礎(chǔ)算法。
算法步驟如下:
(1)數(shù)據(jù)訓(xùn)練集:T={(x1,y1),(x2,y2),…(xm,ym)},BP迭代次數(shù)為K,集成學(xué)習(xí)模型為f(x);
(2)初始化權(quán)重為:D(1)=(w11,w12,…w1m);w1i=i=1,2…m,對于k=1,2…K,具有權(quán)重Dk的訓(xùn)練集樣本得到輸出模型Gk(x);
(3)計(jì)算訓(xùn)練集上的最大誤差Ek=max|yi-Gk(xi)|i=1,2…m;
(4)計(jì)算每個樣本的相對線性誤差eki=
(8)若k<K,則k=k+1,返回步驟(3),若達(dá)到最大迭代次數(shù),得到集成學(xué)習(xí)模型:f(x)=
數(shù)據(jù)來源包含1棟樓3層同位置各房間的夏季空調(diào)冷負(fù)荷。氣象數(shù)據(jù)來自于中國氣象數(shù)據(jù)網(wǎng),包含大氣溫度,空氣濕度,輻照度等數(shù)據(jù)。各種數(shù)據(jù)由傳感器測量得到,故可能存在一定的異常值,對原始數(shù)據(jù)進(jìn)行歸標(biāo)準(zhǔn)化處理,得到均值為0,方差為1的正態(tài)分布數(shù)據(jù),再通過箱線圖檢驗(yàn)數(shù)據(jù)是否存在異常值,如圖3(a)所示。
通過圖3可以觀察到,輻照度和輻照得熱的數(shù)據(jù)上存在一些異常點(diǎn),對異常數(shù)據(jù)點(diǎn)進(jìn)行異常值修改,得到校正后的箱線圖,如圖3(b)所示,經(jīng)過矯正過的數(shù)值為后續(xù)算法所使用到的數(shù)據(jù)。
圖3 誤差箱線圖
AdaBoost算法的核心思想是在每次計(jì)算結(jié)果上進(jìn)行重新權(quán)重調(diào)整,再次進(jìn)行訓(xùn)練,算法流程圖如圖4所示。處理過后的訓(xùn)練集通過BP算法得到預(yù)測模型Gk(x)以其預(yù)測誤差eki,根據(jù)預(yù)測誤差再調(diào)整訓(xùn)練集權(quán)重,并作為下一次BP算法的訓(xùn)練集。經(jīng)過多次循環(huán)得到K個預(yù)測模型,再通過組合方式將這些基礎(chǔ)模型整合為1個集成模型,作為本篇論文預(yù)測模型。
圖4 AdaBoost和BP結(jié)合的流程圖
本次實(shí)驗(yàn)利用matlab2019版本進(jìn)行預(yù)測仿真測試,將矯正過后的氣象數(shù)據(jù)經(jīng)過DAE分別降維為3維和4維,作為算法的數(shù)據(jù)輸入,輸出為各個房間冷負(fù)荷的預(yù)測值,作為BP網(wǎng)絡(luò)的訓(xùn)練輸入和輸出。經(jīng)實(shí)驗(yàn)表明輸入層設(shè)置為3,隱藏層設(shè)置為5,輸出為1層,傳遞函數(shù)分別為tansig,tansig和purelin,訓(xùn)練函數(shù)為trainlm,訓(xùn)練次數(shù)為1 000,訓(xùn)練精度為0.001,學(xué)習(xí)率為0.1 h,得到的預(yù)測效果最佳。
算法的精度由均方根誤差(RMSE),平均絕對百分比誤差和(AMPE)決定系數(shù)R2作為評價(jià)指標(biāo),公式的計(jì)算過程如下:
本次實(shí)驗(yàn)1分為2步進(jìn)行,首先按對遺傳算法和AdaBoost優(yōu)化效率作對比,接著對常用回歸算法多元線性回歸(MLR)和BP神經(jīng)網(wǎng)絡(luò)及其優(yōu)化作對比。
實(shí)驗(yàn)1對BP算法優(yōu)化作對比,使用上述3項(xiàng)指標(biāo)作為對比參數(shù),對比效果如圖5所示。實(shí)驗(yàn)分別為BP,GA-BP,AdaBoost-BP,DAE-AdaBoost-BP,由于BP神經(jīng)網(wǎng)絡(luò)的模型訓(xùn)練具有一定的不穩(wěn)定性,且選擇的訓(xùn)練次數(shù)較小,每次收斂的結(jié)果都不同,故使用對應(yīng)程序各訓(xùn)練5次,作為對應(yīng)預(yù)測精度對比參考。
由圖5可知,BP神經(jīng)網(wǎng)絡(luò)的結(jié)果最不穩(wěn)定,魯棒性最差;GA-BP算法在一定程度上進(jìn)行了優(yōu)化,但并不代表每次訓(xùn)練得到的結(jié)果優(yōu)于BP算法;AdaBoost算法均優(yōu)于BP算法和GA-BP算法,具有很好的預(yù)測結(jié)果;經(jīng)過DAE處理過后的AdaBoost算法得到的結(jié)果為最優(yōu)解。
圖5 誤差評價(jià)
實(shí)驗(yàn)2進(jìn)行算法間的對比,同時(shí)使用MLR,BP和AdaBoost-BP對冷負(fù)荷進(jìn)行預(yù)測,MLR算法調(diào)用python軟件中sklearn程序模塊,預(yù)測精度見表1。BP及其優(yōu)化算法的精度為多次訓(xùn)練結(jié)果的中位數(shù)。
由表1可以看出,MLR算法實(shí)現(xiàn)雖然簡單,但是精度較低,BP神經(jīng)網(wǎng)絡(luò)經(jīng)過多次訓(xùn)練的平均值高于MLR算法的精度,經(jīng)過AdaBoost模型得到的BP算法在各項(xiàng)指標(biāo)上都有明顯的提升,經(jīng)過DAE降維的算法能夠得到更好的精度,且收斂數(shù)據(jù)更快。
表1 多種算法預(yù)測訓(xùn)練結(jié)果
本文對上海某棟建筑能耗和氣象數(shù)據(jù)作為研究對象,提出了通過DAE對數(shù)據(jù)降維,再通過集成學(xué)習(xí)算法AdaBoost與BP網(wǎng)絡(luò)的結(jié)合對建筑的冷負(fù)荷進(jìn)行了預(yù)測,結(jié)果表明具有很好的預(yù)測效果,在均方根誤差,平均誤差百分比和決定系數(shù)3個方面得到了很大的提升,為管理者提供了良好的數(shù)據(jù)支持。后續(xù)工作將冷負(fù)荷預(yù)測擴(kuò)大到整棟建筑的能耗預(yù)測,并將通過物聯(lián)網(wǎng)架構(gòu)對整棟建筑進(jìn)行全方位的智能管理,構(gòu)建相應(yīng)的管理架構(gòu)。