支持向量机support vector machines

来源:互联网 发布:nginx生成ssl证书 编辑:程序博客网 时间:2024/05/21 04:39

本文是《统计学习方法》李航著学习笔记。
为了叙述方便,将support vector machines简称SVM。SVM是一种二类分类模型,利用SVM对预测实例点进行分类就是根据决策函数的符号划归正负类,下面论述过程主要是有关SVM的模型学习过程。

通常针对三种情况构建SVM学习模型:
1.)对线性可分数据集,构建硬间隔最大化的线性可分支持向量机
2.)对存在一些特异点的近似线性可分数据集,构建软间隔最大化的线性支持向量机
3.)对非线性可分数据集(只有利用非线性模型才能很好的进行分类),利用核技巧构建非线性支持向量机

SVM的建模过程主要在于利用凸优化的Lagrange对偶形式,对“间隔最大优化模型”的转化。SVM是对感知机模型的改进,感知机的内容参考http://blog.csdn.net/cymy001/article/details/77992416

—————————————————————————
在欧式空间中,点(xi,yi)到直线Ax+By+C=0的距离d

|Axi+Byi+C|A2+B2

参考点到直线的距离d的定义,有如下的函数间隔和几何间隔的定义。几何间隔可以看做样本点(xi,yi)到超平面wTx+b=0的距离,函数间隔可以看做对超平面wTx+b=0的系数进行归一化处理后的点到超平面距离。

函数间隔
对给定的训练数据集T={(x1,y1),(x2,y2),,(xN,yN)}(其中xiχ=Rnyi{+1,1})和超平面wTx+b=0,定义超平面wTx+b=0关于样本点(xi,yi)的函数间隔为

γˆi=yi(wTxi+b)

定义超平面wTx+b=0关于训练数据集T的函数间隔为超平面wTx+b=0关于T中所有样本点(xi,yi)的函数间隔的最小值
γˆ=mini=1,2,,Nγˆi

几何间隔
对给定的训练数据集T={(x1,y1),(x2,y2),,(xN,yN)}(其中xiχ=Rnyi{+1,1})和超平面wTx+b=0,定义超平面wTx+b=0关于样本点(xi,yi)的几何间隔为

γi=yi(wTxi||w||2+b||w||2)

定义超平面wTx+b=0关于训练数据集T的几何间隔为超平面wTx+b=0关于T中所有样本点(xi,yi)的几何间隔的最小值
γ=mini=1,2,,Nγi

线性可分支持向量机

定义:给定线性可分训练数据集,通过间隔最大化学习得到分离超平面

(w)Tx+b=0

称相应的分类决策函数
f(x)=sign((w)Tx+b)

为线性可分支持向量机。

区别于感知机模型,SVM模型的基本想法是用“一个点距离分离超平面的远近”表示“分类预测的确信程度”,即学习目标是求一个能正确划分训练数据集,并且几何间隔最大的分离超平面,以充分大的确信度对训练数据进行分类,这里点到分离超平面的距离即用几何间隔度量。

(1.)先考虑SVM的建模和问题转化:
基于以上想法,有如下的SVM学习目标

maxw,bmini=1,,Nyi(wTxi||w||2+b||w||2)

其等价表述为
maxw,bγs.t.yi(wTxi||w||2+b||w||2)γ,i=1,2,,N.

考虑函数间隔和几何间隔的关系,以及函数间隔对距离影响的相对性,如果令||w||2γ=γˆ=1,则有γ=1||w||2,代入上式就有如下SVM学习优化模型
maxw,b1||w||2s.t.yi(wTxi+b)1,i=1,2,,N.

再将目标函数转化成其等价极小化形式minw,b12||w||2,就有线性可分支持向量机的学习优化模型的原始问题
minw,b12||w||2s.t.yi(wTxi+b)1,i=1,2,,N.

目标函数是二次型,约束条件是线性的,所以原始问题是典型的凸二次规划问题。有关原始问题凸二次规划解的存在唯一性在此不做证明,下面将利用对偶算法将SVM模型转化成更便于求解的对偶问题。
由原始问题可定义Lagrange函数:
L(w,b,α)=12||w||2i=1Nαi[yi(wTxi+b)1]

这里αi0是和约束条件yi(wTxi+b)10正负取值相对应的惩罚因子,在训练实例点满足原始问题的约束条件yi(wTxi+b)10时,通过反证法讨论得
12||w||2maxαL(w,b,α)

所以原始问题等价于
minw,bmaxαL(w,b,α)

当存在实例点使yi(wTxi+b)>1i=1,2,,N时,原始问题与对偶问题的对偶间隙为0,从而可以根据KKT条件,通过“求解对偶问题得到的对偶问题的解”去解原始问题的解,即参数w,b
由于原始问题是广义拉格朗日函数的极小极大问题,故其对偶问题是广义拉格朗日函数的极大极小问题
maxαminw,bL(w,b,α)

先求内层函数:
minw,bL(w,b,α)=minw,b12||w||2i=1Nαi[yi(wTxi+b)1]

wL(w,b,α)=0,bL(w,b,α)=0得:
w=i=1Nαiyixi,i=1Nαiyi=0

代入L(w,b,α)可得
minw,bL(w,b,α)=12i=1Nj=1Nαiαjyiyj(xTixj)+i=1Nαi

再考虑外层函数:
maxα12i=1Nj=1Nαiαjyiyj(xTixj)+i=1Nαi

需要满足约束i=1Nαiyi=0αi0,i=1,,N。将目标函数转化成极小化形式,即得最终要求解的对偶问题
minα12i=1Nj=1Nαiαjyiyj(xTixj)i=1Nαis.t.i=1Nαiyi=0αi0,i=1,,N.

从上式可见,对偶问题的约束条件相比原始问题更易于处理。

(2.)要求模型参数w,b,接下来需要考虑的是:
A.如何求解对偶问题,解出αi
B.如何根据αiw,b
对于A.问题,会在三种支持向量机模型都给出之后,进行叙述,即序列最小最优化方法sequential minimal optimization,SMO算法。
对于B.问题,是基于优化问题的一阶最优性必要条件——KKT条件推出的,具体过程如下。
由于最优超平面w0,所以由αiw的关系知,必然存在j,使αj>0,又由KKT条件:

wL(w,b,a)=wi=1Nαiyixi=0bL(w,b,a)=i=1Nαiyi=0αi(yi((w)Txi+b)1)=0,i=1,,Nyi((w)Txi+b)10,i=1,,Nαi0,i=1,,N

从上式易解出:
w=i=1Nαiyixib=yji=1Nαiyi(xTixj)

从而可得分类决策函数f(x)=sign((w)Tx+b)

支持向量
对应αi>0的训练实例点xiRn称为支持向量。由KKT条件知,对于支持向量有(w)Tx+b=±1

—————————————————————————

线性支持向量机

对于给定的线性不可分的训练数据集,由于存在一些特异点,导致约束

yi(wTxi||w||2+b||w||2)γ

不是对每个i=1,2,,N都满足。也就是说,不是每个i=1,2,,N都有
yi(wTxi+b)1

这是,可以引入松弛变量ξi0,使
yi(wTxi+b)1ξi

同时,对目标函数增加罚项i=1Nξi,则对应有如下线性支持向量机优化模型:
minw,b,ξ12||w||2+Ci=1Nξis.t.yi(wTxi+b)1ξi,ξi0,i=1,2,,Ni=1,2,,N.

上式就是线性支持向量机的原始问题模型。可证明w的解唯一,b的解不唯一,这是因为任何满足0<αj<Cαj都可以由KKT条件对应求出一个b
类似线性可分支持向量机的学习过程,可以构建线性支持向量机原始问题的Lagrange函数
L(w,b,ξ,α,μ)=12||w||2+Ci=1Nξii=1Nαi(yi(wTxi+b)1+ξi)i=1Nμiξi

对偶问题
maxα,μminw,b,ξL(w,b,ξ,α,μ)


minα12i=1Nj=1Nαiαjyiyj(xTixj)i=1Nαis.t.i=1Nαiyi=0,0αiC,i=1,2,,Ni=1,2,,N.

至此,就完成了模型的转化工作。

当存在α的某个分量0<αj<C时,由KKT条件有

wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξL(w,b,ξ,α,μ)=Cαμ=0αi(yi((w)Txi+b)1+ξi)=0,i=1,,Nμiξi=0yi((w)Txi+b)1+ξi0,i=1,,Nξi0,i=1,,Nαi0,i=1,,Nμi0,i=1,,N

利用以上KKT条件可求得模型参数
w=i=1Nαiyixib=yji=1Nyiαi(xTixj)

从而可得分类决策函数f(x)=sign((w)Tx+b)

对于线性支持向量机,实例点到分离超平面的距离为1ξi||w||2,支持向量形成的间隔边界与分离超平面的距离为1||w||2,所以训练实例点到间隔边界的距离为ξi||w||2
这里写图片描述

—————————————————————————

非线性支持向量机

对非线性可分数据集(只有利用非线性模型才能很好的进行分类),利用核技巧构建非线性支持向量机,就是使用一个映射变换将输入空间χ的数据映射到特征空间,使得数据在特征空间内线性可分或近似线性可分,从而将问题转化为前面讨论的线性可分支持向量机和线性支持向量机的求解。

在线性支持向量机中,对偶问题模型及其分类决策函数涉及到的内积包含“训练实例点xi与训练实例点xj的内积”,“预测实例点x与训练实例点xi的内积”。从输入空间χ到特征空间存在变换ϕ:将输入空间χ的内积xTixj,xTix变换成特征空间的内积ϕ(xi)Tϕ(xj),ϕ(xi)Tϕ(x),然后在特征空间中学习支持向量机模型。当ϕ是非线性函数时,从训练数据集中学习到的含有核函数的支持向量机模型就是非线性分类模型。

基于定义在χ×χ上的对称函数K(x,z),定义满足上述性质的映射

ϕ:xK(,x)

由此可定义线性组合
f()=i=1mαiK(,xi)

所有形如f()的线性组合形成线性空间S
对于f,gS,在S上定义运算
fg=i=1mαiK(,xi)j=1lβjK(,zj)=i=1mj=1lαiβjK(xi,zj)

可以验证运算为线性空间S内的一种内积运算,再对具有运算的线性空间S完备化,可得Hilbert空间H,在H中可得核函数(通常指“正定核”)的定义
K(,x)f=f(x)K(,x)K(,z)=K(x,z)

也就是,当存在从χ到Hilbert空间H的映射ϕ,使得
K(x,z)=ϕ(x)Tϕ(z)

K(x,z)就是χ×χ上的正定核。

可验证,对任意一组xiχ,i=1,,m,函数K(x,z)形成的Gram矩阵

K=[K(xi,xj)]m×m

是半正定时,K(x,z)是正定核。

通常,使用的正定核有多项式核函数K(x,z)=(xTz+1)p;高斯核函数K(x,z)=e||xz||22σ2

利用核函数可得非线性支持向量机对偶问题的模型

minα12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t.i=1Nαiyi=0,0αiC,i=1,2,,Ni=1,2,,N.

对应的分类决策函数为f(x)=sign(i=1NαiyiK(x,xi)+yji=1NαiyiK(xi,xj))

—————————————————————————

SMO算法

前面提到过,该算法主要是用于求解对偶问题。

首先,给定初始的α,检验是否α的每个分类都满足KKT条件,如果都满足则得最优解α,如果存在不满足的分离,就选择两个分量作变量,其余分量固定,将原来的对偶问题模型化成二次规划子问题。

然后,利用约束条件可以将二次规划子问题转化成单变量求极值问题。

对于二次规划子问题的两个变量的选择标准:一个是违反KKT条件最严重的一个,另一个是使目标函数有足够下降的。

原创粉丝点击