王 祺,周 律,*,馬可可,孫 傅,陳宇敏,徐藝星,黃新麗
(1.清華大學環(huán)境學院,北京 100084;2.成都環(huán)境投資集團有限公司,四川成都 610041)
隨著我國城鎮(zhèn)化建設(shè)要求的不斷提高,作為基礎(chǔ)設(shè)施的自來水廠工程建設(shè)項目新建和改造任務(wù)十分艱巨。為提高水廠項目的建設(shè)投資效益和社會效益,要求對項目全過程的工程造價進行合理和科學的控制與管理[1]。根據(jù)國內(nèi)外大量的工程實踐,建設(shè)項目前期的工程造價控制對項目的成敗起著關(guān)鍵作用。如果能夠在項目的前期對工程項目的建設(shè)造價和投資進行準確合理的估算,那么項目管理單位對項目造價和投資控制的主動性就越大,項目的風險控制就越有效[2]。
為了實現(xiàn)建設(shè)項目造價的快速準確估算,國內(nèi)外學者提出了多種造價模型或方法,包括第一代的按單位面積的造價估算方法、第二代回歸分析方法及第三代基于現(xiàn)代計算機技術(shù)的造價估算模型[2-4]。其中,第三代模型中,人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)是對數(shù)據(jù)信息進行處理以及非線性擬合的一種計算方法。通過人工神經(jīng)網(wǎng)絡(luò)構(gòu)建出的函數(shù),可以揭示所求造價與多個變量間的非線性關(guān)系,是一項應(yīng)用較為廣泛的模型[5]。人工神經(jīng)網(wǎng)絡(luò)可以視為人造大腦,與人腦的神經(jīng)系統(tǒng)具有類似結(jié)構(gòu),可提供解決問題的方法。人工神經(jīng)網(wǎng)絡(luò)是通過模擬人腦神經(jīng)元的信息處理方式,構(gòu)造大量人造神經(jīng)元,使其相互聯(lián)系在一起的網(wǎng)絡(luò)。目前,國內(nèi)外已有較多學者將人工神經(jīng)網(wǎng)絡(luò)應(yīng)用建筑工程造價估算領(lǐng)域,且取得了較好的成果[6-16]。人工神經(jīng)網(wǎng)絡(luò)模型目前在自來水廠建設(shè)項目造價估算的研究和應(yīng)用缺乏,這與自來水廠建設(shè)內(nèi)容的復(fù)雜性有一定的關(guān)系。因此,本研究采用我國西南地區(qū)自來水廠建設(shè)項目的多組工程造價數(shù)據(jù),選取人工神經(jīng)網(wǎng)絡(luò)中的BP算法和RBF算法,進行自來水廠造價模型的構(gòu)建與優(yōu)化,并討論不同算法下模型的適用性,以期為類似工程項目的造價估算提供幫助。
模型的功能是結(jié)合各種數(shù)學手段或計算軟件,確定模型目標值與各類影響因素之間的關(guān)系[10]。建立造價模型的第一步,是確定對模型結(jié)果有重要影響的相關(guān)因素。在人工神經(jīng)網(wǎng)絡(luò)模型中,將模型目標值定義為輸出值,將影響輸出值的相關(guān)因素定義為輸入變量[11-16]。本研究選用的數(shù)據(jù)為收集到的以西南地區(qū)為主的18份自來水廠建設(shè)項目概預(yù)算造價數(shù)據(jù),對樣本數(shù)據(jù)進行分析后,篩選出18個對工程造價的影響因素作為神經(jīng)網(wǎng)絡(luò)的輸入變量,如表1所示。輸出變量確定為2種,分別是自來水廠工程造價(Y1,萬元)及自來水廠噸水造價[Y2,元·(萬m3·d)-1]。
在表1中,編號1~3的變量可以描述自來水廠的基本信息。例如,設(shè)計處理規(guī)模是自來水廠建設(shè)的決定性因素;編號4的價格指數(shù)這一變量是用于減小不同年份通貨膨脹帶來的影響,本研究選取國家統(tǒng)計局發(fā)布的“建材類工業(yè)生產(chǎn)者購進價格指數(shù)”,以2018年為基準年,對不同自來水廠的工程造價費用進行調(diào)整,盡可能減小通貨膨脹帶來的影響;編號5~18的變量主要為自來水廠的各類生產(chǎn)性和非生產(chǎn)性構(gòu)筑物,可以針對具有不同工藝路線的自來水廠自由選擇其構(gòu)筑物種類,選用其建設(shè)容積或面積作為變量量化后的數(shù)據(jù),即自來水廠選用了6號凈水構(gòu)筑物,則對該變量輸入體積值,而沒有被選用的7號構(gòu)筑物則將該變量的體積值輸入為0。
表1 神經(jīng)網(wǎng)絡(luò)輸入變量Tab.1 Input Variables of Neural Network
本研究選用MATLAB軟件中的神經(jīng)網(wǎng)絡(luò)工具箱進行BP和RBF神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建。首先,將所得的樣本數(shù)據(jù)按3.5∶1的比例隨機分為訓(xùn)練組與測試組,即訓(xùn)練組樣本共14個,測試組樣本4個。
BP(back propagation)神經(jīng)網(wǎng)絡(luò)是一種前饋神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)由輸入層、輸出層,以及1個或多個隱藏層組成,核心的BP算法依靠誤差逆向傳播的方式,以自學習的方式建立并優(yōu)化模型。BP人工神經(jīng)網(wǎng)絡(luò)的每一層均由任意個神經(jīng)元組成,并通過加權(quán)連接的方式相互連接。通??蓪⒛P托枰A(yù)測的值設(shè)定為期望輸出值,而與這個預(yù)測結(jié)果相關(guān)的因素定義為輸入層的各個神經(jīng)元,BP人工神經(jīng)網(wǎng)絡(luò)則是利用算法的不停迭代,擬合出預(yù)測結(jié)果與相關(guān)因素間的最佳關(guān)系[8]。
1.1.1 BP神經(jīng)網(wǎng)絡(luò)創(chuàng)建及初始化
調(diào)用MATLAB軟件中的newff函數(shù),即可創(chuàng)建出1個BP神經(jīng)網(wǎng)絡(luò),同時系統(tǒng)將自行對網(wǎng)絡(luò)各層的權(quán)值和閾值進行初始化。由表1可知,輸入變量為18個,輸出變量為2個,即神經(jīng)網(wǎng)絡(luò)的輸入層共18個神經(jīng)元,輸出層共2個神經(jīng)元。同時,還需對BP神經(jīng)網(wǎng)絡(luò)的隱含層層數(shù)、各層神經(jīng)元數(shù)量、各層神經(jīng)網(wǎng)絡(luò)激活函數(shù)進行設(shè)置。本研究根據(jù)測試組樣本結(jié)果,不斷對網(wǎng)絡(luò)結(jié)構(gòu)(即隱含層層數(shù)、神經(jīng)元數(shù)量、激活函數(shù))進行調(diào)整,以獲取更高準確度的模型。
1.1.2 BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和仿真
在完成對BP神經(jīng)網(wǎng)絡(luò)的創(chuàng)建后,導(dǎo)入選定14組樣本數(shù)據(jù)的輸入變量及輸出變量,利用樣本數(shù)據(jù)對BP人工神經(jīng)網(wǎng)絡(luò)進行學習訓(xùn)練。針對不同的神經(jīng)網(wǎng)絡(luò)模型,訓(xùn)練時需對網(wǎng)絡(luò)參數(shù)進行適當?shù)脑O(shè)置或調(diào)整。表2是神經(jīng)網(wǎng)絡(luò)主要訓(xùn)練參數(shù)及取值。
表2 BP神經(jīng)網(wǎng)絡(luò)主要訓(xùn)練參數(shù)及取值Tab.2 Main Training Parameters and Values of BP Neural Network
對于不同的實際問題,BP神經(jīng)網(wǎng)絡(luò)可選擇不同的訓(xùn)練函數(shù),本研究選取了常用的Levenberg-Marquardt(trainlm)訓(xùn)練函數(shù)。
1.1.3 確定BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)
向BP神經(jīng)網(wǎng)絡(luò)中導(dǎo)入表2中的14組訓(xùn)練樣本數(shù)據(jù),通過對樣本數(shù)據(jù)的學習與訓(xùn)練,采用默認神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的參數(shù),獲得初步的BP神經(jīng)網(wǎng)絡(luò)模型。
然后,使用測試組中的4個樣本數(shù)據(jù),對比模型預(yù)測值與實際工程造價值的誤差,對模型輸出值的精確度進行校驗。通過不斷調(diào)整BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),即隱含層層數(shù)、神經(jīng)元數(shù)量、激活函數(shù)這3項參數(shù),直至模型輸出值與實際工程造價的誤差滿足預(yù)期。
本研究中,神經(jīng)網(wǎng)絡(luò)確定了2個輸出值:自來水廠工程造價(Y1)和自來水廠噸水造價(Y2)。因此,本研究對2項輸出值,分別構(gòu)建具有不同網(wǎng)絡(luò)結(jié)構(gòu)的BP神經(jīng)網(wǎng)絡(luò)模型,所得神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)如表3所示。
表3 BP神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)Tab.3 Structure of BP Neural Network Model
通過MATLAB軟件,構(gòu)建自來水廠工程造價的BP神經(jīng)網(wǎng)絡(luò)模型,擬合曲線如圖1、圖2所示。其中,虛線代表14組樣本的實際工程工程造價(Y1)或自來水廠噸水造價(Y2),實線代表基于BP神經(jīng)網(wǎng)絡(luò)模型對14組樣本的預(yù)測值。由圖1、圖2可知,2條曲線的重合程度非常高,即代表BP神經(jīng)模型對樣本數(shù)據(jù)的擬合程度很好。
圖1 工程造價(Y1)的BP模型擬合情況Fig.1 Fitting Situation of BP Model for Construction Costs (Y1)
圖2 噸水工程造價(Y2)的BP模型擬合情況Fig.2 Fitting Situation of BP Model for Unit Construction Cost (Y2)
RBF(radial base function)神經(jīng)網(wǎng)絡(luò)是一種局部神經(jīng)網(wǎng)絡(luò),具有結(jié)構(gòu)簡單、訓(xùn)練簡潔、學習收斂速度快等優(yōu)點[6]。與BP神經(jīng)網(wǎng)絡(luò)一樣,能夠以任一精確度逼近連續(xù)函數(shù)。與BP神經(jīng)網(wǎng)絡(luò)相似的是,RBF神經(jīng)網(wǎng)絡(luò)同樣也由3部分組成:第1層是輸入層,神經(jīng)元數(shù)量由輸入變量的個數(shù)決定;第2層是隱含層,網(wǎng)絡(luò)的激活函數(shù)選用的是徑向基函數(shù);第3層為輸出層,采用線性激活函數(shù)。
調(diào)用MATLAB軟件中的newrb函數(shù),即可創(chuàng)建出1個RBF神經(jīng)網(wǎng)絡(luò)。向RBF神經(jīng)網(wǎng)絡(luò)中導(dǎo)入14組訓(xùn)練樣本數(shù)據(jù),網(wǎng)絡(luò)將自動對樣本數(shù)據(jù)進行反復(fù)的學習與訓(xùn)練,自行確定RBF神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),無需進行如BP神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)整工作,只有1個參數(shù)spread需要調(diào)整,取默認值1.0。RBF的網(wǎng)絡(luò)結(jié)構(gòu)如表4所示。
表4 RBF神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)Tab.4 Structure of RBF Neural Network Model
通過MATLAB軟件構(gòu)建出的自來水廠工程造價的RBF神經(jīng)網(wǎng)絡(luò)模型,擬合曲線如圖3、圖4所示。其中,虛線代表14組樣本的實際工程造價(Y1)或自來水廠噸水造價(Y2),實線代表基于RBF神經(jīng)網(wǎng)絡(luò)模型對14組樣本的預(yù)測工程造價值,2條曲線的重合程度越高,則代表RBF神經(jīng)模型對樣本數(shù)據(jù)的擬合程度越好。由圖3、圖4可知,虛線和實線的重合程度極高,二者幾乎完全重合,即代表RBF神經(jīng)模型對樣本數(shù)據(jù)擬合程度高。
圖3 工程造價(Y1)的RBF模型擬合情況Fig.3 Fitting Situation of RBF Model for Construction Costs (Y1)
圖4 噸水工程造價(Y2)的RBF模型擬合情況Fig.4 Fitting Situation of RBF Model for Unit Construction Cost (Y2)
使用MATLAB軟件構(gòu)建的基于BP和RBF的造價模型,是建立于14組訓(xùn)練樣本之上的一類特殊“經(jīng)驗”模型,而非理論推導(dǎo)模型,因此,需通過實際案例數(shù)據(jù)的檢驗,以判斷人工神經(jīng)網(wǎng)絡(luò)模型的準確性。
本研究中使用訓(xùn)練樣本以外的4組樣本作為測試數(shù)據(jù),代入神經(jīng)網(wǎng)絡(luò)模型中,可得到自來水廠工程造價(Y1)和自來水廠噸水造價(Y2)2項輸出值的預(yù)測結(jié)果,結(jié)合工程的實際值可計算模型的預(yù)測誤差。校驗結(jié)果如圖5、圖6所示。
圖5 水廠項目工程造價(Y1)的模型校驗結(jié)果Fig.5 Verification Results of ANN Model (Y1)
圖6 噸水工程造價(Y2)的模型校驗結(jié)果Fig.6 Verification Results of ANN Model (Y2)
由圖5、圖6可知,對于2項指標Y1和Y2,BP神經(jīng)網(wǎng)絡(luò)模型的測試樣本預(yù)測誤差均可控制在±30%或更低,且5/8的測試樣本可將誤差控制在±20%,預(yù)測效果在項目早期階段,認為是可以接受的;而對于RBF網(wǎng)絡(luò)模型,僅有3/8的測試樣本誤差小于±15%,且5/8的測試樣本誤差接近或超過±50%,誤差過大,通常無法接受。
由圖1~圖4的模型擬合結(jié)果可知,RBF神經(jīng)網(wǎng)絡(luò)模型對于訓(xùn)練樣本數(shù)據(jù)的泛化能力要強于BP神經(jīng)網(wǎng)絡(luò)模型,模型預(yù)測曲線幾乎完全貼近樣本數(shù)據(jù)的實際值。但由圖5和圖6的對比結(jié)果可知,對于自來水廠工程造價(Y1)和自來水廠噸水工程造價(Y2)2項輸出值,BP神經(jīng)網(wǎng)絡(luò)模型的估算精度遠遠優(yōu)于RBF神經(jīng)網(wǎng)絡(luò)模型,且預(yù)測穩(wěn)定性更高。與RBF神經(jīng)網(wǎng)絡(luò)僅具有1個可調(diào)參數(shù)相比,BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建過程需要定義多種類型的參數(shù)和確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)等,構(gòu)建過程相對更加困難。
本研究中得到的預(yù)測精度結(jié)果與劉婧等[6]的模型驗證結(jié)果相反,對于RBF神經(jīng)網(wǎng)絡(luò)模型的預(yù)測誤差遠大于BP網(wǎng)絡(luò)模型的結(jié)果,可能原因如下。
(1)樣本數(shù)據(jù)量較少。RBF網(wǎng)絡(luò)模型對樣本泛化能力過強,反而易受到樣本中極端值的影響,導(dǎo)致模型誤差率變高。
(2)BP神經(jīng)網(wǎng)絡(luò)模型在構(gòu)建過程中,除模型本身的學習訓(xùn)練外,還經(jīng)過了多次網(wǎng)絡(luò)結(jié)構(gòu)的手動調(diào)整,以提高其準確度。因此,BP神經(jīng)網(wǎng)絡(luò)模型相對更穩(wěn)定且精確度更高。
本研究采用人工神經(jīng)網(wǎng)絡(luò)技術(shù)構(gòu)建了基于BP算法和RBF算法的自來水廠工程造價模型。針對水廠建設(shè)項目的造價特性,篩選出18個相關(guān)影響因素作為輸入變量,通過對已有訓(xùn)練樣本的學習,構(gòu)建神經(jīng)網(wǎng)絡(luò)模型。其中,基于BP算法的人工神經(jīng)網(wǎng)絡(luò)模型具有較好的預(yù)測能力,87.5%測試樣本的校驗結(jié)果表明,均可達到項目建議書階段的估算精度要求(±30%),50%以上的樣本可以達到可行性研究報告的估算精度要求(±20%)。隨著累計案例數(shù)目的增加,該模型或算法的精確度會不斷提高。基于RBF算法的人工神經(jīng)網(wǎng)絡(luò)模型估算精度較差,僅有3/8的樣本可以達到項目建議書階段的估算精度要求(±30%),無法滿足實際的工程需求。