SCA-SVM模型在年径流丰枯识别中的应用

2016-09-21 06:52潘秀昌
三峡大学学报(自然科学版) 2016年4期
关键词:余弦径流样本

潘秀昌

(云南省水利水电勘测设计研究院, 昆明 650021)



SCA-SVM模型在年径流丰枯识别中的应用

潘秀昌

(云南省水利水电勘测设计研究院, 昆明650021)

通过4个典型测试函数对一种新型全局优化算法——正弦余弦算法(SCA)进行仿真验证,仿真结果与粒子群优化(PSO)算法、模拟退火算法(SA)、布谷鸟搜索(CS)算法和人工蜂群算法(ABC)进行对比.利用SCA搜寻SVM最佳学习参数,提出SCA-SVM年径流丰枯识别模型.以龙潭寨水文站为例进行实例研究,利用月径流序列均值及标准差构建月径流分类标准,并基于该分类标准构造样本对SCA-SVM模型进行训练及检验,利用训练好的SLC-SVM模型对实例年径流丰枯进行识别.结果表明:SCA算法寻优精度远优于SA、CS、PSO和ABC算法,具有调节参数少、收敛速度快、寻优精度高和全局寻优能力强等特点;SCA-SVM模型对训练及检验样本的识别率均为100%,具有较好的识别效果和精度.

年径流识别;正弦余弦算法;支持向量机;参数优化

科学合理的年径流丰枯识别对于水文分析计算、年度用水计划、水量分配及防洪抗旱具有重要意义.常用的丰枯识别方法有模糊聚类法[1]、投影寻踪法[2]、集对分析法[3]、模糊-集对分析法[4]以及神经网络法[5]等.支持向量机(Support Vector Machines,SVM)由于具有“结构简单”、“克服维数灾”及“小样本优势”等优点,能较好地克服传统神经网络过学习和泛化能力差等不足,在各行业领域具有广泛应用[6-7].实践表明,基于径向基核函数的SVM在解决识别问题时,惩罚因子C和核函数参数g对SVM模型的识别精度具有关键性影响.当惩罚因子C较小时,训练及检验样本识别率均较低,SVM处于欠学习状态;当C过大,训练样本识别率较高而检验样本识别率较低,SVM处于过学习状态.核函数参数g越小,训练样本识别率越高而检验样本识别率越低,SVM处于过学习状态;当g较大时,训练及检验样本识别率均较低,SVM处于欠学习状态.传统试凑法、网络搜索法等选取SVM学习参数的方法已不能满足实际应用的精度要求.当前,随着智能优化算法的不断发展和日趋成熟,粒子群优化(Particle Swarm Optimization,PSO)算法[8]、模拟退火算法(Simulated Annealing,SA)[9]、布谷鸟搜寻(Cuckoo Search,CS)算法[10]和人工蜂群(Artificial Bee Colony,ABC)算法[11]等广泛用于SVM参数优化,在提高SVM模型性能上取得了较好的效果.正弦余弦算法(Sine Cosine Algorithm,SCA)是文献[12]于2015年基于正弦余弦函数提出的一种新型优化算法,该算法通过创建多个随机候选解,利用正弦余弦数学模型来求解最优化问题,能够探索不同的搜索空间,有效避免局部最优,具有模型简单、调节参数少、收敛速度快、全局寻优能力强等优点,在函数优化和工程设计领域得到初步应用[12].

年径流丰枯特性不仅取决于径流本身的大小,而且取决于径流的年内时程分配.本文基于SCA算法及SVM特点,提出SCA-SVM年径流丰枯识别模型,以龙潭寨水文站年径流丰枯识别为例进行实例研究.主要步骤为:1)采用4个典型低维测试函数对SCA算法进行仿真验证,仿真结果与PSO、SA、CS和ABC算法的仿真结果进行对比;2)提出SCA-SVM年径流丰枯识别模型,参考文献[5]的方法构建样本对SCA-SVM模型进行训练、检验以及对实例年径流丰枯进行识别,并与常规方法识别结果进行比较分析.

1 SCA-SVM识别模型

1.1正弦余弦算法

一般来说,以群体为基础的优化算法是通过一组随机解以及更新策略而开始优化迭代过程,并利用目标函数进行反复评价,在保证足够数的随机解和优化步骤(迭代)条件下,算法可大大增加获得最优解的概率.参考文献[12],SCA算法提出以下位置更新公式:

(1)

(2)

通过式(1)、式(2)组合后的位置更新公式如下:

(3)

式中,r4为rand(0,1)随机数.

SCA算法中4个主要参数为r1、r2、r3和r4.参数r1决定了下一空间位置区域(或移动方向),该区域或移动方向可以是候选解和目标解之间的任一空间或之外的空间;参数r2定义了在移动方向上应该移动的步长;参数r3提供了随机选择权,即随机强调(r3>1)或淡化(r3<1)对所定义距离的影响;参数r4表示如何选择在式(3)中的正弦和余弦分量之间切换.

一种优秀算法应能够平衡勘探和开采能力,以期遍历搜索空间内所有区域,并最终收敛到全局最优.为了平衡SCA算法中正弦和余弦函数在搜索范围内的勘探和开采能力,利用下式来调整参数r1的自适应变化策略.

(4)

式中,t为当前迭代次数;T为最大迭代次数;a为常数.

在理论上,SCA算法基于下述原因能获得较好的优化性能:(1)针对给出问题,SCA算法创建并改进一系列候选解,其本质有益于全局勘探和局部优化;(2)在探索所定义的搜索空间之外的区域时,正弦和余弦函数返回一个大于1或小于-1的值;(3)当正弦和余弦函数返回值在-1和1之间时,具有较好搜索前景的空间得到开发;(4)SCA算法在定义范围内运用正弦和余弦函数顺利地从勘探阶段到开发阶段过渡;(5)在优化过程中,全局相对最佳的候选解被存储为一个可变目标点而不丢失;(6)在优化过程中,候选解总是在当前最佳候选解周围更新他们的位置,并趋向于搜索空间中的最佳区域.

1.2支持向量机

给定数据集(xi,yi),xi∈Rn,i=1,2,…,n,xi表示输入向量,yi表示相应的输出,依据风险最小化原则,SVM的决策函数为[13]:

(5)

式中,K(xi,xj)=Φ(xi)Φ(xj)为满足Mercer条件的核函数;ai为对应的Lagrange乘子;b为分类阈值.

本文选择径向基核函数(RBF)作为SVM核函数,径向基核函数表达式为:

(6)

式中,g>0.

因此,基于RBF的SVM识别决策函数为:

(7)

1.3SCA-SVM算法实现步骤

按上述SCA算法及SVM模型原理可知,SCA算法优化SVM学习参数的思想就是通过SCA算法搜寻一组向量(C,g),使SVM模型的识别率最高.其实现步骤可归纳如下:

1)参考文献[5]方法构建样本,并进行归一化处理,利用样本对SCA-SVM模型进行训练及检验.设定惩罚因子C和核函数参数g的搜寻范围,确定式(8)为参数优化目标(适应度)函数.

(8)

式中,a表示正确识别到某个类别的样本数;z表示错误分类到某个类别的样本数.

2)初始化算法参数.设置群体数目N、最大迭代次数T、常数a、参数r2、r3;设置算法终止条件,并在解空间内随机初始化候选解空间位置Xij(i∈[1,2,…,N],j∈[1,2,…,D]).

3)基于式(8)计算群体候选解的第一次迭代适应度值,找到并保存当前群体中最佳候选解.

4)令t=2,利用式(4)计算参数r1,利用式(3)更新新候选解位置.

5)计算新候选解的适应度值,并与前次迭代最佳候选解的适应度值进行比较.若当前候选解优于前次候选解,则保存当前候选解为最佳候选解;否则,保存上次候选解为最佳候选解.

6)判断算法是否满足终止条件,若满足,则转到第7)步;否则,令t=t+1,重复执行第5)~6)步.

7)输出最优候选解适应度值及所处空间位置,即(C,g)值,将(C,g)作为SVM的最佳学习参数对检验样本及实例进行识别.

2 实验仿真

针对低维极值优化问题,采用4个典型测试函数,见表1.对SCA算法进行仿真验证,求测试函数的极小值,并与PSO、SA、CS和ABC算法的寻优结果进行比较,见表2.

表1 基准函数

表2 函数优化对比结果

表1中,Sphere为单峰函数,用于测试算法的收敛速度和收敛精度;Griewank、Rastrigin和Ackley为多峰函数,用于测试算法逃逸局部极值能力和全局搜索性能.参考文献[8-12],设置实验参数如下:SCA算法最大迭代次数T=1 000,群体规模N=50,常数a=2,参数r2=2×π×rand(),r3=2×π×rand().PSO算法最大迭代次数T=1 000,种群规模N=50,ω=1,局部学习因子、全局学习因子c1=c2=2.0.SA算法最大迭代次数T=1 000,种群规模N=50,初始温度T0=500,终止温度Tend=0.001,温度冷却系数q=0.99.CS算法最大迭代次数T=1 000,鸟窝位置数N=25、发现概率pa=0.25.ABC算法最大迭代次数T=1 000,种群规模SN=50,局部循环次数lc=60.7种算法基于Matlab 2010a用M语言实现,对表1中4个测试函数重复进行20次寻优计算,并从平均值和标准差2个方面进行评估.

1)从表2来看,对于Sphere单峰函数,SCA算法求解精度优于CS、SA、ABC和PSO算法20个数量级以上,表现出较好的收敛精度和收敛速度;对于Griewank函数,SCA算法求解获得了理论最优值,寻优效果远远优于SA、CS、ABC和PSO算法,表现出较好的全局与局部搜索平衡能力;对于Rastrigin函数,SCA、SA算法寻优均获得了理论最优值,寻优效果明显优于CS、PSO和ABC算法,表现出较好的全局极值搜索能力;对于Ackley函数,SCA算法获得了较高的求解精度,寻优精度优于CS、SA、ABC和PSO算法5个数量级以上,具有跳出局部极值的良好性能.

2)综合比较而言,SCA算法寻优效果优于SA和CS算法;远优于PSO和ABC算法,具有较好的收敛速度、收敛精度和极值寻优能力.

上述比较表明,SCA算法利用正弦余弦数学模型来求解最优化问题,能够探索不同的搜索空间,有效避免局部最优,具有调节参数少、收敛速度快、寻优精度高和全局寻优能力强等特点.

3 应用实例

3.1数据来源与月径流识别标准

3.2SCA-SVM模型识别结果及分析

1)生成样本.参考文献[5]方法构造100个样本,分别随机选取60个、40个样本作为训练和检验样本,并以各月序列最大流量的5倍作为识别上限值.将1~5作为特枯、枯、中、丰和特丰的识别输出,并利用式(9)对各月径流序列进行归一化处理:

(9)

2)构建模型.在MatlabR2011a软件环境下,基于libsvm工具箱编程构建12输入1输出的SCA-SVM识别模型.SCA-SVM模型参数设置为:SCA部分除最大迭代次数T=100外,其余参数设置均同上;SVM部分惩罚因子C和核函数参数g的搜索空间分别设为1~1 000、0.001~10.

3)SCA-SVM模型训练与检验.利用随机内插和随机选取的样本对SCA-SVM模型进行训练及检验,随机5次运行训练及检验结果见表3,并给出某次识别过程图及识别结果图,如图1~2所示.

图1 SCA算法某次寻优进化过程图

图2 SCA-SVM模型丰枯识别结果

样本丰枯运行次数12345训练样本特枯100%(64/64)100%(54/54)100%(60/60)100%(60/60)100%(58/58)枯100%(60/60)100%(68/68)100%(52/52)100%(67/67)100%(58/58)中100%(59/59)100%(66/66)100%(60/60)100%(53/53)100%(59/59)丰100%(61/61)100%(52/52)100%(67/67)100%(59/59)100%(63/63)特丰100%(56/56)100%(60/60)100%(61/61)100%(61/61)100%(62/62)总体100%(300/300)100%(300/300)100%(300/300)100%(300/300)100%(300/300)检验样本特枯100%(36/36)100%(46/46)100%(40/40)100%(40/40)100%(42/42)枯100%(40/40)100%(32/32)100%(48/48)100%(33/33)100%(42/42)中100%(41/41)100%(34/34)100%(40/40)100%(47/47)100%(41/41)丰100%(39/39)100%(48/48)100%(33/33)100%(41/41)100%(37/37)特丰100%(44/44)100%(40/40)100%(39/39)100%(39/39)100%(38/38)总体100%(200/200)100%(200/200)100%(200/200)100%(200/200)100%(200/200)参数优化结果惩罚因子C814.9090421.9950282.3346992.7317446.0081核函数参数g7.06086.34217.85273.29356.3263

从表3及图1~图2可以看出,SCA-SVM模型随机5次运行对训练及检验样本的识别率均为100%,具有较好的识别效果和精度.

4)实例识别结果及分析.利用训练及检验好的SCASVM模型对实例年径流丰枯特性进行识别,并与文献[5]MVO-GRNN模型法和常规方法(以年径流均值为指标采用均值标准差法)识别结果进行比较,见表4.

表4 龙潭寨水文站年径流丰枯识别结果及比较

从表4可以看出,SCA-SVM模型和文献[5]MVO-GRNN模型法的分类结果基本相同,与常规法的识别结果存在一定的差异.如1979年,SCA-SVM模型识别结果为中水,而MVO-GRNN模型法和常规法分别识别为丰、特丰水年,从年内时程来看,1979年丰水期径流量占年径流总量的78%,年内分配较不均衡,识别为中水更合理;又如1983年,SCA-SVM模型识别结果为特丰,而MVO-GRNN模型法和常规法分别识别为中、枯水年,从年内时程来看,1983年枯水期径流量占年径流总量的48.2%,几乎占到年径流总量的一半,年内分配较均衡,故识别为特丰更合理.从验证比较结果来看,由于SCA-SVM模型考虑了年径流本身的大小及年内时程分配信息,其识别结果更科学合理.

4 结 论

验证了SCA算法的优化性能,提出SCA-SVM年径流丰枯识别模型,以云南省龙潭寨水文年径流丰枯识别为例进行实例验证,并同MVO-GRNN模型法、常规方法识别结果作对比,结果表明:

1)通过4个典型测试函数仿真验证了SCA算法寻优精度优于SA和CS算法,远优于PSO和ABC算法,具有收敛速度快、求解精度高、极值寻优能力强等特点.

2)基于月径流序列均值及标准差构建月径流分类标准,并利用该分类标准随机内插和随机选取样本对SCA-SVM模型进行训练及检验,使SCA-SVM模型获得了较好的识别精度.模型及方法具有通用性,可为相关识别研究提供参考.

3)SCA-SVM模型和MVO-GRNN模型法的评价结果基本相同,与常规法的识别结果存在一定的差异.由于SCA-SVM模型不但考虑了径流本身的大小,而且考虑了年径流年内时程分配,其识别结果更科学合理.

[1]张军良,马光文,张志刚.模糊聚类法在径流丰枯特性分析中的应用[J].人民长江,2009,40(7):11-13.

[2]赵太想,王文圣,周秀平.一种径流丰枯分类新方法研究[J].人民黄河,2006,28(5):12-13.

[3]王文圣,向红莲,李跃清,等.基于集对分析的年径流丰枯分类新方法[J].四川大学学报:工程科学版,2008,40(5):1-6.

[4]丁小玲,周建中,陈璐,等.基于模糊集合理论和集对原理的径流丰枯分类方法[J].水力发电学报,2015,34(5):4-9.

[5]崔东文,吴盛华.MVO-GRNN模型在年径流丰枯分类中的应用[J].人民珠江,2015,36(6):50-54.

[6]孙艳,刀海娅.自适应变异粒子群算法与支持向量机在农业用水预测中的应用[J].水资源与水工程学报,2015,26(3):231-236.

[7]崔东文.支持向量机在水资源类综合评价中的应用研究——以全国31个省级行政区水资源合理性配置为例[J].水资源保护,2013,29(5):20-27.

[8]白春华,周宣赤,林大超,等.消除EMD端点效应的PSO-SVM方法研究[J].系统工程理论与实践,2013,33(5):1298-1306.

[9]魏胜.基于模拟退火算法支持向量机在枯水期月径流预测中的应用[J].水资源与水工程学报,2015,26(2):135-138.

[10] 赖锦辉,梁松.一种新的基于GCS-SVM的网络流量预测模型[J].计算机工程与应用,2013,49(21):75-79.

[11] 于明,艾月乔.基于人工蜂群算法的支持向量机参数优化及应用[J].光电子·激光,2012,(2):374-378.

[12] S. Mirjalili, SCA:A Sine Cosine Algorithm for Solving Optimization Problems[M]. Knowledge-based Systems, in press, 2015.

[13] 孙莉,徐琪.混合和声搜索算法优化SVM的订单优先权评价[J].计算机工程与应用,2015,51(12):241-245.

[责任编辑王康平]

Application of SCA-SVM to Annual Runoff Wet-Dry Identification

Pan Xiuchang

(Yunnan Institute of Water & Hydropower Engineering Investigation, Design & Research, Kunming 650021, China)

Through four test functions of a New Global Optimization Algorithm - SineCosine algorithm (SCA) performed simulation, simulation results and particle swarm optimization (PSO) algorithm, simulated annealing algorithm (SA), Cuckoo search (CS) algorithm and artificial bee colony algorithm (ABC) were compared. SCA search support vector machine(SVM) use the best learning parameters proposed SCA-SVM years of runoff recognition model. Taking the hydrological Station in Longtan Village for example, the use of monthly runoff series mean and standard deviation of monthly runoff build taxonomies and classification based on the standard configuration of the sample SCA -SVM model for training and testing, the use of trained SLC-SVM model examples of runoff for years to identify, recognize the results of the conventional identification methods were compared. The results show that:SCA optimization algorithm accuracy is much better than SA, CS, PSO and ABC algorithm with adjustable parameters small, fast convergence and high precision and optimization of Strong global search ability; SCA-SVM model for training and testing samples recognition rate was 100%, with good recognition performance and accuracy.

annual runoff identification;sine cosine algorithm;support vector machine(SVM);parameter optimization

2016-05-17

国家水体污染控制与治理科技重大专项(201307102-006-01);院士工作站建设专项(2015IC013)

潘秀昌(1982-),男,工程师,主要从事水利水电、水资源规划和水利水电征地移民设计等工作.E-mail:325865343@qq.com

10.13393/j.cnki.issn.1672-948X.2016.04.002

P333

A

1672-948X(2016)04-0006-06

猜你喜欢
余弦径流样本
格陵兰岛积雪区地表径流增加研究
用样本估计总体复习点拨
推动医改的“直销样本”
随机微分方程的样本Lyapunov二次型估计
两个含余弦函数的三角母不等式及其推论
实施正、余弦函数代换破解一类代数问题
长江流域径流演变规律研究
村企共赢的样本
分数阶余弦变换的卷积定理
图像压缩感知在分数阶Fourier域、分数阶余弦域的性能比较