基于人工鱼群算法的SVM参数优化*

2019-03-18 10:24
山西电子技术 2019年1期
关键词:智能算法鱼群步长

徐 苗

(山西农业大学 信息科学与工程学院,山西 晋中 030800)

0 引言

支持向量机(Support Vector Machine, SVM)是20世纪90年代中期基于统计学习理论[1]发展起来的一种新兴机器学习方法,具有分类准确率高和能够解决小样本、非线性及高维数据划分问题的特点,在分类问题中得到广泛应用。然而,SVM中惩罚参数C和核函数参数g的取值对分类准确率有很大影响,这类问题也作为参数优化选取问题成为研究热点[2]。当前比较常用的参数优化选取方法有:实验法[1]、网格搜索法[3]、K折交叉验证法[4]、仿生智能算法参数寻优。

采用仿生智能算法进行参数寻优,不必遍历区间内所有的参数组也能找到全局最优解[5],常见的仿生智能算法包括遗传算法(Genetic Algorithm, GA)[6]、粒子群算法(Particle Swarm Optimization, PSO)[7]、人工鱼群算法(Artificial Fish-Swarm Algorithm, AFSA)[8]等。作为一种新兴仿生智能算法,AFSA具有如下优点:对极值有较强的全局搜索能力,对搜索空间有较强的自适应能力,收敛速度快,使用灵活[9]。

本文将人工鱼群算法用于SVM参数优化选择中,提供了一种参数优化方法。该方法通过多条人工鱼同时进行寻优,选取其中的最优值作为优化结果实现了并行处理,提高了SVM的数据分类准确率和参数寻优收敛速度。

1 人工鱼群算法简介

人工鱼群算法(Artificial Fish-Swarm Algorithm, AFSA)[8]采用自下而上的寻优策略。首先构造一群人工鱼,设计每条人工鱼的感知、行为机制,然后鱼群中每条人工鱼搜索局部寻优,并在各自组织系统中传递消息,最后达到全局最优[10]。

该算法主要包括觅食、聚群、追尾三大基本行为,其基本原理是:在食物浓度的诱导下,人工鱼会游向食物来源,最终人工鱼聚集在食物浓度较大的几个食物来源附近。鱼游向食物来源时遵循两条原则:一是尽量向邻近伙伴的中心移动,二是避免过分拥挤[11]。

2 基于AFSA的SVM参数寻优

SVM参数优化对于分类准确率具有重要影响。本文提出了一种基于AFSA的SVM参数优化算法(记为AFSA-SVM),其流程如图 1所示。具体步骤如下:

输入:人工鱼群的种群规模size_pop,鱼群最大迭代次数max_gen,觅食最大选择次数try_num,拥挤度因子δ,感知距离visual,移动步长step;SVM中惩罚参数C和核函数参数g的取值范围。

输出:SVM参数(C,g)及对应的分类准确率。

步骤1 确定SVM数据集。随机选定SVM相应训练集和测试集,并将数据归一化到[0,1]区间。

步骤2 构造人工鱼群。每条人工鱼是待优化SVM参数组合(C,g);按照输入C和g的取值随机初始化人工鱼,构成size_pop*2矩阵的鱼群。

步骤3 计算初始鱼群的食物浓度值。以训练集的分类准确率最大化为优化原则,计算每条人工鱼的食物浓度值并比较大小,将最大值作为当前鱼群的最优值,并保存(C,g)。

步骤4 对鱼群中人工鱼执行行为操作,产生新鱼群。每条人工鱼按食物浓度值最大化原则执行基本行为,缺失执行随机行为,按人工鱼的感知距离和移动步长进行随机游走。

步骤5 选定最优食物浓度值。鱼群在执行行为操作时,计算并保存最优的食物浓度值及最优值所对应的(C,g)。

步骤6 判断算法是否达到终止条件。判断是否达到鱼群最大迭代次数max_gen,若是则输出最优食物浓度值及最优值所对应的(C,g);否则迭代次数加1,并跳转执行步骤4。

图1 AFSA-SVM流程图

3 实验与分析

为了验证本文AFSA-SVM算法效果,本文对比了交叉验证法SVM参数优化(记为CV-SVM)、基于GA的SVM参数优化(记为GA-SVM)和基于PSO的SVM参数优化(记为PSO-SVM)等算法。

3.1 实验数据

实验平台:Intel® CoreTMi7 CPU @3.40GHz,8.00 GB RAM,Windows 7操作系统,MATLAB 2016a。

实验数据:实验使用的数据集从UCI机器学习知识库(http://archive.ics.uci.edu/ml/)中选取八个数据集,详见表 1。

表1 实验所用数据集

实验中采用随机方式从原始数据集中选定训练集和测试集,具体操作如下:将原始数据集的N个样本按行进行随机排列;取随机排列后的前0.5*N(四舍五入)个样本构成训练数据集,剩余的(N-0.5*N)个样本构成测试数据集。如表1所示,每个数据集的不同类别在训练集和测试集中样本数并非均匀分布,但差异较小,不会对分类和测试效果产生影响。

3.2 参数设置

SVM核函数的作用是对特征进行从低维到高维的转换,实验使用径向基核函数(Radial Basis Function, RBF),具有较高的灵活性。实验中基本参数和不同仿生智能算法的参数取值见表 2。

试探次数try_num:试探次数越多,人工鱼的觅食行为能力越强,收敛效率越高。在局部极值突出时,应适当减少试探次数以增加随机游动概率,克服局部最优解。

表2 仿生智能算法参数取值

拥挤度因子δ:避免人工鱼过度拥挤而陷入局部最优解。

感知距离visual:对AFSA中三大基本行为均有较大影响,视野越大,人工鱼越易发现全局最优并收敛。

移动步长step:在一定范围内,步长越大收敛速度越快,但步长过大会出现震荡现象并影响收敛速度。采用随机步长在一定程度上防止了震荡现象,但最优固定步长的收敛速度更快,因此,本文使用固定步长来提高收敛速度。

3.3 结果分析

针对表1中八个数据集,分别使用CV-SVM、GA-SVM、PSO-SVM、AFSA-SVM方法选取SVM最优参数组合(C,g);然后利用(C,g)和训练集对SVM进行训练;最后用得到的模型对测试集进行标签预测,并记录相应的分类准确率,结果详见表3。此外,为进一步分析GA-SVM、PSO-SVM、AFSA-SVM的收敛性,对比了八个数据集在相同迭代次数下的最佳适应度(准确率),如图2所示。

由表3可知:1) 于同一数据集,四种方法选取的最优参数组合各异;2) 于不同数据集,同一方法选取的最优参数组合各异;3) 于表1中八个数据集,CV-SVM、GA-SVM、PSO-SVM、AFSA-SVM方法的平均分类准确率依次为87.73%、87.70%、87.91%、88.92%。上述结论表明,SVM参数组合的优化选取取决于数据集的属性和使用的选取方法;此外,AFSA-SVM较CV-SVM、GA-SVM、PSO-SVM有更高的分类准确率,表明参数和数据集属性会影响分类准确率,而AFSA对SVM参数组合具有较强的寻优能力,得到的分类准确率更高。

由图2可知:在相同迭代次数下,AFSA-SVM比GA-SVM、PSO-SVM的分类准确率更高,且收敛性好,收敛速度更快,表明多条人工鱼并行搜索最优参数组合的性能较强。综上可知,基于人工鱼群算法的SVM参数优化选取性能更佳。

表3 四种方法所选取SVM最优参数对数据集分类结果对比表

4 结语

惩罚参数C和核函数参数g的取值对SVM的分类准确率有重要影响,而AFSA具有较快的收敛速度、不易陷入局部极值、能尽快适应搜索空间等优点,因此,本文提出了基于人工鱼群算法的SVM参数优化。实验结果表明,随机选取训练集和测试集对参数的选取有影响,且不同数据集的属性也会对分类准确率有重要影响。但对于不同数据集,AFSA-SVM能够尽快寻优,且得到的参数组合对训练集的分类准确率均较高,证实了本文方法的可行性和高效性,为SVM参数优化选取提供了较好方法。

图2 三种仿生智能算法的最佳适应度对比图

猜你喜欢
智能算法鱼群步长
中心差商公式变步长算法的计算终止条件
神经网络智能算法在发电机主绝缘状态评估领域的应用
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
基于随机森林回归的智能手机用步长估计模型
人工鱼群算法在雷达探测器射频端电路设计中的应用
从鸡群算法看群体智能算法的发展趋势
鱼群漩涡
朱梦琪??《鱼群》
改进的多目标快速群搜索算法的应用
基于Robocode的智能机器人的设计与实现