支持向量机 SVM(下)

支持向量机 SVM(下)
支持向量机 SVM(下)

支持向量机SVM(下)

JerryLead

csxulijie@https://www.360docs.net/doc/e19894536.html,

2011年3月17日星期四7 核函数(Kernels)

考虑我们最初在“线性回归”中提出的问题,特征是房子的面积x,这里的x是实数,结果y是房子的价格。假设我们从样本点的分布中看到x和y符合3次曲线,那么我们希望使用x的三次多项式来逼近这些样本点。那么首先需要将特征x扩展到三维(x,x2,x3),然后寻找特征和结果之间的模型。我们将这种特征变换称作特征映射(feature mapping)。映射函数称作?,在这个例子中

?(x)=[x

x2

x3

]

我们希望将得到的特征映射后的特征应用于SVM分类,而不是最初的特征。这样,我们需要将前面x 公式中的内积从,映射到

至于为什么需要映射后的特征而不是最初的特征来参与计算,上面提到的(为了更好地拟合)是其中一个原因,另外的一个重要原因是样例可能存在线性不可分的情况,而将特征映射到高维空间后,往往就可分了。(在《数据挖掘导论》Pang-Ning Tan等人著的《支持向量机》那一章有个很好的例子说明)

将核函数形式化定义,如果原始特征内积是,映射后为,那么定义核函数(Kernel)为

K(x,z)= ?(x)?(z)

到这里,我们可以得出结论,如果要实现该节开头的效果,只需先计算?(x),然后计算 ?(x)?(z)即可,然而这种计算方式是非常低效的。比如最初的特征是n维的,我们将其映射到n2维,然后再计算,这样需要O(n2)的时间。那么我们能不能想办法减少计算时间呢?

先看一个例子,假设x和z都是n维的,

K(x,z)=(x z)2

展开后,得

K(x,z)=(x z)2=(∑x i z i

n

i=1)(∑x j z j

n

j=1

)=∑∑x i

n

j=1

x j z i z j

n

i=1

=∑∑(x i

n

j=1x j)(z i z j)

n

i=1

= ?(x)?(z)

这个时候发现我们可以只计算原始特征x和z内积的平方(时间复杂度是O(n)),就等价与计算映射后特征的内积。也就是说我们不需要花O(n2)时间了。

现在看一下映射函数(n=3时),根据上面的公式,得到

也就是说核函数K(x,z)=(x z)2只能在选择这样的?作为映射函数时才能够等价于映射后特征的内积。

再看一个核函数

对应的映射函数(n=3时)是

更一般地,核函数K(x,z)=(x z c)d对应的映射后特征维度为(n d

d

)。(这个我一直

没有理解)。

由于计算的是内积,我们可以想到IR中的余弦相似度,如果x和z向量夹角越小,那么核函数值越大,反之,越小。因此,核函数值是?(x)和?(z)的相似度。

再看另外一个核函数

这时,如果x和z很相近(||x?z||≈0),那么核函数值为1,如果x和z相差很大(||x?z||?0),那么核函数值约等于0。由于这个函数类似于高斯分布,因此称为高斯核函数,也叫做径向基函数(Radial Basis Function 简称RBF)。它能够把原始特征映射到无穷维。

既然高斯核函数能够比较x和z的相似度,并映射到0到1,回想logistic回归,sigmoid 函数可以,因此还有sigmoid核函数等等。

下面有张图说明在低维线性不可分时,映射到高维后就可分了,使用高斯核函数。

来自Eric Xing的slides 注意,使用核函数后,怎么分类新来的样本呢?线性的时候我们使用SVM学习出w和b,新来样本x的话,我们使用 x 来判断,如果值大于等于1,那么是正类,小于等于是负类。在两者之间,认为无法确定。如果使用了核函数后, x 就变成了?(x),是否先要找到?(x),然后再预测?答案肯定不是了,找?(x)很麻烦,回想我们之前说过的

只需将替换成K(x(i),x),然后值的判断同上。

8 核函数有效性判定

问题:给定一个函数K,我们能否使用K来替代计算 ?(x)?(z),也就说,是否能够找出一个?,使得对于所有的x和z,都有K(x,z)= ?(x)?(z)?

比如给出了K(x,z)=(x z)2,是否能够认为K是一个有效的核函数。

下面来解决这个问题,给定m个训练样本*x(1),x(2),…,x(m)+,每一个x(i)对应一个特征向量。那么,我们可以将任意两个x(i)和x(j)带入K中,计算得到K ij=K(x(i),x(j))。I可以从1到m,j可以从1到m,这样可以计算出m*m的核函数矩阵(Kernel Matrix)。为了方便,我们将核函数矩阵和K(x,z)都使用K来表示。

如果假设K是有效的核函数,那么根据核函数定义

K ij=K(x(i),x(j))= ?(x(i))?(x(j))= ?(x(j))?(x(i))=K(x(j),x(i))=K ji

可见,矩阵K应该是个对称阵。让我们得出一个更强的结论,首先使用符号?k(x)来表示映射函数?(x)的第k维属性值。那么对于任意向量z,得

最后一步和前面计算K(x,z)=(x z)2时类似。从这个公式我们可以看出,如果K是个有效的核函数(即K(x,z)和?(x)?(z)等价),那么,在训练集上得到的核函数矩阵K应该是半正定的(K≥0)

这样我们得到一个核函数的必要条件:

K是有效的核函数==> 核函数矩阵K是对称半正定的。

可幸的是,这个条件也是充分的,由Mercer定理来表达。

集上求出各个K ij,然后判断矩阵K是否是半正定(使用左上角主子式大于等于零等方法)

即可。

许多其他的教科书在Mercer定理证明过程中使用了L2范数和再生希尔伯特空间等概念,但在特征是n维的情况下,这里给出的证明是等价的。

核函数不仅仅用在SVM上,但凡在一个模型后算法中出现了,我们都可以常使

用K(x,z)去替换,这可能能够很好地改善我们的算法。

9 规则化和不可分情况处理(Regularization and the non-separable case)

我们之前讨论的情况都是建立在样例线性可分的假设上,当样例线性不可分时,我们可

以尝试使用核函数来将特征映射到高维,这样很可能就可分了。然而,映射后我们也不能100%保证可分。那怎么办呢,我们需要将模型进行调整,以保证在不可分的情况下,也能

够尽可能地找出分隔超平面。

看下面两张图:

可以看到一个离群点(可能是噪声)可以造成超平面的移动,间隔缩小,可见以前的模型对噪声非常敏感。再有甚者,如果离群点在另外一个类中,那么这时候就是线性不可分了。

这时候我们应该允许一些点游离并在在模型中违背限制条件(函数间隔大于1)。我们设计得到新的模型如下(也称软间隔):

引入非负参数ξi 后(称为松弛变量),就允许某些样本点的函数间隔小于1,即在最大间隔区间里面,或者函数间隔是负数,即样本点在对方的区域中。而放松限制条件后,我们需要重新调整目标函数,以对离群点进行处罚,目标函数后面加上的C ∑ξi m i=1就表示离群点越多,目标函数值越大,而我们要求的是尽可能小的目标函数值。这里的C 是离群点的权重,C 越大表明离群点对目标函数影响越大,也就是越不希望看到离群点。我们看到,目标函数控制了离群点的数目和程度,使大部分样本点仍然遵守限制条件。

模型修改后,拉格朗日公式也要修改如下:

这里的αi 和γi 都是拉格朗日乘子,回想我们在拉格朗日对偶中提到的求法,先写出拉格朗日公式(如上),然后将其看作是变量w 和b 的函数,分别对其求偏导,得到w 和b 的表达式。然后代入公式中,求带入后公式的极大值。整个推导过程类似以前的模型,这里只写出最后结果如下:

此时,我们发现没有了参数ξi ,与之前模型唯一不同在于αi 又多了αi ≤C 的限制条件。需要提醒的是,b 的求值公式也发生了改变,改变结果在SMO 算法里面介绍。先看看KKT

条件的变化:

第一个式子表明在两条间隔线外的样本点前面的系数为0,离群样本点前面的系数为C,而支持向量(也就是在超平面两边的最大间隔线上)的样本点前面系数在(0,C)上。通过KKT 条件可知,某些在最大间隔线上的样本点也不是支持向量,相反也可能是离群点。

10 坐标上升法(Coordinate ascent)

在最后讨论W(α)的求解之前,我们先看看坐标上升法的基本原理。假设要求解下面的优化问题:

这里W是α向量的函数。之前我们在回归中提到过两种求最优解的方法,一种是梯度下降法,另外一种是牛顿法。现在我们再讲一种方法称为坐标上升法(求解最小值问题时,称作坐标下降法,原理一样)。

方法过程:

最里面语句的意思是固定除αi之外的所有αj(j≠ ),这时W可看作只是关于αi的函数,那么直接对αi求导优化即可。这里我们进行最大化求导的顺序i是从1到m,可以通过更改优化顺序来使W能够更快地增加并收敛。如果W在内循环中能够很快地达到最优,那么坐标上升法会是一个很高效的求极值方法。

下面通过一张图来展示:

椭圆代表了二次函数的各个等高线,变量数为2,起始坐标是(2,-2)。图中的直线式迭代优化的路径,可以看到每一步都会向最优值前进一步,而且前进路线是平行于坐标轴的,因为每一步只优化一个变量。

11 SMO优化算法(Sequential minimal optimization)

SMO算法由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优。关于SMO最好的资料就是他本人写的《Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines》了。

我拜读了一下,下面先说讲义上对此方法的总结。

首先回到我们前面一直悬而未解的问题,对偶函数最后的优化问题:

要解决的是在参数*α1,α2,…,αn+上求最大值W的问题,至于x(i)和y(i)都是已知数。C 由我们预先设定,也是已知数。

按照坐标上升的思路,我们首先固定除α1以外的所有参数,然后在α1上求极值。等一下,这个思路有问题,因为如果固定α1以外的所有参数,那么α1将不再是变量(可以由其他值推出),因为问题中规定了

因此,我们需要一次选取两个参数做优化,比如α1和α2,此时α2可以由α1和其他参数表示出来。这样回带到W中,W就只是关于α1的函数了,可解。

这样,SMO的主要步骤如下:

意思是,第一步选取一对αi 和αj ,选取方法使用启发式方法(后面讲)。第二步,固定除αi 和αj 之外的其他参数,确定W 极值条件下的αi ,αj 由αi 表示。

SMO 之所以高效就是因为在固定其他参数后,对一个参数优化过程很高效。

下面讨论具体方法:

假设我们选取了初始值*α1,α2,…,αn +满足了问题中的约束条件。接下来,我们固定*α3,α4,…,αn +,这样W 就是α1和α2的函数。并且α1和α2满足条件:

由于*α3,α4,…,αn +都是已知固定值,因此为了方面,可将等式右边标记成实数值ζ。

当y (1)和y (2)异号时,也就是一个为1,一个为-1时,他们可以表示成一条直线,斜率为

1。如下图:

横轴是α1,纵轴是α2,α1和α2既要在矩形方框内,也要在直线上,因此

L =max(0,α2?α1),H =m n(C,C α2?α1)

同理,当y (1)和y (2)同号时,

L =max(0,α2 α1?C),H =m n(C,α2 α1)

1H2 =ζ

(0,

然后我们打算将α1用α2表示:

然后反代入W中,得

展开后W可以表示成aα22 α2c。其中a,b,c是固定值。这样,通过对W进行求导可以得到α2,然而要保证α2满足L≤α2≤H,我们使用α2new,unclipped表示求导求出来的α2,然而最后的α2,要根据下面情况得到:

这样得到α2new后,我们可以得到α1的新值α1new。

下面进入Platt的文章,来找到启发式搜索的方法和求b值的公式。

这篇文章使用的符号表示有点不太一样,不过实质是一样的,先来熟悉一下文章中符号的表示。

文章中定义特征到结果的输出函数为

与我们之前的x( )实质是一致的。

原始的优化问题为:

求导得到:

经过对偶后为:

s.t.

这里与W函数是一样的,只是符号求反后,变成求最小值了。y和y( )是一样的,都表示第i个样本的输出结果(1或-1)。

经过加入松弛变量ξi后,模型修改为:

由公式(7)代入(1)中可知,

这个过程和之前对偶过程一样。

重新整理我们要求的问题为:

与之对应的KKT条件为:

这个KKT条件说明,在两条间隔线外面的点,对应前面的系数αi为0,在两条间隔线里面的对应αi为C,在两条间隔线上的对应的系数αi在0和C之间。

将我们之前得到L和H重新拿过来:

之前我们将问题进行到这里,然后说将α1用α2表示后代入W中,这里将代入Ψ中,得

其中

这里的α1?和α2?代表某次迭代前的原始值,因此是常数,而α1和α2是变量,待求。公式(24)中的最后一项是常数。

由于α1和α2满足以下公式

y 1α1? y 2α2?=?∑y i αi ?=y 1α1n

i=3

y 2α2

因为αi ?

(i >2)的值是固定值,在迭代前后不会变。 那么用s 表示y 1y 2,上式两边乘以y 1时,变为:

其中

=?y 1∑y i αi ?n

i=3

代入(24)中,得

这时候只有α2是变量了,求导

如果Ψ的二阶导数大于0(凹函数),那么一阶导数为0时,就是极小值了。

假设其二阶导数为0(一般成立),那么上式化简为:

将w 和v 代入后,继续化简推导,得(推导了六七行推出来了)

我们使用η来表示:

通常情况下目标函数是正定的,也就是说,能够在直线约束方向上求得最小值,并且η>0。

那么我们在(30)两边都除以η可以得到

这里我们使用α2new 表示优化后的值,α2是迭代前的值,E i =u i ?y i 。

与之前提到的一样α2new 不是最终迭代后的值,需要进行约束:

那么

在特殊情况下,η可能不为正,如果核函数K不满足Mercer定理,那么目标函数可能变得非正定,η可能出现负值。即使K是有效的核函数,如果训练样本中出现相同的特征x,那么η仍有可能为0。SMO算法在η不为正值的情况下仍有效。为保证有效性,我们可以推导出η就是Ψ的二阶导数,η<0,Ψ没有极小值,最小值在边缘处取到(类比y=?x2),η=0时更是单调函数了,最小值也在边缘处取得,而α2的边缘就是L和H。这样将α2=L和α2=H分别代入Ψ中即可求得Ψ的最小值,相应的α2=L还是α2=H也可以知道了。具体计算公式如下:

至此,迭代关系式除了b的推导式以外,都已经推出。

b每一步都要更新,因为前面的KKT条件指出了αi和y i u i的关系,而u和b有关,在每一步计算出αi后,根据KKT条件来调整b。

b的更新有几种情况:

来自罗林开的ppt 这里的界内指0<αi

前面两个的公式推导可以根据

n

y1α1?y2α2?=?∑y iαi?=y1α1

y2α2

i=3

和对于0<αi

这样全部参数的更新公式都已经介绍完毕,附加一点,如果使用的是线性核函数,我们就可以继续使用w了,这样不用扫描整个样本库来作内积了。

w值的更新方法为:

根据前面的

公式推导出。

12 SMO中拉格朗日乘子的启发式选择方法

终于到了最后一个问题了,所谓的启发式选择方法主要思想是每次选择拉格朗日乘子的时候,优先选择样本前面系数0<αi

这条启发式搜索方法是选择第一个拉格朗日乘子用的,比如前面的α2。那么这样选择的话,是否最后会收敛?可幸的是Osuna定理告诉我们只要选择出来的两个αi中有一个违背了KKT条件,那么目标函数在一步迭代后值会减小。违背KKT条件不代表0<αi

在第一个乘子选择后,第二个乘子也使用启发式方法选择,第二个乘子的迭代步长大致正比于|E1?E2|,选择第二个乘子能够最大化|E1?E2|。即当E1为正时选择负的绝对值最大的E2,反之,选择正值最大的E2。

最后的收敛条件是在界内(0<αi

至于如何写具体的程序,请参考John C. Platt在论文中给出的伪代码。

13 总结

这份SVM的讲义重点概括了SVM的基本概念和基本推导,中规中矩却又让人醍醐灌顶。起初让我最头疼的是拉格朗日对偶和SMO,后来逐渐明白拉格朗日对偶的重要作用是将w 的计算提前并消除w,使得优化函数变为拉格朗日乘子的单一参数优化问题。而SMO里面迭代公式的推导也着实让我花费了不少时间。

对比这么复杂的推导过程,SVM的思想确实那么简单。它不再像logistic回归一样企图去拟合样本点(中间加了一层sigmoid函数变换),而是就在样本中去找分隔线,为了评判哪条分界线更好,引入了几何间隔最大化的目标。

之后所有的推导都是去解决目标函数的最优化上了。在解决最优化的过程中,发现了w 可以由特征向量内积来表示,进而发现了核函数,仅需要调整核函数就可以将特征进行低维到高维的变换,在低维上进行计算,实质结果表现在高维上。由于并不是所有的样本都可分,为了保证SVM的通用性,进行了软间隔的处理,导致的结果就是将优化问题变得更加复杂,然而惊奇的是松弛变量没有出现在最后的目标函数中。最后的优化求解问题,也被拉格朗日对偶和SMO算法化解,使SVM趋向于完美。

另外,其他很多议题如SVM背后的学习理论、参数选择问题、二值分类到多值分类等等还没有涉及到,以后有时间再学吧。其实朴素贝叶斯在分类二值分类问题时,如果使用对数比,那么也算作线性分类器。

(完整版)支持向量机(SVM)原理及应用概述

支持向量机(SVM )原理及应用 一、SVM 的产生与发展 自1995年Vapnik (瓦普尼克)在统计学习理论的基础上提出SVM 作为模式识别的新方法之后,SVM 一直倍受关注。同年,Vapnik 和Cortes 提出软间隔(soft margin)SVM ,通过引进松弛变量i ξ度量数据i x 的误分类(分类出现错误时i ξ大于0),同时在目标函数中增加一个分量用来惩罚非零松弛变量(即代价函数),SVM 的寻优过程即是大的分隔间距和小的误差补偿之间的平衡过程;1996年,Vapnik 等人又提出支持向量回归 (Support Vector Regression ,SVR)的方法用于解决拟合问题。SVR 同SVM 的出发点都是寻找最优超平面(注:一维空间为点;二维空间为线;三维空间为面;高维空间为超平面。),但SVR 的目的不是找到两种数据的分割平面,而是找到能准确预测数据分布的平面,两者最终都转换为最优化问题的求解;1998年,Weston 等人根据SVM 原理提出了用于解决多类分类的SVM 方法(Multi-Class Support Vector Machines ,Multi-SVM),通过将多类分类转化成二类分类,将SVM 应用于多分类问题的判断:此外,在SVM 算法的基本框架下,研究者针对不同的方面提出了很多相关的改进算法。例如,Suykens 提出的最小二乘支持向量机 (Least Square Support Vector Machine ,LS —SVM)算法,Joachims 等人提出的SVM-1ight ,张学工提出的中心支持向量机 (Central Support Vector Machine ,CSVM),Scholkoph 和Smola 基于二次规划提出的v-SVM 等。此后,台湾大学林智仁(Lin Chih-Jen)教授等对SVM 的典型应用进行总结,并设计开发出较为完善的SVM 工具包,也就是LIBSVM(A Library for Support Vector Machines)。LIBSVM 是一个通用的SVM 软件包,可以解决分类、回归以及分布估计等问题。 二、支持向量机原理 SVM 方法是20世纪90年代初Vapnik 等人根据统计学习理论提出的一种新的机器学习方法,它以结构风险最小化原则为理论基础,通过适当地选择函数子集及该子集中的判别函数,使学习机器的实际风险达到最小,保证了通过有限训练样本得到的小误差分类器,对独立测试集的测试误差仍然较小。 支持向量机的基本思想:首先,在线性可分情况下,在原空间寻找两类样本的最优分类超平面。在线性不可分的情况下,加入了松弛变量进行分析,通过使用非线性映射将低维输

支持向量机(SVM)简明学习教程

支持向量机(SVM )简明学习教程 一、最优分类超平面 给定训练数据),(,),,(11l l y x y x ,其中n i R x ∈,}1,1{-∈i y 。 若1=i y ,称i x 为第一类的,I ∈i x ;若1-=i y ,称i x 为第二类的,II ∈i x 。 若存在向量?和常数b ,使得?????II ∈<-I ∈>-i i T i i T x if b x x if b x ,0,0?? (1),则该训练集可被超平面 0=-b x T ?分开。 (一)、平分最近点法 求两个凸包集中的最近点d c ,',做d c ,'的垂直平分面x ,即为所求。 02 )(2 22 2 =-- -?-=-d c x d c x d x c T ,则d c -=?,2 ) ()(d c d c b T +-= 。 求d c ,,?? ?? ?≥==≥==∑∑∑∑-=-===. 0,1, . 0,1,1 111 i y i y i i i y i y i i i i i i x d x c αα ααα α

所以2 1 1 2 ∑∑-==-= -i i y i i y i i x x d c αα,只需求出最小的T l ),,(1ααα =。 算法:1)求解. 0,1,1..2121min 1 1 2 12 11≥===-∑∑∑∑∑-===-==i y i y i l i i i i y i i y i i i i i i t s x y x x αααααα;2)求最优超平面0=-b x T ?。 (二)、最大间隔法 附加条件1=?,加上(1)式。记C x C i T x i >=I ∈??min )(1,C x C i T x i <=II ∈??max )(2。 使?????II ∈<-I ∈>-=-= i i T i i T x if b x x if b x t s C C ,0,0,1..2 ) ()()(max 21??????ρ (2) 可以说明在(2)下可以得到一个最优超平面,且该超平面是唯一的。 如何快速生成一个最优超平面??? 考虑等价问题:求权向量w 和b ,使?????II ∈-<-I ∈>-i i T i i T x if b x w x if b x w ,1,1,且?最小。 这种写法已经包含最大间隔。 事实上b C C C x if C b x w x if C b x w i i T i i T =+=??????II ∈=+-))()((21),(1),(121021????中心,而w w =?, 故w b C = ,w C C 1 2)()()(21=-=???ρ。 所以(2)式可以转化为求解: 1 )(..min ≥-b x w y t s w i T i (3) 总结,求最优超平面,只需求解: 1 )(..2 1)(min ≥-= Φb x w y t s w w w i T i T (QP1) 对(QP1)构造lagrange 函数: 令∑=---=l i i T i i b x w y w b w L 1 2]1)([21),,(αα,其中0),,(1≥=T l ααα 为lagrange 乘子。 下求L 的鞍点:

支持向量机(SVM)的实现

模式识别课程大作业报告——支持向量机(SVM)的实现 : 学号: 专业: 任课教师: 研究生导师:

容摘要 支持向量机是一种十分经典的分类方法,它不仅是模式识别学科中的重要容,而且在图像处理领域中得到了广泛应用。现在,很多图像检索、图像分类算法的实现都以支持向量机为基础。本次大作业的容以开源计算机视觉库OpenCV 为基础,编程实现支持向量机分类器,并对标准数据集进行测试,分别计算出训练样本的识别率和测试样本的识别率。 本报告的组织结构主要分为3大部分。第一部分简述了支持向量机的原理;第二部分介绍了如何利用OpenCV来实现支持向量机分类器;第三部分给出在标准数据集上的测试结果。

一、支持向量机原理概述 在高维空间中的分类问题实际上是寻找一个超平面,将两类样本分开,这个超平面就叫做分类面。两类样本中离分类面最近的样本到分类面的距离称为分类间隔。最优超平面指的是分类间隔最大的超平面。支持向量机实质上提供了一种利用最优超平面进行分类的方法。由最优分类面可以确定两个与其平行的边界超平面。通过拉格朗日法求解最优分类面,最终可以得出结论:实际决定最优分类面位置的只是那些离分类面最近的样本。这些样本就被称为支持向量,它们可能只是训练样本中很少的一部分。支持向量如图1所示。 图1

图1中,H是最优分类面,H1和H2别是两个边界超平面。实心样本就是支持向量。由于最优超平面完全是由这些支持向量决定的,所以这种方法被称作支持向量机(SVM)。 以上是线性可分的情况,对于线性不可分问题,可以在错分样本上增加一个惩罚因子来干预最优分类面的确定。这样一来,最优分类面不仅由离分类面最近的样本决定,还要由错分的样本决定。这种情况下的支持向量就由两部分组成:一部分是边界支持向量;另一部分是错分支持向量。 对于非线性的分类问题,可以通过特征变换将非线性问题转化为新空间中的线性问题。但是这样做的代价是会造成样本维数增加,进而导致计算量急剧增加,这就是所谓的“维度灾难”。为了避免高维空间中的计算,可以引入核函数的概念。这样一来,无论变换后空间的维数有多高,这个新空间中的线性支持向量机求解都可以在原空间通过核函数来进行。常用的核函数有多项式核、高斯核(径向基核)、Sigmoid函数。 二、支持向量机的实现 OpenCV是开源计算机视觉库,它在图像处理领域得到了广泛应用。OpenCV中包含许多计算机视觉领域的经典算法,其中的机器学习代码部分就包含支持向量机的相关容。OpenCV中比较经典的机器学习示例是“手写字母分类”。OpenCV中给出了用支持向量机实现该示例的代码。本次大作业的任务是研究OpenCV中的支持向量机代码,然后将其改写为适用于所有数据库的通用程序,并用标准数据集对算法进行测试。本实验中使用的OpenCV版本是2.4.4,实验平台为Visual Studio 2010软件平台。 OpenCV读取的输入数据格式为“.data”文件。该文件记录了所有数据样

SVM支持向量机

SVM 支持向量机 目录 一、简介 (1) 二、线性分类器 (3) 三、分类间隔指标 (4) 四、线性分类器的求解 (8) 五、核函数 (9) 六、松弛变量 (11) 七、惩罚因子C (15) 八、SVM用于多类分类 (17) 九、SVM的计算复杂度 (19) 一、简介 支持向量机在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础 上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力(或称泛化能力)。 以下逐一分解并解释一下:统计机器学习之所以区别于传统机器学习的本质,就在于统计机器学习能够精确的给出学习效果,能够解答需要的样本数等等一系列问题。与统计机器学习的精密思维相比,传统的机器学习基本上属于摸着石头过河,用传统的机器学习方法构造分类系统是一种技巧,一个人做的结果可能很好,另一个人差不多的方法做出来却很差,缺乏指导和原则。 VC维是对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越高,一个问题就越复杂。SVM关注的是VC维,和样本的维数是无关(甚至样本可以是上万维的,这使得SVM很适合用于解决文本分类的问题,也因此引入了核函数)。 结构风险最小:机器学习本质上就是对问题真实模型的逼近(我们选择一个我们认为比较好的近似模型作为假设),而真实模型是未知的。假设与问题真实解之间的误差,叫做风险(更严格的说,误差的累积叫做风险)。我们选择了一个假设(即分类器)之后,我们可以用某些可以掌握的量来逼近误差,最直观的方法就是使用分类器在样本数据上的分类的结果与真实结果(样本是已标注过的数据,即准确的数据)之间的差值来表示。这个差值叫做经验风险Remp(w)。

机器学习SVM(支持向量机)实验报告

. . 实验报告 实验名称:机器学习:线性支持向量机算法实现 学员:张麻子学号: *********** 培养类型:硕士年级: 专业:所属学院:计算机学院 指导教员: ****** 职称:副教授 实验室:实验日期:

. . 一、实验目的和要求 实验目的:验证SVM(支持向量机)机器学习算法学习情况 要求:自主完成。 二、实验内容和原理 支持向量机(Support V ector Machine, SVM)的基本模型是在特征空间上找到最 佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有监督学习算法。通过引入了核方法之后SVM也可以用来解决非线性问题。 但本次实验只针对线性二分类问题。 SVM算法分割原则:最小间距最大化,即找距离分割超平面最近的有效点距离超平面距离和最大。 对于线性问题: w T x+b=0 假设存在超平面可最优分割样本集为两类,则样本集到超平面距离为: ρ = min{|w T x+b| ||w|| }= a ||w|| 需压求取: max a ||w|| s.t. y i(w T x+b)≥a 由于该问题为对偶问题,可变换为: min 1 2 ||w||2 s.t. y i(w T x+b)≥1 可用拉格朗日乘数法求解。 但由于本实验中的数据集不可以完美的分为两类,即存在躁点。可引入正则化参数C,用来调节模型的复杂度和训练误差。

. . min 1 2||w||2+C ∑εi s.t. y i (w T x +b)≥1?εi , εi >0 作出对应的拉格朗日乘式: 对应的KKT条件为: 故得出需求解的对偶问题: {min 1∑∑αi αj y i y j (x i T x j )?∑αi s.t. ∑αi y j = 0 , C≥αi ≥0, 本次实验使用python 编译器,编写程序,数据集共有270个案例,挑选其中70%作为训练数据,剩下30%作为测试数据。进行了两个实验,一个是取C值为1,直接进行SVM训练;另外一个是利用交叉验证方法,求取在前面情况下的最优C值。 三、实验器材 实验环境:windows7操作系统+python 编译器。

支持向量机SVM原理及应用概述

东北大学 研究生考试试卷 考试科目:信号处理的统计分析方法 课程编号:09601513 阅卷人: 刘晓志 考试日期:2012年11月07日 姓名:赵亚楠 学号:1001236 注意事项 1.考前研究生将上述项目填写清楚. 2.字迹要清楚,保持卷面清洁. 3.交卷时请将本试卷和题签一起上交. 4.课程考试后二周内授课教师完成评卷工作,公共课成绩单与试卷交研究生院培养办公室, 专业课成绩单与试卷交各学院,各学院把成绩单交研究生院培养办公室. 东北大学研究生院培养办公室

目录 一、SVM的产生与发展3 二、支持向量机相关理论4 (一)统计学习理论基础4 (二)SVM原理4 1.最优分类面和广义最优分类面5 2.SVM的非线性映射7 3.核函数8 三、支持向量机的应用研究现状9(一)人脸检测、验证和识别9(二)说话人/语音识别10 (三)文字/手写体识别10 (四)图像处理11 (五)其他应用研究11 四、结论和讨论12

一、SVM 的产生与发展 自1995年Vapnik 在统计学习理论的基础上提出SVM 作为模式识别的新方法之后,SVM 一直倍受关注。同年,Vapnik 和Cortes 提出软间隔(soft margin)SVM ,通过引进松弛变量i ξ度量数据i x 的误分类(分类出现错误时i ξ大于0),同时在目标函数中增加一个分量用来惩罚非零松弛变量(即代价函数),SVM 的寻优过程即是大的分隔间距和小的误差补偿之间的平衡过程;1996年,Vapnik 等人又提出支持向量回归 (Support Vector Regression ,SVR)的方法用于解决拟合问题。SVR 同SVM 的出发点都是寻找最优超平面,但SVR 的目的不是找到两种数据的分割平面,而是找到能准确预测数据分布的平面,两者最终都转换为最优化问题的求解;1998年,Weston 等人根据SVM 原理提出了用于解决多类分类的SVM 方法(Multi-Class Support VectorMachines ,Multi-SVM),通过将多类分类转化成二类分类,将SVM 应用于多分类问题的判断:此外,在SVM 算法的基本框架下,研究者针对不同的方面提出了很多相关的改进算法。例如,Suykens 提出的最小二乘支持向量机 (Least Square Support VectorMachine ,LS —SVM)算法,Joachims 等人提出的SVM-1ight ,张学工提出的中心支持向量机 (Central Support Vector Machine ,CSVM),Scholkoph 和Smola 基于二次规划提出的v-SVM 等。此后,台湾大学林智仁(Lin Chih-Jen)教授等对SVM 的典型应用进行总结,并设计开发出较为完善的SVM 工具包,也就是LIBSVM(A Library for Support Vector Machines)。上述改进模型中,v-SVM 是一种软间隔分类器模型,其原理是通过引进参数v ,来调整支持向量数占输入数据比例的下限,以及参数ρ来度量超平面偏差,代替通常依靠经验选取的软间隔分类惩罚参数,改善分类效果;LS-SVM 则是用等式约束代替传统SVM 中的不等式约束,将求解QP 问题变成解一组等式方程来提高算法效率;LIBSVM 是一个通用的SVM 软件包,可以解决分类、回归以及分布估计等问题,它提供常用的几种核函数可由用户选择,并且具有不平衡样本加权和多类分类等功能,此外,交叉验证(cross validation)方法也是LIBSVM 对核函数参数选取问题所做的一个突出贡献;SVM-1ight 的特点则是通过引进缩水(shrinking)逐步简化QP 问题,以及缓存(caching)技术降低迭代运算的计算代价来解决大规模样本条件下SVM 学习的复杂性问题。

SVM支持向量机题目

机器学习课程作业(1) 提交截止日期:2017年10月10日周二 1. 一个优化问题的原问题(Prime Problem )与对偶问题(Dual Problem )定义如下: 原问题 Minimize: ()f ω Subject to: ()0,1,2,...,i g i K ω≤= ()0,1,2,...,i h i M ω== 对偶问题 定义 ()()()()()()()11,,K M T T i i i i i i L f g h f g h ωαβωαωβωωαωβω===++=++∑∑ 对偶问题为: Maximize: ()(),inf ,,L ωθαβωαβ= Subject to: 0,1,2,...,i i K α≥= (a) 证明:如果*ω是原问题的解,*α,*β是对偶问题的解,则有:()()***,f ωθαβ≥ (b) 证明 (强对偶定理):如果()g A b ωω=+,()h C d ωω=+,且()f ω为凸函数,即对任意1ω和2ω,有()()()()()121211f f f λωλωλωλω+-≤+-, 则有:()()*** ,f ωθαβ= 2. 求下列原问题的对偶问题 (a) (1l and 2l -norm SVM Classification) : Minimize: 221211 12N N i i i i C C ωδδ==++∑∑ Subject to: 0,1,2,...,i i N δ≥= ()1T i i i y x b ω?δ??+≥-??

(b) (SVM regression): Minimize: ()()2221211 12N N i i i i i i C C ωδζδζ==++++∑∑ Subject to: (),1,2,...,T i i i x b y i N ω?εδ+-≤+= (),1,2,...,T i i i y x b i N ω?εζ--≤+= 0i δ≥, 0i ζ≥ (c) (Kernel Ridge Regression): Minimize: 221 12N i i C ωδ=+∑ Subject to: (),1,2,...,T i i i y x i N ω?δ-== (d) (Entropy Maximization Problem): Minimize: ()1log N i i i x x =∑ Subject to: T x b ω≤ 11N i i x ==∑ 3. 如图所示,平面上有N 个点12{,,...,}N x x x ,求一个半径最小的圆,使之能包含这些点。 图1. 平面上N 个点,求最小的圆包含这些点。 (a) 写出这个优化问题的数学表达式。 (b) 写出(a)的对偶问题。 (c) 编写程序求解这个问题(选做)

相关主题