王 芬,劉陽,郝建斌,魏興梅
(長安大學地質工程與測繪學院,陜西 西安 710054)
由于邊坡所處的地質條件具有高度復雜性和非線性的特征,邊坡變形的破壞機制也極其復雜,邊坡的安全系數(shù)與各個不確定變量之間很難利用線性或非線性顯式函數(shù)表達。因此,利用一種可靠的數(shù)學模型來反映具有高度非線性邊坡破壞機制的方法成為眾多學者研究的熱點問題。遺傳算法、蟻群算法、人工蜂群算法、粒子群算法和支持向量機等各種人工智能計算方法相繼出現(xiàn),以解決非線性的邊坡工程問題。如呂文杰等[1]選擇二進制編碼的遺傳算法搜索最危險滑裂面,尤其對于復雜邊坡,搜索效果較好;徐飛等[2]采用蟻群優(yōu)化算法對支持向量機參數(shù)進行了選擇優(yōu)化,提出了蟻群優(yōu)化最小二乘支持向量機模型,并利用該模型進行了邊坡穩(wěn)定性分析;劉佳等[3]采用自適應智能搜索機制對人工蜂群算法進行了改進,以此來搜索最危險滑動面,求解邊坡的最小安全系數(shù),并通過實際工程算例驗證了該方法的可靠性。
單一的智能算法不能準確地建立非線性程度較高的邊坡極限狀態(tài)方程,而支持向量機學習能力較強、靈活性更高,可在人工智能算法的基礎上,搜索支持向量機的最優(yōu)參數(shù),從而獲得更準確的預測模型。如馬文濤[4]結合遺傳算法和粒子群算法,對最小二乘支持向量機的最優(yōu)參數(shù)進行搜索,結果表明遺傳算法搜索效率較低,粒子群算法可達到快速全局優(yōu)化的效果;李浩瑾等[5],Kang等[6]先后引入人工蜂群算法用于LSSVM 模型參數(shù)的優(yōu)化,提高了模型的預測精度;Karaboga等[7]對不同算法進行了比較,驗證了人工蜂群算法搜索的解更優(yōu)、效率更高,其與蟻群算法、粒子群算法、遺傳算法等相比,具有更好的優(yōu)化性能。
但是原始人工蜂群算法求得的解多為局部最優(yōu)解[8]。針對此問題,本文提出了一種改進的人工蜂群算法,該方法將原始人工蜂群算法的蜜源更新公式進行了改進,使迭代尋優(yōu)過程更為高效,提高了全局搜索能力,進而運用改進的人工蜂群算法對支持向量機中的參數(shù)進行了優(yōu)化,從而實現(xiàn)了對邊坡安全系數(shù)的回歸分析與預測。
支持向量機(Support Vector Machine,SVM)作為一種高效的機器學習方法,已被廣泛應用于處理分類、回歸等問題。本文采用的支持向量機回歸(SVR),是將原始數(shù)據(jù)x映射到高維特征空間得到φ(x),求解該空間中的線性回歸問題。SVR遵循結構風險最小化原則,尋求訓練樣本的最小泛化誤差上限,而不是預測誤差,具有較好的推廣能力。
對于非線性邊坡,假設存在訓練集{(xi,yi)|i=1,2,…,n},其中xi為D維輸入向量,yi為輸出目標,n為點的個數(shù),則輸入與輸出之間的非線性關系可表示為
f(x)=wTφ(x)+b
(1)
式中:f(x)為預測值;w為權值向量;φ(x)為非線性映射函數(shù);b為偏置或負閾值。
(2)
(3)
式中:C為懲罰因子,用以控制對錯分樣本的懲罰程度;ε為不敏感損失參數(shù)。
(4)
(5)
得回歸函數(shù)為
(6)
若回歸問題為非線性,則將輸入向量映射到高維特征空間,轉化為線性問題進行求解,這里引入內積核函數(shù)K(xi·x)=φ(xi)·φ(x),其中φ(xi)為輸入變量xi在高維特征空間的映射。則非線性回歸函數(shù)表達式為
(7)
式中:x為待測樣本;xi為訓練樣本。
目前常用的核函數(shù)有3種,分別為多項式核函數(shù)、徑向基核函數(shù)(RBF)和Sigmoid核函數(shù)。本文采用最適用的RBF核函數(shù),其定義為
K(x,xi)=exp(-g‖x-xi‖2)
(8)
式中:g為核函數(shù)參數(shù)。
支持向量機中的懲罰因子C和核函數(shù)參數(shù)g對SVR性能起著重要作用[12]。因此,為了得到準確的回歸結果,需尋找支持向量機中的最優(yōu)參數(shù),此過程可通過ABC算法迭代搜索實現(xiàn)。
人工蜂群算法(artificial bee colony algorithm,ABC算法)是一種受蜜蜂采蜜啟發(fā)的種群算法。該算法中的四個組成要素包括蜜源、引領蜂、跟隨蜂和偵查蜂。引領蜂的數(shù)量與跟隨蜂的數(shù)量相等,并且等于蜜源的數(shù)量。當蜜源在一定迭代次數(shù)之內沒有被改進時,引領蜂就會變成偵查蜂重新搜索蜜源,直至搜索到更優(yōu)蜜源時,其角色又會重新變回引領蜂。實現(xiàn)ABC算法的具體步驟如下:
(1) 初始化種群,設定種群數(shù)量為NP,蜜源數(shù)量為FN=NP/2,最大搜索次數(shù)為Limit,最大循環(huán)次數(shù)為Maxcycle,蜜源維數(shù)D=2。
(2) 隨機產生蜜源i的初始位置xij:
xij=xjmin+rand(0,1)(xjmax-xjmin)
(9)
引領蜂在蜜源i周圍根據(jù)以下更新公式產生新蜜源vij:
vij=xij+θ(xij-xkj)
(10)
式中:i∈{1,2,…,F(xiàn)N},表示蜜源個數(shù);j為[1,D]中的一個隨機整數(shù),表示引領蜂隨機地選擇一維進行搜索;xjmax為搜索空間上限;xjmin為搜索空間下限;k∈{1,2,…,FN},k≠i,表示在FN個蜜源中隨機選擇不同于i的蜜源;θ為[-1,1]之間的隨機數(shù),決定擾動幅度。
(3) 計算并比較vij和xij的適應度,若新蜜源適應度大于舊蜜源,則蜜源被更新,否則保留舊蜜源。
(4) 跟隨蜂根據(jù)下面公式中的計算概率pi選擇蜜源,接著與引領蜂相同的方式搜索更新蜜源:
(11)
式中:pi為跟隨蜂選擇蜜源i的概率;fiti為蜜源i的適應度,其計算公式如下:
(12)
其中,fi為蜜源i對應的解的函數(shù)值。
(5) 若蜜源i的迭代次數(shù)超過Limit仍未被改進,引領蜂便放棄該蜜源,進而轉變?yōu)閭刹榉?,重新搜索蜜源?/p>
(6) 重復上述步驟(1)~(5),直至達到最大循環(huán)次數(shù)。
原始人工蜂群算法雖搜索精度較高且魯棒性較強,但易陷入局部最優(yōu)解,蜜源更新公式(10)意為在所有蜜源周圍尋找更高質量的解xbest,j,此過程較為繁瑣且用時較長。本文先將原始蜜源的適應度進行排序,找出適應度最高的蜜源,然后在其周圍搜索更優(yōu)解,則蜜源的更新公式變?yōu)?/p>
vij=xbest,j+θ(xij-xkj)
(13)
為了測試改進的人工蜂群算法(簡稱MABC算法)的性能,選擇了4個標準函數(shù)(兩個單峰函數(shù),即Sphere函數(shù)和Rosenbrock函數(shù);兩個多峰函數(shù),即Griewank函數(shù)和Rastrigin函數(shù))對兩種算法[即原始人工蜂群算法(原始ABC算法)、改進的人工蜂群算法(MABC算法)]進行了仿真試驗[8],通過測試搜索全局最小值能力來評價MABC算法的性能,其測試結果見圖1至圖4。
圖1 Sphere函數(shù)的全局最小值收斂趨勢Fig.1 Global minimum convergence trend of Sphere function
圖2 Rosenbrock函數(shù)的全局最小值收斂趨勢Fig.2 Global minimum convergence trend of Rosenbrock function
圖3 Girewank函數(shù)的全局最小值收斂趨勢Fig.3 Global minimum convergence trend of Girewank function
圖4 Rastrigin函數(shù)的全局最小值收斂趨勢Fig.4 Global minimum convergence trend of Rastrigin function
由圖1和圖2可見,本文提出的MABC算法全局性更好,在處理單峰函數(shù)時具備跳出局部最優(yōu)解的能力;而原始ABC算法在處理Sphere和Rosenbrock函數(shù)時,分別在迭代次數(shù)為1 120和391時陷入局部最優(yōu)。
由圖3和圖4可見,本文提出的MABC算法較原始ABC算法,在處理多峰函數(shù)時能在迭代次數(shù)較少的情況下搜索到全局最小值,收斂速度更快。
由此可見,通過改進蜜源更新公式,避免了蜜源搜索的隨機性,能夠使目標值更快地向全局最小值逼近。
在邊坡穩(wěn)定性分析中,不確定變量用向量x=(x1,x2,…,xn)表示(其中變量x對應于邊坡穩(wěn)定的影響因素,n為影響因素的個數(shù)),邊坡的安全系數(shù)用向量y=(y1,y2,…,yn)表示。對于具有高度非線性的邊坡,可用支持向量機模型來描述邊坡安全系數(shù)與影響因素之間的映射關系。由上述支持向量機理論可知,公式(7)為所要建立的預測模型,其中x為邊坡穩(wěn)定的影響因素,xi為第i個影響因素,αi和b可通過求解二次規(guī)劃問題得到。
本文收集了文獻[15]中80個邊坡實例數(shù)據(jù),將重度γ、黏聚力c、內摩擦角φ、邊坡角φr、邊坡高度H、孔隙水壓力ru作為影響邊坡穩(wěn)定的6個不確定變量,將實例中的70個邊坡數(shù)據(jù)作為訓練集,用于建立邊坡安全系數(shù)預測模型,10個邊坡數(shù)據(jù)作為測試集,用于測試所建立的預測模型的精度?;贛ABC-SVR的邊坡安全系數(shù)預測模型建立的具體流程見圖5。
圖5 基于MABC-SVR的邊坡安全系數(shù)預測模型 建立的流程圖Fig.5 Flow chart of slope safety factor prediction model based on MABC-SVR
在MATLAB軟件中運行MABC算法,結果顯示最優(yōu)懲罰因子C為48.567 9,最優(yōu)核函數(shù)g為7.116 2。利用最優(yōu)參數(shù)建立SVR模型,該模型對訓練集預測的回歸系數(shù)r2=0.987 5,均方根誤差RMSE=0.004 2,具體擬合情況見圖6。采用所得訓練模型對測試集預測的回歸系數(shù)為r2=0.967 2,均方根誤差RMSE=0.004 6,具體擬合情況見圖7。
圖6 邊坡安全系數(shù)訓練集實際值與預測值的 對比圖Fig.6 Comparison of actual and predicted values of slope safety factor training set
圖7 邊坡安全系數(shù)測試集實際值與預測值的 對比圖Fig.7 Comparison of actual and predicted values of slope safety factor test set
由圖6和圖7可見,基于MABC-SVR所建立的預測模型能夠較好地擬合樣本點,即模型預測精度較高,誤差較小。
為了較好地展現(xiàn)基于MABC-SVR的邊坡安全系數(shù)預測模型的準確度,將基于MABC-SVR方法所得到的預測值與基于ABC-SVR方法和文獻[15]方法的預測值進行了對比,其結果見表1和表2。
為了直觀地分析對比預測結果,將表2中每種方法的最大相對誤差做以標記(加粗字體),分析可知:MABC-SVR方法預測值最大相對誤差為7.62%,較ABC-SVR方法和文獻[15]方法誤差更小,準確度更高。由此可見,基于MABC算法建立的支持向量機模型能夠較準確地預測邊坡的安全系數(shù),更具有實際應用的價值。
表1 3種方法的預測值比較
表2 3種方法的相對誤差(%)比較
針對原始人工蜂群算法易陷入局部最優(yōu)解、收斂慢等缺點,提出了一種改進的人工蜂群(MABC)算法,利用該算法搜索最優(yōu)參數(shù),并結合支持向量機建立了邊坡安全系數(shù)預測模型。該改進的人工蜂群算法主要對原始人工蜂群算法的蜜源更新公式進行了改進,經測試表明該改進算法更具有全局性,且收斂速度相對提高。經邊坡實例分析表明:利用MABC-SVR方法可快速建立邊坡安全系數(shù)的預測模型,對比預測值與實際值,其回歸系數(shù)高于0.95,最大相對誤差不超過8%,預測結果的準確度較高。