SVM(Support Vector Machine)支持向量机相关理论介绍基于数据的机器学习是现代智能技术中的重要方面,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测。
迄今为止,关于机器学习还没有一种被共同接受的理论框架,关于其实现方法大致可以分为三种[3]:第一种是经典的(参数)统计估计方法。
包括模式识别、神经网络等在内,现有机器学习方法共同的重要理论基础之一是统计学。
参数方法正是基于传统统计学的,在这种方法中,参数的相关形式是已知的,训练样本用来估计参数的值。
这种方法有很大的局限性。
首先,它需要已知样本分布形式,这需要花费很大代价,还有,传统统计学研究的是样本数目趋于无穷大时的渐近理论,现有学习方法也多是基于此假设。
但在实际问题中,样本数往往是有限的,因此一些理论上很优秀的学习方法实际中表现却可能不尽人意。
第二种方法是经验非线性方法,如人工神经网络(ANN)。
这种方法利用已知样本建立非线性模型,克服了传统参数估计方法的困难。
但是,这种方法缺乏一种统一的数学理论。
与传统统计学相比,统计学习理论(Statistical Learning Theory或SLT)是一种专门研究小样本情况下机器学习规律的理论。
该理论针对小样本统计问题建立了一套新的理论体系,在这种体系下的统计推理规则不仅考虑了对渐近性能的要求,而且追求在现有有限信息的条件下得到最优结果。
V. Vapnik等人从六、七十年代开始致力于此方面研究,到九十年代中期,随着其理论的不断发展和成熟,也由于神经网络等学习方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视。
统计学习理论的一个核心概念就是VC维(VC Dimension)概念,它是描述函数集或学习机器的复杂性或者说是学习能力(Capacity of the machine)的一个重要指标,在此概念基础上发展出了一系列关于统计学习的一致性(Consistency)、收敛速度、推广性能(Generalization Performance)等的重要结论。
统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架。
它能将很多现有方法纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极小点问题等);同时,这一理论基础上发展了一种新的通用学习方法──支持向量机(Support Vector Machine或SVM),已初步表现出很多优于已有方法的性能。
一些学者认为,SLT和SVM正在成为继神经网络研究之后新的研究热点,并将推动机器学习理论和技术有重大的发展。
支持向量机方法是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力(Generalizatin Ability)。
支持向量机方法的几个主要优点有:1. 它是专门针对有限样本情况的,其目标是得到现有信息下的最优解而不仅仅是样本数趋于无穷大时的最优值;2. 算法最终将转化成为一个二次型寻优问题,从理论上说,得到的将是全局最优点,解决了在神经网络方法中无法避免的局部极值问题;3. 算法将实际问题通过非线性变换转换到高维的特征空间(Feature Space),在高维空间中构造线性判别函数来实现原空间中的非线性判别函数,特殊性质能保证机器有较好的推广能力,同时它巧妙地解决了维数问题,其算法复杂度与样本维数无关;在SVM方法中,只要定义不同的内积函数,就可以实现多项式逼近、贝叶斯分类器、径向基函数(Radial Basic Function或RBF)方法、多层感知器网络等许多现有学习算法。
统计学习理论从七十年代末诞生,到九十年代之前都处在初级研究和理论准备阶段,近几年才逐渐得到重视,其本身也趋向完善,并产生了支持向量机这一将这种理论付诸实现的有效的机器学习方法。
目前,SVM算法在模式识别、回归估计、概率密度函数估计等方面都有应用。
例如,在模式识别方面,对于手写数字识别、语音识别、人脸图像识别、文章分类等问题,SVM算法在精度上已经超过传统的学习算法或与之不相上下。
目前,国际上对这一理论的讨论和进一步研究逐渐广泛,而我国国内尚未在此领域开展研究,因此我们需要及时学习掌握有关理论,开展有效的研究工作,使我们在这一有着重要意义的领域中能够尽快赶上国际先进水平。
由于SLT理论和SVM方法尚处在发展阶段,很多方面尚不完善,比如:许多理论目前还只有理论上的意义,尚不能在实际算法中实现;而有关SVM算法某些理论解释也并非完美(J.C.Burges在[2]中就曾提到结构风险最小原理并不能严格证明SVM 为什么有好的推广能力);此外,对于一个实际的学习机器的VC维的分析尚没有通用的方法;SVM方法中如何根据具体问题选择适当的内积函数也没有理论依据。
因此,在这方面我们可做的事情是很多的。
相关资源SVM的英文主站,/Support Vector Machine 作者的站点piaip 的(lib)SVM 簡易入門/~piaip/svm/svm_tutorial.html林智仁(cjlin)老師的libsvm for matlabLIBSVM — A Library for Support Vector MachinesChih-Chung Chang and Chih-Jen Lin1. SVM的优势(1)可以解决小样本情况下的机器学习问题(2)可以提高泛化性能(3)可以解决高维问题(4)可以解决非线性问题(5)可以避免神经网络结构选择和局部极小点问题2. SVM的研究热点(1)模式识别(2)回归估计(3)概率密度估计3. SVM的主要核函数(1)多项式核函数(2)径向基核函数(3)Sigmoid核函数4. SVM的应用(1)文本分类(2)人脸识别(3)三维物体识别(4)遥感图像分析(5)函数逼近(6)时间序列预测(7)数据压缩(8)优化SVM算法(9)SVM改进方法(10)SVM 硬件实现5. SVM 的难点(1)如何在非监督模式识别问题中应用统计学习理论(SLT )(2)如何用理论或实验的方法计算VC 维(3)经验风险和实际风险之间的关系称之为推广性的界,但是当(h/n)>0.37时(h —VC 维,n —样本数),推广性的界是松弛的,如何寻找一个更好地反映学习机器能力的参数和得到更紧的界(4)实现结构风险最小化(SRM )时,如何选择函数子集结构vc 维的本质和结构风险最小化VC 维在有限的训练样本情况下,当样本数 n 固定时,此时学习机器的 VC 维越高学习机器的复杂性越高。
VC 维反映了函数集的学习能力,VC 维越大则学习机器越复杂(容量越大)。
所谓的结构风险最小化就是在保证分类精度(经验风险)的同时,降低学习机器的 VC 维,可以使学习机器在整个样本集上的期望风险得到控制。
推广的界(经验风险和实际风险之间的关系,注意引入这个原因是什么?因为训练误差再小也就是在这个训练集合上,实际的推广能力不行就会引起过拟合问题还。
所以说要引入置信范围也就是经验误差和实际期望误差之间的关系):期望误差()()Re n R mp h ωω⎛⎫≤+Φ ⎪⎝⎭。
注意()Re mp ω是经验误差也就是训练误差(线性中使得所有的都训练正确),n h ⎛⎫Φ ⎪⎝⎭是置信范围,它是和样本数和VC 维有关的。
上式中置信范围Φ随n h 增加,单调下降。
即当n h较小时,置信范围Φ较大,用经验风险近似实际风险就存在较大的误差,因此,用采用经验风险最小化准则,取得的最优解可能具有较差的推广性;如果样本数较多,n h较大,则置 信范围就会很小,采用经验风险最小化准则,求得的最优解就接近实际的最优解。
可知:影响期望风险上界的因子有两个方面:首先是训练集的规模 n ,其次是 VC 维 h 。
可见,在保证分类精度(经验风险)的同时,降低学习机器的 VC 维,可以使学习机器在整个样本集上的期望风险得到控制,这就是结构风险最小化(Structure Risk Minimization ,简称 SRM )的由来。
在有限的训练样本情况下,当样本数n 固定时,此时学习机器的 VC 维越高(学习机器的复杂性越高),则置信范围就越大,此时,真实风险与经验风险之间的差别就越大,这就是为什么会出现过学习现象的原因。
机器学习过程不但 要使经验风险最小,还要使其 VC 维尽量小,以缩小置信范围,才能取得较小的实际风险,即对未来样本有较好的推广性,它与学习机器的 VC 维及训练样本数有关。
线性可分的问题就是满足最优分类面的面要求分类面不但能将两类样本正确分开(训练错误率为 0),而且要使两类的分类间隔最大(这个是怎么回事呢?原来是有根据的,这个让俺郁闷了好久呢。
在 d 间隔下,超平面集合的 VC 维h 满足下面关系:21h f d ⎛⎫= ⎪⎝⎭其中, ()f ⋅是单调增函数,即h 与d 的平方成反比关系。
因此,当训练样本给定时,分类间隔越大,则对应的分类超平面集合的 VC 维就越小。
)。
根据结构风险最小化原则,前者是保证经验风险(经验风险和期望风险依赖于学习机器函数族的选择)最小,而后者使分类间隔最大,导致 VC 维最小,实际上就是使推广性的界中的置信范围最小,从而达到使真实风险最小。
注意:置信范围大说明真实风险和经验风险的差别较大。
解释到这里了,终于有点眉目了,原来就是这么回事啊,真是的。
总结一下就是训练样本在线性可分的情况下,全部样本能被正确地分类(这个不就是传说中的()1i i i y x b ω⋅⋅+≥的条件吗),即经验风险Re mp 为 0 的前提下,通过对分类间隔最大化(这个就是()2112w w ⎛⎫Φ= ⎪⎝⎭嘛),使分类器获得最好的推广性能。
那么解释完线性可分了,我们知道其实很多时候是线性不可分的啊,那么有什么区别没有啊?废话区别当然会有啦,嘿嘿那么什么是本质的区别啊?本质的区别就是 不知道是否线性可分但是允许有错分的样本存在(这个咋回事还是没明白hoho )但是正是由于允许存在错分样本,此时的软间隔分类超平面表示在剔除那些错分 样本后最大分类间隔的超平面。
这里就出现了新词松驰因子,干吗用滴?就是用来控制错分样本的啊。
这样的话经验风险就要跟松驰因子联系在一起了。
而C 就是松 驰因子前面的系数,0C >是一个自定义的惩罚因子,它控制对错分样本惩罚的程度,用来控制样本偏差与机器推广能力之间的折衷。
C 越小,惩罚越小,那么训练误差就越大,使得结构风险 也变大,而C 越大呢,惩罚就越大,对错分样本的约束程度就越大,但是这样会使得第二项置信范围的权重变大那么分类间隔的权重就相对变小了,系统的泛化能力就变差了。