曹 斐,周 彧,王春曉,任夢宇,周 峰
(1.中國地質大學(武漢)機械與電子信息學院,武漢 430074;2.中建三局工程設計有限公司,武漢 430074)
在建筑行業,混凝土是最重要的結構材料之一,其抗壓強度是指在外力作用下,單位面積所能承受的壓力,又指抵抗壓力破壞的能力。混凝土的抗壓強度很大程度上決定了建筑的荷載、安全性能,因此如何快速有效地判斷混凝土強度對施工質量和進度有重要意義[1]。
影響混凝土抗壓強度的因素可分為兩類,即多種原料用量比例和養護齡期,原料用量比例決定混凝土早期強度,經過一定的養護齡期后,各原料之間通過物理和化學反應充分交互作用,強度呈一定規律增長,特征復雜,各因素并非與混凝土強度呈現簡單的線性關系,直接建立數學模型較為困難[2]。而機器學習可以挖掘到數據的深層規律,并通過訓練得到可靠的預測模型,性質優良,因此有學者將機器學習應用于混凝土抗壓強度預測的問題,采用的方法有神經網絡、支持向量機。Asteris等[3]將反向傳播神經網絡(Back Propagayion Neural Network, BPNN)應用在自密實混凝土強度預測中,在僅有少量數據的情況下,四層的網絡結構較好地完成了任務。Tsai等[4]提出將高階神經網絡(High-Order Neural Network, HONN)應用于混凝土抗壓強度預測問題的研究,該網絡通過使各輸入參數之間形成多種乘積形式來實現非線性表達,形成了簡單固定的公式。但只在同一齡期下進行了實驗,未考慮全部參數,且乘積形式的表達力不足,得到的模型不夠完備。高寶成等[5]利用核函數的非線性將原混凝土參數投向高維空間,將其轉化為線性問題,獲得支持向量回歸(Support Vector Regression, SVR)預測模型,效果顯著。SVR算法建立在嚴謹的數學理論基礎上,泛化能力強,且核技巧使其擅于解決復雜的非線性問題,另外相對于其他機器學習方法,該方法對數據量的要求不高,少量樣本即可進行良好的預測,因此在很多領域都得到了應用。陳通箭等[6]利用該算法預測軌道車站客流高峰期持續時間,以此提高軌道車站高峰時期的管理和運營能力。薛同來等[7]利用SVR預測水質,相比其他方法,誤差明顯降低。劉代剛等[8]利用SVR進行風力預測,以減小風力發電的隨機性對電力系統的影響。由于SVR在各應用場景中的較強優勢,本文將其作為基礎算法進行混凝土抗壓強度的預測。
關于SVR的優化,一個重要的手段是權重的引入,即加權型SVR(Weighted SVR,WSVR)。張講社等[9]提出以誤差大小為權重來調節懲罰參數,減少了噪聲和孤立點對模型的影響。在時間序列中,張翔[10]提出通過隨機森林計算出每個時間點對最終預測結果的重要度,將其作為權值對SVR核函數加權,實現對SVR時間序列預測效果的提升。本文使用的改進方法即為加權,傳統的SVR往往會忽略樣本優劣性,由于對所有樣本出錯的懲罰力度相同,劣勢樣本將使得實際得到的SVR模型與理想模型產生較大偏差,針對這一問題,本文提出了一種基于馬氏距離的加權型SVR(WSVR based on Mahalanobis distance,MWSVR),根據訓練樣本到測試集中心的距離來反比量化懲罰因子,弱化異常數據在求解過程中的作用,使不同樣本合理發揮作用。
SVR算法的前身是支持向量機(Support Vector Machine, SVM),原始SVM算法由Vapnik和Cortes提出來解決二分類問題[11],SVR是支持向量機在回歸領域的一個重要分支。SVR解決的回歸問題分為線性和非線性,但歸根結底,實際解決的都是線性問題,針對非線性問題,SVR通過核函數將數據映射到高維空間,在高維空間中通過最小化結構風險來逼近函數,因為在建立模型過程中僅依靠了部分向量,所以稱之為支持向量。
SVR的線性回歸問題描述為:給定m個樣本數據{(x1,y1),(x2,y2)…(xm,ym)},其中xi∈Rn(i=1,2…m),Rn表示n維的向量空間,R指實數域,xi代表已知的樣本決策變量,包含多個因子,yi為待預測量,本文中指混凝土強度,為單一數值。如果在二維空間,SVR的目的是尋找一條直線,使所有的(xi,yi)盡可能在這條直線上;如果在高維空間,那就是尋找超平面使訓練樣本盡可能位于超平面上,公式描述如下[12]:
f(x)=ωTx+b
(1)

(2)
SVR的優化目標如下[12]:

(3)
式中:ε為允許誤差帶的寬度,當預測值f(xi)和預測值yi之間的誤差超過ε時計算損失。ξi和ξ′i為松弛因子,代表預測誤差。C為懲罰因子,C越大,表示對誤差的懲罰力度越大,針對不同的樣本,C是固定的。A項為正則項,代表模型復雜度,防止過擬合。另外還應該避免欠擬合,描述為 B項。
為求解優化問題式(3),每個約束條件引入拉格朗日乘子α、α′、μ、μ′[12]:
(4)
式(3)的對偶問題如下[12]:

(5)
先求解L函數的最小值問題,對ω、b、ξi和ξ′i求導,令其為0,得到四個等式,其中ω只與α和α′相關,如式(6)[12]所示:
(6)
將得到的四個等式代入式(4),可得式(7)[12]:

(7)
利用二次規劃求解得到α和α′,根據其值得到支持向量,分為以下三類:
(1)若αi=C、α′i=0或α′i=C、αi=0,則xi為邊界支持向量;
(2)若αi∈(0,C)、α′i=0或α′i∈(0,C)、αi=0,則xi為標準支持向量;
(3)若αi=0且α′i=0,則xi為非支持向量。
總之,α′i-αi≠0時,xi為支持向量,將參與到ω的計算當中,另外偏置b也由標準支持向量得到,如式(8)[12]:
(8)
引入核函數K,將原參數映射到高維空間,最終解的形式為[12]:
(9)
可以看到SVR模型的重點在于αi和α′i,(α′i-αi)的值決定了最終解的形式,而它們求解的一個重要邊界條件為0≤α′i,αi≤C,這樣的邊界條件將全體樣本一視同仁,懲罰力度相同,若能根據樣本的差異,改變懲罰因子,令0≤α′i,αi≤Ci,異化邊界條件,將得到更精準有效的αi和α′i的解的形式。
在回歸問題中,一個可循的規律是輸入參數越接近,輸出就越接近,因此更好地訓練與測試集接近的數據將提升測試質量。假設自變量為二維數據,維度為X1和X2,如圖1,測試集中心大致反應了測試集的分布,根據訓練樣本的位置,可以看出它們偏離測試集中心的程度不同,因此需要相應的弱化或強化它們在訓練時的作用,顯然,樣本1的強化意義較大,這可以通過加大懲罰力度實現,樣本3則應弱化,減小其懲罰因子,允許其出錯,使其在訓練時幾乎不發揮作用,近似剔除。因此根據訓練樣本到測試集中心的距離量化懲罰因子是合理的。

圖1 二維數據集示例Fig.1 2D dataset example
選擇合適的距離度量手段將會得到好的加權效果,馬氏距離可以用來度量一個樣本和一個群體之間的距離,相比其他度量方法,它與數據的量綱無關,還會考慮到各個變量之間的關系,可應用于本文的問題中。
首先定義均值向量μ=(μ1,μ2…μn),代表了每個特征的均值,協方差矩陣Cmat則代表了各個特征之間的相關關系,X的協方差矩陣公式描述如下[13]:
Cmat=cov(Xi,Xj)=E[(X-μ)T(X-μ)]
(10)
則空間中任意兩點,如M、N兩數據點之間的馬氏距離DM(M,N)表達式如式(11)所示[13]:
(11)
現在需要構造懲罰因子Ci和距離1/DM的正比關系,由于冪次方是一種常見的、簡單的正比關系,且基于前人經驗[9],本文中假定了它們之間的關系如下:
(12)
式中:k和j是需要根據實際情況選擇的參數。利用k、j、DM得到Ci后,約束條件不變,優化問題為:
(13)
本文也嘗試了如Ci=sin(1/DM)(其中0≤1/DM≤π/2)這樣的Ci和1/DM之間的正比關系以及其它冪的形式,但無良好成效,因此最終選定了式(12)的形式,式(12)以訓練樣本到測試集中心的馬氏距離為權重實現了由C到Ci的轉變,稱為MWSVR。
懲罰因子的改變只對二次規劃的求解過程產生影響,其他過程和SVR相同。因此MWSVR還有一些SVR中固有的參數需要調整尋優,分別是ε、σ和error,ε代表允許誤差帶的寬度,σ是高斯核函數的寬度,error是允許的判別誤差,|α′i-αi|>error時,即可判定其為支持向量。這五個參數都可以影響支持向量的個數,對MWSVR的泛化能力造成影響,因此需要慎重選擇。這些參數的選擇使用了遺傳算法,以測試集的均方根誤差(Root Mean Squard Error, RMSE)為優化目標,RMSE可以用來衡量一組數據的預測值ypredict與真實值ytrue的偏差程度,如式(14)所示:
(14)
本文所使用的數據來自加州大學歐文分校,共計1 030條[14]。數據集示例如表1,均是未經處理的原始數據。輸出變量是混凝土的抗壓強度,單位為MPa。輸入變量包括8項,首先為混凝土的原材料,包括水泥、爐渣、粉煤灰、水、減水劑、粗骨料和細骨料的用量,單位均為kg/m3,即每立方米混凝土中包含的各材料的質量,混合在一起的原材料經均勻攪拌,密實成型。各種原料的比例至關重要,以水與水泥用量的比值即水灰比為例來說明,圖2為1 030條數據中各水灰比下的混凝土抗壓強度均值,明顯可看到二者成反比,這也與經驗相符,水灰比較小時,顆粒間空隙小,水化反應產生的膠體容易填充空隙,蒸發后水孔較少,混凝土抗壓強度較高。但由于數據局限性,圖2是基于統計所描繪的折線,除水灰比外,其余自變量并不相同,故略有起伏。其次為養護齡期,剛成型的混凝土需要在一定的溫度、濕度環境下養護硬化,常見齡期為7 d、28 d。在正常養護的條件下,混凝土強度將隨齡期的增長而不斷發展,最初7~14 d內強度增長較快,之后逐漸緩慢,28 d達到設計強度,之后會繼續增長。本文所使用的數據也表明了這一點,圖3展示了三組混凝土抗壓強度數據和養護齡期的關系,其中各組內除養護齡期以外,自變量相同。

表1 混凝土數據集示例[14]Table 1 Concrete data set example[14]

續表

圖2 混凝土抗壓強度和水灰比的關系Fig.2 Relationship between concrete compressive strength and water cement ratio

圖3 混凝土抗壓強度和養護齡期的關系Fig.3 Relationship between concrete compressive strength and age

(15)
(16)
式中:X′和X″分別表示歸一化和標準化后的數據。
遺傳算法在本文中的尋優過程如下:
(1)初始化種群:隨機生成50個個體,每個個體包括5條染色體,即k、j、ε、σ、error,它們的范圍均設為0~200;
(2)計算各個個體的適應度RMSE,RMSE越小越好,因此這里取倒數,即1/RMSE,以便選擇;
(3)選擇:選擇率為50%,即保留 25個個體作為父代,并生成25個子代。首先選擇RMSE取最小值的個體,避免適應度高的個體丟失,再采用輪盤賭算法(個體被選中的概率與其適應度大小成正比)保留24個個體;
(4)編碼:將數據變為二進制編碼,以便交叉和變異,長度為22位;
(5)交叉:以概率70%隨機挑選父代中的兩個個體進行基因交叉,產生25個子代,保證種群總體數目不變;
(6)變異:以概率70%在隨機位置對子代進行取反操作;
(7)解碼:將二進制數重新轉換為十進制;
(8)種群更新:25個父代及25個交叉變異產生的子代構成新種群;
(9)尋優次數已至上限100次,退出循環,否則返回(2)。
結合了遺傳算法的MWSVR過程如圖5所示,首先初始化50對參數k、j、ε、σ、error,再根據馬氏距離DM和k、j得到懲罰因子Ci,根據ε、σ、error、Ci求解SVR對偶問題,由二次規劃得到(αi-α′i),判斷其值得到支持向量,再由其獲得偏置b,SVR解的形式即可獲得,在測試集上進行預測,得到預測值和真實值的均方根誤差RMSE,保留使RMSE獲得最小值的參數k、j、ε、σ、error的組合,并由遺傳算法對其他的參數組合進行調整得到新的50對參數,經過多次交叉、變異、選優,得到了ε=0.102 3,σ=0.157 3,error=0.091 5,k=58.789 3,j=1.995的參數組合,在此參數下,MWSVR有最低的RMSE。

圖4 改進的SVR流程圖Fig.4 Flowchart of Genetic Algorithm

圖5 改進的SVR流程圖Fig.5 Improved SVR flowchart
本文的對比方法有決策樹(Decision Tree, DT)、隨機森林(Random Forest, RF)、BP神經網絡、RBF(Radial Basis Function)神經網絡和基礎SVR。

圖6 二叉樹Fig.6 Binary tree
(1)決策樹是一種以樹形結構學習的算法模型,不斷采用二元切的方式使數據分布在各個結點上,直至使所有樣本在最終分叉結點上均有合理有效的預測值[15]。圖6是一個簡單的二叉樹,根據變量t判斷輸出結果為V1還是V2,由于本文變量較多,且輸出值范圍廣,所以樹形結構較復雜,共有215個結點。

圖7 BP神經網絡結構Fig.7 The structure of BPNN
(2)隨機森林則是由多棵決策樹組成,所有決策樹預測結果的均值即為其結果[16]。
(3)BP神經網絡是多層前饋型神經網絡中的一種,屬于人工神經網絡的一類,可包含任意多層結構,能對任何一種非線性輸入輸出關系進行模仿,是應用最廣泛的網絡之一[17]。圖7即為本文的網絡結構,輸入層、隱含層和輸出層結點數分別為8、16和1。
y的計算過程如式(17)、(18)所示。
(17)
(18)
式中:z和a分別表示線性變換和非線性變換,g為激活函數,b為偏置,z(1)、a(1)、g(1)和b1位于網絡第一層,z(2)、g(2)和b2位于網絡第二層。
(4)RBF神經網絡也屬于人工神經網絡,結構為固定的三層,隱含層為徑向基函數,雖然結構簡單不可變,但具有良好的全局逼近能力,訓練速度快[18],計算過程如下:
(19)
為了增加實驗結果的客觀性,所有實驗都在統一訓練集和測試集上進行,占比均為50%,且所有參數的選取都是以RMSE為優化目標。關于數據預處理,因決策樹和隨機森林是基于概率的模型,所以除了這二者,其他方法都經過了和MWSVR同樣的歸一化和標準化。
本文的評價指標包括時間和RMSE。
(1)時間:這里包括訓練過程和測試過程的時間,不同算法復雜程度不同,所用時間的差異也較大,因此可作為衡量算法效率的指標,這里是10次實驗訓練和測試過程所用的平均時間,編程工具為MATLAB,計算機基本配置為Intel(R) Core(TM) i5-6200U和DDR4 8G。
(2)RMSE:表2列出了兩種指標下各種方法的效果。

表2 各種方法關于混凝土抗壓強度預測的效果對比Table 2 Comparison of various methods on prediction of compressive strength of concrete
先令MWSVR與決策樹和隨機森林作比較,MWSVR的時間復雜度明顯較高,這是因為決策樹和隨機森林的數學過程簡單,且沒有參數需要逐步訓練,但在混凝土問題中,這兩種方法預測效果并不好;再相較于兩種神經網絡方法,無論是時間復雜度還是預測效果,MWSVR都具有明顯的優勢。最后比較MWSVR和SVR,它們所用時間相當,因為它們的求解過程相同,但MWSVR的RMSE較SVR得到了改善,而且當人為去除一些距離較遠的數據時,最終結果并沒有發生明顯變化,說明 WSVR中異化懲罰因子的確起到了近似剔除異常數據的作用。

表3 交叉驗證下的SVR和MWSVR的對比Table 3 Comparison of SVR and MWSVR with cross-validation
為了避免此結論的偶然性,將數據分為3份進行交叉驗證,單獨對比了SVR和MWSVR的RMSE,結果如表3所示中的1~3三組結果。這佐證了 MWSVR的優勢,證明了MWSVR是一種集合了速度和效果的混凝土抗壓強度預測方法。
關于MWSVR的劣勢,這里做如下說明:MWSVR捕捉異常數據的能力是有限的,因為利用的是自變量之間的距離,考慮極端情況,若某個訓練樣本的自變量就在測試集數據中心附近,但因變量相對正常值非常大或非常小,那么它將被賦予很大的懲罰因子,但卻是異常數據,顯然會對模型造成干擾,因此文章的MWSVR雖然有效,但不能捕捉所有異常數據,這也是它的局限之處。在其他實驗中,這種想法得到了驗證,MWSVR算法只在部分數據中較SVR得到了提升。雖然在預測模型中,MWSVR和SVR時間復雜度無大差別,但在尋優過程中,MWSVR參數增多,較為復雜。
提出了一種基于馬氏距離的加權型SVR,它避免了測試集數據資源的浪費,并利用訓練集和測試集的馬氏距離實現懲罰因子的差異化,使得不同樣本在決定最終模型的過程中占有不同重要性,訓練過程更有針對性,增強了訓練的意義,并找到了馬氏距離和懲罰因子之間的一種簡單有效的冪形式的映射公式,二者呈反比關系。在混凝土抗壓強度的預測問題中,分別用決策樹、隨機森林、BP神經網絡、RBF神經網絡、標準SVR與MWSVR對比,實驗表明,MWSVR未造成時間復雜度的增加,且預測效果最好、誤差最低,在混凝土抗壓強度預測問題中行之有效。但該方法只能在早期粗略估計混凝土抗壓強度,若需要更細致的輸出則需要提供更多數據細節。
針對目前的不完善之處,對下一步的工作總結如下:(1)提高算法的普適性,使其能夠有效識別各類異常數據,懲罰因子的加權化更加合理,使之在絕大多數情況下效果近似于或優于基礎SVR;(2)尋找更佳的懲罰因子和馬氏距離的映射形式,取得更加明顯的提升效果;(3)本文只使用了一種混凝土數據源進行實驗,且1030條數據對于8維的自變量來說并不充足,應尋找更多數據加以實驗,實現更加精確的預測。