基于ACO-SVR的混凝土坝变形监控模型
2017-03-22郭芝韵朱延涛
李 丹,郭芝韵, 朱延涛
(1. 河海大学 水利水电学院,南京 210098;2. 河海大学水文水资源与水利工程科学国家重点实验室,南京 210098)
0 引 言
混凝土坝是大坝的重要分支,大坝安全影响着人民的生命和财产,因此需要谨慎对待。随着数学分析理论及计算机技术的发展,大坝安全监控模型研究成为评价大坝安全性能、预测大坝运行状态的重要手段,而在大坝安全监控中最为重要的方面就是对大坝变形位移的监控。现阶段,应用较为广泛的大坝安全监控模型分为统计模型[1]和以人工神经网络为代表的人工智能算法等[2,3],其中,统计模型要求观测样本足够充分,且精度受相关性影响,而人工智能算法的网络拓扑结构和参数初值选择有一定主观性,并且由于采用经验风险最小化准则,易产生“过拟合”问题,泛化能力较差。
回归型支持向量机(SVR)是Vapnik为解决回归拟合问题提出的,在支持向量机(SVM)基础上基于统计学习理论(STL)改进得来,能较好解决高维数和非线性问题,克服人工神经网络“过拟合”的问题,提高模型的泛化能力[4],但SVR模型中核函数参数σ、惩罚因子C和不敏感损失函数ε的选择对预测精度影响较大[5]。为此,工程应用中多采用智能算法进行参数寻优。目前在大坝安全监控模型研究方面也利用SVR模型进行了研究,如王泉,郑东建等[6]利用PCA-SVR模型对大坝的早期裂缝预报进行了研究,证明了其在预报裂缝开合度信息方面的可行性;虞鸿,包腾飞等[7]采用ε-SVR对大坝变形进行数值模拟,得到了较为准确的拟合结果和准确可靠的预测结果。在其他工程应用中,多采用遗传算法(GA)、粒子群算法(PSA)、鱼群算法(SA)和蚁群算法(ACA)等智能算法对SVR模型进行参数优化,根据大坝变形的特点,本文采用由Dorigo等[8]提出的蚁群优化算法,已有牛景太,魏博文等[9]将此算法用于神经网络模型的优化,并将它应用于混凝土坝位移安全监控模型,利用其具有的并行性、效率高等特点可快速得到较优参数,因此,本文建立了基于ACO-SVR的混凝土坝变形监控模型。通过工程实例分析验证,此模型具有更高的精度和泛化能力,当然也存在一些不足。
1 大坝安全监控回归型支持向量机(SVR)模型
大坝安全监控回归型支持向量机(SVR)模型是SVR分类的应用拓展,基本思想[10]是寻找一个最优分类面使得所有训练样本离该最优分类面的误差最小,即找到最优拟合面。设含有l个训练样本的样本对集合为{(xi,yi),i=1,2,…,l},其中,xi(xi∈Rd)是第i个训练样本的输入列向量,xi=[x1i,x2i,…,xdi]T,yi∈R为对应的输出值。根据大坝安全监控理论,一般输入列向量包括温度、水位与时效等影响因子,输出值为实测值,如大坝变形、渗流量、应力应变等等。
根据大坝特性,设在高维特征空间中建立关于混凝土坝的线性回归函数为
f(x)=wΦ(x)+b
(1)
式中:Φ(x)为非线性映射函数;w,b为回归因子。
定义ε线性不敏感损失函数:
(2)
式中:f(x)为回归函数返回的预测值;y为对应的实测值。
式(2)中当f(x)与y之间的差别小于等于ε时,则认为拟合较为准确。
为求解w和b,引入松弛变量ξi,ξ*i,可将优化目标定为:
式中:C(C>0)为惩罚因子,C越大表示对训练误差大于ε的样本惩罚越大;ε规定了误差要求,ε越小表示误差越小。
为求解式(3),引入Lagrange函数,并转换为对偶形式:
(4)
式中:αi为Lagrange乘子;K(xi,xj)=Φ(xi)Φ(xj)为核函数,常用的核函数有线性核函数、d阶多项式核函数、径向基核函数和具有参数k和θ的Sigmoid核函数,本文采用径向基核函数,形如:
(5)
式中:σ为核参数,是求解核函数的关键。
设式(4)求解得到的最优解为α=[α1,α2,…,αl],α*=[α*1,α*2,…,α*l],则有:
(7)
式中:Nnsv为支持向量的个数;SV为支持向量的样本集合。支持向量即为当(αi-α*i)≠0时对应的样本xi。
于是,得到回归函数为:
(8)
从式(8)可以看出,SVR最终的函数形式与SVM相同,其结构与神经网络类似,如图1所示。大坝安全监控SVR模型的输出值是中间节点的线性组合,每个中间节点对应一个支持向量。利用大量训练样本拟合得到较为准确的回归函数,则可根据训练样本得到的回归因子预测大坝运行性态。
图1 大坝安全监控SVR模型结构示意图Fig.1 Schematic diagram of SVM model for dam safety monitoring
2 大坝安全监控SVR模型参数的优选
由上述可知,核参数σ、惩罚因子C和线性不敏感损失函数ε的选取对大坝安全监控SVR模型的精度有相当大的影响,因此本文利用蚁群算法进行参数寻优,消除主观选取参数的部分影响,并提高拟合效率。
2.1 蚁群算法基本原理
蚁群算法,顾名思义,是模拟自然界蚂蚁群体觅食行为而成的智能算法。蚁群算法用于优化的基本思路为:用蚂蚁的可行的行走路径集合构成待优化问题的解空间。路径较短的蚂蚁释放的信息素量较多,蚂蚁根据信息素的浓度选择路径,随着时间的推进,较短的路径上累积的信息素浓度逐渐增高,最终,整个蚂蚁会在正反馈的作用下集中到最佳路径上,此时对应的就是最优解。
此处以解决旅行商(TSP)问题的过程解释蚁群算法基本原理[11]。设蚂蚁数量为m,城市数量为n,城市i与城市j之间的距离为dij(i,j=1,2,…,n),t时刻城市i与城市j连接路径上的信息素浓度为τij(t)。初始时刻,各个城市间连接路径上的信息素浓度相同,τij(0)=τ0。
蚂蚁k(k=1,2,…,m)根据各个城市连接路径上的信息素浓度决定其下一个访问的城市。设Pkij(t)表示t时刻蚂蚁k从城市i转移到城市j的概率,其计算公式为:
(9)
式中:启发函数ηij(t)=1/dij,表示蚂蚁从城市i转移到j的期望程度;allowk(k=1,2,…,m)为蚂蚁k待访问城市的集合,初始时刻其中包括除初始出发点外的(n-1)个元素,当allowk为空时,即表示访问结束;α为信息素重要程度因子,其值与信息素浓度在转移中起的作用成正比;β为启发函数重要程度因子,其值越大,表明蚂蚁会以较大的概率转移到距离短的城市。
蚂蚁在释放信息素的同时,各城市连接路径上的信息素也在随时间消散,设参数ρ(0<ρ<1)表示信息素的挥发程度。因此,各城市连接路径上的信息素浓度需在一次循环结束后实时更新,即:
(10)
式中;Δτij表示所有蚂蚁在城市i与城市j连接路径上释放的信息素浓度总和;Δτkij表示第k只蚂蚁在城市i与城市j连接路径上释放的信息素浓度,按照ant cycle system,其计算公式如下。
(11)
式中:Q为常数,表示所有蚂蚁循环一次释放的信息素之和;Lk为第k只蚂蚁走过路径的总长度[12]。
2.2 蚁群算法优化SVR模型参数的实现
为将大坝安全监控SVR模型参数优化与蚁群算法的路径寻优结合起来,需设立相应蚁群系统。本文模型使用径向基核函数[13],共有3个参数,分别是核参数σ、惩罚因子C和线性不敏感损失函数ε,主要进行核参数σ和惩罚因子C的寻优。
由于核参数σ和惩罚因子C取值是连续的,因此,这是求连续空间最优解问题,首先要将参数离散化[14]。在大坝安全监控模型研究方面,需根据专家经验设定参数的取值范围和精度。若设定参数的范围为[0,100]和[0,10],小数点后保留位数分别为2位和3位,此时可借用旅行商问题(TSP)的思想设置8层城市,每层分别有10个城市,各自代表数字0~9,每层从左到右依次代表C的十位、个位、小数点后的十分位和百分位和σ的个位、小数点后的十分位、百分位和千分位,并且规定每只蚂蚁只能从左往右依次移动,经过一定次数循环寻找,可以得到较优的路径节点,依次组成需要优化的参数。为寻得最优路径,不能单纯用最短来寻找最优参数,因此选用k-fold交叉验证误差作为目标值E,以E最小时的路径为最优路径[15]。
该蚁群系统的基本思想是将对参数的直接搜索转化为对每位数字的逐一搜索,即将连续变量转变为若干离散变量的寻优问题,更利于蚂蚁种群对整个空间的完全搜索[14]。由此可将蚁群算法很好地应用在参数优化上,其余步骤、原理与解决TSP问题相同。
3 基于ACO-SVR的大坝安全监控模型构建过程
基于ACO-SVR的大坝安全监控模型是用蚁群算法对核参数σ和惩罚系数C进行优选,组成C和σ的每一位数字由节点值(相当于TSP问题中的城市,每个城市对应0~9)体现。SVR参数优化的蚁群系统以最小k-fold交叉验证误差(目标值E)原则来更新信息素浓度。目标函数中隐含各蚂蚁所走过的所有节点的信息以及所建模型当前的准确度[8]。为使大坝安全监控模型更准确合理,对于核参数σ和惩罚系数C的取值范围和精度需要根据大量相关数据选取。
具体步骤是:
(1)将模型中相关参数进行初始化,其中包括模型参数C、σ的上下限和具体精度,确定k-fold交叉验证误差的k值,蚂蚁数量m、信息素重要程度因子α、启发函数重要程度因子β、信息素挥发因子ρ、信息素释放总量Q以及最大迭代次数iter-max,迭代次数初始值为iter=1。
(2)将各只蚂蚁随机放置于不同出发点,根据式(9)计算每个蚂蚁的转移概率来选择下一个访问地点,直至所有蚂蚁访问完所有节点。
(3)计算各只蚂蚁经过的路径长度Lk(k=1,2,…,m),同时,根据式(10)~式(11)对各个城市连接路径上的信息浓度进行更新。
(4)将训练样本平均分割成k个互不包含的子集,计算k-fold交叉验证误差,并以此作为适应值,记录本次循环的最优路径(对应最小适应值)。
(5)判断是否达到预定的迭代步数,或者是否出现停滞现象。若是,算法结束,输出当前最优参数C和σ;若否,令iter=iter+1,清空蚂蚁经过路径记录表,转步骤(2),进行下一次迭代。
综上所述,基于ACO-SVR的大坝安全监控模型的构建流程图如图2。
图2 ACO-SVR模型的步骤流程图Fig.2 Flow diagram of ACO-SVR model
4 工程实例分析
某水电站位于云南水富与四川省交界的金沙江下游河段,大坝为混凝土重力坝,坝顶高程384 m,最大坝高162 m,坝顶长度909.26 m。该坝于2013年9月12日蓄水至正常水位,并维持在380.0 m水位左右运行,已在泄1、泄4、泄10、泄13、左非1和航1等坝段布置了完整的正倒垂线,现选取左非溢流1号坝段的垂线监测资料对所建模型的拟合效果和预测精度进行测试。选取2013年9月12日-2015年10月29日共240组变形位移数据用于拟合,2015年11月2日-2015年12月17日共14组数据用于预测。
初始化参数如下:蚁群算法最大迭代次数为100;蚂蚁数量为20;惩罚因子C和核参数σ变化范围分别为[0,100]和[0,10],有效数字分别为2位和3位;信息素重要程度因子为7、启发函数重要程度因子为0.5、信息素挥发因子为1、信息素释放
总量Q为100,交叉验证参数为5。通过改进的ACO寻优得,C=76.79,σ=0.838。
采用复相关系数R、均方差FMSE比较ACO-SVR模型、SVR模型和BP模型的拟合精度(见表1),可以看出,在训练拟合精度方面,ACO-SVR模型优于SVR模型和BP模型。从预测结果来看,一个月以内的预测数值较为准确,因此只在表2中列出一个月内的模型预测结果对比。从表中可知,ACO-SVR模型的最大绝对误差为0.068 mm,误差率为2.66%;SVR模型为0.094 mm,误差率为3.48%;BP模型为0.209 mm,误差率为8.18%。其中ACO-SVR模型的误差值最小。为直观分析,将ACO-SVR模型、SVR模型和BP模型的所有预测结果进行比较,如图3~图4所示。从图3来看,3种模型的拟合效果都不错,BP模型相对差一些。从图4中的大致趋势来看,一个月内,SVR模型的预测结果与ACO-SVR模型结果类似,但是SVR模型结果偏小,ACO-SVR模型的结果偏大而更接近实测值。但是,一个月后与实测值几乎呈相反的趋势增长,不能准确预测变形值。相对而言,BP模型总体呈上升趋势,只有前几个数据预测较为准确,准确预测时间更短。分析表明,ACO-SVR模型的拟合精度高于SVR和BP模型,具有更好的预测效果及拟合速率。
表1 ACO-SVR模型、SVR模型和BP模型的拟合精度对比Tab.1 Fitting accuracy comparison between ACO-SVR、SVR and BP
表2 ACO-SVR模型、SVR模型和BP模型的预测结果对比(一个月内) mm
图3 模型训练拟合值与实测值对比图Fig.3 The comparison between the fitted values of model training and the measured values
图4 模型预测值与实测值对比图Fig.4 The comparison between the predicted and measured values of the model
5 结 语
通过工程实例分析,验证了本文的ACO-SVR模型相较于SVR模型和BP模型具有更高的精度和适用性,但同样存在一些问题。
(1)大坝安全监控ACO-SVR模型和SVR模型相较于BP模型有更大的可控性,BP模型的拟合结果缺少可控因素,结果有很大程度上会出现过拟合的情况,而SVR模型可以通过控制模型参数来得到更佳的结果,防止过拟合的情况。
(2)大坝安全监控ACO-SVR模型大大降低了SVR模型的迭代次数,减少了寻参时间,提高了拟合效率,能在短时间内高效寻得更准确的SVR参数,降低了原有SVR模型参数选择的主观性,一定程度上弥补了SVR模型的缺陷,因此能够得到更好的拟合结果,在大坝安全监控模型研究中具有实用意义。
(3)根据模型研究结果,表明ACO-SVR模型只能较为准确地预测短期(一个月左右)的大坝变形值,长期变形预测偏差较大,延展性不足,可能与训练数据量的大小和选取的输入因子有关,因此可在长期准确预测上深入研究。
(4)蚁群算法虽然在寻优方面效率较高,但是却易陷入局部最优,从而模型导致运行结果不稳定,需要多次运行才能获得更佳结果,为使大坝安全监控模型更加合理、准确,可寻求其他智能算法的帮助。
□
[1] 陈久宇, 林 见. 观测数据的处理方法[M]. 上海: 上海交通大学出版社,1987.
[2] SU Huaizhi, HU Jiang, WU Zhongru. A study of safety and early-warning method for dam global behavior [J]. Structural Health Monitoring, 2012,11(3):269-279.
[3] 王 凌. 智能优化算法及其应用[M]. 北京: 清华大学出版社,2001.
[4] Vapnik V N. The nature of statistical learning theory[M]. New York: Springer-Verlag, 1995.
[5] 郁 磊, 史 峰, 王 辉,等. MATLAB智能算法30个案例分析[M]. 北京: 北京航空航天大学出版社,2015.
[6] 王 泉, 郑东健, 范振东, 等. 基于PCA-SVR模型的大坝裂缝早期预报研究[J].人民长江, 2015,46(5):35-38.
[7] 虞 鸿, 包腾飞, 刘海泉, 等. 大坝变形的ε-SVR数值模拟[J]. 水电自动化与大坝监测, 2010,34(1):46-50.
[8] 刘春波, 王鲜芳, 潘 丰. 基于蚁群优化算法的支持向量机参数选择及仿真[J]. 中南大学学报(自然科学版) ,2008,39(6):1 309-1 313.
[9] 牛景太, 魏博文. 基于蚁群优化神经网络的混凝土坝位移安全监控模型[J]. 甘肃水利水电技术, 2012,48(7):39-41.
[10] Huai-zhi Su, Zhong-ru Wu, Zhi-ping Wen. Identification model for dam behavior based on wavelet network [J]. Computer-Aided Civil and Infrastructure Engineering, 2007,22(6):438-448.
[11] 丁鸿飞. 基于智能优化算法的支持向量机回归及其应用[D]. 成都: 西南交通大学, 2011.
[12] 张冰冰,张宏立. 求解非线性方程组的蚁群算法[J]. 工业控制计算机, 2013,(1):63-64.
[13] Huaizhi Su, Zhexin Chen, Zhiping Wen. Performance improvement method of support vector machine-based model monitoring dam safety [J]. Structural Control and Health Monitoring, 2016,23(2):252-266.
[14] 张 俊,程春田,申建建,等. 基于蚁群算法的支持向量机中长期水文预报模型[J]. 水力发电学报,2010,(6):34-40.
[15] 张钰宁. 蚁群优化支持向量机在变压器故障诊断中的应用[D]. 北京: 华北电力大学, 2014.
[16] 刘天祥,包腾飞. 基于遗传算法的LIBSVM模型大坝扬压力预测研究[J].三峡大学学报(自然科学版),2013,35(6):24-28.
[17] 吴中如, 沈长松, 阮焕祥. 水工建筑物安全监控理论及应用[M].南京:河海大学出版社,1990.
[18] Huaizhi Su, Zhiping Wen, Xiaoran Sun, et al. Time-varying identification model for dam behavior considering structural reinforcement [J]. Structural Safety, 2015,57:1-7.