SVM

简述

支持向量机学习包括:线性可分支持向量机、线性支持向量机及非线性支持向量机。当数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机;当数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称软间隔支持向量机;当数据线性不可分时,通过核技巧及软间隔最大化,学习非线性支持向量机。


细节

硬间隔支持向量机

基本模型

超平面描述:
w T x + b = 0 wTx+b=0 wTx+b=0
其中w=(w1,w2,…wd)为法向量,决定了超平面的方向;b为位移项,是超平面与原点之间的距离。
一个点距离超平面的距离d:
d = y i w T x i + b ∣ ∣ w ∣ ∣ d=yi\frac{ w^Tx_i+b }{ ||w|| }\qquad d=yiwwTxi+b (1)
( x i , y i xi,yi xi,yi为某点的实例与标记)
最大间隔margin:
d = 2 ∣ ∣ w ∣ ∣ d=\frac{2}{||w||}\qquad d=w2 (2)
(2)等价于 m i n ∣ ∣ w ∣ ∣ 2 min\frac{||w||}{2}\qquad min2w(3)

基本模型:
m i n ∣ ∣ w ∣ ∣ 2 2 min\frac{{||w||}^{2}}{2} min2w2
s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m s.t.yi(w^Tx_i+b)\geq 1, i=1,2,...,m s.t.yi(wTxi+b)1,i=1,2,...,m

原始问题转化为对偶问题

基本模型中目标函数是二次的,约束条件是线性的,所以是凸二次规划问题。
引入拉格朗日对偶性:对偶问题更容易求解;可以引入核函数,进而解决非线性分类问题。
每一个约束条件加上一个拉格朗日乘子 α \alpha α,定义拉格朗日函数

ℓ ( w , b , α ) = ∣ ∣ w ∣ ∣ 2 2 − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 ) \ell(w,b,\alpha)=\frac{{||w||}^{2}}{2}-\sum_{i=1}^{n}\alpha _i(y_i(w^Tx_i+b)-1) (w,b,α)=2w2i=1nαi(yi(wTxi+b)1)
θ ( w ) = m a x α i ℓ ( w , b , α ) \theta(w)=max_{\alpha i}\ell(w,b,\alpha) θ(w)=maxαi(w,b,α)
模型转化成:
m i n w , b θ ( w ) = m i n w , b m a x α ℓ ( w , b , α ) = p ∗ min_{w,b}\theta(w)=min_{w,b}max_{\alpha}\ell(w,b,\alpha)=p* minw,bθ(w)=minw,bmaxα(w,b,α)=p
其对偶问题:
m a x α m i n w , b ℓ ( w , b , α ) = d ∗ max_{\alpha}min_{w,b}\ell(w,b,\alpha)=d* maxαminw,b(w,b,α)=d
在满足某些条件的情况下(KKT), d ∗ = p ∗ d*=p* d=p,就可以通过求解对偶问题来间接地求解原始问题。
对于一般的最优化标准模型:

m i n . f ( x ) min.f(x) min.f(x)
s . t . h j ( x ∗ ) = 0 , j = 1 , . . . , p , g k ( x ∗ ) ≤ 0 , k = 1 , . . . q s.t.h_{j}(x*)=0,j=1,...,p,g_{k}(x*)\leq0,k=1,...q s.t.hj(x)=0,j=1,...,p,gk(x)0,k=1,...q
KKT成立的条件:
1) h j ( x ∗ ) = 0 , j = 1 , . . . , p h_{j}(x*)=0,j=1,...,p hj(x)=0,j=1,...,p g k ( x ∗ ) ≤ 0 , k = 1 , . . . q g_{k}(x*)\leq0,k=1,...q gk(x)0,k=1,...q
2) ▽ f ( x ∗ ) + ∫ j = 1 p λ j ▽ h j ( x ∗ ) + ∫ k = 1 q μ k ▽ g k ( x ∗ ) = 0 \bigtriangledown f(x*)+\int_{j=1}^{p}\lambda_{j} \bigtriangledown h_{j}(x*)+\int_{k=1}^{q}\mu_{k} \bigtriangledown g_{k}(x*)=0 f(x)+j=1pλjhj(x)+k=1qμkgk(x)=0 μ k ▽ g k ( x ∗ ) = 0 \mu_{k}\bigtriangledown g_{k}(x*)=0 μkgk(x)=0

对偶问题求解

原始问题通过满足KKT条件,转化成对偶问题。而求解对偶问题,分为3个步骤: L ( w , b , α ) L(w,b,\alpha) L(wbα) 关于 w 和 b 最小化,然后求 α \alpha α极大,最后利用SMO算法求解对偶问题中的拉格朗日乘子。

w 和 b 最小化

求偏导:
σ ℓ σ w = 0 → w = ∑ i = 1 n α i y i x i \frac{\sigma\ell}{\sigma w}=0\to w=\sum_{i=1}^{n}\alpha iyixi σwσ=0w=i=1nαiyixi
σ ℓ σ b = 0 → ∑ i = 1 n α i y i = 0 \frac{\sigma\ell}{\sigma b}=0\to \sum_{i=1}^{n}\alpha iyi=0 σbσ=0i=1nαiyi=0

带入: ℓ ( w , b , α ) = ∣ ∣ w ∣ ∣ 2 2 − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 ) \ell(w,b,\alpha)=\frac{{||w||}^{2}}{2}-\sum_{i=1}^{n}\alpha i(yi(wTxi+b)-1) (w,b,α)=2w2i=1nαi(yi(wTxi+b)1)
得:
ℓ ( w , b , α ) = 1 2 ∑ i , j = 1 n α i α j y i y j x i x j − ∑ i , j = 1 n α i α j y i y j x i x j − b ∑ i = 1 n α i y i + ∑ i = 1 n α i \ell(w,b,\alpha)=\frac{1}{2}\sum_{i,j=1}^{n}\alpha i\alpha jyiyjxixj-\sum_{i,j=1}^{n}\alpha i\alpha jyiyjxixj-b\sum_{i=1}^{n}\alpha i yi+\sum_{i=1}^{n}\alpha i (w,b,α)=21i,j=1nαiαjyiyjxixji,j=1nαiαjyiyjxixjbi=1nαiyi+i=1nαi

化简:
ℓ ( w , b , α ) = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i x j \ell(w,b,\alpha)=\sum_{i=1}^{n}\alpha i-\frac{1}{2}\sum_{i,j=1}^{n}\alpha i\alpha jyiyjxixj (w,b,α)=i=1nαi21i,j=1nαiαjyiyjxixj
过程

α \alpha α极大

由上一步得到:
m a x α ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j x i T x j max_{\alpha}\sum_{i=1}^{n}\alpha i-\frac{1}{2}\sum_{i,j=1}^{n}\alpha_i\alpha_jy_iy_jx_i^Tx_j maxαi=1nαi21i,j=1nαiαjyiyjxiTxj
s . t . , α i ≥ 0 , i = 1 , . . . , n s.t.,\alpha i\geq0,i=1,...,n s.t.,αi0,i=1,...,n
∑ i = 1 n α i y i = 0 \sum_{i=1}^{n}\alpha iyi=0 i=1nαiyi=0

从而求出 α i \alpha i αi
根据 w = ∑ i = 1 m α i y ( i ) x ( i ) w=\sum_{i=1}^{m}\alpha iy(i)x(i) w=i=1mαiy(i)x(i)可求出 w w w

再根据 b ∗ = − 1 2 m a x i : y ( i ) = − 1 w ∗ T x i + m i n i : y i = 1 w ∗ T x i b*=-\frac{1}{2}max_{i:y(i)=-1}w*^Tx^{i}+min_{i:y{i}=1}w^{*T}x^{i} b=21maxi:y(i)=1wTxi+mini:yi=1wTxi可求出b

拉格朗日乘子 α \alpha α

软间隔支持向量机

放宽SVM的限制,可以允许存在一些误分类的点。引入pocket算法,具体来说是找一个犯错最少的超平面

m i n w , b ∑ n = 1 N ∣ [ y n ≠ s i g n ( w T x n + b ) ] ∣ min_{w,b}\sum_{n=1}^{N}|[y_n\neq sign(w^Tx_n+b)]| minw,bn=1N[yn̸=sign(wTxn+b)]

软间隔支持向量机的原始形式:
m i n w , ξ , b 1 2 w T w + C ∑ n = 1 N ξ n min_{w,\xi,b}\frac{1}{2} w^Tw+C\sum_{n=1}^{N}\xi_n minw,ξ,b21wTw+Cn=1Nξn

s . t . y n ( w T x n + b ) ≥ 1 − ξ n s.t. y_n(w^Tx_n+b)\geq1-\xi_n s.t.yn(wTxn+b)1ξn
ξ n ≥ 0 \xi_n\geq0 ξn0

其中所有错误记录在 ξ ( ξ ≥ 0 ) \xi(\xi \geq0) ξ(ξ0)中,即要最小化 ξ \xi ξ
C用来权衡,C越大越偏向于硬间隔,C越小越偏向于软间隔
由于是最小化,所有引入拉格朗日乘子后与硬间隔有小不同

ℓ ( w , b , ξ , α , β ) = ∣ ∣ w ∣ ∣ 2 2 + C ∑ n = 1 N ξ n + ∑ i = 1 n α n [ 1 − y n ( w T z n + b − ξ n ) ] + ∑ n = 1 N β n ( − ξ n ) \ell(w,b,\xi,\alpha,\beta)=\frac{{||w||}^{2}}{2}+C\sum_{n=1}^{N}\xi_n+\sum_{i=1}^{n}\alpha_n[1-y_n(w^Tz_n+b-\xi_n)]+\sum_{n=1}^{N}\beta_n(-\xi_n) (w,b,ξ,α,β)=2w2+Cn=1Nξn+i=1nαn[1yn(wTzn+bξn)]+n=1Nβn(ξn)
ξ \xi ξ求偏导
C − α n − β n = 0 C-\alpha_n-\beta_n=0 Cαnβn=0
带入得:
ℓ ( w , b , α , β ) = ∣ ∣ w ∣ ∣ 2 2 + C ∑ n = 1 N ξ n + ∑ i = 1 n α n [ 1 − ξ n − y n ( w T z n + b − ξ n ) ] + ∑ n = 1 N β n ( − ξ n ) \ell(w,b,\alpha,\beta)=\frac{{||w||}^{2}}{2}+C\sum_{n=1}^{N}\xi_n+\sum_{i=1}^{n}\alpha_n[1-\xi_n-y_n(w^Tz_n+b-\xi_n)]+\sum_{n=1}^{N}\beta_n(-\xi_n) (w,b,α,β)=2w2+Cn=1Nξn+i=1nαn[1ξnyn(wTzn+bξn)]+n=1Nβn(ξn)

= ∣ ∣ w ∣ ∣ 2 2 + ∑ i = 1 n α n [ 1 − y n ( w T z n + b − ξ n ) ] + ∑ n = 1 N ( C − α n ) ( − ξ n ) + C ∑ n = 1 N ξ n − ∑ n = 1 N α n ξ n =\frac{{||w||}^{2}}{2}+\sum_{i=1}^{n}\alpha_n[1-y_n(w^Tz_n+b-\xi_n)]+\sum_{n=1}^{N}(C-\alpha_n)(-\xi_n)+C\sum_{n=1}^{N}\xi_n-\sum_{n=1}^{N}\alpha_n\xi_n =2w2+i=1nαn[1yn(wTzn+bξn)]+n=1N(Cαn)(ξn)+Cn=1Nξnn=1Nαnξn

= ∣ ∣ w ∣ ∣ 2 2 + ∑ i = 1 n α n [ 1 − y n ( w T z n + b ) ] =\frac{{||w||}^{2}}{2}+\sum_{i=1}^{n}\alpha_n[1-y_n(w^Tz_n+b)] =2w2+i=1nαn[1yn(wTzn+b)]

从而去掉了 ξ n , β n \xi_n,\beta_n ξn,βn即:
m a x α n ( m i n w , b ∣ ∣ w ∣ ∣ 2 2 + ∑ i = 1 n α n ( 1 − y n ( w T z n + b ) ) ) max_{\alpha_n}(min_{w,b}\frac{{||w||}^{2}}{2}+\sum_{i=1}^{n}\alpha_n(1-y_n(w^Tz_n+b))) maxαn(minw,b2w2+i=1nαn(1yn(wTzn+b)))

结果与硬间隔的基本式相同
相对于硬间隔来说,软间隔更加灵活一点,因为可通过调节C来控制模型更加关心的是分隔超平面的间隔大一点,还是分类错误的点少一点。并且不再要求我们的数据是线性可分的。所以软间隔通常要比硬间隔更有实际应用价值。
根据KKT条件:
α n ( 1 − ξ n − y n ( w T z n + b ) ) = 0 \alpha_n(1-\xi_n-y_n(w^Tz_n+b))=0 αn(1ξnyn(wTzn+b))=0
( C − α n ) ξ n = 0 (C-\alpha_n)\xi_n=0 (Cαn)ξn=0

C ≠ α n C\ne\alpha_n C̸=αn ξ n = 0 \xi_n=0 ξn=0,可以求得 b = y s − w t z s b=y_s-w^tz_s b=yswtzs
唯一不同的地方仅仅是 α n \alpha_n αn有一个上界C。并且对偶问题的解 α \alpha α使得我们可以将数据分为三类。
在这里插入图片描述
远点( α n = 0 \alpha_n=0 αn=0
边界点( 0 &lt; α n &lt; C 0&lt;\alpha_n&lt;C 0<αn<C
允许的犯规点( α n = C \alpha_n=C αn=C

非线性支持向量机

在解决非线性的问题通常将低维特征映射到高维空间上寻找线性可分解
在这里插入图片描述
原始数据在2维由非线性的椭圆分割,将特征映射到3维时可线性分解。
例如图中求紫框与绿框中点距时,得到各点位置:

ϕ ( x ) = z \phi(x)=z ϕ(x)=z表映射即 ϕ ( [ x 1 , x 2 ] T ) = [ x 1 2 , 2 x 1 x 2 , x 2 2 ] T \phi([x_1,x_2]^T)=[x_1^2,\sqrt{2}x_1x_2,x_2^2]^T ϕ([x1,x2]T)=[x12,2 x1x2,x22]T其中 z 1 = x 1 2 , z 2 = 2 x 1 x 2 , z 3 = x 2 2 z_1=x_1^2,z_2=\sqrt{2}x_1x_2,z_3=x_2^2 z1=x12,z2=2 x1x2,z3=x22

点\维度二维三维
紫框中的点 [ x 11 , x 12 ] T [x_{11},x_{12}]^T [x11,x12]T [ z 11 , z 12 , z 13 ] T [z_{11},z_{12},z_{13}]^T [z11,z12,z13]T
绿框中的点 [ x 21 , x 22 ] T [x_{21},x_{22}]^T [x21,x22]T [ z 21 , z 22 , z 23 ] T [z_{21},z_{22},z_{23}]^T [z21,z22,z23]T

ϕ ( x 1 ) T ϕ ( x 2 ) = z 1 T z 2 = z 11 z 21 + z 12 z 22 + z 13 z 23 = x 11 2 x 21 2 + 2 x 11 x 12 x 21 x 22 + x 12 2 x 22 2 = ( x 11 x 21 + x 12 x 22 ) 2 \phi(x_1)^T\phi(x_2)=z_1^Tz_2=z_{11}z_{21}+z_{12}z_{22}+z_{13}z_{23} =x_{11}^2x_{21}^2+2x_{11}x_{12}x_{21}x_{22}+x_{12}^2x_{22}^2=(x_{11}x_{21}+x_{12}x_{22})^2 ϕ(x1)Tϕ(x2)=z1Tz2=z11z21+z12z22+z13z23=x112x212+2x11x12x21x22+x122x222=(x11x21+x12x22)2
这种先转化特征空间再计算内积的方式在升维时会出现指数爆炸,利用核技巧可以直接在原特征空间中计算内积

持续更

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值