1、基于 FOASVR 算法的边坡稳定性预测方法及其软件设计摘 要:针对一般边坡失稳预测方法的样本归一化处理、选择经验核函数等带来的预测误差,本文利用果蝇优化算法优化支持向量回归的回归参数( FOA-SVR ) ,选择“bspline”核函数,对于边坡训练样本不做归一化处理,通过训练来对边坡稳定性进行预测,并且利用 MATLAB 编程将上述算法可视化,开发出了基于 FOA-SVR 的边坡预测软件。算例的计算结果显示,预测值和实际值一致,算法精度较高,而且软件系统稳定,界面简洁,具有很强的实用性。 关键词:边坡稳定性预测;回归支持向量机;果蝇优化算法 FOA-SVR 目前,边坡稳定性的分析方法有很多
2、,如工程地质分析1,2、极限平衡分析法3,4、极限分析法5,6、数值分析方法(有限元法、有限元强度折减法) 、可靠性分析方法等。但是,这些传统方法大都遇到了“机制不清楚” 、 “ 参数给不准” 、 “ 模型给不准” 等瓶颈问题。这些评价方法往往不能动态的显示出地质数据的非线性、模糊性、混沌性和复杂性等特征。于是,许多学者考虑用神经网络模型来研究边坡稳定性11,12,但是这些模型也存在着一定的缺陷。本文根据边坡案例,逐步分析各个核函数和各个参数对回归支持向量机的影响机制;然后,利用果蝇优化算法,通过边坡样本来训练优化支持向量机的回归参数,构建 FOA SVR 算法,确定出最优的核函数和相关参数;
3、再针对具体的边坡案例,利用上述算法来预测其稳定性,并且将上述算法利用 MATLAB 进行可视化处理,设计出相应的边坡稳定性预测软件,以便于求解。 一、支持向量回归算法 SVR 应用于回归拟合分析时,其基本思想不再是寻找一个最优分面类使得两类样本分开,而是寻找一个最优分面类使得所有训练样本离该最优分面类误差最小。而 SVR 里面的参数和核函数的选择会对 SVR 产生很大的影响。 (一)用固定的参数 C 和 e 测试核函数。下面结合参考文献的边坡实例,对核函数进行测试,研究核函数对 SVR 结构的影响机制,以便于选择针对具体案例的最佳核函数。 边坡的稳定性受到多种因素的影响,受研究资料的限制和计算
4、量的影响,本文仅考虑影响边坡的如下六个因素:坡高 H,坡角 a,粘聚力系数 c,内摩擦角 j,岩土(岩石)重度 g 和空隙压力比 ru 。用以上的指标作为输入量,输出量只有 1 个,即是否稳定,设输出 1 为边坡稳定,输出-1 为边坡破坏。如果预测出的边坡稳定的概率更加趋近于 1,边坡破坏的概率的负值更加趋近于-1,则说明预测的结果较好。 在测试的时候,进行交叉验证。即选择文献边坡实例样本中的前 60个样本,分两组进行交叉测试,每组各 30 个样本。选择的损失函数为“einsensitive”函数。本文采用台湾大学林智仁教授开发的 LIBSVM 工具包里面的核函数的相关参数默认值。具体测试结果
5、见如下表 1 所示(注:画“-”的表格表示没有值) 。 从上表格可以看出,核函数为线性函数“linear”和“anova”函数的预测结果低下;核函数为”sigmoid”的预测结果很差,方法失效;核函数为“ploy”的预测结果较好,但是极不稳定,预测时所花费的时间很长;其它的核函数预测结果都很好,并且“bspline”核函数的预测结果最好,且预测时间短,预测结果最稳定。 因此,针对边坡稳定性预测案例来说,应该首先考虑选用“bspline”核函数,然后再考虑选用”rbf”和“erbf”核函。 (二)参数 C 和参数 e 对 SVR 的影响。经过本文验证,本文只选择 “bspline”、 “rbf”
6、、 “erbf”三个核函数来验证参数 C 和参数 e 对 SVR结构的影响。此处验证的数据和上面验证核函数的条件一样,得出的验证结果如下: (1)固定参数 C = inf ,且核函数不同时,参数 e 对 SVR 结构有不同的影响。 (2)对于“bspline”核函数,其预测值随着参数 e 值的增大而渐渐变小,在 e 值为 0.0 时,其预测值最好。 (3)对于核函数“rbf”和“erbf” ,在 e 值等于 0.2 时,其预测值最好,预测的概率值大约在 0.8 左右, “rbf”核函数的预测值要好于”erbf”核函数的预测值。 (4)如果从整体选用优先预测的话,应该优先选择“bspline”核
7、函数,且使其参数 e 的值为 0.0;接着是“rbf”核函数,且使其参数 e 的值为 0.2;最后选择 “erbf”核函数,且使其参数 e 的值为 0.2。 由于上述方法中的参数都是基于经验值,所以针对边坡稳定性预测这样的案例,究竟选用什么样的核函数?核函数的参数值和回归支持向量的参数值如何组合才是最优的?为此,本文用果蝇优化算法来优化回归支持向量中的相关参数,并确定其最优组合,使得预测结果精度更高。二、果蝇优化 SVR 算法 (一)果蝇优化算法原理。果蝇优化算法( Fruit FlyOptimi zation Algorithm,FOA )是一种基于果蝇觅食行为推演出寻求全局优化的新方法。果
8、蝇本身在感官知觉上由于其他物种,尤其在嗅觉和视觉上。果蝇的嗅觉器官能很好地收集漂浮在空气中的各种气味,设置能嗅到 40 公里以外的食物源。然后,飞近食物位置后亦可使用敏锐的视觉发现食物与同伴聚集的位置,并且往该方向飞去。果蝇优化算法分为随机初始果蝇群体位置果蝇搜寻食物的随机方向与距离计算味道浓度判定值求出每个果蝇个体位置的味道浓找出味道浓最高的果蝇个体及其位置果蝇群体飞向该位置迭代寻优等七个步骤。 由上面的介绍可知,针对边坡稳定性预测这样的案例,如果能够优化 SVR 的 C 参数,e 参数以及核函数的参数,那么 SVR 的预测或者分类的性能将会得到很大的提升。SVR 的学习过程的目的在于寻找最
9、佳 C 参数、e 参数和核函数的参数值,由本文分析可知,在本案例中,参数 C 对 SVR 的结构几乎没有影响,因此在设计最优化时,可以将参数 C 设定为固定值,而只优化参数 e 和核函数的参数值。 ( 1 ) 果蝇优化 SVR 的思想 第一步:计算出果蝇个体位置与原点坐标(0,0)之间的距离并计算倒数,以求出味道浓度判定值(S) 。 第二步:选取合适的样本作为训练集,将第一步求得的味道浓度判定值(S)带入 svr 函数,利用 Matlab 的 svr 函数创建 svr 神经网络,再利用 Matlab 的 svroutput 函数仿真出预测值。 第三步:将输出的预测值与理想的目标值进行求解 RM
10、SE(均方根误差) (或称为 Fitness) ,此值越小越好,保留最好的味道浓度判定值(S)作为 svr 的核函数的参数值和 e 参数值。 第四步:不断重复执行第一步到第三步,直到 RMSE 满足精度或达到最大迭代要求为止。此时 svr 的参数组合值为最佳组合。 ( 2 ) 果蝇优化算法优化支持向量回归的具体步骤 Step1:随机初始果蝇群体位置。 Init Xaxis Init Yaxis Step2 果蝇个体利用嗅觉搜寻食物的随机方向和距离 Xi=Xaxis+Random Value Yi=Yaxis+Random Value 由于无法得知食物的位置,因此先估计与原点的距离(Dist)
11、,再计算味道浓度(S)判定值 ,此值为距离的倒数,这里另判定值 1 为 p1的值,即核函数的参数值。判定值 2 的值为参数 e 的值(这里已经固定了参数 C 的值) Step4 味道浓度判定值(S)代入味道浓度判定函数(或称为Fitness Function)以求出该果蝇个体位置的味道浓度 Smelli。这里以RMSE 为适应度函数,假设 ti 为训练集样本的目标值,而 yi 为训练样本的预测值,则适应度函数为: Smelli=Function(S) Step5 找出此果蝇群体中味道浓度最高的果蝇 bestSmell bestIndex=min(Smell) Step6 保留最佳位置浓度值与
12、x,y 坐标,此时果蝇群体利用视觉往该位置飞去。 Smellbest=bestSmell Xaxis=X(bestIndex) Yaxis=Y(bestIndex) pl=S(i,1) e=S(i,2) Step7 进入迭代寻优,重复执行 Step25,并判断味道浓度是否优于前一迭代味道浓度,若是则执行 Step6。满足精度要求或者达到最大迭代次数,则执行 Step8 Step8 将参数 pl 带入相应的核函数,将参数 e 和 C 值以及训练的样本值带入 svr 函数,进行训练,将训练好的 svr 结构进行预测。 三、实例分析 利用上述果蝇优化算法优化支持向量回归的模型来对边坡进行稳定的综合评
13、价,案例采用参考文献里面的数据,将之前用到的前 60 个样本数据作为训练数据,将后 7 个数据作为测试数据(见表 2) 。 果蝇优化支持向量回归的算法流程图如下图 1 所示: 由本文分析可知,针对边坡稳定性分析案例,没有归一化的样本数据作为训练样本更好。 (一)用果蝇优化算法寻找最优的核函数参数和 SVR 参数 所得的结果如下表所示: 从上表可以看出,所有的预测结果都正确,但是相比之下,未归一化的样本数据和选用“bspline”核函数的预测结果最好。下面仅以“bspline”核函数的预测结果加以说明。下图 2 和图 3 为果蝇优化 SVR时得出的预测值和目标值的均方误差图(迭代收敛图)和寻优路
14、径图: 由迭代收敛图可以看出,果蝇优化 SVR 的效果很好,并且从寻优的路径也可以看出,果蝇优化算法能够很容易的找到最优解。 四、实例分析边坡稳定性预测软件的设计与开发 上述求解算法比较复杂,因此下面将上述算法设计成可视化系统,方便一般工作人员使用。本文选用 MATLAB2012a 软件进行界面设计,并进行编译,生成可以独立运行的软件。运行界面如下: 下面为软件操作的流程和例举一个案例测试的结果。 软件的操作流程为:先在稳定性指标栏内的文本编辑框中输入边坡的指标值,然后点击开始预测控件,预测完成后点击输出结果控件,最后在输出结果分析栏输出预测的结果。 界面上运行的结果是取边坡的重度为 12KN
15、/m3,粘聚力为 0kPa,内摩擦力为 30,边坡角为 45,边坡坡高为 4m,孔隙水压力为 0.31。而此时的指标数据对应的真实值是 1,即该边坡是稳定的。从界面上运行的结果可以看出,该边坡预测的结果也是稳定的,且该边坡稳定性的概率为 100%,该边坡不稳定的概率为:0%。说明该软件能够成功预测出真实的结果。从软件的操作来看,该软件简单易操作,很实用,适合从事边坡工程上的人员方便使用。 五、结论 (1)各影响指标与边坡的稳定性之间是高度复杂的非线性关系,传统的模型在具体实践中很难处理,实验表明,经过果蝇优化算法优化过的支持向量回归模型能够很好的处理好这种高度复杂的非线性关系,能给出正确的预测结果。 (2)基于支持向量机的边坡稳定性预测模型与其他的判别方法相比,具有完备的理论基础和严格的理论体系,对于小样本数据,具有良好的泛化能力;而其他综合指标的判别法是在统计基础上判别的,在很大程度上受统计规律的影响 (3) 在边坡稳定性这样的一个实际案例中,本文最终选出最适合本案例的核函数“bspline” ,而摒弃了仅凭传统经验选择其它核函数的弊端,为后人做边坡方面的预测时提供了一个参照。 (4) 本文据此设计出边坡稳定性预测软件,软件系统简单稳定,界面简洁,操作简单易行,适合各类从事边坡稳定性计算的工作人员使用,具有很高的应用价值。