胡勝利錢 旭鐘 峰
(1.中國礦業(yè)大學 (北京)機電與信息工程學院,北京市海淀區(qū),100083; 2.安徽理工大學計算機科學與工程學院,安徽省淮南市,232001)
★煤炭科技·機電與信息化 ★
基于遺傳算法和人工神經(jīng)網(wǎng)絡的煤層厚度預測*
胡勝利1,2錢 旭1鐘 峰1
(1.中國礦業(yè)大學 (北京)機電與信息工程學院,北京市海淀區(qū),100083; 2.安徽理工大學計算機科學與工程學院,安徽省淮南市,232001)
將具有高度非線性識別能力的人工神經(jīng)網(wǎng)絡與遺傳算法相結合,探討了應用于煤層厚度預測的方法,提出了先用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡,再進行結果預測。實踐表明,該方法有效提高了精度,對煤層厚度預測提供了一個重要模型。
神經(jīng)網(wǎng)絡 遺傳算法 煤層厚度 預測
AbstractOn the basis of combining the genetic algorithm and artificial neural network with highly non-linear recognition capability,the authors discuss methods to forecast coal seam thickness.In this paper,new neural network optimized by genetic algorithm is presented,then coal seam thickness is predicated.According to this paper, the method has been proved of improved accuracy and regarded an important model to forecast coal seam thickness.
Key wordsneural network,genetic algorithm,coal seam thickness,prediction
在我國的某些煤田中,由于煤層沉積和受河道沖刷的影響,會導致煤層結構發(fā)生變化,如煤層的分叉、合并和缺失等現(xiàn)象,這給煤層厚度的診斷帶來了困難,同時影響到礦井的采掘工作。比如實際煤厚比設計煤厚變薄10%~20%,煤炭產量可下降35%~40%。因此煤層厚度的預測對煤礦設計和生產具有重要意義。
傳統(tǒng)煤層的厚度勘探方法是根據(jù)鉆孔資料的對比、內插獲得的。但由于鉆孔數(shù)目有限,孔間距在百米以上,預測的結果可信度很低。后來人們根據(jù)煤層反射波的特性,對反射波在40 m左右并且在地質勘探中厚度小于1/4波長的地層做了大量研究工作,提出了許多解決辦法,如直接反演法、統(tǒng)計分析法等。但這些方法均要求煤層不能太厚或太薄,原因是煤層反射波動力學參數(shù)在該范圍內與煤層厚度呈非線性關系,因此需要對這些非線性關系進行映射。
目前在模式識別、趨勢預測等領域廣泛使用的BP網(wǎng)絡具有很強的非線性識別能力,但BP算法計算結果容易陷入局部最小值而得不到全局最優(yōu)解,而且隱含層中的神經(jīng)元數(shù)目很難確定。遺傳算法 (GA)的出現(xiàn),使得網(wǎng)絡的訓練有了新的有效方法。遺傳算法的搜索不但是并行的,而且能夠遍及全局,加快了網(wǎng)絡的訓練,容易得到全局最優(yōu)解,可以改善網(wǎng)絡的性能。
因此,本文將遺傳算法結合到BP神經(jīng)網(wǎng)絡中,主要思想是先利用遺傳算法對BP網(wǎng)絡初始權值進行優(yōu)化,等達到一定要求后,再利用BP算法進行運算,直到滿足精度要求為止。這樣可以避免BP網(wǎng)絡容易陷入局部最優(yōu)的問題,達到了優(yōu)化網(wǎng)絡的目的。
2.1 BP算法設計
BP網(wǎng)絡拓撲結構如圖1所示,算法步驟如下:
(1)建立BP網(wǎng)絡結構和輸入樣本網(wǎng)絡結構,包括節(jié)點層數(shù),各層節(jié)點數(shù)。其中,在 [-1,1]區(qū)間內對權值與閾值進行初始化;在 [0,1]區(qū)間內給定網(wǎng)絡學習效率。
(2)由輸入層向輸出層前向計算網(wǎng)絡的輸出。
圖1 神經(jīng)網(wǎng)絡結構圖
隱含層第j個結點的輸入為:
式中:oi——輸入層i節(jié)點的輸入;
Wji——隱含層節(jié)點j與輸入層節(jié)點i的連接權值,即隱含層節(jié)點j的輸入等于輸入層各節(jié)點的輸入乘以輸入層各節(jié)點與隱含層節(jié)點j之間的連接權值,然后求和。
隱含層節(jié)點j的輸出
輸出層結點k的輸入為
Vkj——輸出層節(jié)點k與隱含層節(jié)點j的連接權值,即隱含層節(jié)點k的輸入等于隱含層各節(jié)點的輸出乘以隱含層各節(jié)點與輸出層節(jié)點k之間的連接權值,然后求和。
(3)誤差計算,定義網(wǎng)絡誤差函數(shù)為:
式中:tk——理想輸出;
yk——真實輸出;
k——輸出層節(jié)點數(shù)。
(4)權值的修正。標準BP算法實質上是一種梯度下降尋優(yōu)法,從而常常使學習過程發(fā)生振蕩,收斂緩慢。另外,學習因子的選擇也非常重要,過大或過小都會對收斂速度產生影響,因此,這里采用常用的動量法和學習因子自適應調整法來修正權值,提高學習速度。
(5)輸入樣本,重復以上步驟,直至達到精度要求。
2.2 遺傳算法的設計
遺傳算法是一種自然選擇、競爭和群體遺傳機理的全局優(yōu)化方法。把求解問題的自變量看作基因,進行編碼構成染色體 (個體),在個體的集合 (群體)內根據(jù)個體適應度的大小進行最優(yōu)評價。在搜索過程中不斷通過選擇、交叉、變異3個遺傳算子進行新個體的產生與繁殖,最后得出最優(yōu)個體。
(1)染色體編碼。通常,遺傳算法基因編碼都是采用二進制位串編碼形式,而網(wǎng)絡結點中的權值均為實數(shù)。因此,在算法中編碼采用實數(shù)編碼,減少字符串的長度,以此來提高網(wǎng)絡求解速度。
(2)種群的初始化。初始群體的隨機產生常常導致在解空間中不能均勻分散,因此可先將優(yōu)化問題的初始解轉化為個體,然后在問題的解空間中利用人工方法產生初始種群的其他個體,使初始群體的個體模式階次較高,同時模式數(shù)目較大并具有多樣性。這樣通過適當選擇字符串長度和群體規(guī)模,即可在開始的幾代內找到各極值點所在的區(qū)域,加快搜索速度。
(3)適應度函數(shù)的選擇。遺傳算法以適應度函數(shù)作為進化目標,且只能朝著適應度函數(shù)值增大的方向進化,所以,適應度函數(shù)與目標函數(shù)之間要進行適當?shù)霓D換。由于進化中的網(wǎng)絡誤差是非零的正數(shù),可以將目標函數(shù)的倒數(shù)作為適應度函數(shù)。
(4)選擇算子的設計。選擇算子采用一般的輪盤賭方式,設種群規(guī)模為N,種群中的個體為fi(i=1,…,N),F(fi)為個體適應度值,則個體fi選擇概率Pi為:
具體過程如下:
②從區(qū)間 (0,1)產生一個隨機數(shù)θ;
③若θ∈(PI,PI-1),則fi進入下代種群;
④重復 (2)、(3)步驟N次,得到子代種群所需的N個染色體。
在這種選擇策略下,具有較大適應值的個體被選中的概率大,同時具有較小適應值的個體也存在被選中的可能。因此,在選擇的同時加入最佳選擇策略,把每個世代的最佳個體直接保留到子代。
(5)交換概率和變異概率。交叉和變異算子中有兩個重要的參數(shù):交換概率Pc和變異概率Pm。它們的選取對算法的性能有重要影響,為了避免早熟收斂,這里采用了自適應Pc和Pm的方法,其中Pc和Pm根據(jù)解的自適應度函數(shù)而變化。計算表達式如下:
式中:k1、k2、k3、k4——常數(shù);
fmax——最大適應度;
favg——平均適應度;
f’——交叉?zhèn)€體中適應度函數(shù)較大個體的適應度;
f——突變個體的適應度。
(6)交叉算子。交叉運算是最重要的遺傳操作,根據(jù)交叉概率Pc來選擇父代染色體通過交叉產生新的染色體,從而不斷擴展搜索空間,最終達到全局。這里采用算術交叉,這樣可以保證產生的后代在兩個父代染色體之間。算術交叉的依據(jù)是凸搜索空間的一個重要性質:對于解空間中的任何2個點x1和x2,若采用如下線性組合:
則結果同樣是解空間中的一個解。
根據(jù)此性質,設x1和x2為交叉運算的父染色體,則產生的后代為:
其中,α為隨機數(shù),范圍在 [0,1]之間。
(7)變異算子。由于染色體為實數(shù)編碼,變異運算采用如下方法。
染色體X的基因位xi的變異為:在區(qū)間[ x1,x2]隨機地取一個數(shù)x1來代替xi,區(qū)間[x1, x2]由下式確定;
式中:xmax,xmin——xi的取值上限和下限;
pm——變異概率;
f——突變個體的適應度;
fmax——最大適應度。
因此,適應度大的個體變異區(qū)間較小,適應度小的個體的變異區(qū)間較大。這樣既能減少變異操作對好的個體的破壞,又能夠保證遺傳算法的搜索能力。
(8)算法流程圖。基于 GA和BP神經(jīng)網(wǎng)絡算法流程圖如圖2所示:
圖2 GA和BP遺傳神經(jīng)網(wǎng)絡算法流程圖
為了驗證遺傳算法對BP算法的優(yōu)化作用,在MATALAB7.0中利用神經(jīng)網(wǎng)絡工具和遺傳算法工具對模型進行了仿真,仿真對象是煤層厚度的預測。選取了5個最能反映煤層厚度變化的地震特征參數(shù),即波峰波谷振幅A1、平均頻率Fa、主頻帶能量Qfl、低頻帶寬能量Qf和峰值頻率Fmain。
遺傳算法初始種群為50,進化代數(shù)為100,初始權值范圍在 [-5,5]之間。BP網(wǎng)絡兩個隱含層神經(jīng)元分別為3個和8個,傳遞函數(shù)為pureline和 logsig。輸出層神經(jīng)元為 1個,傳遞函數(shù)為pureline。算法學習率為0.9,動態(tài)因子為0.7,最大誤差為0.001,訓練步長為2000,樣本數(shù)據(jù)采用了文獻 [3]中的數(shù)據(jù)。經(jīng)過訓練,BP算法經(jīng)過121步達到穩(wěn)定,GA+BP算法卻只需要82步。測試數(shù)據(jù)和仿真結果如表1所示。
由表1可以看出,經(jīng)過 GA優(yōu)化的BP算法和單一的BP算法相比,網(wǎng)絡達到穩(wěn)定所需的步數(shù)明顯減少,預測結果的精度也得到了提高。
表1 仿真結果
通過以上分析,GA可以對BP網(wǎng)絡的權值進行有效優(yōu)化,解決了網(wǎng)絡速度收斂慢的缺點。該方法在仿真過程中,隨著訓練樣本的增加,預測的結果會隨著提高,表明了較強的網(wǎng)絡學習能力。結果證明,此模型對于利用地震波來預測煤層厚度提高了預測的準確性和效率,提供了一種新的方法。
[1]崔若飛.地震資料礦井構造解釋方法及應用 [M].北京:煤炭科學出版社,1997
[2]張志文,梁欠峰,王增瑩.遺傳算法優(yōu)化BP網(wǎng)絡及其在灰渣粘度預測中的應用 [J].計算機與應用化學, 2007(5)
[3]蔣云霞,蔡嗣經(jīng).神經(jīng)網(wǎng)絡與遺傳算法結合在礦業(yè)評價中的應用 [J].遼寧工程技術大學學報,2006,25(5)
[4]尚俊松,毛定祥.改進BP神經(jīng)網(wǎng)絡在股市預測中的應用 [J].價值工程,2004(7)
[5]李建珍.基于遺傳算法的人工神經(jīng)網(wǎng)絡學習算法[J].西北師范大學學報 (自然科學版),2002(2)
[6]雷英杰,張善文等.Matalab遺傳算法工具箱及應用[M]西安:西安電子科技大學出版社,2004
Genetic algorithm and artificial neural network based coal seam thickness forecasting
Hu Shengli1,2,Qian Xu1,Zhong Feng1
(1.School of Mechanical Electronic&Information Engineer,China University of Mining&Technology,Beijing 100083,China; 2.School of Computer Science And Engineering,Anhui University of Science and Technology,Huainan,Anhui province 232001,China)
P618
A
胡勝利 (1978-),男,回族,安徽淮南人,中國礦業(yè)大學 (北京)博士研究生,安徽理工大學計算機科學與工程學院講師,主要研究方向為:信息融合、計算機支持的協(xié)同工作。
(責任編輯 張毅玲)
教育部 2007年科技研究重點項目(107021)