肖雄
【摘要】由于影響巖爆因素的復雜性,以及巖爆的極強災害性。本文通過選擇影響巖爆程度的四項物理力學指標,最后運算組合以后變成三項輸入因子。應用BP神經網絡對16組國內外巖爆實際工程案例進行訓練,得到最優隱含層數。然后利用粒子群算法(PSO)優化網絡的初始權值和閾值,避免了單獨使用BP網絡時說存在的不足。利用Matlab及其神經網絡工具箱來實現網絡的運算和預測。將訓練好的網路應用到三組實際的案例中,最終結果表明:利用PSO-BP神經網絡算法所預測出來的結果和實際巖爆烈度一致,且結果明顯優于單因素判據和BP網絡預測的結果。
【關鍵詞】BP神經網絡;粒子群(PSO)優化算法;巖爆預測;Matlab
本文利用Matlab 9.1.0(R2016b)這一工具進行BP神經網絡的運算并利用粒子群(PSO)進行網絡的優化。相對遺傳算法來說,粒子群優化BP神經網絡就沒有交叉、變異等復雜操作。PSO-BP網絡模型避免了BP網絡陷入局部最優、收斂慢等缺陷。建立了多個巖爆影響因素與巖爆程度之間的非線性映射關系,并得到了最優初始權值和閾值。然后利用網絡進行訓練,最后得出的結果與實際的巖爆程度一致。
1、基于粒子群算法的BP神經網絡模型
1.1BP神經網絡與巖爆的結合
(1)BP算法流程分成兩個部分:信息的正向傳播和誤差的反向傳播。
(2)將影響巖爆的主要因素作為網絡的輸入層,并告知網絡學習樣本的期望輸出,然后讓網絡計算出最優的初始權值和閩值。能夠得到各個影響因素之間的權重關系。利用神經網絡解決輸入因子間的非線性關系,從而能夠對巖爆的烈度進行分級且避免了主觀因素的影響。
1.2粒子群(PSO)優化算法
粒子群算法,也稱微粒群算法,它能夠優化BP網絡的關鍵一點是,能夠找尋最優的初始隨機權重和閾值。
對于PSO算法,所有粒子(假設N個)通過速度vi=(vi1,v12,……,viD)更新其空間位置Xi=(xi1,x12,……,xiD)。粒子根據如下公式更新速度和位置:
2、PSO-BP模型巖爆預測的Matlab實現
2.1網絡參數的選取與訓練
本文的巖爆實際案例數據來源于文獻,表1是訓練網絡所用的16個工程實際案例。通過公式(3)對樣本數據的歸一化處理,并進行網絡的訓練以后得到了當隱含層數為9時,所得到的網絡誤差最小為0.0711。樣本數據歸一化公式:
式中,xmin為樣本輸入數據中的最小數;xmax為樣本輸入數據中的最大數。
2.2PSO-BP算法的工程實例
基于MATLAB9.1.0(R2016b)對PSO-BP算法進行了編制,兩個速度更新參數設置為c1=2,c2=2。由2.1節可知網絡的輸入層(indim)、隱含層(hiddennum)、輸出層(outdim)分別為3、9、4。種群的進化次數也稱粒子的維度可以由由公式(5)計算出來。公式如下:
得出粒子群的種群進化次數maxgen=76種群規模設置為sizepop=30。然后再將最優的權值w和閾值b賦予給BP網絡,對國內外三組實際開挖巖爆的案例,來進行模型的驗證。
2.3不同預測方法結果的比較
將PSO-BP與經驗判據巖爆預測的結果比較,如表1所示
通過表4的預測結果比較,某一個單一的經驗判據來預測巖爆的結果是很不準確的,PSO-BP綜合多個巖爆影響因素所預測出來的結果和實際的巖爆程度很相近。
結論:
(1)傳統經驗判據預測巖爆導致預測精度不高,采用人工智能技術可以綜合多個影響因素來預測巖爆的傾向性。
(2)利用Matlab強大的工具箱功能,能夠實現BP網絡從而解決問題的提高效率。