郝天軒,陳國印,趙立楨,唐一舉
(1.河南理工大學(xué) 安全科學(xué)與工程學(xué)院,河南 焦作 454000;2.河南省瓦斯地質(zhì)與瓦斯治理重點(diǎn)實(shí)驗(yàn)室—省部共建國家重點(diǎn)實(shí)驗(yàn)室培育基地,河南 焦作 454000;3.煤炭安全生產(chǎn)河南省協(xié)同創(chuàng)新中心,河南 焦作 454000)
煤炭在我國能源結(jié)構(gòu)中占著非常大的比重,對(duì)經(jīng)濟(jì)和社會(huì)的發(fā)展有著不可替代的作用,然而隨著煤炭不斷開采,煤與瓦斯突出等災(zāi)害問題也嚴(yán)重威脅著煤礦企業(yè)的安全生產(chǎn)。預(yù)抽煤層瓦斯是防治煤與瓦斯突出的有效措施,鉆孔布置間距是煤層瓦斯抽采設(shè)計(jì)的關(guān)鍵,有效抽采半徑是鉆孔布置間距的一個(gè)十分重要的依據(jù)[1]。如果設(shè)計(jì)的鉆孔間距過小,很容易發(fā)生串孔事故,同時(shí)也增加了煤礦企業(yè)的安全成本,加劇了采掘接替緊張的局面;如果設(shè)計(jì)的鉆孔間距過大,則會(huì)形成抽采盲區(qū),易于引發(fā)煤礦安全事故[2]。所以,確定出合理的有效抽采半徑,對(duì)煤礦企業(yè)安全生產(chǎn)具有重要意義。
目前,有效抽采半徑的測(cè)定方法分為理論分析法、數(shù)值模擬法和現(xiàn)場實(shí)測(cè)法。理論分析法中的理論模型與現(xiàn)場實(shí)際存在一定偏差,且基本假設(shè)過于理想化,無法完全表征抽采鉆孔周圍煤體與瓦斯的流固耦合作用過程,致使有效半徑理論分析結(jié)果存在較大誤差,甚至存在與實(shí)際瓦斯抽采情況相差甚遠(yuǎn)的現(xiàn)象[3];數(shù)值模擬法首先通過收集某礦的瓦斯基礎(chǔ)參數(shù),然后建立某礦工作面抽采鉆孔周圍瓦斯流動(dòng)數(shù)學(xué)模型,目前大多數(shù)人依據(jù)建立好的數(shù)學(xué)模型,并使用COMSOL模擬軟件作為輔助工具來實(shí)現(xiàn)有效抽采半徑數(shù)值預(yù)測(cè)[4-5];現(xiàn)場實(shí)測(cè)法包括瓦斯壓力降低法、瓦斯含量指標(biāo)法、示蹤氣體法和鉆屑指標(biāo)法。現(xiàn)場測(cè)試法測(cè)試難度大,人為因素干擾影響大,測(cè)試成本費(fèi)用高,測(cè)量的效果還易受其他因素影響。上述方法計(jì)算其他礦的有效抽采半徑時(shí),還需要重復(fù)上述的繁瑣操作過程,進(jìn)而才能測(cè)得有效抽采半徑。由此造成了大量的時(shí)間、財(cái)力等浪費(fèi),因此,提出1種只需輸入礦井的主要影響參數(shù),就能夠快速較準(zhǔn)確地確定出礦井有效抽采半徑的方法,對(duì)于開展現(xiàn)場工作具有十分重要的現(xiàn)實(shí)意義。
鑒于此,本文提出基于Adam算法優(yōu)化深度神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)有效抽采半徑數(shù)值的方法。該預(yù)測(cè)模型充分利用深度神經(jīng)網(wǎng)絡(luò)強(qiáng)大的非線性以及深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力,可挖掘和學(xué)習(xí)不精確并帶有噪聲的有效數(shù)據(jù)集中復(fù)雜的深層關(guān)系[6]。最后利用訓(xùn)練好的最優(yōu)模型并結(jié)合Python編程語言,開發(fā)出計(jì)算有效抽采半徑的軟件,利用該軟件輸入礦井5個(gè)主要基本參數(shù)可以快速且較準(zhǔn)確地計(jì)算出有效抽采半徑的數(shù)值。同時(shí),選取四季春煤礦和鶴煤六礦進(jìn)行了實(shí)例驗(yàn)證。
深度神經(jīng)網(wǎng)絡(luò)算法是將輸入數(shù)據(jù)映射到目標(biāo)數(shù)據(jù),嘗試在迭代中不斷改變權(quán)值從而減小預(yù)測(cè)解與目標(biāo)解之間的差別,使目標(biāo)解和模型解之間的誤差最小[7]。通過神經(jīng)網(wǎng)絡(luò)回歸出來的并不是1個(gè)函數(shù),而是1個(gè)訓(xùn)練出來的預(yù)測(cè)模型,沒有相應(yīng)的固定函數(shù)形式,而是n個(gè)數(shù)字特征,并且每層網(wǎng)絡(luò)間的數(shù)字特征是相互關(guān)聯(lián)的。
由輸入層、隱含層和輸出層組成深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,深度神經(jīng)網(wǎng)絡(luò)模型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中隱含層層數(shù)至少2層,如圖1所示。深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的突出特點(diǎn)在于其具備多個(gè)隱含層,每層的神經(jīng)元個(gè)數(shù)可使用經(jīng)驗(yàn)公式自行選擇。輸入層和輸出層神經(jīng)元個(gè)數(shù)由具體實(shí)例問題決定,從輸入層到輸出層網(wǎng)絡(luò)單元間每一條鏈路都是1條可學(xué)習(xí)訓(xùn)練的全連接鏈。與淺層神經(jīng)網(wǎng)絡(luò)相比,深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型有遠(yuǎn)超過淺層網(wǎng)絡(luò)的表達(dá)能力,對(duì)于復(fù)雜問題的處理能力表現(xiàn)得更好更強(qiáng)[8]。
圖1 深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
通常輸入層稱為第1層,輸出層稱為最后1層。假設(shè)第i層有ni個(gè)神經(jīng)元,這些神經(jīng)元輸入組成的向量為zi,輸出組成的向量為hi,令u=hI以區(qū)分最終輸出與隱含層的輸出,據(jù)深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型計(jì)算規(guī)則有式(1)~(2):
zi=wizi-1+bi,i=1,2,3,…,I
(1)
hi=fi(zi)
(2)
式中:wi∈Rni×ni-1為第i-1層到i層的權(quán)值矩陣;bi∈Rni為第i層的偏置向量;fi為第i層的激活函數(shù)。激活函數(shù)是模仿人腦神經(jīng)元的閾值激活特性,向深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型中引入非線性特征。
本文隱含層和輸出層都選擇ReLU函數(shù)作為激活函數(shù),因其訓(xùn)練收斂速度更快,網(wǎng)絡(luò)稀疏性更強(qiáng)。ReLU[9]函數(shù)如式(3):
fi(zi)=max(0,zi)
(3)
預(yù)測(cè)模型進(jìn)行誤差反向傳播能夠?qū)Τ瑓?shù)偏置和權(quán)重優(yōu)化調(diào)整,本文選擇均方誤差MSE函數(shù)作為預(yù)測(cè)模型的損失函數(shù),MSE[10]函數(shù)如式(4):
(4)
預(yù)測(cè)模型使用誤差反向傳播對(duì)偏置及權(quán)重參數(shù)調(diào)優(yōu)。為了計(jì)算出實(shí)際輸出預(yù)測(cè)值,損失函數(shù)選擇MSE,因?yàn)镸SE函數(shù)能夠很好地表達(dá)出預(yù)測(cè)值和實(shí)際輸出值的誤差大小,函數(shù)形式如式(4)所示。
深度神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型訓(xùn)練的目標(biāo)是基于隨機(jī)梯度下降A(chǔ)dam算法[11],使均方誤差MSE不斷減小,最終得到全局最優(yōu)解為止。Adam算法是1種學(xué)習(xí)率自適應(yīng)矩估計(jì),尋找全局最優(yōu)的優(yōu)化算法,Adam引入了二次梯度校正。Adam算法結(jié)合了AdaGrad算法和RMSProp算法的優(yōu)勢(shì),Adam算法相對(duì)于其他種類算法有一定的優(yōu)越性,是比較常用的算法之一。Adam算法可高效地計(jì)算,所需內(nèi)存少,超參數(shù)可很直觀地解釋,并且基本上只需極少量的調(diào)參等。但Adam算法的收斂性,在某些特殊情況下可能會(huì)不收斂。
Adam算法[8]優(yōu)化更新實(shí)現(xiàn)的具體過程如下:
Require:初始學(xué)習(xí)率η(默認(rèn)為0.001)
Require:一階矩、二階矩估計(jì)的指數(shù)衰減速率β1,β2在區(qū)間[0,1)內(nèi),(一階矩β1,二階矩β2分別默認(rèn)為0.9和0.999)
Require:用于數(shù)值穩(wěn)定的小常數(shù)δ(默認(rèn)為10-8)
Require:初始參數(shù)θ
初始化一階矩向量s=0
初始化二階矩向量r=0
初始化時(shí)間步t=0
While沒有達(dá)到停止準(zhǔn)則do
從訓(xùn)練集中采包含n個(gè)樣本{x(1),…,x(n)}的小批量,對(duì)應(yīng)目標(biāo)為y(i)。
更新時(shí)間步:t←t+1
更新有偏一階矩估計(jì):s←β1s+(1-β1)g
更新有偏二階矩估計(jì):r←β2r+(1-β2)g⊙g
應(yīng)用更新:θ←θ+Δθ
End while
基于Adam算法優(yōu)化深度神經(jīng)網(wǎng)絡(luò)有效抽采半徑預(yù)測(cè)模型的預(yù)測(cè)流程如圖2所示。
圖2 基于Adam算法優(yōu)化神經(jīng)網(wǎng)絡(luò)模型的有效抽采半徑預(yù)測(cè)流程
研究數(shù)據(jù)來源于知網(wǎng)近十年有關(guān)瓦斯有效抽采半徑的碩士、期刊論文[12-17]。通過對(duì)這些搜集到的參考文獻(xiàn)分析得出抽采負(fù)壓對(duì)有效抽采半徑影響較小,影響因素比較大的有煤層瓦斯初始滲透率、鉆孔直徑、抽采時(shí)間、地應(yīng)力、煤層初始瓦斯壓力。除此之外,還考慮到增加負(fù)壓給煤礦企業(yè)帶來的經(jīng)濟(jì)成本投入、實(shí)際效果及技術(shù)施工難度,因此,不考慮抽采負(fù)壓作為訓(xùn)練數(shù)據(jù)的參數(shù)。確定煤層瓦斯初始滲透率、鉆孔直徑、抽采時(shí)間、地應(yīng)力、煤層初始瓦斯壓力作為神經(jīng)網(wǎng)絡(luò)方法訓(xùn)練數(shù)據(jù)的輸入值,有效抽采半徑作為目標(biāo)輸出值。本文收集整理的訓(xùn)練樣本包括經(jīng)過驗(yàn)證的模擬值和實(shí)測(cè)值,共計(jì)970組學(xué)習(xí)樣本。所有數(shù)據(jù)樣本每組均由煤層瓦斯初始滲透率、鉆孔直徑、抽采時(shí)間、地應(yīng)力、煤層初始瓦斯壓力及目標(biāo)值有效抽采半徑組成。
隱含層神經(jīng)元個(gè)數(shù)選取依據(jù)經(jīng)驗(yàn)公式以及實(shí)際訓(xùn)練效果而定。通過對(duì)預(yù)測(cè)模型的實(shí)際訓(xùn)練效果考察,最終確定本文神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為5-8-8-8-8-1,如圖3所示,輸入層5個(gè)神經(jīng)元,隱含層4層,每層神經(jīng)元個(gè)數(shù)都是8,輸出層1個(gè)神經(jīng)元。隱含層和輸出層激活函數(shù)都選擇ReLU函數(shù),損失函數(shù)選擇MSE,并采用Adam算法訓(xùn)練模型,設(shè)置的一些超參數(shù)已在1.2節(jié)介紹。此外,為了驗(yàn)證預(yù)測(cè)效果準(zhǔn)確性,在訓(xùn)練前數(shù)據(jù)集全部打亂,使選取的測(cè)試樣本沒有任何規(guī)律可循,防止出現(xiàn)一些不必要的誤差。
圖3 有效抽采半徑預(yù)測(cè)模型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
首先輸入層輸入煤層瓦斯初始滲透率X1、鉆孔直徑X2、抽采時(shí)間X3、地應(yīng)力X4、煤層初始瓦斯壓力X5等5個(gè)基本參數(shù),接著初始化權(quán)重和偏置,然后進(jìn)行前向傳播由輸入層到隱含層再到輸出層,輸出層得到的輸出預(yù)測(cè)值與樣本中輸出目標(biāo)值Y有效抽采半徑參數(shù)進(jìn)行均方誤差MSE處理,最后將得到的均方誤差MSE作為損失函數(shù)進(jìn)行反向傳播調(diào)整權(quán)重和偏置。如此反復(fù)不斷迭代,最大迭代次數(shù)5 000次,使MSE達(dá)到最小為止,這即是完整的神經(jīng)網(wǎng)絡(luò)處理過程。通過輸入的數(shù)據(jù)集進(jìn)行不斷更新調(diào)整并優(yōu)化神經(jīng)網(wǎng)絡(luò)模型,直到最后訓(xùn)練得到1個(gè)預(yù)測(cè)輸出值和目標(biāo)值誤差最小的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。最后保存訓(xùn)練出的最優(yōu)模型,利用該預(yù)測(cè)模型輸入其他某礦的上述5個(gè)基本參數(shù)即可以進(jìn)行有效抽采半徑數(shù)值的預(yù)測(cè)。
同樣,首先也要打亂測(cè)試集,然后從測(cè)試數(shù)據(jù)集中隨機(jī)選取2組數(shù)據(jù)作為測(cè)試數(shù)據(jù),每組14個(gè)測(cè)試數(shù)據(jù),把每組測(cè)試數(shù)據(jù)輸入訓(xùn)練好的最優(yōu)模型預(yù)測(cè)輸出值,然后把測(cè)試數(shù)據(jù)得到的預(yù)測(cè)輸出值與測(cè)試數(shù)據(jù)樣本的輸出值繪制在1個(gè)圖上進(jìn)行對(duì)比分析。如圖4~5所示,實(shí)線代表預(yù)測(cè)輸出值,虛線代表測(cè)試數(shù)據(jù)樣本的輸出值,從2個(gè)圖中可看出預(yù)測(cè)模型得到的預(yù)測(cè)值和測(cè)試數(shù)據(jù)樣本輸出值擬合的曲線較好。從而也驗(yàn)證預(yù)測(cè)模型預(yù)測(cè)效果較好。
圖4 第1組測(cè)試數(shù)據(jù)對(duì)比
圖5 第2組測(cè)試數(shù)據(jù)對(duì)比
軟件設(shè)計(jì)遵循一致性原則、兼容性原則、適應(yīng)性原則、指導(dǎo)性原則、結(jié)構(gòu)性原則。軟件開發(fā)利用純開源工具,極大降低了開發(fā)成本。
3.1.1 軟件開發(fā)平臺(tái)
操作系統(tǒng):Windows10操作系統(tǒng)。Python庫:Pyside2,TensorFlow。IDE(集成開發(fā)環(huán)境):Pycharm。
3.1.2 軟件實(shí)現(xiàn)方法
前端基于Python Qt平臺(tái)界面設(shè)計(jì)與開發(fā),后端使用基于Python語言的TensorFlow包進(jìn)行模型的訓(xùn)練、保存及調(diào)用,最后打包為.exe文件。
運(yùn)行.exe文件,程序會(huì)動(dòng)態(tài)加載利用Python Qt平臺(tái)設(shè)計(jì)出軟件界面的.ui文件,以及加載保存的最優(yōu)預(yù)測(cè)模型.h5文件,并把預(yù)測(cè)模型的.h5文件作為1個(gè)預(yù)測(cè)模型使用,利用這個(gè)模型即可以根據(jù)輸入的基本參數(shù)計(jì)算出瓦斯有效抽采半徑。
3.1.3 軟件使用
運(yùn)行軟件后進(jìn)入登錄界面,接著點(diǎn)擊登錄界面(如圖6所示)的【登錄】按鈕即可跳轉(zhuǎn)到有效抽采半徑計(jì)算主界面。進(jìn)入到主界面以后,可看到界面上有輸入?yún)?shù)一欄和有效抽采半徑計(jì)算一欄,在輸入?yún)?shù)一欄的地應(yīng)力(MPa)、鉆孔直徑(mm)、抽采時(shí)間(d)、煤層初始瓦斯壓力(MPa)、煤層初始滲透率(m2×10-16)提示文本參數(shù)后輸入框,輸入需要計(jì)算的參數(shù)數(shù)值。最后在有效抽采半徑計(jì)算一欄點(diǎn)擊【計(jì)算】按鈕,即可看到計(jì)算出的結(jié)果顯示在有有效抽采半徑數(shù)值文字提示的單行文本框中,如圖7所示。
圖6 登錄界面
圖7 計(jì)算出結(jié)果界面
如果想要再次重新計(jì)算,只需在有效抽采半徑主界面輸入?yún)?shù)一欄輸入需要計(jì)算的參數(shù)數(shù)值,再次點(diǎn)擊【計(jì)算】按鈕,計(jì)算出的結(jié)果依然顯示在有效抽采半徑計(jì)算一欄的單行文本框內(nèi)。
為了驗(yàn)證保存好的基于Adam算法有效抽采半徑預(yù)測(cè)模型的準(zhǔn)確性和適用性,本文選取樣本以外的其他2個(gè)礦進(jìn)行有效抽采半徑計(jì)算驗(yàn)證。選取四季春煤礦和鶴煤六礦進(jìn)行有效抽采半徑預(yù)測(cè),計(jì)算出結(jié)果界面如圖7所示,并記錄下計(jì)算值,其中收集的四季春煤礦已經(jīng)給出數(shù)值模擬值、理論分析值以及實(shí)測(cè)值,鶴煤六礦給出了數(shù)值模擬值和實(shí)測(cè)值,最后對(duì)2個(gè)礦的瓦斯有效抽采半徑的計(jì)算值、給出的其他值與實(shí)測(cè)值進(jìn)行對(duì)比分析,四季春煤礦有效抽采半徑結(jié)果對(duì)比見表1,鶴煤六礦有效抽采半徑結(jié)果對(duì)比見表2。
從表1可看出,計(jì)算值與實(shí)測(cè)值的相對(duì)誤差隨著抽采時(shí)間增加變化不大,相對(duì)誤差均穩(wěn)定在10%之內(nèi);理論計(jì)算值與實(shí)測(cè)值的相對(duì)誤差隨著抽采時(shí)間增加先減小后增加;數(shù)值模擬值與實(shí)測(cè)值的相對(duì)誤差先是隨著時(shí)間增加而減小,后隨時(shí)間增大而變大,并且相對(duì)誤差出現(xiàn)了超過10%的情況。由此可清楚地得到3個(gè)數(shù)值與實(shí)測(cè)值的相對(duì)誤差大小,總體來說神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)計(jì)算值的效果比較好,也可看出預(yù)測(cè)效果隨著抽采時(shí)間的增加變的越來越好。從表2可看出,計(jì)算值與實(shí)測(cè)值幾乎相等,計(jì)算值和實(shí)測(cè)值的相對(duì)誤差為1%,而數(shù)值模擬值與實(shí)測(cè)值相對(duì)誤差較大,這也說明本文模型的預(yù)測(cè)效果比較理想。
表1 四季春煤礦有效抽采半徑結(jié)果對(duì)比
表2 鶴煤六礦有效抽采半徑結(jié)果對(duì)比
1)根據(jù)收集到的970組數(shù)據(jù)集進(jìn)行訓(xùn)練,不斷優(yōu)化更新基于Adam算法的有效抽采半徑預(yù)測(cè)模型,最終得到基于Adam算法的深度神經(jīng)網(wǎng)絡(luò)最優(yōu)預(yù)測(cè)模型。
2)通過對(duì)COMSOL模擬軟件得到的數(shù)值、神經(jīng)網(wǎng)絡(luò)計(jì)算得到的數(shù)值及實(shí)測(cè)數(shù)值進(jìn)行對(duì)比分析,可發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)模型計(jì)算數(shù)值與實(shí)測(cè)值比較接近,也說明神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型適用性較強(qiáng)。
3)以訓(xùn)練好的最優(yōu)神經(jīng)網(wǎng)絡(luò)模型為基礎(chǔ),開發(fā)出有效抽采半徑數(shù)值計(jì)算軟件,使用該軟件計(jì)算出有效抽采半徑的方法與其他預(yù)測(cè)瓦斯有效抽采半徑方法相比,操作更加簡單、效率更高,不易受人為因素的影響,可為暫不具備現(xiàn)場測(cè)試條件的礦井抽采設(shè)計(jì)提供一定的參考依據(jù)。
中國安全生產(chǎn)科學(xué)技術(shù)2022年6期