改进蚁群算法在支持向量机参数中的应用

2015-01-13 08:09:00刘继承隋殿雪
化工自动化及仪表 2015年4期
关键词:全局蚂蚁准确率

刘继承 解 敬 隋殿雪

(东北石油大学电气信息工程学院,黑龙江 大庆 163318)

1 SVM的基本思想与参数①

SVM是一种基于统计学习理论的模式识别方法[3],其基本思想是通过核函数将样本空间映射到特征空间,在特征空间中寻求原样本的最优分类面,得到输入变量和输出结果之间的一种线性或非线性关系[4],即寻找SVM进行模式分类[5]。

对线性可分的样本集(xi,yi)(i=1,2,…,n,n为学习样本数目),xi=Rd表示输入变量,yi∈[-1,+1]为输出变量。利用非线性映射φ(·),将输入空间的数据映射到高维特征空间,并构造最优分类超平面:

f(x)=w·φ(x)+b=0

(1)

式中b——阈值;

w——权值矢量。

为了使结构风险最小化,分类应满足以下约束:

yi[(w·xi)+b]-1≥0,i=1,2,…,n

(2)

对于线性不可分的问题,引入松弛变量ξi来构建最优超平面。允许在一定程度上违反间隔约束优化问题,则有:

(3)

yi[(w·xi)+b]≥1-ξi,ξi≥0,i=0,1,…,n

(4)

此时根据核函数理论,应存在核函数K=(x,x′)=[Φ(x),Φ(x′)],从而使:

(5)

(6)

C≥αi≥0,i=1,2,…,l

(7)

其中,C为误差的惩罚参数,αi>0对应的点是支持向量。进而构造出决策函数:

b*)

(8)

SVM参数的确定影响其学习和推广能力[6]。对于RBF核函数的SVM来说,其参数包括惩罚参数C和核宽度σ。惩罚参数C是在结构风险和样本误差之间的折衷,其值越大,允许的误差越小;核宽度σ与学习样本的输入空间范围或宽度有关,样本的输入空间越大,σ取值越大。

2 改进蚁群算法优化SVM参数

由于蚁群算法全局优化参数的时间较长,为了减少优化参数的时间,笔者有效结合了交叉验证法和蚁群算法来优化SVM参数,最终达到理想的识别效果。

2.1 交叉验证法

首先将数据分成n个同样大小的子集;然后选取n-1个子集作为训练样本,预测那个没有参加训练的子集,共进行n次,将全部数据中的每个样本点都预测一遍,但准确率并不是很稳定;最后记录每次预测的(σ,C),挑选准确率相对较高的几组,运用蚁群算法再次寻优,得到最佳参数,进而得到满意的识别结果。

2.2 蚁群算法

1992年意大利学者Dorigo M首先提出了一种源于蚁群觅食行为的智能仿生蚁群优化算法[7],该算法具有智能搜索、全局优化、较强的鲁棒性、正反馈、分布式计算和易与其他算法结合的特点。笔者通过蚁群优化算法优化SVM参数σ、C的具体操作步骤包括:参数初始化;通过蚁群进行局部和全局搜索,不断更新信息素,同时将每代全局最优解保存下来。

2.2.1参数初始化

首先,将利用交叉验证法得到的几组参数(σ,C)随机分配给每只蚂蚁,然后对训练集通过SVM学习得到相应的误差模型:

Δt(i)=α-Error(i)

(9)

用根据上述误差模型预测得到的误差值来确定蚂蚁i的位置信息素:

T0(i)=α-Error(i)

(10)

其中,α=2。由式(10)可知:误差值越小,蚂蚁的信息素越大。

2.2.2局部和全局搜索

根据蚂蚁留下来的信息素的大小确定每只蚂蚁下一步的转移概率:

(11)

其中,BestIndex为得到信息素最大的蚂蚁。

建立动态挥发因子。在最初阶段信息素挥发因子相对较小,随着不断增加进化次数,信息素挥发因子逐渐增大。信息素的挥发因子定义为:

(12)

其中,k=0.1;Echo为当前的进化代数;Echomax为蚁群的最大进化代数。

建立动态转移因子。在每轮迭代过程中,根据蚂蚁信息素的大小来确定全局转移因子p0。设蚂蚁数量为m,计算e-T0(i)(i=1,2,…,m),并对计算结果进行升序排列,得到序列T1(j)(j=1,2,…,m)。当Echo

如果蚂蚁的转移概率小于p0,则进行局部搜索,否则进行全局搜索。在开始搜索过程中,大部分蚂蚁进行局部搜索,从而保证蚂蚁能搜索到更好的解;在后期搜索中,大部分蚂蚁进行全局搜索,避免陷入局部最优,得到全局最优解。

更新信息素。根据蚁群优化得到的SVM参数进行信息素更新,更新规则为:

T0(i)=(1-ρ)T0(i)+Δt(i)

(13)

在每次迭代的过程中,将信息素最大的蚂蚁保存下来,然后根据误差模型计算误差值,返回2.2.1小节进行迭代循环。

如果迭代的次数满足开始设置的要求,则搜索完成,从而得到最佳蚂蚁,将最佳蚂蚁转换成SVM参数σ、C。

根据确定的SVM参数σ、C计算相应的目标函数值,最后进行误差分析(图1)[8]。

图1 蚁群算法的SVM参数优化流程

3 仿真实验

3.1 数据源

选取大庆油田某井的测井数据中有代表性的属性来构成样本的维数。笔者选取具有代表性的某油井在不同深度中的侧向电阻率RT、深侧向电阻率RXO、自然电位SP和自然伽马GR共4个参数进行岩性预测,输出为泥岩和砂岩(表1)。

表1 学习样本集

3.2 算法的参数设置

蚁群算法中参数的设置:蚂蚁数m=25,挥发因子ρ=0.7,步长0.2,α=0.5,β=1。SVM参数C、σ采用二进制编码,C∈[0,500],σ∈[0.01,100.00]。最大进化代数为100,最优解码误差为0.02,最终C=10,σ=0.19。

同时为证明基于改进蚁群算法优化SVM参数的优越性,采用交叉验证法作为参比模型,其优化后的SVM参数C=1,σ=0.01。

3.3 结果与分析

预测样本通过交叉验证法和改进蚁群算法优化参数,两种方法的识别结果见表2,识别准确率分别为91.666 7%和100%,说明采用改进蚁群算法优化SVM参数的识别准确率高于采用交叉验证法的识别准确率,证实笔者提出的改进蚁群算法是分类准确率较高的参数优化方法。

表2 交叉验证法和改进蚁群算法识别结果的比较

4 结束语

SVM参数的优化是当前模式识别研究的一项很有意义的课题,笔者通过采用改进的蚁群算法(即交叉验证法与蚁群算法的有效结合)对SVM参数进行优化之后,不仅缩短了参数优化的时间,而且有效地改进了其学习性能,提高了学习精度和识别准确率。

[1] Ertekin S,Bottou L,Giles C L.Nonconvex Online Support Vector Machines[J]. IEEE Transactions on Pattern Aanlysis and Machine Intelligence,2010,33(2):368~381.

[2] 庄严,白振林,许云峰.基于蚁群算法的支持向量机参数选择方法研究[J].计算机仿真,2011,28(5):216~219.

[3] 陈桂娟,贾春雨,邹龙庆,等.基于腐蚀图像与支持向量机的CO2腐蚀类型识别方法研究[J].化工机械,2014,41(6):742~745.

[4] 文传军,詹永照,陈长军.最大间隔最小体积球形支持向量机[J].控制与决策,2010,25(1):79~83.

[5] 杨智明,彭宇,彭喜元.基于支持向量机的不平衡数据集分类方法研究[J].仪器仪表学报,2009,30(5):1094~1099.

[6] 王凯,张永祥,姚晓山,等.支持向量机惩罚参数的自适应调整方法[J].计算机工程与应用,2008,44(26):45~47.

[7] 韩虎,党建武,任恩恩.基于自适应小波支持向量机的图像去噪研究[C].第七届全国信号与信息处理联合会议暨首届全国省(市)级图象图形学会联合年会论文集.兰州:兰州交通大学,2008:349~352.

[8] 刘瑜,马良.基于元胞蚁群算法的卧式内压容器优化设计[J].化工机械,2010,37(1):17~20,89.

猜你喜欢
全局蚂蚁准确率
Cahn-Hilliard-Brinkman系统的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
健康之家(2021年19期)2021-05-23 11:17:39
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
落子山东,意在全局
金桥(2018年4期)2018-09-26 02:24:54
高速公路车牌识别标识站准确率验证法
我们会“隐身”让蚂蚁来保护自己
蚂蚁
新思路:牵一发动全局
中国卫生(2014年5期)2014-11-10 02:11:26