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