劉曉明,王 新,徐 慧
(中國(guó)礦業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 221116)
構(gòu)造煤是由原生結(jié)構(gòu)的煤層在構(gòu)造應(yīng)力作用下,發(fā)生了結(jié)構(gòu)和成分顯著變化而形成的一種煤體[1]。目前,在我國(guó)對(duì)能源的需求不斷加大的背景下,越來(lái)越多的復(fù)雜礦井已經(jīng)開始投入生產(chǎn),同時(shí)煤礦的開采范圍及深度也在不斷的增加。雖然煤礦提高了產(chǎn)量,但也使得瓦斯危害的問(wèn)題越來(lái)越突出。因此,如果可以根據(jù)構(gòu)造煤厚度及其分布來(lái)劃分煤礦瓦斯突出區(qū)域[2],也就能減少事故的發(fā)生,保障煤礦生產(chǎn)的安全。目前,很多機(jī)器學(xué)習(xí)的方法被應(yīng)用到煤層厚度預(yù)測(cè)和構(gòu)造煤厚度預(yù)測(cè)中,如:模糊神經(jīng)網(wǎng)絡(luò)、極限學(xué)習(xí)機(jī)等[3,4]。眾多學(xué)者多致力于單一目標(biāo)的煤層或構(gòu)造煤層厚度預(yù)測(cè),如果能夠同步預(yù)測(cè)出煤層和構(gòu)造煤的厚度,以此劃分出煤與瓦斯危險(xiǎn)區(qū)域,就能為煤礦的開采提供可靠的保障。多目標(biāo)預(yù)測(cè)是一個(gè)活躍且快速發(fā)展的研究領(lǐng)域,多目標(biāo)回歸(MTR)目前已經(jīng)應(yīng)用在到很多領(lǐng)域,如生態(tài)模型預(yù)測(cè)、水文模型預(yù)測(cè)[5,6]等。多目標(biāo)回歸相比為每個(gè)目標(biāo)構(gòu)建單獨(dú)的回歸預(yù)測(cè)模型,主要有兩個(gè)優(yōu)點(diǎn)。首先,構(gòu)建單個(gè)多目標(biāo)回歸模型通常比對(duì)所有變量單獨(dú)構(gòu)建回歸模型總規(guī)模??;其次,多目標(biāo)回歸模型能更好地識(shí)別不同目標(biāo)變量之間的依賴關(guān)系。
多目標(biāo)隨機(jī)森林MTRF(multi-target random forest)是一種多目標(biāo)預(yù)測(cè)方法,它是以決策樹為基本分類器的集成學(xué)習(xí)算法,通過(guò)對(duì)訓(xùn)練數(shù)據(jù)以及特征的自采樣來(lái)構(gòu)建預(yù)測(cè)模型。對(duì)于多目標(biāo)學(xué)習(xí),隨機(jī)森林子模型不是建立單目標(biāo)回歸模型,而是建立多目標(biāo)回歸模型。具體而言,它基于隨機(jī)選擇特征集的多目標(biāo)決策樹構(gòu)建多目標(biāo)隨機(jī)森林。本文構(gòu)建了多目標(biāo)隨機(jī)森林的預(yù)測(cè)模型,利用遺傳算法中的核心思想改進(jìn)粒子群算法,最終使用改進(jìn)后的優(yōu)化算法對(duì)模型參數(shù)進(jìn)行優(yōu)化,對(duì)研究區(qū)域煤層和構(gòu)造煤厚度進(jìn)行同步預(yù)測(cè)。
隨機(jī)森林(random forest,RF)是預(yù)測(cè)分析最有效的機(jī)器學(xué)習(xí)模型之一,使其成為機(jī)器學(xué)習(xí)的工業(yè)主力。隨機(jī)森林預(yù)測(cè)器[7]是一個(gè)集成預(yù)測(cè)器,它結(jié)合了套袋和隨機(jī)特征子空間,用于構(gòu)建決策樹的準(zhǔn)確分類或回歸集合。套袋和隨機(jī)子空間本身都是有效的集成方法,它們都增加了分類器的多樣性,并有效地學(xué)習(xí)相當(dāng)準(zhǔn)確的預(yù)測(cè)模型。
在預(yù)測(cè)期間,每個(gè)單獨(dú)的集合成員投票選擇最適合其有限范圍的預(yù)測(cè),然后使用聚合方法組合這些投票以計(jì)算最終的預(yù)測(cè)結(jié)果。隨機(jī)森林模型是一種加性模型,它通過(guò)組合一系列基礎(chǔ)模型的決策來(lái)進(jìn)行預(yù)測(cè)。將這類模型編寫為f1(x),f2(x),…,fn(x), 最終的模型g(x) 是由這n個(gè)基礎(chǔ)模型共同決定的。這里,每個(gè)基本分類器都是一個(gè)簡(jiǎn)單的決策樹。這種使用多個(gè)模型來(lái)獲得更好預(yù)測(cè)性能的廣泛技術(shù)稱為模型集成。在隨機(jī)森林中,所有基礎(chǔ)模型都是使用不同的數(shù)據(jù)子樣本獨(dú)立構(gòu)建的。
粒子群算法(particle swarm optimization,PSO)是最初由Kennedy和Eberhart提出的一種模擬社會(huì)行為的優(yōu)化算法[8],粒子群算法主要受到鳥類覓食行為的啟發(fā),通過(guò)粒子間的相互作用,最終尋找到搜索空間中的最佳點(diǎn)或幾個(gè)最佳點(diǎn)的周圍。
PSO算法初始化搜索空間X=(X1,X2,X3,…,Xn), 設(shè)Xi粒子為D維向量Xi=[Xi1,Xi2,Xi3,…,XiD]T。 通過(guò)適應(yīng)度函數(shù)計(jì)算每個(gè)粒子對(duì)應(yīng)的適應(yīng)度。設(shè)第i個(gè)粒子的飛行速度為vi=[vi1,vi2,vi3,…,viD]T, 其個(gè)體極值為pbi=[pbi1,pbi2,pbi3,…,pbiD]T, 全局極值為gbi=[gbi1,gbi2,gbi3,…,gbiD]T。 粒子在迭代中通過(guò)式(1)、式(2)更新自身的速度和位置
vid=ω×vid+c1rand()(pbid-xid)+
c2rand()(gbid-xid)
(1)
xid=xid+vid
(2)
其中,ω為慣性權(quán)重;d=1,2,3,…,D;i=1,2,3,…,n;k為迭代次數(shù);vid為當(dāng)前粒子速度;c1和c2為非負(fù)常數(shù)。
遺傳算法在20世紀(jì)70年代由密歇根大學(xué)的John Holland在美國(guó)正式引入,是基于遺傳學(xué)和自然選擇原理的優(yōu)化技術(shù)。遺傳算法(genetic algorithm,GA)在本質(zhì)上是充分隨機(jī)化的,但是它比隨機(jī)局部搜索表現(xiàn)得更好。
GA算法的原理是模擬生物的進(jìn)化過(guò)程,通過(guò)選擇、交叉、變異等[9]操作產(chǎn)生下一代的解,并逐步淘汰適應(yīng)度低的解,以此接近問(wèn)題的最優(yōu)解。進(jìn)化M代后就很有可能進(jìn)化出適應(yīng)度很高的個(gè)體,即最優(yōu)解的近似解。
遺傳算法運(yùn)算過(guò)程:
步驟1 種群初始化:計(jì)數(shù)器t=0, 進(jìn)化代數(shù)T, 并隨機(jī)生成M個(gè)個(gè)體作為初始種群P(0)。
步驟2 適應(yīng)度計(jì)算:通過(guò)適應(yīng)度函數(shù)計(jì)算種群P(t) 中每個(gè)個(gè)體的適應(yīng)度,使用該適應(yīng)度表征群體中每個(gè)個(gè)體的優(yōu)異程度。
步驟3 選擇:從群體中選擇出優(yōu)異個(gè)體,使其更有機(jī)會(huì)遺傳到下一代,這是根據(jù)個(gè)體的優(yōu)異程度來(lái)選擇的。
步驟4 交叉:對(duì)群體中部分個(gè)體使用交叉運(yùn)算得到下一代個(gè)體,它們繼承了父代的基因。
步驟5 變異:對(duì)群體中部分個(gè)體使用變異運(yùn)算。對(duì)這些個(gè)體,以變異概率改變某幾個(gè)基因值,改變值為其它個(gè)體的同位基因。
步驟6 終止判斷:若t=T, 則最優(yōu)解為運(yùn)行過(guò)程中得到的最優(yōu)適應(yīng)度個(gè)體,否則返回步驟2。
均方根誤差(RMSE)是殘差的標(biāo)準(zhǔn)偏差(預(yù)測(cè)誤差),式(3)是本文用來(lái)比較多目標(biāo)學(xué)習(xí)算法的性能的度量
(3)
對(duì)多目標(biāo)進(jìn)行符號(hào)描述,設(shè)X和Y為兩個(gè)隨機(jī)向量,假設(shè)訓(xùn)練集由M個(gè)實(shí)例組成,即 {(x1,y1),(x2,y2),…,(xm,ym)}。
采用多目標(biāo)隨機(jī)森林算法對(duì)訓(xùn)練數(shù)據(jù)構(gòu)建模型,預(yù)測(cè)過(guò)程如圖1所示。
圖1 基于隨機(jī)森林回歸算法的煤層和構(gòu)造煤厚度預(yù)測(cè)模型
隨機(jī)森林利用Bootstrap方法對(duì)訓(xùn)練樣本集(x,y)train中進(jìn)行n次自采樣,組成n個(gè)樣本個(gè)數(shù)為m的子集,每個(gè)子集都模擬了真實(shí)樣本的分布,對(duì)每個(gè)樣本分別構(gòu)建多目標(biāo)回歸樹,最終的模型就是這多個(gè)預(yù)測(cè)器的組合。
隨機(jī)森林的基礎(chǔ)回歸器的選擇有很多,比如CART樹[10]、PCT(predictive clustering tree)[11]、CI樹(conditional inference trees)[12]等作為基礎(chǔ)預(yù)測(cè)器,只要滿足“隨機(jī)性強(qiáng)”、“不穩(wěn)定”特征的多目標(biāo)回歸預(yù)測(cè)器都可以成為隨機(jī)森林的子模型,本文利用的是單變量遞歸分區(qū)方法(CART)對(duì)多輸出回歸問(wèn)題的擴(kuò)展。因此,多變量回歸樹是按照與CART相同的步驟構(gòu)建的,即從根節(jié)點(diǎn)中的所有實(shí)例開始,然后迭代地找到最佳分割并相應(yīng)地分割葉子直到預(yù)定義的停止標(biāo)準(zhǔn)到達(dá)。與CART的唯一區(qū)別在于使用多變量的平方誤差之和重新定義單個(gè)節(jié)點(diǎn)的不純度[13]
(4)
隨機(jī)森林模型的參數(shù)需要通過(guò)經(jīng)驗(yàn)選取,并沒(méi)有理論上的支持,本文將一種混合優(yōu)化算法GAPSO引入隨機(jī)森林模型,對(duì)模型中的參數(shù)進(jìn)行迭代優(yōu)化。
遺傳算法雖然由于其隨機(jī)性,對(duì)全局的搜索能力較強(qiáng),但局部的搜索能力較弱,同時(shí)遺傳算法在后期的進(jìn)化過(guò)程中效率較低,對(duì)于已經(jīng)學(xué)習(xí)到的解記憶較差。而粒子群算法雖然對(duì)于優(yōu)秀的解都保存下來(lái),但比較難處理離散問(wèn)題,且由于粒子之間的相互作用,易陷入局部最小。針對(duì)這兩種方法的優(yōu)缺點(diǎn),GAPSO算法通過(guò)對(duì)粒子群算法中的粒子增加一種進(jìn)化的行為,使其在保留較強(qiáng)的局部搜索能力情況下,也擁有較強(qiáng)的全局搜索能力。
下面是GAPSO-RF算法具體步驟:
步驟1 參數(shù)初始化:設(shè)置粒子群參數(shù)速度v,位置x,種群規(guī)模popsize, 慣性權(quán)重w,進(jìn)化代數(shù)T。
步驟2 計(jì)算適應(yīng)度:對(duì)位置x離散化,使用適應(yīng)度函數(shù)評(píng)估各個(gè)粒子的優(yōu)異程度,得到每個(gè)粒子的個(gè)體最優(yōu)位置pb和群體最優(yōu)位置gb。如滿足條件則結(jié)束循環(huán)。
步驟3 保留粒子:通過(guò)計(jì)算得到的適應(yīng)度對(duì)粒子進(jìn)行優(yōu)異程度排序,以比例u保留表現(xiàn)優(yōu)異的粒子。
步驟4 更新參數(shù):對(duì)參數(shù)速度v,位置x進(jìn)行更新。
步驟5 進(jìn)化較差粒子:一定概率下將表現(xiàn)不好的粒子進(jìn)行交叉和變異,加入隨迭代次數(shù)減小的慣性權(quán)重,依式(5)更新參數(shù)w
(5)
步驟6 判斷迭代次數(shù):如未達(dá)到指定次數(shù),則轉(zhuǎn)步驟2。
其中是適應(yīng)度函數(shù)具體步驟:
步驟1 通過(guò)Bootstarp生成n個(gè)樣本子集Di(i=0,1,…,n);
步驟2 使用n個(gè)決策樹模型分別對(duì)各個(gè)子集進(jìn)行訓(xùn)練,在訓(xùn)練過(guò)程中,隨機(jī)性地選擇特征;
步驟3 將生成的決策樹進(jìn)行合并,形成一個(gè)集成的預(yù)測(cè)模型;
步驟4 將驗(yàn)證集代入集成的模型,得到驗(yàn)證集的預(yù)測(cè)結(jié)果,輸出預(yù)測(cè)指標(biāo)RMSE。
本文GAPSO算法參數(shù)設(shè)置:粒子數(shù)量為10,加速常數(shù)為0.9,慣性常量初始為0.9,隨迭代降至0.1,粒子保留率為0.4,非優(yōu)異粒子仍保留至下代概率為0.1,迭代次數(shù)為12。
本文選取的研究區(qū)域是安徽省宿州市的蘆嶺煤礦Ⅱ六采區(qū)8煤層。如圖2所示,該地區(qū)煤礦開采困難,構(gòu)造煤普遍發(fā)育,因此極易發(fā)生煤與瓦斯突出危害[14]。選用該研究區(qū)域的實(shí)際地震屬性數(shù)據(jù),同步預(yù)測(cè)出該區(qū)域的煤層厚度和構(gòu)造煤厚度。
圖2 礦區(qū)位置
蘆嶺煤礦具有特別的煤層特性和地質(zhì),使得該區(qū)域的煤與瓦斯突出問(wèn)題嚴(yán)重,在2002年和2003年發(fā)生過(guò)兩次重大事故,導(dǎo)致多人死亡和受傷[15]。
本文選取了蘆嶺煤礦Ⅱ六礦區(qū)8煤層與煤層厚度和構(gòu)造煤厚度相關(guān)的21維地震屬性數(shù)據(jù),選用整個(gè)礦區(qū)范圍內(nèi)已有的17口鉆孔。實(shí)驗(yàn)中采用主成分分析方法,對(duì)數(shù)據(jù)集進(jìn)行降維處理,取累計(jì)貢獻(xiàn)率大于95%的數(shù)據(jù)作為主成分,得到降維后的10維地震屬性數(shù)據(jù)。
將降維后的地震屬性數(shù)據(jù)以單棵決策樹為基準(zhǔn),使用遺傳算法得到最優(yōu)預(yù)測(cè)序列為:91-5、2002-4、2002-5、2012-1、2014-5、L43、06-4、91-2、92-8、94-2、91-1、92-2、94-5、2002-3、94-1、99-1鉆孔預(yù)測(cè)2010-11鉆孔,其中每個(gè)鉆孔的詳細(xì)數(shù)據(jù)見表1。
表1 鉆孔詳細(xì)數(shù)據(jù)
本次實(shí)驗(yàn)建立的單目標(biāo)預(yù)測(cè)模型依然選取隨機(jī)森林作為預(yù)測(cè)模型,但選取的基礎(chǔ)回歸模型轉(zhuǎn)變?yōu)閱文繕?biāo)決策樹。本文對(duì)其參數(shù)進(jìn)行與多目標(biāo)隨機(jī)森林參數(shù)同樣的優(yōu)化算法,建立GAPSO-RF和GAPSO-ART模型,對(duì)隨機(jī)森林的參數(shù)進(jìn)行優(yōu)化,包括決策樹最大深度在1到50之間取值,子模型的數(shù)量在1到200之間取值,分裂所需的最小樣本數(shù)在2到20之間取值,葉節(jié)點(diǎn)的最小樣本數(shù)在1到20之間取值,特征數(shù)量選擇平方根sqrt。輸入模型的是通過(guò)PCA屬性降維獲得10個(gè)線性不相關(guān)地震屬性數(shù)據(jù)。選取17口井共1815道地震屬性數(shù)據(jù)作為樣本進(jìn)行實(shí)驗(yàn),其中16口井作為訓(xùn)練集,1口井作為測(cè)試集,測(cè)試集有40%的數(shù)據(jù)被選入來(lái)優(yōu)化GAPSO-RF和GAPSO-ART模型,目標(biāo)1煤層厚度預(yù)測(cè)如圖3所示,目標(biāo)2構(gòu)造煤厚度預(yù)測(cè)如圖4所示。
圖3 目標(biāo)1預(yù)測(cè)結(jié)果對(duì)比
圖4 目標(biāo)2預(yù)測(cè)結(jié)果對(duì)比
從圖3和圖4分析,在到達(dá)10次迭代后,RF與ART模型的RMSE基本保持不變,意味著兩個(gè)達(dá)到了最小的誤差,對(duì)于目標(biāo)1,RF模型的RMSE為0.224,ART模型的RMSE為0.237,對(duì)于目標(biāo)2,RF模型的RMSE為0.087,ART模型的RMSE為0.296,因此優(yōu)化的多目標(biāo)隨機(jī)森林比單目標(biāo)具有更好的預(yù)測(cè)效果。
本次實(shí)驗(yàn)建立的神經(jīng)網(wǎng)絡(luò)模型采用的是誤差反向傳播算法的多層前饋網(wǎng)絡(luò)[16],是目前使用很普遍的一種神經(jīng)網(wǎng)絡(luò)。根據(jù)模型的輸入?yún)?shù)(10個(gè)),輸出參數(shù)(2個(gè)),設(shè)置單層隱藏層,隱藏層神經(jīng)元個(gè)數(shù)為256個(gè),中間層使用sigmoid函數(shù),輸出層使用relu函數(shù),優(yōu)化器使用adagrad,損失函數(shù)選用mse,建立BP神經(jīng)網(wǎng)絡(luò)模型,模型輸入的數(shù)據(jù)是通過(guò)PCA屬性降維獲得10個(gè)線性不相關(guān)地震屬性數(shù)據(jù)。選取17口井1815道地震屬性數(shù)據(jù)作為樣本進(jìn)行實(shí)驗(yàn),其中16口井作為訓(xùn)練集,1口井作為測(cè)試集,預(yù)測(cè)結(jié)果如圖5所示。
圖5 RF與BP預(yù)測(cè)結(jié)果對(duì)比
從圖5分析,在到達(dá)9次迭代后,BP與隨機(jī)森林模型的RMSE基本保持不變,意味著兩個(gè)達(dá)到了最小的誤差,此時(shí)RF模型的RMSE為0.153,BP模型的RMSE為0.252,因此優(yōu)化的多目標(biāo)隨機(jī)森林比BP模型具有更好的擬合效果。
利用改進(jìn)的預(yù)測(cè)模型,對(duì)研究區(qū)域的兩種煤層厚度進(jìn)行預(yù)測(cè),將3個(gè)模型分別運(yùn)用到整個(gè)8煤層,GAPSO-ART,GAPSO-RF分別運(yùn)行了53.2 s,41.0 s,因此構(gòu)建單個(gè)回歸模型比為每個(gè)目標(biāo)構(gòu)建回歸模型所需時(shí)間短。模型都使用分別優(yōu)化得到的最優(yōu)參數(shù)進(jìn)行預(yù)測(cè),分別預(yù)測(cè)10次,最終得到煤層厚度預(yù)測(cè)結(jié)果見表2,構(gòu)造煤厚度預(yù)測(cè)結(jié)果見表3。
表2 煤層厚度預(yù)測(cè)結(jié)果對(duì)比
由表2、表3分析,采用多目標(biāo)隨機(jī)森林模型預(yù)測(cè)煤層厚度平均誤差為0.23,同步預(yù)測(cè)構(gòu)造煤厚度平均誤差為0.08,遠(yuǎn)低于BP模型和單目標(biāo)預(yù)測(cè)誤差。
表3 構(gòu)造煤厚度預(yù)測(cè)結(jié)果對(duì)比
(1)使用多目標(biāo)隨機(jī)森林方法預(yù)測(cè)原生煤層厚度和構(gòu)造煤厚度,并將預(yù)測(cè)結(jié)果與ART和BP方法作比較,多目標(biāo)隨機(jī)森林方法預(yù)測(cè)精度更高,耗時(shí)也低于單目標(biāo)預(yù)測(cè)方法。本文的算法通用于其它多目標(biāo)預(yù)測(cè)的問(wèn)題。
(2)本文提出GAPSO算法對(duì)隨機(jī)森林的超參數(shù)進(jìn)行優(yōu)化,建立了GAPSO-RF和GAPSO-ART預(yù)測(cè)模型,通過(guò)實(shí)驗(yàn)驗(yàn)證,優(yōu)化后的模型比未優(yōu)化模型預(yù)測(cè)精度更高。
(3)為所有目標(biāo)構(gòu)建單個(gè)回歸模型的規(guī)模比為每個(gè)目標(biāo)分別構(gòu)建回歸模型的總規(guī)模小,多目標(biāo)考慮了目標(biāo)變量之間的相關(guān)性,最終獲得了更好的預(yù)測(cè)效果。
(4)研究區(qū)域蘆嶺煤礦Ⅱ六采區(qū)8煤層的17口井預(yù)測(cè)的最優(yōu)參數(shù)為決策樹深度21,子模型的數(shù)量為150,分裂所需的最小樣本數(shù)為11,葉節(jié)點(diǎn)的最小樣本數(shù)為5。