劉新勝 (平?jīng)鲂畔⒐こ虒W校,甘肅 平?jīng)?744000)
與其他神經(jīng)網(wǎng)絡結(jié)構(gòu)相比,DNN 的主要特點是其出色的非線性處理能力[1]。得益于緊湊高效的非線性映射結(jié)構(gòu),DNN 可以處理更大數(shù)據(jù)集和更復雜特征的數(shù)學和物理問題。另外,DNN 可以充分利用自身的多重隱藏層結(jié)構(gòu)來訓練大量數(shù)據(jù),一般用于預測的結(jié)果準確率會更高[2]。層數(shù)越多表示模型越復雜,具有更好的非線性特性,可以學習到更豐富的特征。理論上,網(wǎng)絡結(jié)構(gòu)各層之間的鏈接是完全連接的,每一層的神經(jīng)元也可以相互連接。因此,結(jié)合經(jīng)驗選擇了DNN。DNN 的神經(jīng)網(wǎng)絡結(jié)構(gòu)如圖1 所示,它包含多個隱藏層、一個輸入層和一個輸出層。
圖1 DNN模型
從圖1 可以看出,DNN 結(jié)構(gòu)主要由輸入層、隱藏層和輸出層組成[3]。該網(wǎng)絡的特點是包含多個隱藏層。輸入層表示為X=[x1,x2,xn]7,這是一個n維的列向量。輸入數(shù)據(jù)可以是風力、風速、風向、溫度等。在輸入層中,激活函數(shù)是標準常數(shù)函數(shù),輸入量需要通過標準常數(shù)函數(shù)進行轉(zhuǎn)換,然后輸出到第一層。(wn,bn)表示n 個隱藏層的權值參數(shù)wn和閾值參數(shù)bn。隱藏層中的數(shù)據(jù)來自于上層的輸入,利用該層的激活函數(shù)對輸入變量進行非線性處理后,將處理后的數(shù)據(jù)輸出傳遞到下層,得到與y 結(jié)合的最終輸出。
將數(shù)據(jù)分類處理后作為輸出值,通過輸入層傳遞到隱藏層,得到隱藏輸入輸出的第一關系,表示為式(1):
其中,R1表示第一個隱藏層的輸出矩陣;Wi和bi分別表示輸入層和隱藏層之間的權重參數(shù)和閾值參數(shù)。
如果第一隱藏層變量表示為r1,p,將pth設為變量,則w1,p代表輸入層與第一隱藏層之間的權重矩陣,b1,p表示輸入層與第一隱藏層之間閾值向量中第1 個變量值,則由激活函數(shù)f變換的原始列向量x得到R1中的每個輸出值,公式為:
根據(jù)DNN 的原理,前一個隱藏層的輸出是下一個隱藏層的輸入,因此DNN模型第m個隱藏層的輸出Rm表達式為:
輸入量X由輸入層處理后發(fā)送到隱藏層,完成隱藏層處理后傳輸?shù)捷敵鰧?,可以表示為?/p>
其中,Wn+1和bn+1分別表示最后一個隱藏層與輸出層之間的權重參數(shù)和閾值參數(shù);g表示DNN 中輸出層的激活函數(shù)。
激活函數(shù)是對每層輸出量進行非線性處理的工具,可以提高神經(jīng)網(wǎng)絡的數(shù)據(jù)處理和優(yōu)化能力。常見的激活函數(shù)sigmoid可以表示為:
其中,x表示輸入變量;e表示常數(shù),取值為2.7183。
結(jié)合DNN 良好的非線性映射能力和較強的泛化能力[4],本文采用DNN 模型預測工程成本。
影響建設項目造價成本價格的因素很多,這些因素相互影響、相互關聯(lián)。為了綜合分析工程造價,本文參考了部分學者的研究成果,將這些影響因素分為工程項目特性和清單項目特性。
2.1.1 指標劃分
針對工程項目特性,指標劃分如表1所示。
表1 指標劃分
2.1.2 項目特征
列表項通常用12 位編碼,編碼的前9 位根據(jù)不同的類別設置。基于此,需要在庫存代碼和模型之間進行轉(zhuǎn)換。代碼的后3 位根據(jù)施工圖的具體情況從001開始依次編碼,項目代碼不能重復。
列表項特征與工程特征相同,需要根據(jù)項目特征的描述進行分類并賦予對應的值,如果列表中沒有子項,則賦予0。由于存量項目數(shù)據(jù)量大,對整個工程特性的量化具有很大的復雜性,因此本文以實心磚墻和有梁板兩個子項目為例進行量化,如表2所示。
表2 實心磚墻、有梁板工程的量化
2.1.3 DNN模型的輸出
在判斷工程造價時,通常采用核對、比對等方法來合理判斷總報價和各分項工程報價及稅金,其中總報價和分項工程報價是主要的判斷內(nèi)容。針對該特征,將DNN 作為模型輸出,合理預測價格,為專家評價提供參考。
①激活函數(shù)。為了讓DNN 模型更具表現(xiàn)力,需要引入一個非線性函數(shù)作為激活函數(shù)。常用的激活函數(shù)有sigmoid函數(shù)、ReLU 函數(shù)、tanh函數(shù)。由于DNN 模型在進行反向遷移時容易出現(xiàn)梯度消失或爆炸,但ReLU 函數(shù)可以解決這個問題,而且ReLU 函數(shù)的收斂速度更快,所以本文采用ReLU 函數(shù)作為激活函數(shù)。
②權重初始化。在訓練模型之前,需要初始化權重。目前的權重初始化方法主要有兩種,一種是將權重初始化為非常小的值,另一種是將權重設置為+1和-1 等數(shù)??紤]到第二種方法過于主觀,為了達到更好的模型訓練效果,本文采用第一種方法,在符合正態(tài)分布的范圍內(nèi)用隨機數(shù)初始化權重。
③網(wǎng)絡結(jié)構(gòu)。網(wǎng)絡結(jié)構(gòu)主要包括網(wǎng)絡節(jié)點和隱藏層,直接影響DNN 的性能。一般只考慮一個隱藏層,在這個隱藏層下找到最優(yōu)的隱藏節(jié)點。圖3 顯示了500 次計算后隱藏層下不同節(jié)點的誤差。當隱藏節(jié)點為23 時,誤差最小,但仍難以滿足要求。
一般來說,隱藏層越多,模型的準確率就越高,所以使用2 個隱藏層的DNN模型。確定隱藏層數(shù)后,確定隱藏層節(jié)點數(shù)。一般來說,如果隱藏層的節(jié)點數(shù)不足,會導致模型學習能力差,從而增加誤差;過大會造成過擬合現(xiàn)象,降低模型的泛化能力。分析以往經(jīng)驗,第一隱藏層與第二隱藏層節(jié)點數(shù)的最佳比例為3:1。因此,當兩層節(jié)點數(shù)分別設置為15和5 時準確率最高,最終的DNN 結(jié)構(gòu)如圖2所示。
圖2 DNN結(jié)構(gòu)示意圖
3.1.1 模型訓練樣本和環(huán)境
該模型的樣本數(shù)據(jù)來自某工程成本庫,其中選取了某地區(qū)近20 組工程造價數(shù)據(jù)作為樣本,其中訓練樣本15 組,測試樣本5組。模型編寫過程使用Python環(huán)境中的Spyder 軟件,模型使用改進的BP 算法進行訓練,該算法引入動量項,允許誤差面避免落入局部最小值,從而得到最優(yōu)的解。設學習速率η 為0.001,動量系數(shù)α 為0.8,迭代次數(shù)為5000,誤差范圍ε小于0.001。
3.1.2 模型訓練和結(jié)果
在進行模型訓練之前,需要對樣本數(shù)據(jù)進行歸一化處理,將數(shù)據(jù)輸出和輸入控制在區(qū)間內(nèi),該模型計算5000 次迭代后誤差值約為0.00289,如圖3 所示。子項目總報價與綜合單價的擬合曲線如圖4 所示,從中可以看出樣本值與實際值的曲線擬合效果是一致的。
圖3 模型訓練誤差的收斂性
圖4 DNN模型曲線擬合效果
為了比較DNN 的預測效果,在進行DNN 預測的同時引入了BP 神經(jīng)網(wǎng)絡。對比結(jié)果表明,DNN 的預測更接近真實價格,而BP神經(jīng)網(wǎng)絡與真實值的誤差較大。得出的結(jié)論是DNN 的預測效果更好。
為了驗證DNN 模型在實際應用中的有效性,將訓練好的DNN 模型用于測試樣本,即通過分析測試樣本的誤差,如果在誤差范圍內(nèi),則說明DNN 模型具有有效性。本文隨機選取一組測試樣本進行測試,輸出值如表3所示。
表3 模型驗證結(jié)果
從表3 可以看出,DNN 模型的輸出值與真實值的相對誤差均在5%以下,說明DNN模型可以很好地預測工程成本。
項目成本已被上述預測,但預測結(jié)果不是成本價格,主要是因為模型樣本是隨機的,不考慮個體企業(yè)管理能力等因素,因此模型的預測值僅屬于平均值。當模型訓練時,其產(chǎn)值為結(jié)算價格,包括企業(yè)成本,而成本價格應是結(jié)算價格與預估的差異。因此,需要調(diào)整模型的預測,以獲得成本價格。
考慮到子項目成本特點和綜合單價的比例,本文采用加權平均算法將綜合單價乘以調(diào)整系數(shù),得到成本價格,調(diào)整方法如表4 所示。假設P為成本價格,V為模型輸出值,調(diào)整方程如式(6)和(7)所示。
表4 綜合單價調(diào)整方法
由于綜合單價的各種成本比例不同,因此需要對綜合單價成本α的百分比進行統(tǒng)計。根據(jù)代碼的前9 位數(shù)字,計算機可以確定匹配的列表項,以表4為例進行比例計算,可以得到人工成本的百分比α如下。
設定α1=0.207、α2=0.657、α3=0.008、α4=0.025,計算綜合單價的成本系數(shù)。相關研究表明,人工成本、材料成本、施工機具使用成本、企業(yè)管理成本一般不低于平均成本的90%、98%、70%、70%,而部分企業(yè)可以利用零利潤來擴大市場,所以利潤可以忽略不計。在這方面,綜合單位成本因素如表5所示。
表5 系數(shù)調(diào)整的計算
將表5 的數(shù)據(jù)代入式(6),可計算出實心磚墻綜合單價調(diào)整系數(shù)為0.85。由于實心磚墻的綜合單價產(chǎn)出為468 元,因此成本價為:
根據(jù)上述方法,可以對每個綜合單價進行調(diào)整,得到相應的成本價??倛髢r中的總成本價可以通過匯總調(diào)整后的成本價得到。
綜上所述,解決成本定價問題的關鍵在于準確計算項目成本價格。本文在前人研究的基礎上,構(gòu)建了DNN 工程成本價格預測模型,將工程指標系統(tǒng)分為工程特征和清單工程特征兩類,然后隨機選取20 組樣本數(shù)據(jù)對模型進行訓練和預測。結(jié)果表明,DNN 預測模型誤差較小,能有效地預測工程成本。由于工程成本預測是隨機的,結(jié)果輸出是結(jié)算價格,因此對DNN 預測結(jié)果進行了合理的調(diào)整。采用加權平均算法計算各子項目的綜合單價成本價格和總報價的成本,最后得到整個項目的成本價格。本研究可為工程成本的信息預算提供新思路。