黃曉一 趙 田 楚紀(jì)正*
(1.北京化工大學(xué) 信息科學(xué)與技術(shù)學(xué)院,北京 100029; 2.北京航天飛行控制中心,北京 100094)
隨著世界經(jīng)濟(jì)的飛速發(fā)展,對能源的需求量也急速增長。然而傳統(tǒng)能源的利用效率比較低下,新能源還不能作為主要能源使用,且隨著工業(yè)生產(chǎn)體系的日益完善和工業(yè)生產(chǎn)水平的日益提高,其中的節(jié)能潛力也變得越來越低。隨著城鄉(xiāng)一體化建設(shè)中大面積住宅建筑規(guī)劃的興起,住宅建筑能耗節(jié)約已成為國民經(jīng)濟(jì)發(fā)展的主要目標(biāo)之一。目前,很多國家的建筑能耗占總能源使用的比例已達(dá)到40%,其中歐盟國家建筑能耗的二氧化碳排放量達(dá)到了歐盟二氧化碳排放總量的36%[1]。歐洲在實(shí)行2020年歐洲戰(zhàn)略時,在建筑能耗方面制定了一系列節(jié)能減排的目標(biāo)[2],同時東歐也面臨著大量多戶型公寓建筑惡化從而需要翻新帶來的一系列建筑節(jié)能的問題[3]。美國在1996—2006年間,用電量以每年1.7%的速度上升,預(yù)計(jì)到2030年總增長率甚至可以達(dá)到26%[4],而其中建筑能源消耗占到了70%以上[5]。據(jù)統(tǒng)計(jì),在我國商業(yè)能源消耗總量中,建筑能耗占25.5%且逐年增長[6]。在2004年,我國提出了《建筑節(jié)能測試和標(biāo)簽技術(shù)指南》,但是該指南很難全面地評估建筑能效[7]。
針對建筑能耗高、能效利用率低的問題,學(xué)者們研究了一系列建筑節(jié)能降耗的方法。Wang等[8]提出相變儲能建筑圍護(hù)結(jié)構(gòu),可更好地利用可再生能源,增加了室內(nèi)溫度的穩(wěn)定性,提高了居住者的舒適度,同時又降低了建筑物的運(yùn)行能耗。Guo等[9]通過實(shí)驗(yàn)發(fā)現(xiàn)僅對外墻和窗戶采用節(jié)能措施,即可達(dá)到降低能耗25%的節(jié)能目標(biāo),此外,在保持室內(nèi)舒適度的前提下墻體保溫性能對建筑節(jié)能有較大的影響。近年來隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展和其自學(xué)習(xí)能力優(yōu)勢的顯現(xiàn),Rivard等[10]將兩種自適應(yīng)人工神經(jīng)網(wǎng)絡(luò)(ANN)模型應(yīng)用于建筑能耗預(yù)測,通過累計(jì)訓(xùn)練和滑動窗口訓(xùn)練,發(fā)現(xiàn)二者在合成數(shù)據(jù)中有幾乎相同的性能,但在實(shí)際測量的情況下滑動窗口技術(shù)有著更好的預(yù)測結(jié)果。意大利政府曾用人工神經(jīng)網(wǎng)絡(luò)算法對建筑的熱需求指標(biāo)進(jìn)行預(yù)測和分析[11],香港政府也曾用人工神經(jīng)網(wǎng)絡(luò)算法對建筑的日常能源消耗進(jìn)行預(yù)測[12]。一些研究人員用人工神經(jīng)網(wǎng)絡(luò)預(yù)測了建筑的冷負(fù)荷[13-14]、年總耗能[15]和相關(guān)建筑設(shè)施的能耗[16-17]。但傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)算法收斂速度較慢,而且會出現(xiàn)局部過擬合現(xiàn)象[18]。
本文提出了一種基于affinity propagation(AP)聚類的back propagation (BP)神經(jīng)網(wǎng)絡(luò)算法(AP- BP)用于預(yù)測和分析建筑能耗,以期為建筑管理者提供相應(yīng)的節(jié)能建議。首先,通過AP聚類算法對影響建筑能耗的多維因素進(jìn)行聚類分析,得到影響建筑能耗的主要因素,并作為BP神經(jīng)網(wǎng)絡(luò)的輸入;然后,將建筑能耗指標(biāo)熱負(fù)荷和冷負(fù)荷作為BP神經(jīng)網(wǎng)絡(luò)的輸出,建立建筑能耗分析與預(yù)測模型。通過均方根誤差(RMSE)和平均相對泛化誤差(ARGE)來衡量預(yù)測模型的訓(xùn)練和預(yù)測精確度,實(shí)驗(yàn)結(jié)果表明本文所提方法對能耗值的預(yù)測優(yōu)于經(jīng)典的BP神經(jīng)網(wǎng)絡(luò),且通過建筑能耗輸入輸出的合理調(diào)整分配可實(shí)現(xiàn)節(jié)約能耗和能效的提高。
AP聚類不需要提前指定聚類個數(shù),且能準(zhǔn)確地找到主要影響特征,進(jìn)而減少BP神經(jīng)網(wǎng)絡(luò)的輸入,提高訓(xùn)練和泛化的精確度。
AP聚類算法屬于無監(jiān)督聚類算法[19-20],不需要提前指定聚類質(zhì)心的個數(shù),能夠直接得到合適的聚類質(zhì)心個數(shù)及位置。假設(shè)x為輸入矩陣,其大小為n×m。首先對n個輸入矩陣x進(jìn)行聚類,得到輸出矩陣為Z,大小為k×m,則k就是得到的聚類質(zhì)心個數(shù)。AP聚類算法的具體步驟如下。
(1)數(shù)據(jù)歸一化處理 將輸入數(shù)據(jù)歸一化到一個較小范圍可以減小異常值的影響,有更好的迭代效果。常用的歸一化公式為
(1)
式中,y為歸一化后的矩陣,ymax與ymin則是規(guī)定好的歸一化后的最大值和最小值。當(dāng)xmax與xmin相等時,采用公式
y=ymin
(2)
為了使AP聚類算法有更好的聚類效果,選用ymax為0.9,ymin為0.1。
(2)構(gòu)建相似度矩陣ss矩陣初始化為n×n的零矩陣。在相似度矩陣中兩個數(shù)據(jù)點(diǎn)的相似度通常用歐氏距離的負(fù)值表示。s(i,j)(i=1,…,n;j=1,…,n)的值越小,則可以理解為點(diǎn)i與j的距離越遠(yuǎn);兩個數(shù)據(jù)點(diǎn)的相似度值可以理解為數(shù)據(jù)點(diǎn)j作為數(shù)據(jù)點(diǎn)i的聚類中心的能力。具體公式為
(3)
(3)設(shè)置參考度 參考度指的是相似度矩陣s中對角線上的值,即s(i,i)。相似度表示數(shù)據(jù)點(diǎn)i可以成為聚類質(zhì)心的適合度,因此其值不取0。在迭代開始前默認(rèn)所有數(shù)據(jù)點(diǎn)都有相同的潛在可能性成為聚類質(zhì)心。設(shè)相似度矩陣中所有節(jié)點(diǎn)的相似度為其中位數(shù)值,則相似度矩陣中的參考度越大,起始數(shù)據(jù)點(diǎn)成為最終迭代出的質(zhì)心的適合程度越高,進(jìn)而導(dǎo)致最終質(zhì)心的個數(shù)越多。本文中s(i,i)為所有值的中位數(shù)。
(4)設(shè)置阻尼系數(shù) 由于AP聚類算法在吸引信息矩陣和歸屬信息矩陣迭代過程中會引起數(shù)據(jù)震蕩,所以設(shè)定阻尼系數(shù)(lam)。在迭代過程中吸引度矩陣中的值和歸屬度矩陣中的值為上一次迭代求得的吸引信息值或歸屬信息值的λ倍與此次迭代得到值的1-λ倍之和,則λ的取值范圍為0~1,本文中l(wèi)am值記為L,L的值為0.4。
(5)吸引信息矩陣(Responsibility)r和歸屬信息矩陣(Availability)ar(i,j)為兩個數(shù)據(jù)點(diǎn)的吸引信息,即j成為i的聚類質(zhì)心的適合度;a(i,j)則為兩個點(diǎn)之間的歸屬信息,即i有意向選j作為i的質(zhì)心的認(rèn)可程度。使用式(4)可得出吸引信息矩陣
r(i,j)=s(i,j)-max{a(i,j′)+s(i,j′)}
(4)
式中,j′表示除當(dāng)前j以外的其他點(diǎn)(j′=1,…,j-1,j+1,…,n);a(i,j′)+s(i,j′)得到數(shù)據(jù)點(diǎn)j′作為數(shù)據(jù)點(diǎn)i的質(zhì)心的適合度。此時,在其他節(jié)點(diǎn)j′中,找出最大的a(i,j′)+s(i,j′),即max{a(i,j′)+s(i,j′)},再用s(i,j)-max{a(i,j′)+s(i,j′)} 得到j(luò)對i的吸引度。然后用阻尼系數(shù)將前一次計(jì)算得到的值與此次計(jì)算得到的值進(jìn)行加權(quán)求和,最后得到此次迭代中的矩陣r
r=(1-L)r+Lrold
(5)
式中,rold為前一次迭代得到的矩陣r,初始化為零矩陣。
(6)歸屬度a(i,j)由式(6)得到
(6)
a(j,j)=∑max{0,r(i′,j)}
(7)
a=(1-L)a+Laold
(8)
若數(shù)據(jù)點(diǎn)j成為其余數(shù)據(jù)點(diǎn)i′(i′=1,…,j-1,j+1,…,n)的質(zhì)心具有較高的適合度,則數(shù)據(jù)點(diǎn)j成為數(shù)據(jù)點(diǎn)i的質(zhì)心的適合度也將提高,所以應(yīng)該首先計(jì)算數(shù)據(jù)點(diǎn)j對其他數(shù)據(jù)點(diǎn)i′的吸引度r(i′,j),接著累計(jì)求和得到數(shù)據(jù)點(diǎn)j對其他數(shù)據(jù)點(diǎn)i′的吸引度
∑max{0,r(i′,j)}
(9)
在r(i′,j)和0中取較大的值是因?yàn)橄嗨贫染仃噑會初始化成負(fù)值,所以通過計(jì)算得出的r(i′,k)有一定概率是小于0的,這樣處理更容易在完成全部計(jì)算過程后得到位置較好的聚類質(zhì)心。
吸引度r(j,j)表示數(shù)據(jù)點(diǎn)j有多大概率不被歸屬到其他聚類質(zhì)心下,其中將k作為其余數(shù)據(jù)點(diǎn)的聚類質(zhì)心的適合程度為∑max{0,r(i′,j)}。不適合被歸屬到除自身以外的質(zhì)心下的值表示為r(j,j)。兩者相加最終的取值范圍小于等于零,因?yàn)檫@樣可以減小數(shù)值太大對最終結(jié)果產(chǎn)生的誤差。最后直至迭代結(jié)束。
(7)篩選出適合成為聚類質(zhì)心的點(diǎn) 將吸引度信息矩陣r與歸屬度信息矩陣a相加,取對角線的值大于0的點(diǎn)為聚類質(zhì)心,得到最終結(jié)果。
根據(jù)上述算法過程的描述得到的AP聚類算法有以下特點(diǎn):①在算法執(zhí)行前可不指定聚類質(zhì)心個數(shù),由算法自動計(jì)算得到;②得到的簇中心一定可以在輸入的原始數(shù)據(jù)集中找到,并不會生成新的數(shù)據(jù)點(diǎn);③AP聚類算法對初始值不敏感,因?yàn)殚_始時默認(rèn)所有數(shù)據(jù)點(diǎn)都有同樣的概率成為聚類質(zhì)心,所以運(yùn)行多次得出的結(jié)果一致。
由于三層神經(jīng)網(wǎng)絡(luò)可以實(shí)現(xiàn)任意非線性映射[21],四層網(wǎng)絡(luò)的結(jié)果比三層網(wǎng)絡(luò)更易陷入局部極小點(diǎn),且過多的網(wǎng)絡(luò)節(jié)點(diǎn)會使網(wǎng)絡(luò)的泛化能力減弱,網(wǎng)絡(luò)預(yù)測能力下降,所以一個隱層的神經(jīng)網(wǎng)絡(luò)只需足夠多的節(jié)點(diǎn),就可以以任意精度逼近一個非線性函數(shù)[22]。因此本文采用三層前向神經(jīng)網(wǎng)絡(luò),其典型的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,它包含1個輸入層、1個輸出層和1個隱含層。輸入信號從輸入層節(jié)點(diǎn)依次傳過各隱含層節(jié)點(diǎn),然后傳到輸出節(jié)點(diǎn),每一層節(jié)點(diǎn)的輸出只影響下一層節(jié)點(diǎn)的輸出。
在圖1中,輸入向量X=(x1,x2,…,xi,…,xn)T,輸入層到隱層之間的權(quán)值矩陣V=(v1,v2,…,vj,…,vm)T,隱含層到輸出層之間的權(quán)值矩陣W=(w1,w2,…,wk,…,wl)T。
隱含層隸屬度函數(shù)f(x)為sigmoid函數(shù)
(10)
這種函數(shù)輸入?yún)?shù)可以是正負(fù)區(qū)間的任意值,在BP網(wǎng)絡(luò)中,其輸出值限定在0~1之間。
隱含層輸出向量Y=(y1,y2,…,yj,…,ym)T,其中
yj=f(netj),j=1,2,…,m
(11)
(12)
輸出層輸出向量O=(o1,o2,…,ok,…,ol)T,其中
ok=f(netk),k=1,2,…,l
(13)
(14)
期望輸出向量d=(d1,d2,…,dk,…,dl)T;設(shè)定期望誤差為ξ,訓(xùn)練次數(shù)為T。
由于BP神經(jīng)網(wǎng)絡(luò)容易陷入局部最優(yōu),所以這里采用一種應(yīng)用較為廣泛的改進(jìn)的BP學(xué)習(xí)算法,通過引入動量因子來減小學(xué)習(xí)過程的振蕩趨勢,改善收斂性,進(jìn)而使BP算法找到更優(yōu)的解。同時動量因子降低了網(wǎng)絡(luò)對于誤差曲面局部細(xì)節(jié)的敏感性,有效地抑制了網(wǎng)絡(luò)陷入局部極小。
通常在BP網(wǎng)絡(luò)中隱含層m的初始值可先由式(15)確定[23]
(15)
然后利用逐步增長法進(jìn)行隱含層的選取,進(jìn)而縮短訓(xùn)練時間。
改進(jìn)的BP算法實(shí)現(xiàn)步驟如下:
1)通過式(16)計(jì)算期望輸出和網(wǎng)絡(luò)輸出的誤差值
(16)
2)將誤差值展開到隱含層得到式(17)
(17)
3)將yj值展開到輸入層得到式(18)
(18)
4)調(diào)整權(quán)值,使誤差不斷減小
(19)
(20)
式中,η為學(xué)習(xí)速率,即步長,取值在0~1。
(21)
(22)
式中,α為動量因子,一般取0≤α<1[5]。
W(t+1)=W(t)+ΔW
(23)
V(t+1)=V(t)+ΔV
(24)
5)如果E<ξ或訓(xùn)練次數(shù)t=T或權(quán)值達(dá)到要求則停止,否則轉(zhuǎn)入步驟2)。
基于AP聚類的BP神經(jīng)網(wǎng)絡(luò)算法流程圖如圖2所示。對訓(xùn)練數(shù)據(jù)的網(wǎng)絡(luò)輸出矩陣O進(jìn)行反歸一化處理,得到最終的網(wǎng)絡(luò)輸出矩陣P,并且計(jì)算與期望輸出矩陣Q的誤差。用式(25)和式(26)分別計(jì)算訓(xùn)練數(shù)據(jù)的均方根誤差ERMS和平均相對泛化誤差EARG。
(25)
(26)
式中,N為訓(xùn)練數(shù)據(jù)總輸出個數(shù)。式(26)中若期望輸出為0,由于分母為0無意義,則只計(jì)算求和公式中的分子,忽略分母即可。可根據(jù)RMSE和ARGE對算法模型的擬合程度作出判斷。
最后計(jì)算泛化數(shù)據(jù)的預(yù)測結(jié)果輸出及其誤差,即用泛化數(shù)據(jù)重復(fù)上一步計(jì)算訓(xùn)練誤差,得出泛化數(shù)據(jù)的預(yù)測結(jié)果及誤差。
本文使用的模擬建筑物數(shù)據(jù)是由Ecotect生成的輸入不同的建筑物及室內(nèi)外信息[24],主要特征包括墻壁的組成材料、地板的材料及厚度、屋頂材料、窗戶材料以及模擬有7人居住。盡管模擬結(jié)果無法保證能夠完全反映真實(shí)世界的實(shí)際數(shù)據(jù),但可以較好地展示實(shí)際數(shù)據(jù)的占比變化和潛在趨勢,從而實(shí)現(xiàn)建筑物的能效分析。該數(shù)據(jù)集一共包括315條樣本數(shù)據(jù),其中每條數(shù)據(jù)有8個輸入變量和2個輸出變量。數(shù)據(jù)集中的8個輸入變量包括相對緊密度、表面積、墻面積、屋頂面積、總高度、房屋朝向、玻璃窗面積及玻璃窗面積分布。兩個輸出變量為住宅建筑的熱負(fù)荷(HL,kW·h/(m3·a))和住宅建筑的冷負(fù)荷(CL,kW·h/(m3·a))[25]。具體的輸入數(shù)據(jù)和輸出數(shù)據(jù)的說明見表1。
表1 輸入及輸出數(shù)據(jù)說明Table 1 Data description of input and output
基于數(shù)據(jù)模型進(jìn)行研究和對比分析,本文采用RMSE和ARGE來計(jì)算算法模型的輸出結(jié)果與期望輸出結(jié)果之間的擬合效果,其中包括244條訓(xùn)練數(shù)據(jù),71條泛化數(shù)據(jù),并且將本文提出的基于AP聚類的BP神經(jīng)網(wǎng)絡(luò)算法模型與經(jīng)典的BP神經(jīng)網(wǎng)絡(luò)算法模型進(jìn)行比較。
首先通過AP聚類算法對建筑主要輸入進(jìn)行聚類得到聚類結(jié)果如表2所示。
表2 AP聚類結(jié)果Table 2 Results of AP clustering
由表2可知,8個變量在經(jīng)過AP聚類算法處理后得到了3個聚類中心分別為x1、x2、x8。這3個聚類中心將作為BP算法的輸入變量,并且與不將8個變量進(jìn)行AP聚類算法處理的BP方法進(jìn)行比較。分別計(jì)算隱含層節(jié)點(diǎn)數(shù)為6、8、10、12、14時最終的期望值和預(yù)測值的誤差,并找出最佳隱含層節(jié)點(diǎn)數(shù)。表3為訓(xùn)練數(shù)據(jù)和泛化數(shù)據(jù)的預(yù)測輸出和期望輸出的最終誤差值。
在沒有出現(xiàn)訓(xùn)練誤差和泛化誤差相差過多的過擬合的情況下,泛化誤差是評價算法模型優(yōu)劣的更重要的標(biāo)準(zhǔn)。由表3可知基于AP聚類的BP神經(jīng)網(wǎng)絡(luò)算法模型的誤差值總體上要小于經(jīng)典的BP神經(jīng)網(wǎng)絡(luò)算法模型。當(dāng)隱含層節(jié)點(diǎn)數(shù)為10時,兩個算法模型的誤差均達(dá)到最小,而隨著隱含層節(jié)點(diǎn)數(shù)增多,誤差反而變大,說明出現(xiàn)過擬合現(xiàn)象,所以最終選擇隱含層節(jié)點(diǎn)數(shù)10。圖3是當(dāng)隱含層節(jié)點(diǎn)數(shù)為10時的誤差對比圖。
表3 不同隱含層節(jié)點(diǎn)數(shù)時AP- BP和經(jīng)典BP的最終誤差值Table 3 Final error values of AP- BP and classical BP for different numbers of hidden layer nodes
由圖3可看出,本文提出的基于AP聚類的BP神經(jīng)網(wǎng)絡(luò)算法模型的訓(xùn)練數(shù)據(jù)和泛化數(shù)據(jù)的RMSE和ARGE均要小于經(jīng)典BP神經(jīng)網(wǎng)絡(luò)算法模型。進(jìn)而基于AP- BP算法得到建筑能耗泛化數(shù)據(jù)的熱負(fù)荷和冷負(fù)荷的預(yù)測輸出和期望輸出,如圖4和圖5所示。
從圖4和圖5可以看出,泛化數(shù)據(jù)的期望輸出和預(yù)測輸出擬合度均較高。該建筑第35個樣本X1~X8的值分別0.76、661.6、416.5、122.5、7、4、0.1、2;而熱負(fù)荷和冷負(fù)荷分別為33.12 kW·h/(m3·a)和34.17 kW·h/(m3·a),基于AP的BP神經(jīng)網(wǎng)絡(luò)預(yù)測值為36.02 kW·h/(m3·a)和35.47 kW·h/(m3·a),說明該時刻建筑未達(dá)到要求的熱/冷需求,即該建筑為低負(fù)荷生產(chǎn),能效較低。在以后生產(chǎn)中應(yīng)該調(diào)整投入產(chǎn)出,提高能效。又如第4個樣本中X1~X8的值分別0.98、514.5、294、110.25、7、3、0.25、4;而熱負(fù)荷和冷負(fù)荷分別為28.55 kW·h/(m3·a)和29.59 kW·h/(m3·a),基于AP的BP神經(jīng)網(wǎng)絡(luò)預(yù)測值為28.85 kW·h/(m3·a)和30.5 kW·h/(m3·a),表明本月該建筑滿負(fù)荷運(yùn)行,在后續(xù)生產(chǎn)中該建筑可維持該生產(chǎn)狀況。通過對建筑多輸入和多輸出預(yù)測建模,能夠得到不同投入下不同的能耗情況,進(jìn)而指導(dǎo)投入配置,提高能效。
本文提出了一種基于AP聚類的BP神經(jīng)網(wǎng)絡(luò)算法(AP- BP)用于建筑能耗的分析與預(yù)測建模,并通過ARGE和RMSE對算法模型的預(yù)測能力進(jìn)行評價分析。案例結(jié)果表明,基于AP聚類的BP神經(jīng)網(wǎng)絡(luò)算法對熱負(fù)荷和冷負(fù)荷的預(yù)測能力明顯強(qiáng)于經(jīng)典的BP神經(jīng)網(wǎng)絡(luò)算法模型,同時能夠準(zhǔn)確地對建筑的熱負(fù)荷和冷負(fù)荷進(jìn)行預(yù)測,進(jìn)而為建筑管理者提供建議,合理配置影響熱負(fù)荷和冷負(fù)荷的投入因素,實(shí)現(xiàn)建筑能耗的節(jié)約,從而提高能效。下一步將繼續(xù)對BP算法的改進(jìn)進(jìn)行研究,同時考慮極限學(xué)習(xí)機(jī)(ELM)等方法的改進(jìn)并應(yīng)用在建筑節(jié)能降耗領(lǐng)域。