翟中華,魏澤洋,覃逸峰,黃河念,王鏡宇,黃承民,張斌弛,張子健,于佳龍
(中國礦業(yè)大學(xué)(北京)力學(xué)與建筑工程學(xué)院,北京市海淀區(qū),100083)
巖石巷道爆破掘進是煤巷建設(shè)中廣泛使用的一種掘進方式,但由于影響爆破設(shè)計的因素眾多,且存在眾多可定性描述但難以定量分析的影響因素,尤其是由于巖性的多變使得爆破參數(shù)需要實時調(diào)整和變化,而在實際工程中參數(shù)的實時調(diào)整對現(xiàn)場技術(shù)人員的工程經(jīng)驗要求較高。完全由公式計算出的爆破參數(shù)往往不能滿足爆破需要。隨著計算機技術(shù)的發(fā)展,將機器學(xué)習(xí)引入爆破研究中具有重要意義。唐躍[1]基于交叉驗證理論通過支持向量機模型參數(shù)尋優(yōu)中,得到最優(yōu)爆破塊度預(yù)測模型;馬鑫民等[2]基于綜合分析法確定影響煤礦巖巷爆破效果關(guān)鍵指標,提出基于GA-SVM融合技術(shù)的爆破效果預(yù)測模型,實現(xiàn)爆破效果的合理預(yù)測;張欽禮等[3]設(shè)計了9組爆破參數(shù)正交試驗,利用RBF神經(jīng)網(wǎng)絡(luò)模型對試驗結(jié)果進行預(yù)測,使用爆破綜合期望指數(shù)得到最優(yōu)爆破參數(shù);岳中文等[4]建立PSO-SVM模型進行關(guān)鍵參數(shù)尋優(yōu),驗證了模型在不同核函數(shù)上的預(yù)測準確率,結(jié)果表明RBF核函數(shù)的預(yù)測效果最佳;崔年生等[5]采用進化徑向基神經(jīng)網(wǎng)絡(luò)方法優(yōu)化爆破參數(shù),得出了一套適用于多銅礦巖臺階爆破的最優(yōu)爆破參數(shù),取得了良好的爆破效果;XU Shida等[6]提出了一種結(jié)合主成分分析(PCA)和支持向量機(SVM)模型來預(yù)測爆破振動,結(jié)果證明了PCA-SVM模型在爆破估計方面的優(yōu)越性;LIU Kaiyun等[7]將遺傳算法(GA)與改進的支持向量回歸(ISVR)算法耦合對爆破參數(shù)進行優(yōu)化,根據(jù)應(yīng)用結(jié)果得到ISVR模型可行和可靠;岳中文等[8]利用主成分分析(PCA)提取主成分作為模型的輸入變量,結(jié)合遺傳算法(GA)獲得支持向量機(SVM)的最優(yōu)超參數(shù),建立了露天礦爆破振動速度預(yù)測模型,此模型具有更高的精確度;張耿城等[9]通過隨機森林算法(Random Forest)選擇出對于爆破效果影響更大的相關(guān)參數(shù),創(chuàng)立了基于支持向量機的露天礦爆破效果預(yù)測模型,預(yù)測結(jié)果比BP神經(jīng)網(wǎng)絡(luò)建立的模型更精確、誤差更??;HASANIPANAH M[10]等建立了一種支持向量機(SVM)模型用于預(yù)測爆破作業(yè)中的峰值粒子速度(PPV),并比較了SVM和經(jīng)驗方程的結(jié)果。
我國大多數(shù)煤礦地質(zhì)條件復(fù)雜,爆破影響參數(shù)多且難以準確記錄,這導(dǎo)致數(shù)據(jù)收集難度很大。神經(jīng)網(wǎng)絡(luò)算法在面對大樣本數(shù)據(jù)時能取得更好的效果,但對小樣本的數(shù)據(jù)預(yù)測容易過擬合。支持向量機(Support Vector Machine,簡稱 SVM)具有很強的非線性建模能力和小樣本推廣能力強等優(yōu)點,針對小樣本、非線性及高維問題時表現(xiàn)出很多獨特的優(yōu)勢,在優(yōu)化爆破參數(shù)方面更加適用。筆者采用誤差分析法選取重要變量作為模型輸入?yún)?shù),解決了爆破參數(shù)選擇問題。使用SVM在解決非線性分布時,需要通過核函數(shù)對其進行升維,但是對于這一過程,不同的核函數(shù)選型及超參數(shù)選擇對數(shù)據(jù)模型影響很大,對此筆者采用了網(wǎng)格搜索和麻雀搜索優(yōu)化算法兩種超參數(shù)尋優(yōu)方法尋找最優(yōu)超參數(shù),以此得出一個可以根據(jù)現(xiàn)場情況智能得出最佳爆破參數(shù)的預(yù)測模型。
SVM是一類按監(jiān)督學(xué)習(xí)方式對數(shù)據(jù)進行二元分類的廣義線性分類器,其決策邊界是對學(xué)習(xí)樣本求解的最大邊距超平面。
對于一個樣本集F(xi,yi),i=1,2,…,n,(其中x作為已知參數(shù)是一個多維向量稱為特征,y作為輸出變量,也稱為標簽),存在一個空間超平面(ω·x)+b=0可以將不同標簽的數(shù)據(jù)分開,求解這個超平面即是最終目的。經(jīng)過數(shù)學(xué)演算其可以變化為一個最小值問題:
再引入拉格朗日乘數(shù)法即可對其求解。但在實際上很多數(shù)據(jù)往往是線性不可分的,需要對其使用核函數(shù)進行升維以找到一個超平面。根據(jù)周志華[11]的研究,如果特征的數(shù)量大到和樣本數(shù)量差不多,則選用線性核的SVM;如果特征的數(shù)量小,樣本的數(shù)量正常,則選用高斯核函數(shù);如果特征的數(shù)量小,而樣本的數(shù)量很大,則需要手工添加一些特征從而變成第一種情況。實際已有數(shù)據(jù)中爆破參數(shù)特征數(shù)量遠小于樣本數(shù),由此可以選出高斯核函數(shù)(RBF)作為實驗用核函數(shù)。
基于高斯核函數(shù)對于核函數(shù)參數(shù)選擇十分敏感,為了取得適應(yīng)度更佳的模型,需要對其參數(shù)(c,gamma)進行優(yōu)化調(diào)整。c為懲罰系數(shù),即為對于誤差的寬容度;gamma為影響參數(shù),定義了單個樣本對于整個超平面的影響大小。筆者采用了目前主流的兩種參數(shù)優(yōu)化方式:網(wǎng)格搜索、群智能優(yōu)化算法。
網(wǎng)格搜索方法即將待求參數(shù)視作高斯坐標軸,設(shè)定起點,終點,布局,以此來形成一張“網(wǎng)”,再以網(wǎng)格的數(shù)值代入核函數(shù)中,用其建立模型并計算出預(yù)測準確率,根據(jù)其得出的準確率結(jié)果。由準確率結(jié)果即可直觀得出最優(yōu)解數(shù)值,同時還可以對結(jié)果較為優(yōu)異的區(qū)域進行放縮,以此來進一步提高準確率,但這一方法運用于數(shù)據(jù)量大的模型中往往需要較大的運算能力,并且部分計算機編程語言不能發(fā)揮出計算機全部的計算能力,會導(dǎo)致計算機運算速度過慢。所以選擇適合的步距和范圍,對于搜索區(qū)域進行一定次數(shù)的縮放可以減少運算時間,并且爆破數(shù)據(jù)量較小,這使得網(wǎng)格搜索十分適用于此類問題的SVM調(diào)參。
不同的群智能優(yōu)化算法基本上可分為兩部分:使用隨機算子對空間進行粗略的全局隨機搜索;根據(jù)隨機搜索的結(jié)果進行局部搜索找到全局最優(yōu)解。這類尋優(yōu)算法相較網(wǎng)格搜索運算點少,運算量低,只需要使用低于其數(shù)倍的時間就能得出相差不多甚至更佳的解。但其也具有隨機性、結(jié)果不穩(wěn)定的缺點。麻雀搜索優(yōu)化算法是由薛建凱[12]在2020年提出的一種新型群智能優(yōu)化算法,主要是受麻雀的覓食行為和反捕食行為的啟發(fā)而提出的。使用數(shù)學(xué)模型來模擬麻雀種群在自然界中捕獵的行為,通過模擬麻雀的特性來捕捉全局最優(yōu)解,尋優(yōu)在這一過程可被看作麻雀通過叫聲引導(dǎo)群體到達食物較多的地區(qū),規(guī)避敵害,以此來找到食物最多的地區(qū)即全局最優(yōu)解。
將優(yōu)化算法與SVM相結(jié)合,對c和gamma參數(shù)調(diào)優(yōu),以得出最佳的超參數(shù)數(shù)值,兩種超參數(shù)優(yōu)化算法流程如圖1所示。
麻雀搜索優(yōu)化算法主要步驟如下:
(1)收集數(shù)據(jù)對樣本數(shù)據(jù)進行預(yù)處理,進行歸一化避免樣本間的歐式距離度量不準,作為輸入集;
(2)初始化種群,迭代次數(shù),初始化發(fā)現(xiàn)者和加入者數(shù)量比例;
(3)計算初始種群適應(yīng)度,并進行排序;
(4)更新發(fā)現(xiàn)者、加入者以及意識到危險的麻雀位置,計算適應(yīng)度,獲得當前最優(yōu)值;
(5)如果未達到目標迭代次數(shù)則重復(fù);
(6)達到則輸出c和gamma。
圖1 SVM超參數(shù)優(yōu)選過程
網(wǎng)格搜索步驟如下:
(1)收集數(shù)據(jù)對樣本數(shù)據(jù)進行預(yù)處理,進行歸一化避免樣本間的歐式距離度量不準,作為輸入集;
(2)設(shè)置預(yù)估搜索范圍、步距,以此來形成一張“網(wǎng)”,再以網(wǎng)格的數(shù)值代入核函數(shù)中;
(3)計算出每一個點位的準確率,從中選出準確率最高的點;
(4)判斷最高準確率是否能達到要求,如果不能達到要求則回到步驟(2),改變預(yù)估搜索范圍和步距。最高準確率達到要求則輸出c和gamma。
為了保證煤礦爆破數(shù)據(jù)的豐富性,通過現(xiàn)場測試、問卷調(diào)查、文獻查閱等方式共收集到144個爆破數(shù)據(jù)。為了提高數(shù)據(jù)的有效性,去除了存有異常值和缺失值的數(shù)據(jù)樣本,最終得到可用于模型訓(xùn)練和測試的127個樣本,見表1。
為了避免原始樣本數(shù)量級之間較大的差異,還需對學(xué)習(xí)樣本中的數(shù)據(jù)集進行歸一化處理,否則將導(dǎo)致樣本間的歐式距離不準,使得數(shù)值大的特征占主導(dǎo)作用。歸一化的函數(shù)表達式為:
(3)
式中:y——數(shù)據(jù)歸一化的結(jié)果;
xi——待處理的樣本數(shù)據(jù);
xmin——樣本數(shù)據(jù)的最小值;
xmax——樣本數(shù)據(jù)的最大值。
將炸藥單耗按數(shù)值大小分為15類,每一類所占區(qū)間為0.2 kg/m3。通過數(shù)據(jù)歸一化將樣本數(shù)據(jù)的數(shù)量級和量綱單位進一步處理,其中掏槽方式中0為楔形掏槽,0.5為復(fù)合掏槽,1為直眼掏槽,得到經(jīng)過歸一化后的127組數(shù)據(jù),見表2。
表1 煤礦爆破數(shù)據(jù)原數(shù)據(jù)集
表2 煤礦爆破數(shù)據(jù)經(jīng)整理及歸一化后數(shù)據(jù)集
影響爆破炸藥單耗因素有很多,如巷道高、巷道寬、巖石普氏系數(shù)、炮眼深度、炮眼數(shù)、掏槽方式等。輸入模型的影響因素并非越多越好,部分參數(shù)與目標變量相關(guān)性弱,或變化率過大,對于預(yù)測來說不僅會使數(shù)據(jù)加入過多的噪點,影響其學(xué)習(xí)精度,還會導(dǎo)致模型復(fù)雜化,造成模型過擬合。選取合適的輸入?yún)?shù)能在簡化模型的基礎(chǔ)上提高預(yù)測準確率。隨機森林算法里的誤差分析法可以很好地解決參數(shù)難以選擇的問題,誤差分析法通過對每一個預(yù)測變量隨機賦值,如果該預(yù)測變量更為重要,那么其值被隨機替換后模型預(yù)測的誤差會增大,該值越大表示該變量的重要性越大,使用誤差分析法得到的炸藥單耗影響變量的重要性排序,如圖2所示。
圖2 各變量重要性排序
根據(jù)圖2給出的變量重要性,選取導(dǎo)致誤差增大10%以上的變量作為模型的最終輸入變量。最終選取的輸入變量為:巷道凈寬、巷道凈高、普氏系數(shù)、炮眼深度、全斷面炮眼數(shù)、掏槽方式,以爆破炸藥單耗作為輸出參數(shù)。
模型采用Python作為編程語言,并調(diào)取Scikit-Learn庫作為SVM的運行基礎(chǔ),選取高斯核函數(shù)進行預(yù)測,使用網(wǎng)絡(luò)搜索和SSA對超參數(shù)進行調(diào)優(yōu)。以通過誤差分析法確定的6個指標作為模型輸入?yún)?shù),爆破炸藥單耗作為輸出參數(shù),分別帶入經(jīng)過SSA優(yōu)化算法和網(wǎng)格搜索得到的超參數(shù)c和gamma,建立起基于SVM的煤礦巷道爆破參數(shù)預(yù)測優(yōu)化模型。然后使用訓(xùn)練集對模型進行訓(xùn)練,最后將測試集輸入模型中對模型預(yù)測性能進行檢驗。
基于兩種不同的算法對參數(shù)進行優(yōu)化得出參數(shù)后對訓(xùn)練集進行測試,原數(shù)據(jù)集共128組,按照3∶1的比率分為測試機和訓(xùn)練集。兩種參數(shù)優(yōu)化方法在測試集上得到的預(yù)測結(jié)果如圖3、圖4所示。不同算法預(yù)測結(jié)果對比見表3。由表3可知,兩種方法找到的最優(yōu)參數(shù)c和gamma有著較大的區(qū)別,但最終在訓(xùn)練集上的預(yù)測效果只相差1個百分點,在測試集上SSA優(yōu)化算法比網(wǎng)格搜索預(yù)測效果更好。
表3 不同算法預(yù)測結(jié)果對比
注:Std.Dev為標準差 ;散點圖中橫線所包圍的數(shù)據(jù)點為偏差小于1的數(shù)據(jù)點,即測裝藥量偏差小于0.2 kg/m3圖3 基于網(wǎng)格搜索優(yōu)化得出的模型預(yù)測結(jié)果
為了測試基于SVM的煤礦巖巷爆破參數(shù)預(yù)測模型的效果,以安徽省淮北煤礦作為工程背景,現(xiàn)場收集了12組爆破數(shù)據(jù)進行上述技術(shù)的應(yīng)用實踐檢驗,見表4。
選擇SSA優(yōu)化算法得到的最優(yōu)超參數(shù)c和gamma,利用上述確定的6個輸入?yún)?shù)建立SVM預(yù)測模型,使用上述的訓(xùn)練集對模型進行訓(xùn)練,然后將實際工程中得到的12組爆破數(shù)據(jù)輸入到該預(yù)測模型中對炸藥單耗進行預(yù)測,得到的預(yù)測結(jié)果如圖5所示。由圖5可知,在實際工程得到了12組數(shù)據(jù),SVM模型得到的炸藥單耗預(yù)測值與實際值接近,模型準確率為92.3%?;赟VM的預(yù)測模型在經(jīng)過SSA優(yōu)化算法調(diào)參后在預(yù)測爆破參數(shù)方面表現(xiàn)出很好的效果。
圖4 基于SSA優(yōu)化算法得出的模型預(yù)測結(jié)果
表4 實際工程爆破數(shù)據(jù)集
圖5 SVM工程預(yù)測結(jié)果
(1)以誤差分析法對影響煤礦巷道爆破炸藥單耗的多個因素進行重要性排序,最終以巷道凈寬 、巷道凈高、普氏系數(shù)、 炮眼深度 、斷面炮眼個數(shù)和掏槽眼布置方式6個指標作為模型輸入?yún)?shù),爆破炸藥單耗作為輸出參數(shù),建立起基于SVM的煤礦巷道爆破參數(shù)預(yù)測優(yōu)化模型。
(2)SVM模型對煤礦巷道爆破炸藥單耗預(yù)測適應(yīng)性良好。通過 SSA優(yōu)化算法得到的核函數(shù)參數(shù)最優(yōu)組合分別為c=23.04,gamma=1.15,通過網(wǎng)格搜索得到的核函數(shù)參數(shù)最優(yōu)組合分別為c=10.83,gamma=1.61。比較兩種參數(shù)優(yōu)化方法得到的預(yù)測結(jié)果,結(jié)果顯示使用SSA群優(yōu)化算法優(yōu)化得到的參數(shù)在預(yù)測模型中取得更好的效果。將該模型應(yīng)用于實際工程中,預(yù)測準確率達到92.3%,預(yù)測結(jié)果與實際工程相近,對于其他爆破參數(shù)或工程具有一定的參考意義。