文/肖雄 武漢理工大學土木工程與建筑學院 湖北武漢 430070
本文利用Matlab 9.1.0 (R2016b)這一工具進行BP神經網絡的運算并利用粒子群(PSO)進行網絡的優(yōu)化。相對遺傳算法來說,粒子群優(yōu)化BP神經網絡就沒有交叉、變異等復雜操作。PSO-BP網絡模型避免了BP網絡陷入局部最優(yōu)、收斂慢等缺陷。建立了多個巖爆影響因素與巖爆程度之間的非線性映射關系,并得到了最優(yōu)初始權值和閾值。然后利用網絡進行訓練,最后得出的結果與實際的巖爆程度一致。
(1)BP算法流程分成兩個部分:信息的正向傳播和誤差的反向傳播。
(2)將影響巖爆的主要因素作為網絡的輸入層,并告知網絡學習樣本的期望輸出,然后讓網絡計算出最優(yōu)的初始權值和閾值。能夠得到各個影響因素之間的權重關系。利用神經網絡解決輸入因子間的非線性關系,從而能夠對巖爆的烈度進行分級且避免了主觀因素的影響。
粒子群算法(Particle Swarm Optimizatio n,PSO),也稱微粒群算法,它能夠優(yōu)化BP網絡的關鍵一點是,能夠找尋最優(yōu)的初始隨機權重和閾值。
對于PSO算法,所有粒子(假設N個)通過速度Vi =(vi1,vi2,.......,viD)更新其空間位置Xi =(xi1,xi2,...,xiD)。粒子根據(jù)如下公式更新速度和位置[1]:
本文的巖爆實際案例數(shù)據(jù)來源于文獻[2],表1是訓練網絡所用的16個工程實際案例。通過公式(3)對樣本數(shù)據(jù)的歸一化處理,并進行網絡的訓練以后得到了當隱含層數(shù)為9時,所得到的網絡誤差最小為0.0711。樣本數(shù)據(jù)歸一化公式:
式中,xmin為樣本輸入數(shù)據(jù)中的最小數(shù);xmax為樣本輸入數(shù)據(jù)中的最大數(shù)。
基于MATLAB9.1.0(R2016b)對PSOBP算法進行了編制[3],兩個速度更新參數(shù)設置為c1=2,c2=2。由2.1節(jié)可知網絡的輸入層(indim)、隱含層(hiddennum)、輸出層(outdim)分別為3、9、4。種群的進化次數(shù)也稱粒子的維度可以由由公式(5)計算出來。公式如下:
得出粒子群的種群進化次數(shù)maxgen=76;種群規(guī)模設置為 sizepop=30。然后再將最優(yōu)的權值w和閾值b賦予給BP網絡,對國內外三組實際開挖巖爆的案例,來進行模型的驗證。
將PSO-BP與經驗判據(jù)巖爆預測的結果比較,如表1所示
通過表4的預測結果比較,某一個單一的經驗判據(jù)來預測巖爆的結果是很不準確的,PSOBP綜合多個巖爆影響因素所預測出來的結果和實際的巖爆程度很相近。
?
(1)傳統(tǒng)經驗判據(jù)預測巖爆導致預測精度不高,采用人工智能技術可以綜合多個影響因素來預測巖爆的傾向性。
(2)利用Matlab強大的工具箱功能,能夠實現(xiàn)BP網絡從而解決問題的提高效率。