粒子群优化的多支持向量机(PSO-SVM)(IJMECS-V2-N2-05)
- 格式:pdf
- 大小:144.36 KB
- 文档页数:7
粒⼦群优化算法(PSO)粒⼦群优化算法(PSO)2018年06⽉04⽇ 20:07:09 阅读数 37380%% 最近写的粒⼦群的论⽂,再重新巩固⼀下推荐⼀个优化算法代码⽹址:/1 研究背景粒⼦群算法的发展过程。
粒⼦群优化算法(Partical Swarm Optimization PSO),粒⼦群中的每⼀个粒⼦都代表⼀个问题的可能解,通过粒⼦个体的简单⾏为,群体内的信息交互实现问题求解的智能性。
由于PSO操作简单、收敛速度快,因此在函数优化、图像处理、⼤地测量等众多领域都得到了⼴泛的应⽤。
随着应⽤范围的扩⼤,PSO算法存在早熟收敛、维数灾难、易于陷⼊局部极值等问题需要解决,主要有以下⼏种发展⽅向。
(1)调整PSO的参数来平衡算法的全局探测和局部开采能⼒。
如Shi和Eberhart对PSO算法的速度项引⼊了惯性权重,并依据迭代进程及粒⼦飞⾏情况对惯性权重进⾏线性(或⾮线性)的动态调整,以平衡搜索的全局性和收敛速度。
2009年张玮等在对标准粒⼦群算法位置期望及⽅差进⾏稳定性分析的基础上,研究了加速因⼦对位置期望及⽅差的影响,得出了⼀组较好的加速因⼦取值。
(2)设计不同类型的拓扑结构,改变粒⼦学习模式,从⽽提⾼种群的多样性,Kennedy等⼈研究了不同的拓扑结构对SPSO性能的影响。
针对SPSO存在易早熟收敛,寻优精度不⾼的缺点,于2003年提出了⼀种更为明晰的粒⼦群算法的形式:⾻⼲粒⼦群算法(Bare Bones PSO,BBPSO)。
(3)将PSO和其他优化算法(或策略)相结合,形成混合PSO算法。
如曾毅等将模式搜索算法嵌⼊到PSO算法中,实现了模式搜索算法的局部搜索能⼒与PSO算法的全局寻优能⼒的优势互补。
(4)采⽤⼩⽣境技术。
⼩⽣境是模拟⽣态平衡的⼀种仿⽣技术,适⽤于多峰函数和多⽬标函数的优化问题。
例如,在PSO算法中,通过构造⼩⽣境拓扑,将种群分成若⼲个⼦种群,动态地形成相对独⽴的搜索空间,实现对多个极值区域的同步搜索,从⽽可以避免算法在求解多峰函数优化问题时出现早熟收敛现象。
粒子群优化算法综述介绍PSO算法的基本原理是通过多个个体(粒子)在解空间里的,通过不断更新个体的位置和速度来寻找最优解。
每个粒子都有自己的位置和速度,并根据个体历史最佳位置和群体历史最佳位置进行更新。
当粒子接近最优解时,根据历史最优位置和当前位置的差异进行调整,从而实现相对于当前位置的。
具体而言,PSO算法可以分为以下几个步骤:1.初始化粒子群:定义粒子的位置和速度以及适应度函数。
2.更新每个粒子的速度和位置:根据粒子的历史最佳位置和群体历史最佳位置,以及加权系数进行更新。
可以使用以下公式计算:v(i+1) = w * v(i) + c1 * rand( * (pbest(i) - x(i)) + c2 * rand( * (gbest - x(i))x(i+1)=x(i)+v(i+1)其中,v(i+1)是第i+1次迭代时粒子的速度,x(i+1)是第i+1次迭代时粒子的位置,w是惯性权重,c1和c2是学习因子,rand(是一个随机数,pbest(i)是粒子个体历史最佳位置,gbest是整个群体历史最佳位置。
3.更新每个粒子的个体历史最佳位置和群体历史最佳位置:根据当前适应度函数值,更新每个粒子的个体历史最佳位置,同时更新群体历史最佳位置。
4.判断终止条件:当达到预设的最大迭代次数或者适应度函数值达到预设的误差范围时,停止迭代,输出结果。
PSO算法的优点在于简单易用、易于实现、不需要求导和梯度信息,并且可以灵活地应用于各种问题。
然而,PSO算法也存在一些缺点,如易于陷入局部最优解、收敛速度较慢等。
为了克服这些限制,研究者们提出了各种改进的粒子群优化算法,如自适应权重粒子群优化算法(Adaptive Weight Particle Swarm Optimization, AWPSO)、混合粒子群优化算法(Hybrid Particle Swarm Optimization, HPSO)等。
这些算法通过引入更多的因素或策略来加快收敛速度、改善性能。
粒子群优化算法和最小二乘支持向量机的雷电过电压识别董建达;孙志能;周开河;范良忠【摘要】为了提高雷电过电压的识别率,满足雷电过电压识别的实时性,提出了粒子群优化算法和最小二乘支持向量机的雷电过电压识别模型.首先提取多种特征作为雷电过电压识别的输入向量,然后采用最小二乘支持向量机设计雷电过电压识别的分类器,采用粒子群优化算法确定最合理的分类器参数,最后通过实验分析其有效性和优越性.结果表明,PSOLSSVM可以描述雷电过电压信号与特征间变化关系,提高了雷电过电压识别率,加快了雷电过电压识别速度,识别结果优于其他模型.【期刊名称】《电网与清洁能源》【年(卷),期】2016(032)006【总页数】6页(P35-40)【关键词】雷电过电压;最小二乘支持向量机;特征提取;粒子群优化算法【作者】董建达;孙志能;周开河;范良忠【作者单位】国网浙江省电力公司宁波供电公司,浙江宁波315016;国网浙江省电力公司宁波供电公司,浙江宁波315016;国网浙江省电力公司宁波供电公司,浙江宁波315016;浙江大学宁波理工学院,浙江宁波315100【正文语种】中文【中图分类】TM863电力是各行各业不可缺少的动力,与人们的生活密切相关。
而雷电是一种随机产生的自然现象,易使输电线路产生故障,引起停电事故,影响人们的正常生活和工作,给社会带来巨大的经济损失[1-2]。
传统防雷措施如线路避雷器等,无法确保输电线路安全,尤其是在多雷地区,电力系统的雷击事故依然严峻[3]。
雷电过电压识别有利于快速准确判别输电线路故障类型,为电力部门管理人员提供有用信息,因此提高雷电过电压识别准确性具有重要的意义。
为了对雷电过电压进行正确识别,近年来,国内学者和专家展开了一系列研究,取得了一定的研究成果,涌现出一批雷电过电压识别方法[4]。
最原始雷电过电压识别方法采用人工方式通过经验实现,对于小规模电力系统,该方法效果好、简单,由于识别结果与人工经验丰富程度相关,识别结果主观性强[5]。
基于粒子群优化算法的支持向量机参数选择及其应用
邵信光;杨慧中;陈刚
【期刊名称】《控制理论与应用》
【年(卷),期】2006(23)5
【摘要】参数选择是支持向量机(SVM)研究领域的重要问题,它的本质是一个优化搜索过程,考虑到进化算法在求解优化问题上的有效性,提出了以最小化κ-fold交叉验证误差为目标,粒子群优化(PSO)算法为寻优技巧的SVM参数调整方法.通过仿真例子验证该方法的有效性后,用其建立了聚丙烯腈生产过程中数均分子量的软测量模型,结果表明该方法有效.
【总页数】5页(P740-743,748)
【作者】邵信光;杨慧中;陈刚
【作者单位】江南大学,控制科学与工程研究中心,江苏,无锡,214122;江南大学,控制科学与工程研究中心,江苏,无锡,214122;江南大学,控制科学与工程研究中心,江苏,无锡,214122
【正文语种】中文
【中图分类】TP274
【相关文献】
1.应用粒子群优化算法选择正则化参数 [J], 聂笃宪;袁利国;文有为
2.基于粒子群优化算法的支持向量机选择性集成 [J], 陈建胜
3.基于社会情感优化算法的支持向量机参数选择 [J], 程彩凤;孙祥娥
4.基于粒子群优化算法的支持向量机参数选择 [J], 贺心皓;罗旭
5.基于双变异粒子群优化算法优化的支持向量机及其在民航发动机损伤类型识别中的应用 [J], 郑波;马昕
因版权原因,仅展示原文概要,查看原文内容请购买。
基于改进粒子群算法对支持向量机的参数优化及其应用基于改进粒子群算法对支持向量机的参数优化及其应用摘要:随着机器学习和数据挖掘的快速发展,支持向量机(Support Vector Machine, SVM)作为一种强大的分类和回归工具被广泛应用。
然而,SVM的性能很大程度上依赖于其参数设置,包括正则化项C和核函数的参数γ。
本文提出了一种基于改进粒子群算法(Improved Particle Swarm Optimization, IPSO)对SVM的参数进行优化的方法,并在多个实验中验证了该方法的有效性。
1. 引言支持向量机是一种基于统计学习理论的非线性分类器,其具有较好的分类能力和泛化性能。
但是,SVM的性能很大程度上依赖于其参数设置,即正则化项C和核函数的参数γ。
因此,选择合适的参数对于SVM的应用至关重要。
2. 粒子群算法粒子群算法是一种模拟鸟群觅食行为的群体智能算法,它通过模拟个体之间的协作和竞争来搜索最优解。
传统的粒子群算法存在着容易陷入局部最优解的问题。
3. 改进粒子群算法为了解决传统粒子群算法的局限性,本文提出了一种改进的粒子群算法,即IPSO。
该算法引入了自适应惯性权重和混沌映射来提高算法的全局搜索能力,并采用一种新的惩罚策略来克服局部最优解问题。
4. 基于IPSO的SVM参数优化本文将IPSO算法应用于SVM的参数优化中,即通过IPSO算法搜索最优的正则化参数C和核函数参数γ。
具体流程如下:- 初始化粒子群的位置和速度;- 计算每个粒子的适应度值,即使用当前的C和γ参数训练SVM,并根据SVM的性能评估函数得到适应度值;- 更新全局最优解和每个粒子的最优解;- 更新粒子群的速度和位置,其中速度更新采用自适应惯性权重和混沌映射的方法;- 重复上述步骤,直到满足终止条件。
5. 实验结果与分析本文在多个公开数据集上对所提方法的性能进行了评估,并与传统的网格搜索方法进行了比较。
实验结果表明,基于IPSO算法的SVM参数优化方法在大多数情况下能够获得更好的性能,且具有更快的收敛速度。
基于粒子群参数优化的支持向量机方法作者:阎伸张全来源:《科技视界》2017年第03期【摘要】支持向量机是一种基于统计学习理论的机器学习方法。
在传统的支持向量机模型中,模型参数需要用试凑的办法,本文中提出一个基于粒子群算法的参数选择机制,这可以大大减少模型的运算时间。
最后给出一个算例。
【关键词】粒子群算法;支持向量机;参数选择A Support Vector Machine Method based on Particle Swarm OptimizationYAN Shen ZHANG Quan(Department of Information Engineering,ShenYang University of Technology,Shenyang Liaoning 110870,China)【Abstract】Support Vector Machine(SVM)is a new machine learning technique based on the statistical learning theory.In the traditional SVM model,we usually select the parameter by trial and error.In this paper,we propose a parameter optimization method based on PSO for SVM,it can reduce computing time obviousely.At last,a numerical example is proposed.【Key words】PSO;SVM;Parameter selection0 引言期刊评价可以归结为多属性决策问题,即参考多个指标(或称属性)来评价期刊的质量[1]。
期刊质量的等级分类往往需要计算期刊的综合评价值,而且通常需要确定属性的权重值与综合评价值的函数形式。
基于PSO算法的SVM参数优化方法研究基于粒子群优化算法(Particle Swarm Optimization, PSO)的支持向量机(Support Vector Machine, SVM)参数优化是近年来机器学习领域中的热门研究方向。
本文将探讨PSO算法在SVM参数优化中的应用,并介绍其原理和优势。
首先,我们需要介绍一下支持向量机(SVM)。
SVM是一种常用的监督学习算法,可用于分类和回归问题。
其核心思想是在特征空间中找到一个最优的超平面来使不同类别的样本尽可能地分开。
SVM参数优化包括核函数选择、惩罚参数(C)以及其他控制参数的选择。
然而,SVM参数优化是一个复杂的优化问题,传统方法通常需要进行大量的计算和试验。
为了降低计算复杂度,提高参数优化效率,近年来研究者开始引入PSO算法来求解SVM参数优化问题。
PSO算法是一种启发式优化算法,模拟了鸟群捕食的行为。
在PSO算法中,每个解(粒子)都有一个速度和位置,并与其他粒子共享信息。
通过不断更新速度和位置,粒子会向全局最优解靠近。
在使用PSO算法进行SVM参数优化时,需要将SVM参数作为优化目标函数的参数。
PSO算法通过不断更新粒子的速度和位置来优化SVM参数,使得SVM模型在训练集上的性能最优。
具体而言,PSO算法的每个粒子可以看作是一个SVM的参数组合,包括核函数选择、惩罚参数(C)等。
每个粒子通过评估其对应的SVM模型在训练集上的性能来计算适应度值。
然后,粒子根据自己的当前最优位置和全局最优位置来更新速度和位置,以期望找到更好的解。
PSO算法有以下几个优势适合用于SVM参数优化。
首先,PSO算法具有全局能力,能够在参数空间中找到最优解。
其次,PSO算法不依赖于问题的具体形式,适用于各种类型的SVM参数优化。
而且,PSO算法不需要计算梯度,因此能够避免陷入局部最优解。
目前,PSO算法在SVM参数优化中得到了广泛的应用,并取得了较好的结果。
改进粒子群算法优化的支持向量机及其应用王振武;孙佳骏;尹成峰【期刊名称】《哈尔滨工程大学学报》【年(卷),期】2016(037)012【摘要】传统粒子群优化( particle swarm optimization, PSO)算法主要包含两方面问题,即易陷入局部极小和后期震荡严重,为此引入混沌序列来初始化粒子群的位置,并在简化的粒子群数学模型上从两个方面对其进行了改进。
本文利用改进的PSO算法对支持向量机( support vector machine, SVM)的参数进行优化,仿真实验结果表明:与SVM、PSO-SVM以及遗传算法(genetic algorithm, GA)优化的SVM(GA-SVM)相比,改进PSO优化的SVM (IPSO-SVM)算法具有较高的分类准确率,并且与PSO-SVM算法相比,准确率提高了3%~5%,与PSO-SVM算法以及GA-SVM算法相比,IPSO-SVM的训练和泛化速度都明显提高。
本文将IPSO-SVM算法应用到遥感影像的分类中,分类结果表明,与PSO-SVM算法相比,IPSO-SVM算法具有更好的分类结果。
【总页数】6页(P1728-1733)【作者】王振武;孙佳骏;尹成峰【作者单位】中国矿业大学机电与信息工程学院,北京100083;中国矿业大学机电与信息工程学院,北京100083;中国矿业大学机电与信息工程学院,北京100083【正文语种】中文【中图分类】TP301.6【相关文献】1.改进粒子群算法优化支持向量机在故障诊断中的应用研究 [J], 孙瑶琴2.改进粒子群算法优化的支持向量机在滚动轴承故障诊断中的应用 [J], 吕明珠;苏晓明;陈长征;刘世勋3.改进粒子群算法优化支持向量机预测模型的研究 [J], 张乔4.改进粒子群算法优化支持向量机的短期负荷预测 [J], 李杰;靳孟宇;马士豪5.基于变分模态分解和改进粒子群算法优化最小二乘支持向量机的短期电价预测[J], 杨昭;张钢;赵俊杰;张灏;蔺奕存因版权原因,仅展示原文概要,查看原文内容请购买。
一种基于粒子群优化的多目标优化算法
粒子群优化(Particle Swarm Optimization,PSO)算法是一种基于群智能的优化算法。
它模拟了粒子在多维空间中运动的过程,通过粒子之间的协作来搜索全局最优解。
在粒子群优化算法中,每个粒子都表示一个可能的解,其位置由多维向量表示。
每个粒子都有两个重要的信息:当前位置和最优位置。
当前位置是粒子在当前迭代中所在的位置,最优位置是粒子历史上所有迭代中所有位置中适应度最好的位置。
在每次迭代中,粒子根据当前位置和最优位置来计算下一步移动的方向和距离。
粒子之间相互合作,通过共享信息来协同寻找全局最优解。
在多目标优化中,PSO算法可以通过对粒子的适应度进行评估来找到多个可行解。
一种常用的多目标PSO算法叫做NSGA-II(Non-dominated Sorting Genetic Algorithm II)。
NSGA-II算法通过非支配排序和精英保留策略来找到多个可行解。
这些解构成了Pareto最优解集合。
基于粒子群算法与图形处理器加速的支持向量机参数优化方法毛耀宗;陈珂;江弋;邹权【摘要】支持向量机(support vector machine,SVM)的参数选择对其性能有着重要的影响,使用穷举法优化参数需要大量的计算时间.为快速寻找最优参数组合,利用粒子群算法(particle swarm optimization,PSO)收敛速度快、简单易行等特点,将SVM参数作为粒子的解决方案.并利用图形处理器(graphics processingunit,GPU)并行化处理能力计算每个参数的分类准确率,从而提升了在一定的搜索空间内寻找最佳参数组合的计算速度.对UCI数据进行实验,对比结果显示,该方法能快速有效地获取优化结果.【期刊名称】《厦门大学学报(自然科学版)》【年(卷),期】2013(052)005【总页数】4页(P609-612)【关键词】支持向量机;粒子群算法;图形处理器;参数寻优【作者】毛耀宗;陈珂;江弋;邹权【作者单位】厦门大学信息科学与技术学院,福建厦门361005;广东石油化工学院计算机科学与技术系,广东茂名525000;厦门大学信息科学与技术学院,福建厦门361005;厦门大学信息科学与技术学院,福建厦门361005【正文语种】中文【中图分类】TP302.7支持向量机(support vector machine,SVM)[1]是一种具有严密理论基础的计算机学习的新方法,在解决小样本问题、非线性及高维模式识别等实际应用中表现出许多特有的优势.在机器学习、模式识别、智能计算等领域已经成为热点技术,受到国内外研究者的广泛关注.理论研究与实践表明,SVM的性能和惩罚因子C以及核函数的参数有着紧密的联系,寻找到好的参数组合对于SVM的推广与应用能起到极大的推动作用.一般寻找参数的方法是在一个二维坐标轴上列出一个网格[2],网格上的点表示所有参数可能的取值,然后穷尽网格上的点,并计算其预测准确率,从中选取最佳的参数组合.这种方法虽然能找到最优的参数组合,但是基于穷举法的寻找过程要求的计算时间相对较大,这在另一方面限制了SVM的性能.粒子群算法(particle swarm optimization,PSO)[3-4]在一定的搜索空间中通过多次迭代找寻最优解,每个粒子在迭代的过程中不断地调整自身的位置(或者方向)和速度,从而尽可能地获取最佳的解决方案.当迭代结束或者寻优结果落在可接受区间内,就用此局部最优解来替代全局最优.这一过程避免了穷尽所有可能的情况,不但能获取满意的结果而且减小了程序的计算量.本文在PSO算法寻找SVM最优参数组合的过程中,引入图形处理器(graphics processing unit,GPU)计算[5],用来加速计算过程,实验结果表明这种方法能获得满意的预测准确率并且降低了程序寻优的时间.1 基本原理介绍1.1 SVM基本原理SVM的基本思想就是将低维的线性不可分问题通过核函数映射到高维空间,使得问题成为线性可分[6-7].对于基本的分类问题,计算公式如下:其中,‖w‖为求解的目标函数,其值要求越小越好,x为样本点,y为样本的分类标记.当在处理分类问题过程中出现了离群点时,通过引入松弛变量来放宽对样本点的分类要求,由于这些点不能达到精确分类,对于分类器来说是一种损失,体现在数学式(2)中:其中,n为样本数,C为惩罚因子,与松弛变量ξi搭配后用来决定离群点所带来的损失,当C的数值越大表示样本点的影响力越大,对目标函数的损失也越大.最极端的情况是当C的取值为无限大时,只要出现一个离群点,那么问题就会无解. 核函数的作用是,当处理线性不可分样本的时候,将低维空间的输入映射到高维空间,计算出经过核函数变化后在高维空间里向量的内积值,使得线性不可分问题成为线性可分.本文所用的径向基核函数(radial basis fuction,RBF)公式如下:其中γ即为Libsvm软件所用的g参数(gamma),此参数反应了支持向量的相关程度,当γ较小时,向量之间的相关程度低;当γ较大时,向量之间的相关程度就高.选取合适的参数C和γ的会影响SVM的性能.1.2 PSO基本原理PSO算法在每轮迭代过程中不断调整粒子的运行速度与方向,最终寻找到满意的解决方案.算法首先初始化个数为n的粒子,假设粒子在d维的搜索空间中搜寻目标,每个粒子的位置可以用向量Xi=[Xi1,Xi2,…,Xid]表示,通过一个适应值计算函数f(x)获取每个粒子个体最优方案xip_best=[pi1,pi2,…,pid]以及全局最优方案xg_best=[g1,g2,…,gd],之后进入迭代过程,每个粒子根据式(4)调整自身当前时刻的位置和速度:其中,Vit,Vi(t+1)分别表示粒子i在t时刻与t+1时刻的速度Vi=[Vi1,Vi2,…,Vid],Xit,Xi(t+1)分别表示粒子i在t时刻与t+1时刻的解决方案Xi=[Xi1,Xi2,…,Xid],实数C1,C2 为学习因子,rand1,rand2 为范围在(0,1)的随机数,学习因子与随机数的乘积用来表征粒子对个体最优方案和全局最优方案的学习程度,通常C1=C2=2.0,惯性权重w用来控制粒子t时刻的速度对t+1时刻速度的影响,当w较大时算法的全局搜索能力较强,当w 较小时算法的局部搜索能力较强[8].在迭代过程中通过调整w的大小平衡算法的搜索能力,通常采用的是公式(5)所示的线性迭代:其中,wmax,wmin分别为惯性权重的最大值与最小值,itercurrent,itermax 分别为算法当前迭代次数与最大迭代次数.随着迭代过程的进行,w的值由大到小变化,粒子由注重全局搜索能力逐渐转变为注重局部搜索能力.在每轮迭代结束选取一部分粒子再次随机分配解决方案,这样能防止粒子群算法陷入局部最优,影响算法的性能.由于PSO算法限定在一个有限的区域而不是对整个搜索空间进行计算,所以算法计算出的局部最优方案不一定是全局最优.本文算法的适应值函数由程序调用Libsvm软件对测试集和预测集进行计算,并返回准确率来评价解决方案的效果.1.3 GPU计算简介GPU计算是指把GPU作为计算加速器或者协作处理器来承担密集型数据和并行数据的计算,从而为那些在CPU上运行的应用程序加速.GPU采用了大量的执行单元,这些执行单元不但能共享存储空间并且能进行并行处理,而不像CPU那样的单线程处理.统一计算设备架构(compute unified device architecture,CUDA)[9]是英伟达(NVIDIA)为自己的GPU编写的一套编译器及库文件,用于管理GPU上可以并行执行的多线程计算设备.在主机端(host)执行CPU上的运算,当程序运行到需要处理大量数据且能并行执行的部分,主程序通过调用kernel函数进行GPU计算,在GPU部分尽量开发线程级并行,这些线程能够在硬件中被动态的调度和执行,当计算完毕后,再从设备端(device)把结果返回CPU继续执行.2 基于PSO算法与GPU加速的SVM参数寻优算法用一个数组将两个参数c和g存储在每个粒子对象当中,用来代表问题的解决方案,对应的c和g调整速度也以数组的形式存储,此外通过适应值函数计算出的个体最优解以及全局最优解也存储在粒子对象当中.计算适应值的过程就是进行预测准确率的过程,通过调用GPU来训练样本并返回预测准确率.在之后的迭代过程中,粒子根据个体最优解以及全局最优解调整自己的位置,获得新的c和g参数值并进行计算,直到迭代次数达到预先设定的最大值,程序返回优化值并结束退出. 本文采用交叉检验方法来获取预测准确率,K重交叉检验(K-fold cross validation)[10]将训练数据均分成K份,每份轮流作一次预测集,其余K-1份作为训练集,这样总共可以获取K个训练模型以及K 次预测的准确率,最终返回这K次分类准确率的平均值作为K重交叉检验的性能指标.算法具体步骤如下:1)设定粒子的数量number_of_particle;学习因子C1,C2;最大迭代次数iter;搜索空间的范围x_max,x_min;粒子更新速度的范围v_max,v_min;2)初始化粒子群的位置x_cg[c][g]以及更新速度v_cg[c][g];3)程序根据获取的c,g值调用Libsvm对训练集进行训练,并计算模型预测的准确率;4)保存每个粒子的个体最优方案以及粒子群的全局最优方案;5)变量count计算当前迭代次数,如果count>iter执行步骤11),否则利用式(5)计算此次迭代权重惯性w的值;6)根据式(4)更新粒子的速度以及位置;7)if(粒子的速度大于v_max)v_cg=v_max;8)if(粒子的速度小于v_min)v_cg=v_min;9)if(粒子的位置超出搜索空间)重新在搜索空间内随机设定粒子的位置;10)返回步骤3);11)算法结束.3 实验数据分析本实验采用UCI中的数据,所有实验都是在安装在CUDA(compute unified device architecture)运行环境的64位Linux操作系统下运行,程序用Java语言编写,并且为随机数设定种子random(16)方便实验结果的重现.为了便于实验结果的数据比对,还添加一组Libsvm自带的Grid.py程序的实验结果作为对比. 对UCI数据集中abalone_scale.txt数据进行分类实验,采用5重交叉检验,实验中的参数设定如下:粒子数=20,迭代次数iter=10,学习因子c1=c2=2.0,搜索空间范围为二维坐标轴上x=(-10,-9,-8,…,8,9,10),y=(-10,-9,-8,…,8,9,10)上的整数点,总共有20×20=400个可行解,粒子最大更新速度v_max=10,最小更新速度v_min=-10,最大惯性权重w_max=1.2,最小惯性权重w_min=0.2,表1记录了网格搜索算法、PSO算法、经GPU加速的PSO算法的实验数据.表1 3种算法在UCI数据集上作5重交叉检验结果比对Tab.1 The five corss validation result of three algorithms on UCI data set算法准确率/% t/s cg Grid.py 27.8190 3859 512 0.125 PSO 27.9148 2646 64 0.500 PSO+GPU27.9148 2273 64 0.500把实验结果c=512,g=0.125用Libsvm进行5重交叉检验,确实获得27.819 0%的准确率,把c=64,g=0.5用Libsvm同样进行5重交叉检验结果为27.914 8%,由于数据本身的问题,该分类的准确率不能达到很高的标准.从表1可以看出在准确率基本不变的情况下,相同的训练数据3种算法运行的时间不同,基于网格的参数搜索所需计算时间最长,而基于PSO优化算法的计算时间有所缩短,而经过PSO优化以及GPU加速的算法所用时间最短.对于UCI数据集中pendigits.txt,当不采用5重交叉检验而是直接用UCI提供的测试集pendigits.txt做检验来获取最佳的c,g参数组合,实验结果如表2所示. 表2 3种算法对pendigits.txt的预测结果比对Tab.2 The prediction result of three algorithms on pendigits.txt算法准确率/% t/s c g Grid.py 98.0560 3524 128 3.05175×10-5 PSO 95.5117 3007 2.0 9.765×10-4 PSO+GPU 95.5117 2522 2.0 9.765×10-4由表2数据显示,PSO与PSO+GPU算法的计算速度相比Grid.py方法均有所提升,而在准确率方面虽然已经达到了95.5517%,但是相比Grid.py方法获取的98.0560%低,这是因为PSO算法只能在一定区域内搜索,而不能获取全局最优解,因此在准确率方面可能达不到Grid.py方法的水平.PSO优化方法和PSO+GPU优化方法在两个数据集上相对于Grid方法的加速比如表3所示.从表3的数据看出,PSO+GPU在两个数据集上的加速比均高于PSO方法,由此可见,在PSO算法的基础上经过GPU加速确实能够提高程序的计算速度.表3 相对于Grid.py方法的计算时间加速比Tab.3 The speed-up ratio of the experiment compares with the Grid.py method注:Grid在鲍鱼、手写体数字上测试时间分别为2859,3524s.算法(算法加速比)鲍鱼手写体数字PSO(s)2646 3007 PSO加速比 1.458 1.171 PSO+GPU(s) 2273 2522 PSO+GPU 加速比 1.697 1.397 Grid.py(s)2859 35244 结论SVM的参数选择对于SVM的性能至关重要,但是其参数的选取又必须经过不断的试探和舍取,找到一个行之有效的参数选择方法将有助于SVM的推广应用.本文利用粒子群优化算法,在一定的搜索空间内尽可能获取满意解,并利用GPU加速算法的计算,提高了算法的收敛速度.通过UCI数据进行测试,该方法能够快速有效的获取最优参数组合.【相关文献】[1]Cortes C,Vapnik V.Support vector network[J].Machine Learning,1995,20:273-297.[2]王佳,徐蔚鸿.基于动量粒子群的混合核SVM参数优化方法[J].计算机应用,2011,31(2):501-503.[3]Kennedy J,Eberhart R C.Particle swarm optim ization[J].Proc IEEE Int Conf Neural Networks,1995,4:1942-1948.[4]Eberhart R,Kennedy J.A new optim izer using particle swarm theory[C]∥Proc of the 16th International Symposium on MicroMachine and Human Science.Nagoya,Japan:IEEE,1995:39-43.[5]Liao Q,Wang J B,Webster Y,et al.GPU accelerated support vector machines for mining high-throughput screening data[J].Journal of Chemical Information and Modeling,2009,49(12):2718-2725.[6]邓乃扬,田英杰.数据挖掘中的新方法——支持向量机[M].北京:科学出版社,2004 [7]崔伟东,周志华,李星.支持向量机研究[J].计算机工程与应用,2011,37(1):58-61. [8]李太白.基于混沌粒子群的SVM参数优化算法[J].重庆文理学院学报:自然科学版,2011,30(4):81-84.[9]科可(美),胡文美.大规模并行处理器编程实战[M].北京:清华大学出版社,2010. [10]邵信光,杨慧中,陈刚.基于粒子群优化算法的支持向量机参数选择及其应用[J].控制理论与应用,2006,23(5):740-743.。