简述
支持向量机学习包括:线性可分支持向量机、线性支持向量机及非线性支持向量机。当数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机;当数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称软间隔支持向量机;当数据线性不可分时,通过核技巧及软间隔最大化,学习非线性支持向量机。
细节
硬间隔支持向量机
基本模型
超平面描述:
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=yi∣∣w∣∣wTxi+b (1)
(
x
i
,
y
i
xi,yi
xi,yi为某点的实例与标记)
最大间隔margin:
d
=
2
∣
∣
w
∣
∣
d=\frac{2}{||w||}\qquad
d=∣∣w∣∣2 (2)
(2)等价于
m
i
n
∣
∣
w
∣
∣
2
min\frac{||w||}{2}\qquad
min2∣∣w∣∣(3)
基本模型:
m
i
n
∣
∣
w
∣
∣
2
2
min\frac{{||w||}^{2}}{2}
min2∣∣w∣∣2
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,α)=2∣∣w∣∣2−∑i=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λj▽hj(x∗)+∫k=1qμk▽gk(x∗)=0,
μ
k
▽
g
k
(
x
∗
)
=
0
\mu_{k}\bigtriangledown g_{k}(x*)=0
μk▽gk(x∗)=0
对偶问题求解
原始问题通过满足KKT条件,转化成对偶问题。而求解对偶问题,分为3个步骤: L ( w , b , α ) L(w,b,\alpha) L(w,b,α) 关于 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σℓ=0→w=∑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σℓ=0→∑i=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,α)=2∣∣w∣∣2−∑i=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,α)=21∑i,j=1nαiαjyiyjxixj−∑i,j=1nαiαjyiyjxixj−b∑i=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αi−21∑i,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αi−21∑i,j=1nαiαjyiyjxiTxj
s
.
t
.
,
α
i
≥
0
,
i
=
1
,
.
.
.
,
n
s.t.,\alpha i\geq0,i=1,...,n
s.t.,αi≥0,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)=−1w∗Txi+mini:yi=1w∗Txi,可求出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,b∑n=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+C∑n=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
ξn≥0
其中所有错误记录在
ξ
(
ξ
≥
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,ξ,α,β)=2∣∣w∣∣2+C∑n=1Nξn+∑i=1nαn[1−yn(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,α,β)=2∣∣w∣∣2+C∑n=1Nξn+∑i=1nαn[1−ξn−yn(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 =2∣∣w∣∣2+∑i=1nαn[1−yn(wTzn+b−ξn)]+∑n=1N(C−αn)(−ξn)+C∑n=1Nξn−∑n=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)] =2∣∣w∣∣2+∑i=1nαn[1−yn(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,b2∣∣w∣∣2+∑i=1nαn(1−yn(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−ξn−yn(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=ys−wtzs
唯一不同的地方仅仅是
α
n
\alpha_n
αn有一个上界C。并且对偶问题的解
α
\alpha
α使得我们可以将数据分为三类。
远点(
α
n
=
0
\alpha_n=0
αn=0)
边界点(
0
<
α
n
<
C
0<\alpha_n<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,2x1x2,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=2x1x2,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
这种先转化特征空间再计算内积的方式在升维时会出现指数爆炸,利用核技巧可以直接在原特征空间中计算内积