譚大國(guó)
TAN Da-guo
(安徽理工大學(xué) 電氣與信息工程學(xué)院,淮南 232001)
礦井涌水量是指在礦山建設(shè)和生產(chǎn)過(guò)程中單位時(shí)間內(nèi)通過(guò)各種巷道和開(kāi)采系統(tǒng)流入礦井的水量[1]。準(zhǔn)確預(yù)測(cè)礦井涌水量可以減少由于礦井涌水和突水而造成的各種事故給煤礦和國(guó)家的損失。影響礦井涌水量的因素如大氣降水、水位降深、含水層厚度以及所選的計(jì)算參數(shù)等,這些錯(cuò)綜復(fù)雜的因素均表現(xiàn)為典型的非線(xiàn)性。在非線(xiàn)性預(yù)測(cè)方面,神經(jīng)網(wǎng)絡(luò)技術(shù)因其良好的自適應(yīng)和自學(xué)習(xí)能力、較強(qiáng)的抗干擾能力使其成為一種主流方法。而在水文預(yù)報(bào)和水文地質(zhì)參數(shù)識(shí)別領(lǐng)域方面應(yīng)用頻率較高的則是BP神經(jīng)網(wǎng)絡(luò),即誤差方向傳播的神經(jīng)網(wǎng)絡(luò)模型。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無(wú)需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。本文分析了利用BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)礦井涌水量的可行性。
根據(jù)國(guó)內(nèi)外對(duì)礦井涌水量影響因素的成果和相關(guān)工程實(shí)踐經(jīng)驗(yàn)可知,影響礦井涌水量的因素是多方面的。根據(jù)大海則煤礦水文和地質(zhì)條件分析[2],礦井主要補(bǔ)給水源有老窯積水和燒變巖區(qū)積水,兩者均受到水位降深和含水層厚度的影響;主要間接補(bǔ)給水源是大氣降水,它主要受到季節(jié)的影響。滲透系數(shù)表示流體通過(guò)孔隙骨架的難易程度,所以其對(duì)礦井水的直接和間接補(bǔ)給都有影響。通過(guò)以上分析可知影響大海則煤礦單井涌水量的因素為大氣降水、滲透系數(shù)、水位降深和含水層厚度。
B P 神經(jīng)網(wǎng)絡(luò)又稱(chēng)為誤差反向傳播(B a c k Propagation)神經(jīng)網(wǎng)絡(luò),它是一種多層前向型的神經(jīng)網(wǎng)絡(luò),一般由一個(gè)輸入層、一個(gè)隱含層和一個(gè)輸出層組成。在正向傳播階段,輸入信息從輸入層經(jīng)隱含層傳向輸出層,在輸出端產(chǎn)生輸出信號(hào)[3]。在信號(hào)的向前傳遞過(guò)程中網(wǎng)絡(luò)的權(quán)值固定不變,每一層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。如果在輸出層不能得到期望的輸出,則轉(zhuǎn)入誤差信號(hào)反向傳播。在反向傳播階段,未能滿(mǎn)足精度要求的誤差信號(hào)由輸出端開(kāi)始,以某種方式逐層向前傳播,并將誤差分?jǐn)偨o各層的所有單元,依據(jù)誤差信號(hào)動(dòng)態(tài)的調(diào)整各單元層的連接權(quán)重。通過(guò)周而復(fù)始的正向傳播與反向調(diào)節(jié),神經(jīng)元間的權(quán)值得到不斷的修正。當(dāng)輸出信號(hào)的誤差滿(mǎn)足精度要求時(shí),停止學(xué)習(xí)。
本文利用不同的輸入神經(jīng)元選擇方法建立了兩種不同的BP神經(jīng)網(wǎng)絡(luò)模型。一種是利用上述影響涌水量的四個(gè)因素作為輸入神經(jīng)元;另一種方法是利用已經(jīng)測(cè)得的涌水量數(shù)據(jù)采取一定的組合方法作為輸入神經(jīng)元。但二者的最終輸出都是礦井涌水量。然后在這兩種不同的輸入情況下訓(xùn)練網(wǎng)絡(luò),并用訓(xùn)練好的網(wǎng)絡(luò)去驗(yàn)證模型是否可以準(zhǔn)確的完成預(yù)測(cè)工作。
通過(guò)大海則單井煤礦工程地質(zhì)和水文地質(zhì)勘察報(bào)告,以及現(xiàn)場(chǎng)的實(shí)測(cè)資料,確定了涌水量控制因素的取值,如表1所示。選取表中前8組作為訓(xùn)練樣本,最后2組作為驗(yàn)證樣本。
表1 大海則煤礦D水19水文孔涌水量情況
現(xiàn)有的神經(jīng)網(wǎng)絡(luò)理論定理已經(jīng)證明:在閉區(qū)間的連續(xù)函數(shù)都可以用只含一個(gè)隱含層的BP神經(jīng)網(wǎng)絡(luò)來(lái)逼近,即一個(gè)3層BP神經(jīng)網(wǎng)絡(luò)均可以完成從n維到m維的映射,故選擇只有一個(gè)隱含層的簡(jiǎn)單模型(如圖1所示)。隱含層節(jié)點(diǎn)個(gè)數(shù)確定是根據(jù)經(jīng)驗(yàn)公式來(lái)推導(dǎo)節(jié)點(diǎn)個(gè)數(shù)。式中n為輸入節(jié)點(diǎn)數(shù),m為輸出節(jié)點(diǎn)數(shù),a為區(qū)間[1 10]之間的整數(shù),然后通過(guò)a的不同取值,得到不同的節(jié)點(diǎn)個(gè)數(shù)建立不同的網(wǎng)絡(luò)模型。在訓(xùn)練集相同的情況下,選擇在誤差最小時(shí)網(wǎng)絡(luò)選用的隱含層節(jié)點(diǎn)個(gè)數(shù)[4]。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)圖
網(wǎng)絡(luò)的輸入、輸出以及隱含層確定以后,接下來(lái)就要確定網(wǎng)絡(luò)訓(xùn)練函數(shù)及傳遞函數(shù)。在此次模型建立中訓(xùn)練函數(shù)選用了基于Levenberg-Marquardt算法的trainlm函數(shù),隱含層傳遞函數(shù)為logsig,輸出層傳遞函數(shù)為purelin。需要注意的是,如果BP網(wǎng)絡(luò)的輸出層采用sigmoid型傳遞函數(shù),網(wǎng)絡(luò)的輸出值將被限制在[-1 1]之間,故根據(jù)實(shí)際情況選擇了輸出范圍較大時(shí)purelin函數(shù)[5]。
最后通過(guò)MATLAB程序?qū)崿F(xiàn)預(yù)測(cè)功能。首先是定義樣本向量,由于所用數(shù)據(jù)較多,為了方便輸入,借助了Excel和MATLAB的互連輸入數(shù)據(jù)。訓(xùn)練樣本數(shù)據(jù)被存放在“xunlian.xls”中,驗(yàn)證樣本數(shù)據(jù)被存放在“yanzheng.xls”中。具體的程序如下:
下面要對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,比較發(fā)現(xiàn)網(wǎng)絡(luò)在隱含層節(jié)點(diǎn)數(shù)選擇為7時(shí)收斂性能最好,預(yù)測(cè)誤差最小。程序如下:
如圖2所示,網(wǎng)絡(luò)經(jīng)過(guò)35次迭代完成訓(xùn)練,達(dá)到目標(biāo)誤差以下。
圖2 誤差性能變化曲線(xiàn)圖
最后通過(guò)運(yùn)行仿真預(yù)測(cè)程序和MATLAB繪圖程序得出了非常直觀的效果圖,如圖3所示。
圖3 預(yù)測(cè)效果圖
依據(jù)表1中的數(shù)據(jù),提取從1999年到2002年的涌水量數(shù)據(jù)為一個(gè)樣本,前3個(gè)樣本數(shù)據(jù)作為輸入,最后1個(gè)樣本數(shù)據(jù)作為輸出。根據(jù)此方法將樣本數(shù)據(jù)分為7組,選擇前5組作為訓(xùn)練樣本,最后2組作為驗(yàn)證樣本,如表2所示。
網(wǎng)絡(luò)中隱含層層數(shù)、隱含層神經(jīng)元個(gè)數(shù)以及網(wǎng)絡(luò)函數(shù)的選擇方法同第一種方法,但在利用MATLAB程序?qū)崿F(xiàn)數(shù)據(jù)輸入的方法有所不同,這里采用了直接輸入的方法,具體的程序如下:
比較發(fā)現(xiàn),模型在隱含層的節(jié)點(diǎn)個(gè)數(shù)為8時(shí),網(wǎng)絡(luò)的收斂性能和誤差率都達(dá)到要求,在此條件下去訓(xùn)練網(wǎng)絡(luò)并用訓(xùn)練好的網(wǎng)絡(luò)完成預(yù)測(cè)工作,最終的預(yù)測(cè)效果如圖4所示。
表2 樣本選擇表
圖4 預(yù)測(cè)效果圖
表3 仿真預(yù)測(cè)結(jié)果表 (單位: L/s·m%)
通過(guò)比較,得出了網(wǎng)絡(luò)閾值和初始值為最優(yōu)情況下的驗(yàn)證結(jié)果,如表3所示。上述結(jié)果證明了利用BP神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)涌水量是可行的,利用影響涌水量因素作為輸入神經(jīng)元時(shí)其預(yù)測(cè)結(jié)果和實(shí)際測(cè)量值更接近,誤差率只有1.45%,預(yù)測(cè)精度較高。在多次運(yùn)行預(yù)測(cè)程序得出平均誤差率,其結(jié)果同樣如此。在實(shí)際操作過(guò)程中也有一些需要注意的問(wèn)題:
1)由于此次輸入數(shù)據(jù)范圍不大,因而輸入時(shí)未將數(shù)據(jù)進(jìn)行歸一化處理到[0 1]的范圍。但是如果在數(shù)據(jù)變化幅度大而未進(jìn)行數(shù)據(jù)處理工作,會(huì)導(dǎo)致預(yù)測(cè)結(jié)果精度降低甚至無(wú)法預(yù)測(cè)。
2)在重復(fù)多次進(jìn)行網(wǎng)絡(luò)測(cè)試時(shí)發(fā)現(xiàn)兩種方法的預(yù)測(cè)結(jié)果均出現(xiàn)波動(dòng),預(yù)測(cè)精度降低。這是由于網(wǎng)絡(luò)初始權(quán)值和閾值在每次進(jìn)行訓(xùn)練仿真時(shí)是不一樣的,可以通過(guò)增加學(xué)習(xí)樣本的方法克服輸出的隨機(jī)性,產(chǎn)生穩(wěn)定輸出結(jié)果。
3)從表中可以看出,對(duì)2008年涌水量預(yù)測(cè)的結(jié)果誤差比2007年大。原因是此年實(shí)際涌水量值較前些年有了較大波動(dòng),所以網(wǎng)絡(luò)模型對(duì)突變數(shù)據(jù)的適應(yīng)能力還有待提高。
4)此次由于預(yù)測(cè)精度較高,所以未采用遺傳算法去優(yōu)化神經(jīng)網(wǎng)絡(luò)。如果預(yù)測(cè)誤差較大時(shí),可以利用GA-BP神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)預(yù)測(cè)功能。
從預(yù)測(cè)結(jié)果看,兩種以不同輸入神經(jīng)元構(gòu)建的BP神經(jīng)網(wǎng)絡(luò)都可以完成涌水量的預(yù)測(cè)工作,但是利用涌水量影響因素作為輸入神經(jīng)元的方法預(yù)測(cè)精度更高。但是需要注意,不同的礦井其地質(zhì)條件和水文條件不一定相同,要根據(jù)實(shí)際情況分析影響涌水量的因素才能準(zhǔn)確的完成涌水量的預(yù)測(cè)工作。
[1] 王金國(guó),江洪清,高永奎.基于MATLABR的礦井涌水量神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)方法及應(yīng)用[J].煤炭技術(shù),2004,23(7):67-68.
[2] 于洋,張振文,于孔超.基于人工神經(jīng)網(wǎng)絡(luò)的大海則煤礦單井礦井水定量預(yù)測(cè)[J].科技咨詢(xún)導(dǎo)報(bào),2009,(19):100-101.
[3] 凌成鵬,孫亞軍,楊蘭和,等.基于BP神經(jīng)網(wǎng)絡(luò)的空隙充水礦井涌水量預(yù)測(cè)[J].水文地質(zhì)工程地質(zhì),2007(5):55-58.
[4] 沈花玉,王兆霞,高成耀,等.BP神經(jīng)網(wǎng)絡(luò)隱含層單元數(shù)的確定[J].天津理工大學(xué)學(xué)報(bào),2008,24(5):13-15.
[5] 朱凱,王正林.精通MATLAB神經(jīng)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2010.