支持向量机算法学习总结.docx
- 文档编号:27224087
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:11
- 大小:137.20KB
支持向量机算法学习总结.docx
《支持向量机算法学习总结.docx》由会员分享,可在线阅读,更多相关《支持向量机算法学习总结.docx(11页珍藏版)》请在冰豆网上搜索。
支持向量机算法学习总结
题目:
支持向量机的算法学习
姓名:
学号:
专业:
指导教师:
、
日期:
2012年6月20日
支持向量机的算法学习
1・理论背景
基于数据的机器学习是现代智能技术中的重要方面,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测。
迄今为止,尖于机器学习还没有一种被共同接受的理论框架,尖于其实现方法大致可以分为三种:
第一种是经典的(参数)统计估计方法。
包括模式识别、神经网络等在内,现有机器学习方法共同的重要理论基础之一是统计学。
参数方法正是基于传统统计学的,在这种方法中,参数的相尖形式是已知的,训练样本用来估计参数的值。
这种方法有很大的局限性,首先,它需要已知样本分布形式,这需要花费很大代价,还有,传统统计学研究的是样本数目趋于无穷大时的渐近理论,现有学习方法也多是基于此假设。
但在实际问题中,样本数往往是有限的,因此一些理论上很优秀的学习方法实际中表现却可能不尽人意。
第二种方法是经验非线性方法,如人工神经网络(ANN。
这种方法利用已知样本建立非线性模型,克服了传统参数估计方法的困难。
但是,这种方法缺乏一种统一的数学理论。
与传统统计学相比,统计学习理论(StatisticalLearningTheory或SLT)是一种专门研究小样本情况下机器学习规律的理论。
该理论针对小样本统计问题建立了一套新的理论体系,在这种体系下的统计推理规则不仅考虑了对渐近性能的要求,而且追求在现有有限信息的条件下得到最优结果。
V.Vapnik等人从六、七十年代开始致力于此方面研究[1]到九十年代中期,随着其理论的不断发展和成熟,也由于神经网络等学习方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视。
统计学习理论的一个核心概念就是VC维(VCDimension)概念,它是描述函数集或学习机器的复杂性或者说是学习能力(Capacityofthemachine)的一个重要指标,在此概念基础上发展出了一系列尖于统计学习的一致性(Consistency)、收敛速度、推广性能(Generalizationperformance)等的重要结论。
支持向量机方法是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以
期获得最好的推广能力(GeneralizatinAbility)。
支持向量机方法的几个主要优
点有:
1•它是专门针对有限样本情况的,其目标是得到现有信息下的最优解而不仅仅是样本数趋于无穷大时的最优值;2•算法最终将转化成为一个二次型寻优问题,从理论上说,得到的将是全局最优点,解决了在神经网络方法中无法避免的局部极值问题;3•算法将实际问题通过非线性变换转换到高维的特征空间(FeatureSpace),在高维空间中构造线性判别函数来实现原空间中的非线性判另【J函数,特殊性质能保证机器有较好的推广能力,同时它巧妙地解决了维数问题,其算法复杂度与样本维数无尖;
在SVM方法中,只要定义不同的内积函数,就可以实现多项式逼近、贝叶斯分类器、径向基函数(RadialBasicFunction或RBF)方法、多层感知器网络等许多现有学习算法。
2•方法
SVM是从线性可分情况下的最优分类面发展而来的,基本思想可用图1的两
维情况说明。
图中,实心点和空心点代表两类样本,H为分类线,H1、H2分别为过各类中离分类线最近的样本且平行于分类线的直线,它们之间的距离叫做分类间隔(margin)。
所谓最优分类线就是要求分类线不但能将两类正确分开(训练错误率为0),而且使分类间隔最大。
分类线方程为xw+b=0,我们可以对它进行归一化,使得对线性可分的样本集3,%n=1,...n,x・Rd,*{4-1},满足
yi[(wxjb]-1_0,i=1,,n
(1)
2
此时分类间隔等于2/||W|,使间隔最大等价于使IWI最小。
满足条件⑴且使
"WIF最小的分类面就叫做最优分类面,H1、H2上的训练样本点就称作支持向量。
利用Lagrange优化方法可以把上述最优分类面问题转化为其对偶问题,
即:
在约束条件
(2a)
(2b)
F对ai求解下列函数的最大值:
a为原问题中与每个约束条件
(1)对应的Lagrange乘子。
这是一个不等式约束下二次函数寻优的问题,存在唯一解。
容易证明,解中将只有一部分(通常是少部分)a不为零,对应的样本就是支持向量。
解上述问题后得到的最优分类函数是
L•]
f(x)=sgn{(wx)b}=sgn'ay(xx)b*
Ii4J
式中的求和实际上只对支持向量进行。
b•是分类阈值,可以用任一个支持向量
(满足
(1)中的等号)求得,或通过两类中任意一对支持向量取中值求得。
图土1绘优超平面
Figure2.iTheOpiimaiHyperplane
对非线性问题,可以通过非线性变换转化为某个高维空间中的线性问题,在变换空间求最优分类面。
这种变换可能比较复杂,因此这种思路在一般情况下不易实现。
但是注意到,在上面的对偶问题中,不论是寻优目标函数(3)还是分类
函数⑷都只涉及训练样本之间的内积运算匕xj)。
设有非线性映射:
E>H将输入空间的样本映射到高维(可能是无穷维)的特征空间H中。
当在特征空间H中构造最优超平面时,训练算法仅使用空间中的点积,即门Xj計Xj,而没有
单独的GXj出现。
因此,如果能够找到一个函数K使得
K(x,X=Pi(xr),这样,在高维空间实际上只需进行内积运算,而这种
内积运算是可以用原空间中的函数实现的,我们甚至没有必要知道变换①的形
式。
根据泛函的有尖理论,只要一种核函数K(x「Xj)满足Mercer条件,它就对应某一变换空间中的内积。
因此,在最优分类面中采用适当的内积函数K(Xj,Xj)就可以实现某一非线性变换后的线性分类,而计算复杂度却没有增加,此时目标函数(3)变为:
n[n
max'aj--vajajAyjKAXj)
a
2..—*
Ii,J—
⑸
而相应的分类函数也变为
fn•
f(x)=sgn{(wx)b}=sgn1
*1
x)b
⑹
liT
J
这就是支持向量机。
这一特点提供了解决算法可能导致的“维数灾难”问题的方法:
在构造判别函数时,不是对输入空间的样本作非线性变换,然后在特征空间中求解;而是先在输入空间比较向量(例如求点积或是某种距离),对结果再作非线性变换。
这样,大的工作量将在输入空间而不是在高维特征空间中完成。
SVM分类函数形式上类
似于一个神经网络,输出是S中间节点的线性组合,每个中间节点对应一个支持向量,如图2所示。
输出(决策规也h
r=sgn(ylaf)K(xb)
WffL«(J;
基f・s个支持向Mx,申,…,w的菲
44*-kl-KirrInrftJ\
图2支持向量机示意图
函数K称为点积的卷积核函数,它可以看作衽样本之间定义的一种距离。
显然,上面的方法在保证训练样本全部被正确分类,即经验风险Remp为0的前提下,通过最大化分类间隔来获得最好的推广性能。
如果希望在经验风险和推广性能之间求得某种均衡,可以通过引入正的松弛因子i来允许错分样本的存在。
这时,约束
(1)变为
yi[(wx)+b]—1i—0,i=1;,n
以写成:
Maximize:
max'aJ'®ajyiyjK(XjXj)(8)
a2••工
l'.J士
n
s.t*用=0(9a)
I
0-aj・Ci=1,,n(9b)
这就是SVM方法的最一般的表述。
为了方便后面的陈述,这里我们对对偶问题的最优
解做一些推导。
定义
w(a)二為yia(xj
(10)
(11)
F=w(a)(xj—y=為ajyjK(XjXj)沖
J
对偶问题的Lagrange函数可以写成:
1
(12)
Lw(a)w(a)・'a」、冋•,叫(耳・C)為asyi
2iii
3.SVM算法中目前的研究状况
由于SVM方法较好的理论基础和它在一些领域的应用中表现出来的优秀的
推广性能,近年来,许多尖于SVM方法的研究,包括算法本身的改进和算法的实际应用,都陆续提了出来。
尽管SVM算法的性能在许多实际问题的应用中得到了验证,但是该算法在计算上存在着一些问题,包括训练算法速度慢、算法复杂而难以实现以及检测阶段运算量大等等。
传统的利用标准二次型优化技术解决对偶问题的方法可能是训练算法慢的主要原因:
首先,SVM方法需要计算和存储核函数矩阵,当样本点数目较大时,需要很大的内存,例如,当样本点数目超过4000时,存储核函数矩阵需要多达128兆内存;其次,SVM在二次型寻优过程中要进行大量的矩阵运算,多数情况下,寻优算法是占用算法时间的主要部分。
SVM方法的训练运算速度是限制它的应用的主要方面,近年来人们针对方法本身的特点提出了许多算法来解决对偶寻优问题。
大多数算法的一个共同的思想就是循环迭代:
将原问题分解成为若干子问题,按照某种迭代策略,通过反复求解子问题,最终使结果收敛到原问题的最优解。
根据子问题的划分和迭代策略的不同,又可以大致分为两类。
第一类是所谓的“块算法”(chunkingalgorithm)。
“块算法”基于的是这样一个事实,即去掉Lagrange乘子等于零的训练样本不会影响原问题的解。
对于给定的训练样本集,如果其中的支持向量是已知的,寻优算法就可以排除非支持向量,只需对支持向量计算权值(即Lagrange乘子)即可。
实际上支持向量是未知的,因此“块算法”的目标就是通过某种迭代方式逐步排除非支持向量。
具体的作法是,选择一部分样本构成工作样本集进行训练,剔除
其中的非支持向量,并用训练结果对剩余样本进行检验,将不符合训练结果(一般是指违反KKT条件)的样本(或其中的一部分)与本次结果的支持向量合并成为一个新的工作样本集,然后重新训练。
如此重复下去直到获得最优结果。
当支持向量的数目远远小于训练样本数目时,“块算法”显然能够大大提高运算速度。
然而,如果支持向量的数目本身就比较多,随着算法迭代次数的增多,工作样本集也会越来越大,算法依旧会变得十分复杂。
因此第二类方法把问题分解成为固定样本数的子问
题:
工作样本集的大小固定在算法速度可以容忍的限度
内,迭代过程中只是将剩余样本中部分“情况最糟的样本”与工作样本集中的样本进行等量交换,即使支持向量的个数超过工作样本集的大小,也不改变工作样本集的规模,而只对支持向量中的一部分进行优化。
固定工作样本集的方法和块算法的主要区别在于:
块算法的目标函数中仅包含当前工作样本集中的样本,而
固定工作样本集方法虽然优化变量仅包含工作样本,其目标函数却包含整个训练样本集,即工作样本集之外的样本的Lagrange乘子固定为前一次迭代的结果,而不是像块算法中那样设为0。
而且固定工作样本集方法还涉及到一个确定换出样本的问题(因为换出的样本可能是支持向量)。
这样,这一类算法的尖键就在于找到一种合适的迭代策略使得算法最终能收敛并且较快地收敛到最优结果。
固定工作样本集的方法最早大概是由Osunaetal提出的。
其中,Edgar
Osunal等人介绍了一种具体的算法并对人脸识别问题进行了实验。
将样本集分为两个集合B和N,集合B作为子问题工作样本集进行SVM训练,集合N中所有样本的Lagrange乘子均置为零。
显然,如果把集合B中对应Lagrange乘子为零的样本i(即冷二0,LB)与集合N中的样本j(即:
=O,jB)交换,不会改变子问题与原问题的可行性(即仍旧满足约束条件);而且,当且仅
当样本满足条件(FlJy:
_0时,替换后的子问题的最优解不变。
于是可以按照以下步骤迭代求解:
1•选择集合B,构造子问题;2•求子问题最优解:
0,rB及b,并置:
0,jN;3•计算Fj,jN找出其中不满足条件(R-「)y」0的样本j,与B中满足:
0的样本i交换,构成新的子问题。
并且证明了这种迭代算法的收敛性,并给出了两阶多项式分类器在人脸识别问题中的应用结果。
需要说明的是,文中没有说明集合B的大小是否改变。
作者期望的是支持向量的数目非常少,当然可以固定B的大小,作者的意图正是如此。
不过为此需要选择一个较大的B集合,这样看来,其效率可能还不如块算法。
而且如果如果集合B不足以包括所有的支持向量,该算法没有提出改变B的大小的策
略,有可能得不到结果。
前面提到,固定工作样本集方法的尖键在于选择一种合适的换入换出策略。
Joachims指出如果采用某种启发式的迭代策略将会提高算法的收敛速度。
最近JohnC.Platt提出SMO(SequentialMinimalOptimization或SMO算法。
将工作样本集的规模减到最小两个样本。
之
所以需要两个样本是因为等式线性约束的存在使得同时至少有两个Lagrange
乘子发生变化。
由于只有两个变量,而且应用等式约束可以将其中一个用另一个表示出来,所以迭代过程中每一步的子问题的最优解可以直接用解析的方法求出来。
这样,算法避开了复杂的数值求解优化问题的过程;此外,Platt还设计了一个两层嵌套循环分别选择进入工作样本集的样本,这种启发式策略大大加快了算法的收敛速度。
标准样本集的实验结果证明,SMO表现出在速度方面的良好性能。
子问题的规模和迭代的次数是一对矛盾,SMO将工作样本集的规模减少到2,一个直接的后果就是迭代次数的增加。
所以SMO实际上是将求解子问题的耗费转嫁到迭代上,然后在迭代上寻求快速算法。
但是,SMO迭代策略的思想是可以用到其他迭代算法中的,可见,SMO还有改进的余地。
SMO在实际应用中取得了较好的效果,但它也存在着一些问题。
SMO算法每次
迭代都要更新B值,但是该值有可能是无法确定的(例如不存在0:
:
:
冷:
:
:
C的样本,尽管这种情况很少出现),这时SMO采用的方法是确定出B的上下界然后取平均值;另外,每一次迭代过程中的B值仅取决于上次迭代结果的两个变量的最优值,用这个B值判断样本是否满足迭代结果,这就可能存在某些达到最优值的样本却不满足KKT条件的情况,从而影响了该算法的效率。
解决算法速度问题的另一个途径是采用序列优化的思想。
这种方法主要目的是研究当出现新的单个样本时,它与原有样本集或其子集,或是原有样本集训练结果的尖系,例如,它的加入对原有样本集的支持向量集有什么样的影响,怎样迅速地确定它对新的分类器函数的贡献等等。
4.总结
支持向量机理论是一种新的模式识别方法,它是基于统计学习理论基础上的,它较好的解决了小样本学习的问题。
和以往的一些机器学习方法相比,它具有较为完备的理论框架,能获得全局最小点以及较强的推广性,因此成为一种新兴的机器学习方法,具有良好的潜在应用价值和发展前景。
而对算法的研究,包括算法本身的改进和算法的实际应用成为支持向量机理论一个重要问题之一。
本文只对
现有的算法进行了描述与学习研究,希望以后对SVM学习算法进行研究并改进,期望的得到好的结论。
4•参考文献
[1]•邓乃扬,田英杰•数据挖掘中的新方法一支持向量机[M].北京:
科学出版社,2004.
[2]J.C.Burges.ATutorialonSupportVectorMachinesforPatternRecognition.Bell
Laboratories,LucentTechnologies.1997・
[3]V.Vapnik.NatureofStatisticalLearningTheory.JohnWileyand
Sonsjnc.,NewYork,inpreparation.
[4]S.S.Keerthietal.ImprovementstoPlatt'sSMOAlgorithmforSVMClassifierDesign.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 支持 向量 算法 学习 总结