您的位置:首页 > 其它

关于SVM的简单理解

2013-04-11 09:04 295 查看
SVM(支持向量机),最早是由统计学习大牛Vapnik(VC维的第一个V就是指Vapnik)于1992年提出的,目前是机器学习领域使用最广泛,性能最好的分类器之一。

SVM是机器学习领域对分类器扩展性能尤其是小样本条件下理论发展的结果。它的特点是,基于结构性风险最小,扩展性能强,尤其是小样本条件下扩展性能好。缺点是,由于是两类分类器,对于多类问题时,使用较麻烦,此外,如果支持向量数目太多或者特征数目太多,尤其是采用核函数时,处理速度较慢。网络上常用的库为LibSVM和SVMLight。此外,Matlab和Opencv也提供SVM工具。

SVM的最基本思想,是假定样本线性可分,目标是寻找最大化分类间隔,即使得样本分开的两个分类界面之间的距离最小。而样本到线性界面的距离可以表述为|T(W)*X+B|/|W|,其中X为距离分类界面最近的样本,由于分子分母都含有|W|,则可以限定|T(W)*X+B|为常数,从而该问题变为极小化1/|W|,约束条件为Y*(T(W)*X+b)>=1。此问题为线性约束条件下的二次优化问题,可以采用二次规划方法进行求解。而上述线性约束条件条件,在求解的对偶问题时,都对应一个拉格朗日系数a。最终解的形式为W=求和a*Y*x,x为a系数不为零的支持向量。

对于线性不可分的问题,增加一个惩罚因子e,优化目标变为0.5*T(W)*W+C*sum(e)极小化,并且,Y*(T(W)*X+b)>=1-e。转化为对偶问题时,和线性的区别在于对于拉格朗日系数a,增加了一个约束a》=0并且a《=C。最终解的形式还是W=sum(a*y*x),x为支持向量。

在求解和判定过程中,发现只会出现X(i)点击X(j)的情况。因此,可以如下方便的引入核函数来解决线性不可分的情况。相当于将原有空间的样本,经过非线性转换为高维空间的样本,从而在高维中可分。常用的核函数包括:RBF,多项式,sigmoid等。核函数定义如下:





其中,双曲正切 tanh(x)=[e^x-e^(-x)]/[e^x+e^(-x)]

对于核函数的选择,Libsvm建议采用RBF。原因,相对线性核而言,RBF是非线性核,能够解决线性不可分问题,同时,线性核是RBF核的一个特例;相对多项式核,多项式核具有更多的参数,而RBF核参数较少,同时,数值问题没有多项式核严重;相对Sigmoid核,在Sigmoid的某些参数下,其表现和RBF核很像。因此,综合,一般可以先采用RBF核。

而除了分类,SVM还存在回归,分布估计( one-class-SVM )等版本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: