董道國(guó),朱建龍,方瑾
(華建數(shù)創(chuàng)(上海)科技有限公司)
目前,智慧建筑在建筑行業(yè)內(nèi)的應(yīng)用越來(lái)越廣泛。智慧建筑是為了適應(yīng)現(xiàn)代信息社會(huì)對(duì)建筑物功能、環(huán)境和高效管理要求,在傳統(tǒng)建筑的基礎(chǔ)上發(fā)展而來(lái)[1]的,因此,基于BIM技術(shù)和物聯(lián)網(wǎng)技術(shù)的建筑運(yùn)維管理系統(tǒng)得到了業(yè)內(nèi)的廣泛關(guān)注。但是人工智能技術(shù)在建筑領(lǐng)域內(nèi)的應(yīng)用仍然較少,主要應(yīng)用方向是以節(jié)能為主的能耗系統(tǒng)及故障診斷系統(tǒng)。能耗系統(tǒng)是建筑運(yùn)維過(guò)程中節(jié)能減排、節(jié)約費(fèi)用的關(guān)鍵系統(tǒng),一般基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法的線性回歸(LR)[2]、支持向量機(jī)(SVM)[3]、時(shí)序模型(ARIMA)[4],以及基于神經(jīng)網(wǎng)絡(luò)的BP 神經(jīng)網(wǎng)絡(luò)[5]、長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)[6]等進(jìn)行能耗分析預(yù)測(cè)。在建筑運(yùn)維過(guò)程中,設(shè)備的維護(hù)維修同樣是一個(gè)頻繁且重要的工作,對(duì)于設(shè)備運(yùn)維期故障的分析預(yù)測(cè)一般采用關(guān)聯(lián)規(guī)則挖掘(apriori)[7]及BP 神經(jīng)網(wǎng)絡(luò)算法[8]。常規(guī)的預(yù)測(cè)方法將能耗預(yù)測(cè)和故障預(yù)測(cè)割裂開(kāi)來(lái),沒(méi)有考慮兩者的潛在共同影響因素,本文提出一種采用人工神經(jīng)網(wǎng)絡(luò)的多任務(wù)學(xué)習(xí)方法,在融合BIM 模型數(shù)據(jù)和物聯(lián)網(wǎng)數(shù)據(jù)的基礎(chǔ)上,可同時(shí)進(jìn)行建筑能耗和設(shè)備故障預(yù)測(cè)。
采用基于物聯(lián)網(wǎng)和BIM 模型的智慧建筑,可采集以房間為單位的、大量的設(shè)備和傳感器數(shù)據(jù),因此建筑能耗和設(shè)備故障預(yù)測(cè)的顆粒度可以細(xì)化至單個(gè)房間,由此產(chǎn)生的大量數(shù)據(jù)同時(shí)解決了機(jī)器學(xué)習(xí)模型基于大數(shù)據(jù)的問(wèn)題。通過(guò)物聯(lián)網(wǎng)設(shè)備及傳感器可以獲取每個(gè)房間的環(huán)境參數(shù)和設(shè)備信息,環(huán)境參數(shù)包括某一天的最高溫度、最低溫度、濕度、天氣、人流量等,設(shè)備信息包括設(shè)備類型、設(shè)備數(shù)量、設(shè)備使用年限,歷史上維修次數(shù)等。通過(guò)BIM 模型可獲取房間和設(shè)備的空間數(shù)據(jù),房間的空間數(shù)據(jù)包括體積、朝向、門(mén)窗面積、內(nèi)外墻面積、樓板面積等,設(shè)備的空間信息包括房間內(nèi)擁有的設(shè)備類型、設(shè)備數(shù)量等。訓(xùn)練數(shù)據(jù)的標(biāo)簽分為各種能耗數(shù)值及設(shè)備故障的有無(wú),每一類設(shè)備對(duì)應(yīng)一種設(shè)備故障類型。數(shù)據(jù)集的特征和標(biāo)簽均可根據(jù)不同的能耗預(yù)測(cè)對(duì)象及設(shè)備故障類型進(jìn)行增刪。
Apriori 算法是第一個(gè)關(guān)聯(lián)規(guī)則挖掘算法,也是最經(jīng)典的算法。它利用逐層搜索的迭代方法找出數(shù)據(jù)庫(kù)中項(xiàng)集的關(guān)系,以形成規(guī)則。項(xiàng)集出現(xiàn)的頻率即為項(xiàng)集的支持度,如果某項(xiàng)集滿足最小支持度,則稱它為頻繁項(xiàng)集。根據(jù)最小支持度,用K項(xiàng)集去探索(K+1)項(xiàng)集,首先找出頻繁1 項(xiàng)集的集合記為L(zhǎng)1,基于L1找出頻繁2項(xiàng)集L2,依此類推,直到不能找到頻繁K 項(xiàng)集。為了提高頻繁項(xiàng)集逐層查找的效率,該算法利用連接(將Lk-1與自己連接產(chǎn)生Lk的候選項(xiàng)集)和剪枝(任何非頻繁的K-1項(xiàng)集都不可能是頻繁K項(xiàng)集的子集)減少計(jì)算量[9]。
將數(shù)據(jù)進(jìn)行選取并規(guī)范化處理后,即可采用多元線性回歸或神經(jīng)網(wǎng)絡(luò)算法,直接對(duì)能耗進(jìn)行回歸或者對(duì)故障進(jìn)行分類。但是對(duì)于關(guān)聯(lián)規(guī)則挖掘,由于Apriori 算法無(wú)法處理連續(xù)值的情況,所以必須將連續(xù)值進(jìn)行分箱處理,每一種連續(xù)值的分箱方式均需人為指定。同時(shí),Apriori 算法需要設(shè)定最小支持度及最小置信度的閾值,將其作為頻繁項(xiàng)集的依據(jù)。當(dāng)閾值設(shè)定過(guò)小時(shí),頻繁項(xiàng)集數(shù)量會(huì)過(guò)多,當(dāng)閾值設(shè)定過(guò)大時(shí),頻繁項(xiàng)集數(shù)量會(huì)過(guò)少甚至沒(méi)有,因此最小支持度及最小置信度的設(shè)置需要一定的經(jīng)驗(yàn)。此外,在某些情況下頻繁項(xiàng)集的挖掘僅僅基于故障和故障之間,不考慮其他的各種因素,因此還需要根據(jù)一定的日期間隔及空間間隔對(duì)設(shè)備故障進(jìn)行篩選后合并為一條關(guān)聯(lián)數(shù)據(jù),間隔的選取同樣需要較多的人工經(jīng)驗(yàn)。對(duì)于訓(xùn)練樣本較少的設(shè)備故障數(shù)據(jù)而言,機(jī)器學(xué)習(xí)結(jié)果本身就存在較大的偶然性,外加采用Apriori 算法需要較多的人為經(jīng)驗(yàn)進(jìn)行調(diào)參,因此該算法用于運(yùn)維系統(tǒng)中的故障預(yù)測(cè)時(shí)使用起來(lái)較為麻煩。
普通的神經(jīng)網(wǎng)絡(luò)即BP神經(jīng)網(wǎng)絡(luò)采用輸入層、隱藏層及輸出層作為網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示,其中隱藏層的數(shù)量可以多于一層。輸入的節(jié)點(diǎn)數(shù)為特征的數(shù)量,輸出的節(jié)點(diǎn)數(shù)根據(jù)任務(wù)需要進(jìn)行設(shè)置,隱藏層的節(jié)點(diǎn)數(shù)可以任意設(shè)置,一般不少于輸入節(jié)點(diǎn)的數(shù)量。基本BP 神經(jīng)網(wǎng)絡(luò)包括信號(hào)的前向傳播和誤差的反向傳播兩個(gè)過(guò)程。以三層神經(jīng)網(wǎng)絡(luò)為例,正向傳播時(shí),輸入值乘上權(quán)重矩陣并經(jīng)過(guò)非線性變換后輸出至隱藏層,再經(jīng)過(guò)一次權(quán)重變換后產(chǎn)生輸出信號(hào),若實(shí)際輸出與期望輸出不相符,則轉(zhuǎn)入誤差的反向傳播過(guò)程。誤差反向傳播是將輸出誤差通過(guò)隱藏層向輸入層逐層反傳,并將誤差分?jǐn)偨o各層所有單元,以此調(diào)整權(quán)重矩陣。通過(guò)調(diào)整輸入節(jié)點(diǎn)與隱層節(jié)點(diǎn)的權(quán)重值使誤差沿梯度方向下降,經(jīng)過(guò)反復(fù)學(xué)習(xí)訓(xùn)練,確定與最小誤差相對(duì)應(yīng)的網(wǎng)絡(luò)參數(shù)即權(quán)重值,訓(xùn)練結(jié)束。神經(jīng)網(wǎng)絡(luò)推理時(shí),將與訓(xùn)練數(shù)據(jù)集格式相同的數(shù)據(jù)作為輸入,網(wǎng)絡(luò)的輸出值可直接使用,神經(jīng)網(wǎng)絡(luò)屏蔽了計(jì)算細(xì)節(jié)。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
為了將建筑能耗與設(shè)備故障預(yù)測(cè)在同一個(gè)網(wǎng)絡(luò)中實(shí)現(xiàn)輸出,需要將圖1的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行微調(diào),如圖2 所示。a1至an為能耗預(yù)測(cè)的輸出項(xiàng),n由能耗預(yù)測(cè)對(duì)象的數(shù)量決定。bn+1至bm為設(shè)備故障預(yù)測(cè)的輸出值,m由設(shè)備故障的類型數(shù)量決定。
圖2 能耗及故障預(yù)測(cè)BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
由于設(shè)備故障預(yù)測(cè)類型為二分類,因此還需要經(jīng)過(guò)一層Sigmoid函數(shù)進(jìn)行變換,將輸出數(shù)值轉(zhuǎn)換至0~1 之間,即故障出現(xiàn)的概率大小。在神經(jīng)網(wǎng)絡(luò)的前向推理過(guò)程中,當(dāng)故障預(yù)測(cè)部分的某個(gè)輸出概率大于0.5時(shí),可以認(rèn)為該輸出所對(duì)應(yīng)的故障類型出現(xiàn)的可能性較大,管理系統(tǒng)即向物業(yè)管理人員進(jìn)行提醒。由于每次輸入的數(shù)據(jù)為一個(gè)房間的數(shù)據(jù),并不能考慮房間與房間之間的關(guān)聯(lián)性,也未能考慮單個(gè)房間與整個(gè)建筑之間的相互影響,因此對(duì)于設(shè)備故障的預(yù)測(cè)存在一定的不準(zhǔn)確性,但是作為運(yùn)維管理系統(tǒng)中的提醒事項(xiàng)已經(jīng)足夠。
對(duì)于回歸類學(xué)習(xí)任務(wù),通常采用均方誤差(MSE)作為損失函數(shù),
式(1)中:y為實(shí)際值;y?為預(yù)測(cè)值;n為能耗預(yù)測(cè)項(xiàng)目的數(shù)量;
對(duì)于分類任務(wù),通常采用交叉熵(Cross En‐tropy)作為損失函數(shù),
式(2)中:y和y?的含義同上,m 為設(shè)備故障類型的數(shù)量。
由于訓(xùn)練樣本中,正負(fù)樣本極不平衡,假如以設(shè)備出現(xiàn)故障為正樣本,那么負(fù)樣本的數(shù)量將遠(yuǎn)大于正樣本的數(shù)量,因此需要增加正樣本的損失權(quán)重,
式(3)中:α是小于1的正小數(shù),以此降低負(fù)樣本的權(quán)重。最終的損失應(yīng)包含能耗預(yù)測(cè)和故障預(yù)測(cè)兩部分,但由于能耗預(yù)測(cè)的損失值會(huì)大于故障預(yù)測(cè),因此需要減少能耗預(yù)測(cè)的損失,避免優(yōu)化方向只朝著降低能耗預(yù)測(cè)部分損失的方向進(jìn)行。
最終的損失函數(shù)為:
式(4)中:β是小于1 的正小數(shù)。損失函數(shù)擁有之后,即可建立神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
①采用Apriori算法可以挖掘設(shè)備故障間的關(guān)聯(lián)規(guī)則,但是需要人為經(jīng)驗(yàn)進(jìn)行調(diào)參,該算法應(yīng)用于運(yùn)維系統(tǒng)中的故障預(yù)測(cè)時(shí)較為麻煩。
②采用神經(jīng)網(wǎng)絡(luò)進(jìn)行的多任務(wù)學(xué)習(xí)可以同時(shí)解決建筑能耗和設(shè)備故障預(yù)測(cè)兩個(gè)問(wèn)題,即可解決Apriori 算法的缺點(diǎn),又可以挖掘能耗相關(guān)參數(shù)和設(shè)備故障間潛在的關(guān)聯(lián)關(guān)系。
③利用BIM 模型可以有效利用建筑的空間數(shù)據(jù),增加特征數(shù)量。缺點(diǎn)是每次輸入的是一個(gè)房間的數(shù)據(jù),未能考慮房間與房間之間的關(guān)系、單個(gè)房間與整個(gè)建筑的影響,因此對(duì)于設(shè)備故障的預(yù)測(cè)存在一定的不準(zhǔn)確性。
④對(duì)于故障預(yù)測(cè)損失函數(shù)需要考慮能耗預(yù)測(cè)和故障預(yù)測(cè)兩個(gè)部分,對(duì)于故障預(yù)測(cè),需要權(quán)衡正樣本和負(fù)樣本數(shù)量的不平衡,因此引入兩個(gè)超參數(shù)ɑ和β對(duì)損失進(jìn)行調(diào)節(jié),讓能耗預(yù)測(cè)和故障預(yù)測(cè)兩個(gè)部分的優(yōu)化更加合理。
⑤采用本方法的建筑能耗和設(shè)備故障預(yù)測(cè)可根據(jù)目標(biāo)任務(wù)靈活調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),不足之處在于沒(méi)有充分利用BIM模型中的空間拓?fù)潢P(guān)系。