SVM算法分析与研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 算法收敛性分析 关于这两个算法收敛性的证明引起了很多学者的兴趣,他们做了很多有益的工作.但到目前为 止,这两个算法的收敛性还没有被完全证明. 总体证明思路:[1’31 (1)通过算法2所获得的d是(3)式的最优解. (2)根据Zoutendijk方法的属性可知:口是(1)式的最优解的充要条件是口也是(3)式的最优解,并 且(3)式在口处的值为零(后续所有证明步骤都围绕这个目标进行). (3).厂(a“1)是关于ff口“1一口。If 2的减函数. (4)lim dk+l:占,k∈K.
(这个假设目前还没有被去掉). 有关算法收敛性的证明揭示了训练过程中a的变化轨迹及算法收敛时各元素在Yi v厂(a2)i序列
的位置及其变化情况.这些信息对算法的改进,如工作集的选取与缩减,停机条件的设定具有重要的 指导意义.
3 LIBSVM库分析
万方数据
LIBSVM是台湾大学c.J Lin等人开发的一套支持向量机算法库.这个小组是算法收敛性证明的 主力军,他们利用收敛性证明的成果来改进算法,取得了非常好的结果.许多国际著名研究机构都采 用LIBSVM作为它们的训练算法.本节笔者对LIBSVM的核心学习引擎代码进行了分析,揭示了它的高 效所在.本分析是基于LIBSVM2.71(released on November 20,2004).LIBSVM共实现5种类型的SVM 机:C—SVC,移一SVC,One Class—SVC,£一SVR,移一SVR.
支持向量机(Support Vector Machine)是在统计学习理论基础之上发展起来的一种全新的机器学习 算法。SVM基于统计学习理论的结构风险最小化原则,它将最大化分类间隔的思想和基于核的方法结 合在一起,表现出很好的泛化能力.由于SVM方法有统计学习理论作为其坚实的数学基础,并且可以 很好地克服“维数灾难”和“过拟合”等传统算法所不可规避的问题,所以受到了越来越多的研究人员 的关注.近年来,关于SVM方法的研究,包括算法本身的改进和算法的实际应用,都被陆续提了出来. 但是,支持向量机训练的复杂度高度依赖于训练数据的大小.不仅训练时间与数据的平方成正比,而 且训练算法需要存储与训练集对应的核矩阵,当样本点数f成千计时,所需内存相当大.
min喜口7啦+P7a,
0≤a。≤C,t=1,…,Z.
(4)
),Ta=A.
由于£一SVR的对偶问题为:
mi,专(d~a‘)7Q(口一a”)+£∑(口+口+)+∑盈(a—n+)subject to
∑(口。一&?)=o,0≤ai,a?≤C,i=1,…,z.
(5)
为了和(4)式相对应,LIBSVM将其改造为:
(7)
yTa=△1. e0:A2.
3.3 两类学习机采用不同的(ai,ai)偶对选择方式 从(6)、(7)我们可以看出,两类学习机的问题表示方式存在着很大不同.(7)式比(6)式多了一个 等式约束.正是这个不同点导致了解决方式的差异. (1)第一类学习机由于只有一个约束等式,它的a。,ai分别来自根据算法2所选取的Y;vf(a‘)。 序列top和bottom端的首个元素,这两个元素是最违反KKT条件的点. (2)从(7)可以看出。,第二类学习机含有两个有关a的约束等式,如果选取(a。,q)且Y。≠乃,则两 个元素两个等式约束,无法改变(a。,口i)偶对的值.所以,对此类学习机偶对选取时加了限制条件Y。=
2005年9月 第4卷第3期
渝西学院学报(自然科学版)。 Journal of Western Chongqing University(Nature Sciences Edition)
Sep.,2005 V01.4 No.3
SVM算法分析与研究
王晓云
(涪陵师范学院 计算机科学系,重庆涪陵408003)
万方数据
则将其移出工作集,加快算法运行速度.这一思路来自于对算法收敛性的证明:当算法趋于收敛时,取 边界值的口i保持不变,并且排列在Y。v.厂(口“)i序列的正确位置.
3.5 Cache方法 LIBSVM采用最近最常使用的方法来Cache Qi的值.系统根据用户设定的域值在内存中建立一个 链表,每个最新算出的Q。值插入链表的尾部.算法需要某个Qi值时就查询链表,如果链表不存在此 Qi,值就立刻计算并插入链表的尾部.如果此时所分配内存区域已满则删除链表头部的Q“.采用此种
[参考文献]
[1]Keerthi S and Gilbert E G.Convergence of 8 generalized SMO algorithm for SVM classifier design【J J,Machine Learning,
2002,46:351—360.
[2]Keenhi S S,Shevade S K,Bhattacharyya C and Murthy K R K.Improvements to Platt’s SMO algorithm fi)r SVM classifier design[J].Neural Computation,2001,13:637—649.
* [收稿日期]2005—06—06 [作者简介】王晓云(1963一),男,重庆涪陵人,讲师,硕士研究生
15
万方数据
min妻a:Q8Bd8一(e8一Q删a:)7a8,
0≤(口B)i≤C,i=1,…,q.
(2)

r七
ysas=一),胆N·
Q=弦净
(4)设a∥为(2)式的最优解并口≯1=口ⅣK,设K—K+1并转过程(2).
方法避免了存储整个核矩阵给系统造成的负担. 3.6 参数搜索网格 LIBSVM提供了寻找参数C和y最佳值的方法(仅适用于径向基函数).它定义C=21,2。25,…,
25.),:2一,2“75,…,2~.用这些数值组成二维网格,每次采用一对网格顶点的值进行交叉测试直至 所有顶点都测试完毕.最后从中选出交叉测试准确率最高者所对应的(C,y)值对.
(3b).设d;:Yi,从序列的底部依次往前选取q/2个元素,要求入选的元素满足0<口。<C或者(3b). 不满足以上条件的元素对应的di设为0.
以上是Decomposition算法的介绍,而SMO算法事实上是Decomposition算法的变种.它的特点是 B f:2,即每次只选两个元素,则新的口r、a笋”可解析求得,避免计算核矩阵Q.
[3]un c J.On the convergence of the decomposition method for suppofl vector machines.IEEE Transactions on Neural Networks,12(6):1288—1298.
[4]Platt J C.Fast training of support vector machines using sequential minimal optimization.In B,Sch“olkopf,C.J.C.Burges, and A.J.Smola,editors,Advances in Kernel Methods—Support Vector Learning,Cambridge,MA,1998.MIT Press.
[5]Chih—Chung Chang and Chih—Jen Lin,LIBSVM:a library for support vector machines[J].2001. [6]VladimirN.Vapnik统计学习理论的本质[M].北京:清华大学出版社,2000.
(5)如果i:(i:)是Y。Vf(云):降序序列里从top(bottom)部选取的第一个元素,则),‘V,(a)i,= Y。.V,(五)。
(6)vf(a)71d=0. 这个证明目前存在的缺陷是在第(3)步的证明过程中应用到了一个假设:矩阵Q满足 min(min(eig(QⅡ)))>0,rain(eig(.))是矩阵的最小特征值,,是{1,…,f}的任意子集,并且l,l≤q.
1 3· 3.4
工作集缩减
LIBSVM采用算法2进行工作集选取时q的取值足够大,即取到两个序列相遇或只隔一个元素为
止.当工作集选定以后,在此工作集内采用SMO算法进行迭代解决关于d。的二次式.LIBSVM设定一
wenku.baidu.com
个域值min(f,1 000).当迭代次数到达此域值时,就对取边界值的口.进行判断.如果其满足KKT条件,
此算法的一个重要议题是每次迭代时工作集B的选取.Joachims在他的算法中采用了Zoutendijk
方法,就是找一个恰有I B 1个分量,且使目标函数(2)下降速度最快的方向d,然后用d的这些非零分
量的下标组成工作集B.确切地说,考虑如下的优化问题:
rain Vf(a‘)7d. yrd=0,一1≤df≤1,i=1,…,Z.
(30)
di≥0,if(Ol‘);=0,d。≤0,if(OtK);=C.
(3b)
I{di di≠0}I≤q.
(3 c)
八口)=喜,JQa—eo,nK为第K次迭代时口的值.v“口‘)为第K次迭代时V厂(口)的梯度.工作集
的选取算法如下(算法2): (1)降序排列Yi vf(a‘)i. (2)设di:一Y。,从序列的顶部依次往后选取q/2个元素,要求入选的元素满足0<a。<C或者
3.1 算法总体方案 LIBSVM库b 3总体采用Decomposition算法.当算法2选取工作集B后,它采用SMO方法解决关于 d。的二次式. 3.2 问题的统一表示 LIBSVM根据5种学习机相应的对偶问题及其约束条件的差异将其分为两大类,每一大类采用统 一的问题表示方式.第一类包括C—SVC、One Class—SVC和e—SVR.这3种学习机的对偶问题及其 约束条件统一表示为:
0≤af≤C,i=1,…Z.
(1)
),T口=0.
e是一个都为1的向量,c为参数的上界,Q为正定或半正定矩阵.训练向量置通过函数垂映射
到高维空间,QF=YiyiK(戈;,誓),K(茗;,巧)=西7(戈i)西(巧)为核函数.矩阵Q的大小是样本数量的平 方,处理Q需要耗费大量的计算和存储资源.为了解决这个问题,Qsuna、Joaehims、Platt等提出了分解 算法心’4】,它的基本思想是(算法1):
[摘 要]介绍了支持向量机(SVM)中广泛采用的算法——分解算法,总结了其收敛性证明的 总体思路并对目前最流行的SVM算法库LIBSVM进行了详细的分析与研究. [关键词]支持向量机;分解算法;LIBSVM [中图分类号]TP301.6 [文献标识码]A [文章编号]1671—7538(2005)03—0015—04
4展望 Decomposition和SMO算法与Newton—PCG等相比,在算法效率和所能处理的样本数量上有了很大 提高,但仍然不能处理大规模数据.目前,用SVM进行大数据挖掘普遍采用的方法是先对数据进行聚 类,用聚类中心代表其它样本进行训练,获得先验知识;然后判断各样本点距离超平面的距离.距离 低于一定域值的样本点直接参与下一次训练,距离高于一定域值的样本点则由其所属类的质心代表 参与训练,迭代进行训练直至满足某一条件为止.但是,这种方法只适用于线性可分的样本,如果样 本通过核函数映射到高维空间的话,由于聚类这个函数不是同构的,这种办法就行不通了.这些问题 还有待于我们解决.
上述事实迫使人们寻找提高算法运行速度及降低存储需求的新方法.目前最著名也最常被使用 的算法是分解算法(decomposition)和序列最小最优化方法(SMO).这两种算法都利用了支持向量机的 良好特性:解的稀疏性和最优化问题的凸性.
1分解算法简介 训练SVM的本质是解决一个二次规划问题:
min{口7伽一er口,
(1)给定工作集中元素个数l B I:q≤z(g为偶数)及精度要求e,取初始点口1:f%I,令k: 、口Ⅳ, 1.
(2)如果a‘是问题的最优解,则停止.否则,重新寻找工作集B C{1,…,f},I B I=q,定义N= {1,…,z}/B,定义口;、a:为向量口5的子向量,它们分别对应B和Ⅳ.
(3)求解关于d。的二次式:
27丁1 c口r,c a’,7,(一善一孑)(:+)+c eer+彳r,£er一。7,(:+)suⅥect t。
y7f a。)=o,0≤Or"t,口?≤c,£:”一,f.
(6)
第二类包括口一SVC、口一SVR两种学习机,它们的统一表示方式为:
min百1 t7/"∞+p7口,
0≤a。≤C,t=1,…,Z.
相关文档
最新文档