244
工作研究 Work Research
PSO优化BP神经网络岩爆预测的Matlab 实现
文 / 肖雄 武汉理工大学土木工程与建筑学院 湖北武汉 430070
【摘要】由于影响岩爆因素的复杂性,以及
岩爆的极强灾害性。本文通过选择影响岩爆
程度的四项物理力学指标,最后运算组合以
后变成三项输入因子。应用 BP神经网络对
16 组国内外岩爆实际工程案例进行训练,得
到最优隐含层数。然后利用粒子群算法(PSO)
优化网络的初始权值和阈值,避免了单独使
用BP网络时说存在的不足。利用MatIab 及
其神经网络工具箱来实现网络的运算和预测。
将训练好的网路应用到三组实际的案例中,
最终结果表明:利用 PSO-BP 神经网络算
法所预测出来的结果和实际岩爆烈度一致,
且结果明显优于单因素判据和 BP网络预测
的结果。
【关键词】 BP 神经网络;粒子群(PSO)
优化算法;岩爆预测; MatIab
本文利用MatIab 9.1.0 (R2016b) 这一工具
进行BP神经网络的运算并利用粒子群(PSO)
进行网络的优化。相对遗传算法来说,粒子群优
化BP神经网络就没有交叉、变异等复杂操作。
PSO-BP 网络模型避免了 BP网络陷入局部最
优、收敛慢等缺陷。建立了多个岩爆影响因素与
岩爆程度之间的非线性映射关系,并得到了最优
初始权值和阈值。然后利用网络进行训练,最后
得出的结果与实际的岩爆程度一致。
1、基于粒子群算法的BP神经网络模型
1.1 BP 神经网络与岩爆的结合
(1)BP算法流程分成两个部分:信息的正
向传播和误差的反向传播。
(2)将影响岩爆的主要因素作为网络的输
入层,并告知网络学习样本的期望输出,然后让
网络计算出最优的初始权值和阈值。能够得到各
个影响因素之间的权重关系。利用神经网络解决
输入因子间的非线性关系,从而能够对岩爆的烈
度进行分级且避免了主观因素的影响。
1.2 粒子群(PSO)优化算法
粒子群算法 (ParticIe Swarm Optimizatio
n,PSO),也称微粒群算法,它能够优化 BP
网络的关键一点是,能够找寻最优的初始随机权
重和阈值。
对于 PSO算法,所有粒子 ( 假设 N个 ) 通
过速度 Vi =(vi1,vi2,.......,viD) 更新其空间位置
Xi =(xi1,xi2,...,xiD)。粒子根据如下公式更新速
度和位置 [1]:
Vid(t+1)=wV id(t)+c1*r1* (pid- X id(t))+
c2*r2* (pgd- X id(t)) (1)
Xid(t+1)= Xid(t)+ Vid(t+1) (2)
2、PSO-BP 模型岩爆预测的Matlab
实现
2.1 网络参数的选取与训练
本文的岩爆实际案例数据来源于文献 [2],
表 1是训练网络所用的 16 个工程实际案例。通
过公式(3)对样本数据的归一化处理,并进行
网络的训练以后得到了当隐含层数为 9时,所得
到的网络误差最小为 0.0711。样本数据归一化
公式:
(3)
式中,xmin 为样本输入数据中的最小数;
xmax 为样本输入数据中的最大数。
2.2 PSO-BP算法的工程实例
基 于 MATLAB9.1.0(R2016b) 对 PSO-
BP 算法进行了编制 [3]