本文是《统计学习方法》李航著学习笔记。
为了叙述方便,将support vector machines简称SVM。SVM是一种二类分类模型,利用SVM对预测实例点进行分类就是根据决策函数的符号划归正负类,下面论述过程主要是有关SVM的模型学习过程。
通常针对三种情况构建SVM学习模型:
1.)对线性可分数据集,构建硬间隔最大化的线性可分支持向量机
2.)对存在一些特异点的近似线性可分数据集,构建软间隔最大化的线性支持向量机
3.)对非线性可分数据集(只有利用非线性模型才能很好的进行分类),利用核技巧构建非线性支持向量机
SVM的建模过程主要在于利用凸优化的Lagrange对偶形式,对“间隔最大优化模型”的转化。SVM是对感知机模型的改进,感知机的内容参考http://blog.csdn.net/cymy001/article/details/77992416
—————————————————————————
在欧式空间中,点 (xi,yi) ( x i , y i ) 到直线 Ax+By+C=0 A x + B y + C = 0 的距离 d d 为
|Axi+Byi+C|A2+B2‾‾‾‾‾‾‾‾√ | A x i + B y i + C | A 2 + B 2
参考点到直线的距离
d d 的定义,有如下的函数间隔和几何间隔的定义。几何间隔可以看做样本点
(xi,yi) ( x i , y i ) 到超平面
wTx+b=0 w T x + b = 0 的距离,函数间隔可以看做对超平面
wTx+b=0 w T x + b = 0 的系数进行归一化处理后的点到超平面距离。
函数间隔:
对给定的训练数据集 T={(x1,y1),(x2,y2),⋯,(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } (其中 xi∈χ=Rn,yi∈{+1,−1} x i ∈ χ = R n , y i ∈ { + 1 , − 1 } )和超平面 wTx+b=0 w T x + b = 0 ,定义超平面 wTx+b=0 w T x + b = 0 关于样本点 (xi,yi) ( x i , y i ) 的函数间隔为
γˆi=yi(wTxi+b) γ ^ i = y i ( w T x i + b )
定义超平面
wTx+b=0 w T x + b = 0 关于训练数据集
T T 的函数间隔为超平面
wTx+b=0 w T x + b = 0 关于
T T 中所有样本点
(xi,yi) ( x i , y i ) 的函数间隔的最小值
γˆ=mini=1,2,⋯,Nγˆi γ ^ = min i = 1 , 2 , ⋯ , N γ ^ i
几何间隔:
对给定的训练数据集 T={(x1,y1),(x2,y2),⋯,(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } (其中 xi∈χ=Rn,yi∈{+1,−1} x i ∈ χ = R n , y i ∈ { + 1 , − 1 } )和超平面 wTx+b=0 w T x + b = 0 ,定义超平面 wTx+b=0 w T x + b = 0 关于样本点 (xi,yi) ( x i , y i ) 的几何间隔为
γi=yi(wTxi||w||2+b||w||2) γ i = y i ( w T x i | | w | | 2 + b | | w | | 2 )
定义超平面
wTx+b=0 w T x + b = 0 关于训练数据集
T T 的几何间隔为超平面
wTx+b=0 w T x + b = 0 关于
T T 中所有样本点
(xi,yi) ( x i , y i ) 的几何间隔的最小值
γ=mini=1,2,⋯,Nγi γ = min i = 1 , 2 , ⋯ , N γ i
线性可分支持向量机
定义:给定线性可分训练数据集,通过间隔最大化学习得到分离超平面
(w∗)Tx+b∗=0 ( w ∗ ) T x + b ∗ = 0
称相应的分类决策函数
f(x)=sign((w∗)Tx+b∗) f ( x ) = s i g n ( ( w ∗ ) T x + b ∗ )
为线性可分支持向量机。
区别于感知机模型,SVM模型的基本想法是用“一个点距离分离超平面的远近”表示“分类预测的确信程度”,即学习目标是求一个能正确划分训练数据集,并且几何间隔最大的分离超平面,以充分大的确信度对训练数据进行分类,这里点到分离超平面的距离即用几何间隔度量。
(1.)先考虑SVM的建模和问题转化:
基于以上想法,有如下的SVM学习目标
maxw,bmini=1,⋯,Nyi(wTxi||w||2+b||w||2) max w , b min i = 1 , ⋯ , N y i ( w T x i | | w | | 2 + b | | w | | 2 )
其等价表述为
maxw,bγs.t.yi(wTxi||w||2+b||w||2)≥γ,i=1,2,…,N. max w , b γ s . t . y i ( w T x i | | w | | 2 + b | | w | | 2 ) ≥ γ , i = 1 , 2 , … , N .
考虑函数间隔和几何间隔的关系,以及函数间隔对距离影响的相对性,如果令
||w||2γ=γˆ=1 | | w | | 2 γ = γ ^ = 1 ,则有
γ=1||w||2 γ = 1 | | w | | 2 ,代入上式就有如下SVM学习优化模型
maxw,b1||w||2s.t.yi(wTxi+b)≥1,i=1,2,…,N. max w , b 1 | | w | | 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , … , N .
再将目标函数转化成其等价极小化形式
minw,b12||w||2 min w , b 1 2 | | w | | 2 ,就有线性可分支持向量机的学习优化模型的
原始问题
minw,b12||w||2s.t.yi(wTxi+b)≥1,i=1,2,…,N. min w , b 1 2 | | w | | 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , … , N .
目标函数是二次型,约束条件是线性的,所以原始问题是典型的凸二次规划问题。有关原始问题凸二次规划解的存在唯一性在此不做证明,下面将利用对偶算法将SVM模型转化成更便于求解的对偶问题。
由原始问题可定义Lagrange函数:
L(w,b,α)=12||w||2−∑i=1Nαi[yi(wTxi+b)−1] L ( w , b , α ) = 1 2 | | w | | 2 − ∑ i = 1 N α i [ y i ( w T x i + b ) − 1 ]
这里
αi≥0 α i ≥ 0 是和约束条件
yi(wTxi+b)−1≥0 y i ( w T x i + b ) − 1 ≥ 0 正负取值相对应的惩罚因子,在训练实例点满足原始问题的约束条件
yi(wTxi+b)−1≥0 y i ( w T x i + b ) − 1 ≥ 0 时,通过反证法讨论得
12||w||2⇔maxαL(w,b,α) 1 2 | | w | | 2 ⇔ max α L ( w , b , α )
所以原始问题等价于
minw,bmaxαL(w,b,α) min w , b max α L ( w , b , α )
当存在实例点使
yi(wTxi+b)>1,i=1,2,⋯,N y i ( w T x i + b ) > 1 , i = 1 , 2 , ⋯ , N 时,原始问题与对偶问题的对偶间隙为0,从而可以根据KKT条件,通过“求解对偶问题得到的对偶问题的解”去解原始问题的解,即参数
w,b w , b 。
由于原始问题是广义拉格朗日函数的极小极大问题,故其对偶问题是广义拉格朗日函数的极大极小问题
maxαminw,bL(w,b,α) max α min w , b L ( w , b , α )
先求内层函数:
minw,bL(w,b,α)=minw,b12||w||2−∑i=1Nαi[yi(wTxi+b)−1] min w , b L ( w , b , α ) = min w , b 1 2 | | w | | 2 − ∑ i = 1 N α i [ y i ( w T x i + b ) − 1 ]
由
∇wL(w,b,α)=0,∇bL(w,b,α)=0 ∇ w L ( w , b , α ) = 0 , ∇ b L ( w , b , α ) = 0 得:
w=∑i=1Nαiyixi,∑i=1Nαiyi=0 w = ∑ i = 1 N α i y i x i , ∑ i = 1 N α i y i = 0
代入
L(w,b,α) L ( w , b , α ) 可得
minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xTixj)+∑i=1Nαi min w , b L ( w , b , α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i T x j ) + ∑ i = 1 N α i
再考虑外层函数:
maxα−12∑i=1N∑j=1Nαiαjyiyj(xTixj)+∑i=1Nαi max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i T x j ) + ∑ i = 1 N α i
需要满足约束
∑i=1Nαiyi=0,αi≥0,i=1,⋯,N ∑ i = 1 N α i y i = 0 , α i ≥ 0 , i = 1 , ⋯ , N 。将目标函数转化成极小化形式,即得最终要求解的
对偶问题
minα12∑i=1N∑j=1Nαiαjyiyj(xTixj)−∑i=1Nαis.t.∑i=1Nαiyi=0,αi≥0,i=1,⋯,N. min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i T x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 , α i ≥ 0 , i = 1 , ⋯ , N .
从上式可见,对偶问题的约束条件相比原始问题更易于处理。
(2.)要求模型参数 w,b w , b ,接下来需要考虑的是:
A.如何求解对偶问题,解出 αi α i ;
B.如何根据 αi α i 求 w,b w , b 。
对于A.问题,会在三种支持向量机模型都给出之后,进行叙述,即序列最小最优化方法sequential minimal optimization,SMO算法。
对于B.问题,是基于优化问题的一阶最优性必要条件——KKT条件推出的,具体过程如下。
由于最优超平面 w≠0 w ≠ 0 ,所以由 αi α i 与 w w 的关系知,必然存在 j j ,使 α∗j>0 α j ∗ > 0 ,又由KKT条件:
∇wL(w∗,b∗,a∗)=w∗−∑i=1Nα∗iyixi=0∇bL(w∗,b∗,a∗)=−∑i=1Nα∗iyi=0α∗i(yi((w∗)Txi+b∗)−1)=0,i=1,⋯,Nyi((w∗)Txi+b∗)−1≥0,i=1,⋯,Nα∗i≥0,i=1,⋯,N ∇ w L ( w ∗ , b ∗ , a ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 ∇ b L ( w ∗ , b ∗ , a ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 α i ∗ ( y i ( ( w ∗ ) T x i + b ∗ ) − 1 ) = 0 , i = 1 , ⋯ , N y i ( ( w ∗ ) T x i + b ∗ ) − 1 ≥ 0 , i = 1 , ⋯ , N α i ∗ ≥ 0 , i = 1 , ⋯ , N
从上式易解出:
w∗=∑i=1Nα∗iyixi,b∗=yj−∑i=1Nα∗iyi(xTixj) w ∗ = ∑ i = 1 N α i ∗ y i x i , b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i T x j )
从而可得分类决策函数
f(x)=sign((w∗)Tx+b∗) f ( x ) = s i g n ( ( w ∗ ) T x + b ∗ ) 。
支持向量:
对应 α∗i>0 α i ∗ > 0 的训练实例点 xi∈Rn x i ∈ R n 称为支持向量。由KKT条件知,对于支持向量有 (w∗)Tx+b∗=±1 ( w ∗ ) T x + b ∗ = ± 1 。
—————————————————————————
线性支持向量机
对于给定的线性不可分的训练数据集,由于存在一些特异点,导致约束
yi(wTxi||w||2+b||w||2)≥γ y i ( w T x i | | w | | 2 + b | | w | | 2 ) ≥ γ
不是对每个
i=1,2,…,N i = 1 , 2 , … , N 都满足。也就是说,不是每个
i=1,2,…,N i = 1 , 2 , … , N 都有
yi(wTxi+b)≥1 y i ( w T x i + b ) ≥ 1
这是,可以引入松弛变量
ξi≥0 ξ i ≥ 0 ,使
yi(wTxi+b)≥1−ξi y i ( w T x i + b ) ≥ 1 − ξ i
同时,对目标函数增加罚项
∑i=1Nξi ∑ i = 1 N ξ i ,则对应有如下线性支持向量机优化模型:
minw,b,ξ12||w||2+C∑i=1Nξis.t.yi(wTxi+b)≥1−ξi,ξi≥0,i=1,2,…,Ni=1,2,…,N. min w , b , ξ 1 2 | | w | | 2 + C ∑ i = 1 N ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , 2 , … , N ξ i ≥ 0 , i = 1 , 2 , … , N .
上式就是线性支持向量机的
原始问题模型。可证明
w w 的解唯一,
b b 的解不唯一,这是因为任何满足
0<α∗j<C 0 < α j ∗ < C 的
αj α j 都可以由KKT条件对应求出一个
b∗ b ∗ 。
类似线性可分支持向量机的学习过程,可以构建线性支持向量机原始问题的Lagrange函数
L(w,b,ξ,α,μ)=12||w||2+C∑i=1Nξi−∑i=1Nαi(yi(wTxi+b)−1+ξi)−∑i=1Nμiξi L ( w , b , ξ , α , μ ) = 1 2 | | w | | 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i ( y i ( w T x i + b ) − 1 + ξ i ) − ∑ i = 1 N μ i ξ i
对偶问题是
maxα,μminw,b,ξL(w,b,ξ,α,μ) max α , μ min w , b , ξ L ( w , b , ξ , α , μ )
即
minα12∑i=1N∑j=1Nαiαjyiyj(xTixj)−∑i=1Nαis.t.∑Ni=1αiyi=0,0≤αi≤C,i=1,2,…,Ni=1,2,…,N. min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i T x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 , i = 1 , 2 , … , N 0 ≤ α i ≤ C , i = 1 , 2 , … , N .
至此,就完成了模型的转化工作。
当存在 α∗ α ∗ 的某个分量 0<α∗j<C 0 < α j ∗ < C 时,由KKT条件有
∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−∑i=1Nα∗iyixi=0∇bL(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+ξ∗i≥0,i=1,⋯,Nξ∗i≥0,i=1,⋯,Nα∗i≥0,i=1,⋯,Nμ∗i≥0,i=1,⋯,N ∇ w L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 ∇ b L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 ∇ ξ L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = C − α ∗ − μ ∗ = 0 α i ∗ ( y i ( ( w ∗ ) T x i + b ∗ ) − 1 + ξ i ∗ ) = 0 , i = 1 , ⋯ , N μ i ∗ ξ i ∗ = 0 y i ( ( w ∗ ) T x i + b ∗ ) − 1 + ξ i ∗ ≥ 0 , i = 1 , ⋯ , N ξ i ∗ ≥ 0 , i = 1 , ⋯ , N α i ∗ ≥ 0 , i = 1 , ⋯ , N μ i ∗ ≥ 0 , i = 1 , ⋯ , N
利用以上KKT条件可求得模型参数
w∗=∑i=1Nα∗iyixi,b∗=yj−∑i=1Nyiα∗i(xTixj) w ∗ = ∑ i = 1 N α i ∗ y i x i , b ∗ = y j − ∑ i = 1 N y i α i ∗ ( x i T x j )
从而可得分类决策函数
f(x)=sign((w∗)Tx+b∗) f ( x ) = s i g n ( ( w ∗ ) T x + b ∗ ) 。
对于线性支持向量机,实例点到分离超平面的距离为 1−ξi||w||2 1 − ξ i | | w | | 2 ,支持向量形成的间隔边界与分离超平面的距离为 1||w||2 1 | | w | | 2 ,所以训练实例点到间隔边界的距离为 ξi||w||2 ξ i | | w | | 2

—————————————————————————
非线性支持向量机
对非线性可分数据集(只有利用非线性模型才能很好的进行分类),利用核技巧构建非线性支持向量机,就是使用一个映射变换将输入空间 χ χ 的数据映射到特征空间,使得数据在特征空间内线性可分或近似线性可分,从而将问题转化为前面讨论的线性可分支持向量机和线性支持向量机的求解。
在线性支持向量机中,对偶问题模型及其分类决策函数涉及到的内积包含“训练实例点 xi x i 与训练实例点 xj x j 的内积”,“预测实例点 x x 与训练实例点 xi x i 的内积”。从输入空间 χ χ 到特征空间存在变换 ϕ ϕ :将输入空间 χ χ 的内积 xTixj,xTix x i T x j , x i T x 变换成特征空间的内积 ϕ(xi)Tϕ(xj),ϕ(xi)Tϕ(x) ϕ ( x i ) T ϕ ( x j ) , ϕ ( x i ) T ϕ ( x ) ,然后在特征空间中学习支持向量机模型。当 ϕ ϕ 是非线性函数时,从训练数据集中学习到的含有核函数的支持向量机模型就是非线性分类模型。
基于定义在 χ×χ χ × χ 上的对称函数 K(x,z) K ( x , z ) ,定义满足上述性质的映射
ϕ:x→K(⋅,x) ϕ : x → K ( ⋅ , x )
由此可定义线性组合
f(⋅)=∑i=1mαiK(⋅,xi) f ( ⋅ ) = ∑ i = 1 m α i K ( ⋅ , x i )
所有形如
f(⋅) f ( ⋅ ) 的线性组合形成线性空间
S S 。
对于
f,g∈S f , g ∈ S ,在
S S 上定义运算
f∗g=∑i=1mαiK(⋅,xi)∗∑j=1lβjK(⋅,zj)=∑i=1m∑j=1lαiβjK(xi,zj) f ∗ g = ∑ i = 1 m α i K ( ⋅ , x i ) ∗ ∑ j = 1 l β j K ( ⋅ , z j ) = ∑ i = 1 m ∑ j = 1 l α i β j K ( x i , z j )
可以验证运算
∗ ∗ 为线性空间
S S 内的一种内积运算,再对具有运算
∗ ∗ 的线性空间
S S 完备化,可得Hilbert空间
H H ,在
H H 中可得核函数(通常指“正定核”)的定义
K(⋅,x)⋅f=f(x),K(⋅,x)⋅K(⋅,z)=K(x,z) K ( ⋅ , x ) ⋅ f = f ( x ) , K ( ⋅ , x ) ⋅ K ( ⋅ , z ) = K ( x , z )
也就是,当存在从
χ χ 到Hilbert空间
H H 的映射
ϕ ϕ ,使得
K(x,z)=ϕ(x)Tϕ(z) K ( x , z ) = ϕ ( x ) T ϕ ( z )
K(x,z) K ( x , z ) 就是
χ×χ χ × χ 上的正定核。
可验证,对任意一组 xi∈χ,i=1,⋯,m x i ∈ χ , i = 1 , ⋯ , m ,函数 K(x,z) K ( x , z ) 形成的Gram矩阵
K=[K(xi,xj)]m×m K = [ K ( x i , x j ) ] m × m
是半正定时,
K(x,z) K ( x , z ) 是正定核。
通常,使用的正定核有多项式核函数 K(x,z)=(xTz+1)p K ( x , z ) = ( x T z + 1 ) p ;高斯核函数 K(x,z)=e−||x−z||22σ2 K ( x , z ) = e − | | x − z | | 2 2 σ 2 。
利用核函数可得非线性支持向量机对偶问题的模型
minα12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαis.t.∑Ni=1αiyi=0,0≤αi≤C,i=1,2,…,Ni=1,2,…,N. min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 , i = 1 , 2 , … , N 0 ≤ α i ≤ C , i = 1 , 2 , … , N .
对应的分类决策函数为
f(x)=sign(∑i=1Nα∗iyiK(x,xi)+yj−∑i=1Nα∗iyiK(xi,xj)) f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x , x i ) + y j − ∑ i = 1 N α i ∗ y i K ( x i , x j ) ) 。
—————————————————————————
SMO算法
前面提到过,该算法主要是用于求解对偶问题。
首先,给定初始的 α α ,检验是否 α α 的每个分类都满足KKT条件,如果都满足则得最优解 α∗ α ∗ ,如果存在不满足的分离,就选择两个分量作变量,其余分量固定,将原来的对偶问题模型化成二次规划子问题。
然后,利用约束条件可以将二次规划子问题转化成单变量求极值问题。
对于二次规划子问题的两个变量的选择标准:一个是违反KKT条件最严重的一个,另一个是使目标函数有足够下降的。