肖雄
【摘要】由于影响岩爆因素的复杂性,以及岩爆的极强灾害性。本文通过选择影响岩爆程度的四项物理力学指标,最后运算组合以后变成三项输入因子。应用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网络从而解决问题的提高效率。