劉曉悅 季紅瑜
(華北理工大學(xué)電氣工程學(xué)院,河北 唐山 063000)
巖爆又稱沖擊地壓,是指發(fā)生在深埋地下高應(yīng)力巖體開挖工程中的一種動力破壞現(xiàn)象,由于硐室應(yīng)變能的突然釋放引起嚴(yán)重的動態(tài)危險,整個過程中伴隨著巖體破裂、剝落、分裂、彈射等現(xiàn)象[1-3]。隨著地下工程開挖深度的日益增加,巖爆危險頻繁發(fā)生,不僅延誤工期,造成巨大的經(jīng)濟損失,更威脅著施工人員的生命安全。
由于影響巖爆發(fā)生因素眾多,且成因機制復(fù)雜,國內(nèi)外相關(guān)學(xué)者綜合多種影響巖爆因素,提出多種指標(biāo)判據(jù),如Russense判據(jù)、RQD指標(biāo)判據(jù)、賈愚如判據(jù)、秦嶺隧道判據(jù)等。隨著機器學(xué)習(xí)的快速發(fā)展,人工智能已應(yīng)用于巖爆預(yù)測預(yù)警中。機器學(xué)習(xí)通過建立各巖爆指標(biāo)同巖爆強度之間的關(guān)系,減少巖爆預(yù)警參數(shù)選取及數(shù)值確定方面的人為干預(yù),從而提高預(yù)測精度[4-6]。多種著名機器算法已應(yīng)用于該領(lǐng)域中[7],如神經(jīng)網(wǎng)絡(luò)、隨機森林、樸素貝葉斯等。但每種分類器都有其不足之處,如BP神經(jīng)網(wǎng)絡(luò)[8]收斂速度較慢;隨機森林對低維數(shù)據(jù)分類效果較差,處理回歸問題上易出現(xiàn)過擬合情況;樸素貝葉斯[9]對屬性有關(guān)聯(lián)的樣本集分類效果不理想。由于巖爆發(fā)生是一個不確定且復(fù)雜的過程,單一分類器預(yù)測結(jié)果不夠精準(zhǔn),因此引用集成分類算法,從而提高其預(yù)測準(zhǔn)確度。
本研究綜合集成算法在巖爆等級預(yù)測方面的優(yōu)勢,將BAS算法優(yōu)化后的SVM同AdaBoost集成算法相組合對巖爆進行等級預(yù)測。SVM作為一種監(jiān)督式學(xué)習(xí)方法,算法簡單,且具有較好的魯棒性,廣泛地應(yīng)用于回歸分析及統(tǒng)計分類方面,但其分類效果受懲罰因子和核函數(shù)參數(shù)的影響較大。BAS算法作為一種基于天牛覓食原理的仿生優(yōu)化算法,該方法高效簡單,可快速跳出局部極值,有效地解決了SVM參數(shù)尋優(yōu)問題。AdaBoost作為集成算法Boosting族算法中最著名的代表,具有較低的泛化誤差,不易過擬合。綜合以上分析,建立AdaBoost-BAS-SVM巖爆傾向性等級預(yù)測模型,應(yīng)用于194組巖爆實例數(shù)據(jù)進行訓(xùn)練測試,并將該模型與SVM、BAS-SVM、AdaBoost-SVM 3組模型進行對比,證明了AdaBoost-BAS-SVM模型的可靠性及實用性。
AdaBoost[10]算法作為集成算法 Boosting算法中最具有代表性的算法,其核心思想是糾正弱分類器所犯的錯誤。AdaBoost算法屬于一種迭代算法,通過調(diào)整迭代次數(shù)將弱學(xué)習(xí)器提升為強學(xué)習(xí)器。與Bagging算法不同,AdaBoost算法采用串行方式訓(xùn)練弱分類器,通過增加對前弱分類器分類錯誤樣本的關(guān)注度,將訓(xùn)練后的弱分類器結(jié)合為一個強分類器,其基本結(jié)構(gòu)如圖1所示:
給定基分類器并構(gòu)建訓(xùn)練集:G={(x1,y1),(x2,y2),…,(xN,yN)},其中xi為樣本特征向量,yi為樣本類別標(biāo)簽,yi∈{- 1,1},i=1,2,…,N,N表示樣本總數(shù)。AdaBoost算法具體實現(xiàn)步驟如下。
(1)初始化訓(xùn)練集數(shù)據(jù)的權(quán)值向量D1:
式中,w1i為第i個樣本第1次迭代時的權(quán)值。
(2)對基分類器ht進行迭代運算,迭代至第t次時(t=1,2,…,T,T為迭代總次數(shù)),計算ht在分布Dt下的預(yù)測誤差率et:
計算ht所占權(quán)重αt:
更新訓(xùn)練樣本權(quán)值向量Dt+1,并對Zt進行歸一化處理:
對基分類器進行線性加權(quán)組合,最終獲得集成分類器H(x):
1.2.1 支持向量機(SVM)原理
SVM作為一種解決二分類問題的線性分類器[11],通過在特征空間中尋找具有最大間隔的超平面,從而實現(xiàn)區(qū)分不同類別的樣本。SVM算法屬于機器學(xué)習(xí)中監(jiān)督學(xué)習(xí)算法,處理中小型數(shù)據(jù)樣本、非線性、高維分類問題,有較強的泛化能力。
SVM核心思想是在正確劃分訓(xùn)練集的同時,使劃分超平面wx+b=0幾何間隔最大。定義樣本空間中樣本點(xi,yi)到超平面的距離,即幾何間隔γi為
式中,w=(w1,w2,…,wd)表示超平面法向量,決定其方向;x為輸入數(shù)據(jù);b表示位移項,通常為某實數(shù)。
為求得最大間隔劃分超平面,即γi最大,可轉(zhuǎn)化為有約束最優(yōu)化問題:
將式(7)中的每條約束添加拉格朗日乘子ai≥0,將有約束問題轉(zhuǎn)化為無約束問題,構(gòu)造的拉格朗日函數(shù)如下所示:
根據(jù)對偶原理,將式(8)進一步轉(zhuǎn)化,得到式(7)的對偶問題:
求出最優(yōu)解α*、w*,得到最終分類決策函數(shù):
由于輸入空間分為線性分類問題和非線性分類問題,針對非線性分類問題,該方法需將樣本從原始空間映射到高維特征空間,從而樣本在此特征空間內(nèi)線性可分。在高維特征空間中運用線性支持向量機,該方法的核心是通過核函數(shù)K(x,xi)替換xi和xj在特征空間內(nèi)的內(nèi)積,因此核函數(shù)的選擇不同會生成差異的支持向量機,典型支持向量機網(wǎng)絡(luò)如圖2所示。
支持向量機算法的關(guān)鍵在于核函數(shù)及相關(guān)參數(shù)的選取,常見的核函數(shù)有線性核函數(shù)、徑向基(RBF)核函數(shù)、拉普拉斯核函數(shù)等,RBF核函數(shù)在處理非線性分類問題上表現(xiàn)優(yōu)異,因此本文選用RBF函數(shù)作為核函數(shù)。
1.2.2 基于BAS的SVM參數(shù)優(yōu)化
天牛須搜索(BAS)算法[12]是一種基于昆蟲天牛搜索行為啟發(fā)而提出的元啟發(fā)式優(yōu)化算法。該算法模擬了天牛須的作用和自然界中天牛的隨機行走機制,實現(xiàn)了探測和搜索兩個主要步驟。天牛在捕食或?qū)ふ遗渑紩r,會擺動身體一側(cè)的觸角來接收氣味。即天牛隨機地利用2根觸角探索附近的區(qū)域。若天牛一邊的觸角探測到高濃度的氣味時,它就會轉(zhuǎn)向同一邊,否則它就會轉(zhuǎn)向另一邊。與群智能相比,BAS具有更高的搜索效率,已應(yīng)用于許多工程優(yōu)化問題的求解。BAS建模步驟如下:
Step1:天牛須的方向是任意的,定義一個隨機的方向向量來表示,并進行歸一化處理。
式中,rand(·)為隨機函數(shù);k為位置維數(shù)。
Step2:定義天牛左右須的搜索行為坐標(biāo)。
式中,xr為右側(cè)搜索區(qū)域內(nèi)位置;xl為左側(cè)搜索區(qū)域內(nèi)位置;d為感知長度,該長度初始設(shè)定足夠大,隨著時間的增加而減小,以避免陷入局部極小值;t為迭代次數(shù)。
Step3:更新天牛位置。
式中,f(·)為適應(yīng)度函數(shù);δ為搜索步長,δ、d更新函數(shù)如下:
將BAS優(yōu)化后的SVM同AdaBoost算法相結(jié)合,建立基于AdaBoost-BAS-SVM算法的巖爆傾向等級預(yù)測模型,從而提高巖爆預(yù)測精度。
巖爆發(fā)生機制復(fù)雜,影響因素相對較多,本研究根據(jù)巖爆的特點、成因及發(fā)生的內(nèi)外條件,進行綜合分析考慮,選取巖爆傾向性預(yù)測評價指標(biāo),分別為巖石脆性系數(shù)σc/σt、應(yīng)力系數(shù)σθ/σc、彈性能量指數(shù)Wet。將巖爆烈度等級分為4類:N(無巖爆活動)、L(輕度巖爆活動)、M(中度巖爆活動)、H(劇烈?guī)r爆活動)。參照王元漢[13]研究成果,各評價指標(biāo)與巖爆烈度對應(yīng)關(guān)系見表1。
基于AdaBoost集成學(xué)習(xí)的巖爆預(yù)測流程如圖3所示,步驟如下:
Step1:確定BAS參數(shù)優(yōu)化后的SVM為AdaBoost集成學(xué)習(xí)的弱學(xué)習(xí)器。
Step2:確定模型超參數(shù):最佳迭代次數(shù)(即最佳弱學(xué)習(xí)器個數(shù))、AdaBoost集成學(xué)習(xí)的學(xué)習(xí)率(Learning Rate,LR)。
Step3:根據(jù)已獲得的AdaBoost集成學(xué)習(xí)參數(shù)對分類器訓(xùn)練。
Step4:將已訓(xùn)練好的AdaBoost分類器經(jīng)測試集進行檢測,并輸出分類結(jié)果。
評價機器學(xué)習(xí)模型優(yōu)劣可通過多種評估指標(biāo)進行衡量,如本文混淆矩陣作為常用的評定監(jiān)督學(xué)習(xí)算法性能工具,有助于ML模型分類性能的可視化。巖爆等級分類混淆矩陣如表2所示,其中A、B、C、D分別表示巖爆等級N、L、M、H,矩陣中AA、BB、CC及DD為預(yù)測正確的樣本數(shù),其余組合為預(yù)測錯誤的樣本數(shù)。
本文選用準(zhǔn)確率(Accuracy,ACC)、精確率(Precision,Pr)、召回率(Recall,Re)、F1得分、受試者工作特征(Receiver Operating Characteristic,ROC)曲線以及ROC曲線下面積(Area Under ROC Curve,AUC)6個指標(biāo)對分類模型性能好壞進行評估,定義如下:
ROC曲線以假正例率(FPR)為橫軸,以真正例率(TPR)為縱軸,對應(yīng)不同閾值繪制曲線,以體現(xiàn)2指標(biāo)變化的對應(yīng)關(guān)系。對學(xué)習(xí)器進行比較時,若學(xué)習(xí)器A的ROC曲線位于學(xué)習(xí)器B的上方,則可判定A是優(yōu)于B的;若兩者的ROC曲線出現(xiàn)交叉時,則可通過比較ROC曲線下面積AUC,AUC值越大,學(xué)習(xí)器性能越好。
本研究收集了194組國內(nèi)外已發(fā)表文獻(xiàn)中部分礦山巖爆實例的原始數(shù)據(jù)[14-16],并將樣本原始數(shù)據(jù)采用MATLAB程序繪制成箱線圖(如圖4所示)。箱線圖中所示的最小值、最大值、中位數(shù)、第一四分位數(shù)(Q1)以及第三分位數(shù)(Q3),反映出巖爆樣本數(shù)據(jù)分布不均且存在少數(shù)異常值。所收集到的數(shù)據(jù)集中4類巖爆數(shù)據(jù)較不均衡,其中無巖爆(N,30組)、輕度巖爆(L,49組)、中度巖爆(M,82組)以及劇烈?guī)r爆(H,33組)。多數(shù)分類算法在處理不均衡數(shù)據(jù)集時都不能獲得較好的分類效果,這是由于分類算法會更多地關(guān)注多數(shù)類別,從而降低模型對少數(shù)類別的分類效果。因此為了解決數(shù)據(jù)集不平衡引起的問題,本文選用隨機采樣方法處理數(shù)據(jù)集,其基本原理通過隨機復(fù)制少數(shù)類別數(shù)據(jù)從而增加其出現(xiàn)頻率,使各巖爆類別樣本頻數(shù)呈均衡。
為提高模型的收斂速度,對原始樣本數(shù)據(jù)進行歸一化處理,將數(shù)據(jù)處于區(qū)間[0,1]之間,從而使不同維度之間的特征在數(shù)值上有一定比較性。由于文章篇幅限制,僅列出部分原始數(shù)據(jù)及歸一化處理后的數(shù)據(jù)如表3所示。對處理后的數(shù)據(jù)按照7∶3的比例劃分訓(xùn)練集和測試集。為防止模型出現(xiàn)過擬合現(xiàn)象,在劃分之前采用隨機打亂處理,從而提高模型泛化能力。
基于巖爆預(yù)測模型SVM提高精確度的目的,本文于1.2.1節(jié)中確定徑向基函數(shù)為核函數(shù),采用BAS算法對SVM中的懲罰參數(shù)C及核函數(shù)內(nèi)的gamma參數(shù)進行優(yōu)化。BAS作為啟發(fā)式優(yōu)化算法,其尋優(yōu)過程具有隨機性,本文通過多次對比試驗確定算法參數(shù)設(shè)置:天牛步長衰減系數(shù)eta=0.95,天牛須初始步長step=0.8,天牛體型系數(shù)c=3,最大迭代次數(shù)iter-max=200。經(jīng)過多次迭代尋得SVM參數(shù)最優(yōu)取值C=5.751,gamma=15.675。
迭代次數(shù)及學(xué)習(xí)率(Learning Rate,LR)作為Ada-Boost集成算法中的重要參數(shù),對分類結(jié)果準(zhǔn)確率影響很大。一般情況,迭代次數(shù)過小,易出現(xiàn)欠擬合現(xiàn)象;迭代次數(shù)過大,又易過擬合。同時,在保證同樣訓(xùn)練集擬合效果的前提下,LR較小則需增加弱學(xué)習(xí)器的迭代次數(shù)。因此,為獲得最佳參數(shù),繪制迭代次數(shù)—錯誤率曲線圖,學(xué)習(xí)率分別取0.2、0.4、0.5、0.9、1.0,如圖5所示。
由圖5可知,迭代次數(shù)達(dá)到46時,5條點線圖走勢趨于平穩(wěn),且模型訓(xùn)練時間同迭代次數(shù)大致成正比關(guān)系。因此,最佳迭代次數(shù)(即最佳弱學(xué)習(xí)器個數(shù))設(shè)置為46。
由圖5中所示的5條LR下曲線可知,分類錯誤率在LR>0.5時相對較小,所以LR取值應(yīng)在0.6~1.0之間。進一步改變LR取值,分別繪制LR=0.6,0.7,0.8,0.9,1.0的分類錯誤曲線,如圖6所示??芍?,當(dāng)LR=0.8時錯誤率最低,因此參數(shù)LR設(shè)置為0.8。
分別將 SVM、BAS-SVM、AdaBoost-SVM 以及AdaBoost-BAS-SVM 4種分類預(yù)測模型在測試集進行對比分析,并將預(yù)測結(jié)果繪制相應(yīng)的混淆矩陣圖,如圖7所示。
通過所得的混淆矩陣分別計算出各巖爆分類模型的準(zhǔn)確率,其中SVM和BAS-SVM單個分類器的準(zhǔn)確率分別為61.0%和66.1%,驗證了BAS優(yōu)化后的SVM分類器較傳統(tǒng)的SVM分類正確率有所增加,分類識別能力有一定提升,但準(zhǔn)確率依舊相對較低。AdaBoost-SVM和AdaBoost-BAS-SVM的準(zhǔn)確率分別為72.9%和78.0%,均高于單一分類器。由此可見,對于數(shù)據(jù)不均衡的樣本,單一分類器具有一定局限性,AdaBoost集成學(xué)習(xí)算法能更準(zhǔn)確地劃分巖爆等級。
表4顯示了4個模型在測試集的精確率、召回率以及F1得分。針對得分不均衡數(shù)據(jù)樣本,上述3個指標(biāo)更能體現(xiàn)預(yù)測模型的優(yōu)劣。從表中可得,Ada-Boost-BAS-SVM相對于其他模型精確率最高,可達(dá)0.759,較單一分類器SVM提高了0.191。結(jié)果表明該模型的可行性以及實用性。
分別繪制4種模型下測試集上的ROC曲線,并計算出相應(yīng)的AUC值,如圖8所示。由圖可得,Ada-Boost-BAS-SVM的ROC曲線,由于閾值取值的改變,TPR隨著FPR遞增而增加,整體走勢呈上凸?fàn)顟B(tài),且位于其他模型的上方。從AUC值也可看出,Ada-Boost-BAS-SVM的AUC值最高為0.866,與傳統(tǒng)單一分類器SVM相比增加了0.187。由此可見,本文提出的AdaBoost-BAS-SVM巖爆預(yù)測模型是合理且有效的。
(1)SVM相關(guān)參數(shù)的優(yōu)化對巖爆預(yù)測結(jié)果精確度有較大的影響。本研究采用BAS算法對懲罰參數(shù)C及gamma參數(shù)進行擇優(yōu),在一定程度上提高了SVM模型的預(yù)測精度
(2)本研究將AdaBoost集成算法同BAS優(yōu)化后的SVM算法相結(jié)合,融合兩種算法的優(yōu)點,解決了單一分類器相對不穩(wěn)定的問題,提高了模型的收斂速度、泛化能力及預(yù)測精度。
(3)將本研究建立的AdaBoost-BAS-SVM模型與SVM、BAS-SVM、AdaBoost-SVM 3組模型進行對比分析,所建模型預(yù)測準(zhǔn)確性顯著提高,證明了本研究所建的巖爆等級預(yù)測模型的可行性及有效性。