第39卷第3期 2012年6月 应 用 科 技 、,0lI39.NO-3 Jun.2012 Applied Science and Technology doi:10.3969/j.issn.1009・671X.201 1 12016 基于改进的网格搜索法的SVM参数优化 王健峰,张磊,陈国兴,何学文 哈尔滨工程大学信息与通信工程学院,黑龙江哈尔滨150001 摘要:比较了现今应用比较广泛的3种支持向量机(SVM)参数优化方法.具体分析了网格法、遗传算法和粒子群算 法在SVM参数优化方面的性能以及优缺点,提出了一种改进的网格法.先在较大范围内进行搜索,在得到的优化结果 附近区域再进行精确搜索.实验表明改进的网格搜索法耗时短,更适用于有时问要求的说话人识别应用中. 关键词:支持向量机;参数优化;网格搜索;遗传算法;粒子群算法;说话人识别 中图分类号:TP273 文献标志码:A 文章编号:1009—671X(2012)03—0028.04 A parameter optimization method for an SVM based on improved grid search algorithm WANG Jianfeng,ZHANG Lei,CHEN Guoxing,HE Xuewen College ofInformation and Communication Engineering,Harbin Engineering University,Harbin 150001,China Abstract:Three kinds of SVM parameters optimization methods were compared in this paper.The performances and characteristics of grid search,genetic algorithm and particle swarrn optimization in SVM parameters optimization were analyzed.In this paper an improved鲥d search method was proposed.Firstly,we searched a set ofparameters in a large space and then searched accurately around the parameters we had found.The simulation shows that the improved method ueses less time and is suitable for the applications of speaker recognition limited by time. ‘ Keywords:support vector machines;parameters optimization;grid search;genetic algorithm;particle swarm optimization; speaker recognition SVM是一种基于统计学习理论基础上的机器学 习方法,具有很好的泛化能力【1 J,在说话人识别等模 将待搜索参数在一定的空间范围中划分成网格,通过 遍历网格中所有的点来寻找最优参数.这种方法在寻 优区间足够大且步距足够小的情况下可以找出全局最 式识别领域得到了广泛的引用.与其他重视经验风险 最小化的算法相比,SVM能够得到更好的泛化精度, 在小样本、非线性模式识别中具有一定的优势.实践 证明,核函数的参数以及惩罚系数对SVM的性能有 优解.由于网格内多数参数组对应的分类准确率都非 常低,只在一个比较小的区间内的参数组所对应的分 类准确率很高,所以遍历网格内所有参数组会相当浪 费时间.GA算法和PSO算法属于启发式算法,它们不 必遍历区间内所有的参数组也能找到全局最优解,但 这2种算法操作往往比较复杂,且容易陷入局部最优. 针对网格搜索法搜索时间长的问题提出一种改进 的网格搜索法,先采用大步距大范围粗搜,初步确定 一着很大的影响【2].而对于一些对实时眭要求较高的系 统,如说话人识别系统而言,快速的选择合适的SVM 参数,减少训练和识NH,-t间有着很重要的实际意义. 关于SVM参数的优化选取,国际上并没有公认 统一的最好的方法,目前较为常用的SVM参数寻优 的方法有:实验法、网格搜索(grid search)法【jJ、遗 个最优参数区间,之后在此区间内进行小步距精搜, 传算法(genetic algorithm,GA)寻优法 、粒子群算 法(particle swarm optimization,PSO)寻优法L5 等.实 验法是指通过大量的实验比较来确定参数,这种方法 十分浪费时间,且不易寻得最优参数.网格搜索法是 收稿日期:2011-12—08. 作者简介:王健峰(1987一),男,硕士研究生,主要研究方向:语音信 号处理、自然语言处理,E—mail:jianfengO704@163.corn. 大幅度地减少了参数寻优时间, 使基于SVM的说话 人识别系统更好地满足实时性的要求. 1 支持向量机 svM[ l的基本思想是通过非线性变化把原数据 空间变化到某一高维的特征空间,然后在这个新空间 第3期 王健峰,等:基于改进的网格搜索法的SVM参数优化 中求取最优线性分类面,使得该超平面将2类样本正 的折中.若C过大,就会引起过学习,影响分类器的 泛化能力. 确无误地分开且使分类间隔最大.这种非线性变化通 过定义适当的内积函数加以实现.SVM的特点在于根 据有限的样本信息在模型的复杂性(即对特定训练样 本的学习精度)和学习能力(即无错误地识别任意样 本的能力)之间寻求最佳折中,以获得最好的推广能 力. 如果一个问题在其定义的空间中不是线性可分 的,可以考虑通过引入核函数K( ,X),把问题转换 到一个新的空间中,相应的判别函数为 厂l( )=sgn(∑口 Y K(xi, )+6) i=1 (6) ],文 对于给定的线性可分数据集{Xi,Yi},i=1,…,Ⅳ, Yi∈{一1,+l},Xi∈Rd,d维空间中的线性判别函数 径向基核函数是目前应用最广泛的核函 中采用的就是这一核函数,其形式如下: g( )=M,. +b,则可用超平面 ¨,.X+b=0 (1) 进行分离.式中w为权向量,b为分类阈值.而要求分 类线对所有样本正确分类,就是要求它满足: Yi( ・五+6)一1≥0,i=1,2,…,,z. (2) 满足上述条件且使得分类间隔最大的超平面就是最优 分类面,如图1所示. (w-x) 6 一1 最大分类间隔 (w‘ )+6=1 支持向量 最优分 支持向量 图1最优分类面 经过整理,最优分类面问题可以表示成如下的约 束优化问题,即在式(2)的约束下,求函数 ( )= l ll』 =去( ・ ) (3) 的最小值.最终可以得出最优分类函数是: 厂( )=sgn((w・ )+6)= _v sgn( ̄-" fYf( ・ )+6). (4) i=1 式中:a 是二次规划优化问题所求解的拉格朗日因 子,JⅣ为支持向量数. 对于线性不可分情况,可以通过在约束条件中引 入松弛变量,在目标函数中加入惩罚函数来解决这一 问题.这时广义最优分类面问题可以进一步演化为求 取下列函数的极小值: (M,, ):去( ・ )+c(Z ). (5) 厶 i=l 式中:c为常数,它实际上起控制对错分样本惩罚的 程度的作用,实现错分样本的比例与算法复杂度之问 (一, )=exp(一gIlXi一 lI2]I,g>0 (7) 式中:参数g是核函数中的重要参数,影响着SVM 分类算法的复杂程度. 综上所述,惩罚参数c和核函数参数g是影响 SVM分类器性能的关键参数,所以文中以(Gg)作 为寻优变量. 2改进的网格搜索寻优方法 2.1交叉验证 交叉验证(cross validation,CV)是用来验证分类 器I生能的一种统计方法,基本思想是把在某种意义下 将原始数据进行分组,一部分作为训练集,另一部分 作为验证集.首先用训练集对分类器进行训练,再利 用验证集来测试训练得到的模型,以此作为评价分类 器的性能指标.通常人们都采用K-fold CV,将原始数 据分成 组(一般是均分),将每个子集数据分别做 一次验证集,其余的 l组子集数据作为训练集,这 样会得到 个模型,用这 个模型最终的验证集的分 类准确率的平均数作为此K-CV下分类器的性能指标. 一般大于等于2,实际操作时一般从3开始取.只有 在原始数据集合数据量小的时候才会尝试取2.K-CV 可以有效地避免过学习以及欠学习状态的发生,最后 得到的结果也比较具有说服性. 2-2改进的网格搜索法 网格搜索法L1 UJ的基本原理是让C和g在一定的范 围划分网格并遍历网格内所有点进行取值,对于取定 的C和g利用K-CV方法得到在此组C和g下训练集 验证分类准确率,最终取使得训练集验证分类准确率 最高的那组C和g作为最佳的参数.这里给出参数寻 优结果如图2所示,其中C的范围设置为[2-1 ̄,2 g 的范围设置为[2。 ,2 ],步距为0.1. 从图2中可以发现,参数C和g在一定区间上对 应的分类准确率很高,但在多数范围内的分类准确率 却很低,因此若能先定位出比较好的参数寻优区间, 应 用 科 技 第39卷 再进行精确搜索,就能够减少不必要的计算,节省大 换成LIBSVM要求的输人格式.采用改进的网格搜索 量的时间. JOO 9O 80 器70 延6O 5O 40 30 () 图2 SVC参数选择结果 针对以上问题,提出一种改进的网格搜索法.首 先,在较大范围内采用大步距进行粗搜,选择使分类 准确率最高的一组C和g.若参数选择过程中有多组 的c和g对应于最高的验证分类准确率,则选取能够 达到最高验证分类准确率中参数C最小的那组C和譬 做为最佳的参数;如果对应最小的c有多组.g,就选 取搜索到的第一组C和譬做为最佳的参数.这样做是 因为过高的c会导致过学习状态发生,即训练集分类 准确率很高而测试集分类准确率很低f分类器的泛化 能力降低),在能够达到最高验证分类准确率中的所有 的成对的C和2中认为较小的惩罚参数C是更佳的选 择对象.在寻得了局部最优参数之后,再在这组参数 附近选择一个小区间,采用传统方法中的小步距进行 二次精搜,找到最终的最优参数.如果参数区间选择 合理,那么改进的网格搜索法能够搜索出全局最优的 参数,但由于这个区间的选择含有比较多的经验成分, 所以通常情况下只能得到局部最优的参数.因此,这 种改进的网格搜索法相当于牺牲了分类准确度,来减 少大量的搜索时问. 3实验结果及分析 实验采用的数据是从4名说话人的语音数据中提 取的4组13维Mel频率倒谱系数(mel frequency cepstral coefifcients,MFCC),其中第1组含有141个 样本,第2组含有206个样本,第3组含有169个样 本,第4组含有132个样本,每个样本包含13个特征 分量.实验平台为MATLAB R2010b,采用台湾大学 林智仁(Chih—Jen Lin)博士等 lJ开发设计的LIBSVM 工具包进行测试. 实验中首先将样本数据分为(1,2,3,4)4类,并转 法进行参数寻优的实验过程如下: 1)设定网格搜索的变量(C,g)的范围以及搜 索步距.其中C的初始范围设置为[2-1 ̄,2 1,g的初始 范围设置为[2-1 ̄,2 1,由于传统方法中步距一般设为 0.1,所以改进方法中初始步距选为100倍的步距,设 为10. 2屎用K-CV方法对训练集进行测试,其中K=3, 并得到使分类准确率最高的局部最优参数C=I和 g=0.000 97. 根据得到的局部最优参数,在其附近选择不同的 区间进行二次寻优,步距与传统方法一样设为0.1,比 较不同的搜索区间对分类准确率的影响,结果记录于 表1. 表1 不同搜索区间内参数寻优的结果比较 从表1中可以看出,如果二次寻优的参数区间选 择过窄,则可能出现局部最优,对应的分类准确率会 低一些,而参数区问选择过宽,寻优时间又会过长.为 了在两者间进行折中,提出的改进的网格搜索法采用 第2组的参数区间. 为了便于分析,分别采用传统网格搜索法、改进 的网格搜索法、GA以及PSO进行参数寻优,比较各 自性能.实验从4名说话人数据中随机抽取2名训练 一个分类器进行寻优测试,一共做6组.其中GA参 数寻优法和PSO参数寻优法属于启发式算法,它们对 同一组数据进行多次寻优结果可能不同,所以针对这 2种算法对每组数据做5次实验,取平均值.比较结果 见表2. 从表2中不难看出,传统的网格搜索法耗时最长, GA算法虽然有时能够得到最高的分类准确率;但容 易过早收敛,出现局部最优,搜索效果不稳定.PSO 算法搜索能力比GA算法稳定,但耗时也比较长.而 文中提出的改进的网格搜索法虽然分类准确率稍低于 其他算法,但其寻优时间远低于其他算法. 第3期 王健峰,等:基于改进的网格搜索法的SVM参数优化 表2不同方法进行参数寻优的结果比较 ・31・ 4 结束语 支持向量机的参数选择是一项很有意义的研究课 [5]EBERHART R,KENNEY J.A new optimizer using particle swarm theory[C]//Proc of the sixth Intemational Symposium on Micro Machine and Human Science.Piscataway,USA, 1995:39—43. 题,本文针对传统方法寻优时间过长的问题提出了改 进的网格搜索寻优法,经实验证明具有良好的效果, 牺牲了一点分类准确率,但大幅度的减少了寻优时间, 能够满足说话人识别系统对时间的要求. [6]SU C L YANG C H.Feature selection for the SVM:an application to hypertension diagnosis[J].Expert Systems with Application,2008,34(1):754—763. 参考文献: [1】VAPNIK V,LEVIN E,CUN Y L.Measuring the [7]张学工.关于统计学习理论与支持向量机[J].自动化学报, 2000,26(1):34—39. [8]KEERTHI S S,LIN C J.Asymptotic behaviors of support VC—dimension of learning machines[J].Neural Computation, 1994,6(5):851-876. vector machines with Gaussian kemel[J].Neural Computation, [2】CHAPELLE O,VAPNIK multiple parameters BOUSQUET O.Choosing 2003,15(7):1667—1689. [9】SMOLA A J,SCHOLKOPF B,MULLER K R.The connection between regularization operators and support vector kemels[J]. Neural Networks,1998,l1(4):637—649. for support vector machines[J]. Machine Learning,2002,46(1/3):13 1-159. [3]L1U Xianglou,JIA Dongxu,LI Hui.Research on Kernel parameter optimization of support vector machine in speaker recognition[J].Science Technology and Engineering,2010, 10f7):1669—1673. [10】王兴玲,李占斌.基于网格搜索的支持向量机核函数参数 的确定[J】.中国海洋大学学报,2005,35(5):859—862. [11]CHANGCC,LINC J.LIBSVIVI:alibraryfor supportvector machines[DB/OL].[201 1-10・07].http:llwww.csie.ntu.edu. [4】CHEN P w WANG J LEE H.Model selection of SVMs using GA approach[C]//Proc of 2004 IEEE Int Joint Conf on Neural Networks.Piscataway,USA,2004:2035—2040. w/t-cjlin/libsvm/.