假设给定一个特征空间上的训练数据集:
T
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
T={(x_1,y_1 ),(x_2,y_2 ),…,(x_N,y_N )}
T=(x1,y1),(x2,y2),…,(xN,yN)其中,
x
i
∈
X
∈
R
n
,
y
i
∈
−
1
,
+
1
x_i∈X∈R^n,y_i∈{-1,+1}
xi∈X∈Rn,yi∈−1,+1
线性不可分意味着某些样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)不能满足函数间隔大于等于1的约束条件.为了解决这个问题,可以对每个样本点引进一个松弛变量
ξ
i
ξ_i
ξi,使函数间隔加上松弛变量大于等于1。这样,约束条件变为:
y
i
(
w
.
x
i
+
b
)
≥
1
−
ξ
i
y_i (w.x_i+b)≥1-ξ_i
yi(w.xi+b)≥1−ξi
同时,对每个松弛变量,支付一个代价
ξ
ξ
ξ。目标函数由原来的
1
2
∣
∣
w
∣
∣
2
\frac{1}{2} ||w||^2
21∣∣w∣∣2变成:
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
\frac{1}{2} ||w||^2+C∑_{i=1}^Nξ_i
21∣∣w∣∣2+Ci=1∑Nξi
C
>
0
C>0
C>0称为惩罚参数,一般由应用问题决定,
C
C
C值大时对误分类的惩罚增大,
C
C
C值小时对误分类的惩罚减小.
线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题(原始问题) :
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
+
C
∑
i
=
1
N
ξ
i
\min _{w,b,ξ} \frac{1}{2} ||w||+C∑_{i=1}^Nξ_i
w,b,ξmin21∣∣w∣∣+Ci=1∑Nξi
s
t
.
y
i
(
w
.
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
…
,
N
st. \qquad y_i (w.x_i+b)≥1-ξ_i ,i=1,2,…,N
st.yi(w.xi+b)≥1−ξi,i=1,2,…,N
ξ
i
≥
0
,
i
=
1
,
2
,
…
,
N
ξ_i≥0 ,i=1,2,…,N
ξi≥0,i=1,2,…,N
原始问题是一个凸二次规划问题,因而关于
(
w
,
b
,
ξ
)
(w,b,ξ)
(w,b,ξ)的解是存在的.可以证明
w
w
w的解是唯一的,但
b
b
b的解不唯一,
b
b
b的解存在于一个区间.
线性支持向量机的定义:
对于给定的线性不可分的训练数据集,通过求解下面凸二次规划问题来得到最优解:
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
\min _{w,b,ξ} \frac{1}{2} ||w||^2+C∑_{i=1}^Nξ_i
w,b,ξmin21∣∣w∣∣2+Ci=1∑Nξi
s
t
.
y
i
(
w
.
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
…
,
N
st. \qquad y_i (w.x_i+b)≥1-ξ_i ,i=1,2,…,N
st.yi(w.xi+b)≥1−ξi,i=1,2,…,N
ξ
i
≥
0
,
i
=
1
,
2
,
…
,
N
ξ_i≥0 ,i=1,2,…,N
ξi≥0,i=1,2,…,N
假设问题的解是
w
∗
,
b
∗
w^*,b^*
w∗,b∗,于是得到的分离超平面为:
w
∗
∗
x
+
b
∗
=
0
w^**x+b^*=0
w∗∗x+b∗=0
以及相应的分类决策函数:
f
(
x
)
=
s
i
g
n
(
w
∗
∗
x
+
b
∗
)
f(x)=sign(w^**x+b^* )
f(x)=sign(w∗∗x+b∗)称为线性支持向量机. 显然,线性支持向量机包含线性可分支持向量机
二、学习的对偶算法
拉格朗日函数:
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
−
∑
i
=
1
N
α
i
(
y
i
(
w
∗
x
i
+
b
)
−
1
+
ξ
i
)
−
∑
i
=
1
N
μ
i
ξ
i
L(w,b,ξ,α,μ)=\frac{1}{2} ||w||^2+C∑_{i=1}^Nξ_i -∑_{i=1}^Nα_i (y_i (w*x_i+b)-1+ξ_i ) -∑_{i=1}^Nμ_i ξ_i
L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi(yi(w∗xi+b)−1+ξi)−i=1∑Nμiξi其中
μ
i
≥
0
,
α
i
≥
0
μ_i≥0,α_i≥0
μi≥0,αi≥0
首先求
L
(
w
,
b
,
ξ
,
α
,
μ
)
L(w,b,ξ,α,μ)
L(w,b,ξ,α,μ)对
w
,
b
,
ξ
w,b,ξ
w,b,ξ的极小:
∇
w
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
∇_w L(w,b,ξ,α,μ)=w-∑_{i=1}^Nα_i y_i x_i =0
∇wL(w,b,ξ,α,μ)=w−i=1∑Nαiyixi=0
∇
b
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
−
∑
i
=
1
N
α
i
y
i
=
0
∇_b L(w,b,ξ,α,μ)=-∑_{i=1}^Nα_i y_i =0
∇bL(w,b,ξ,α,μ)=−i=1∑Nαiyi=0
∇
ξ
i
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
C
−
α
i
−
μ
i
=
0
∇_{ξ_i } L(w,b,ξ,α,μ)=C-α_i-μ_i=0
∇ξiL(w,b,ξ,α,μ)=C−αi−μi=0得:
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=∑_{i=1}^Nα_i y_i x_i
w=i=1∑Nαiyixi
∑
i
=
1
N
α
i
y
i
=
0
∑_{i=1}^Nα_i y_i =0
i=1∑Nαiyi=0
C
−
α
i
−
μ
i
=
0
C-α_i-μ_i=0
C−αi−μi=0带入
L
(
w
,
b
,
ξ
,
α
,
μ
)
L(w,b,ξ,α,μ)
L(w,b,ξ,α,μ)中去:
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
−
∑
i
=
1
N
α
i
(
y
i
(
w
∗
x
i
+
b
)
−
1
)
−
∑
i
=
1
N
α
i
ξ
i
−
∑
i
=
1
N
μ
i
ξ
i
\min_{w,b,ξ}L(w,b,ξ,α,μ)=\frac{1}{2} ||w||^2+C∑_{i=1}^Nξ_i -∑_{i=1}^Nα_i (y_i (w*x_i+b)-1) -∑_{i=1}^Nα_i ξ_i -∑_{i=1}^Nμ_i ξ_i
w,b,ξminL(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi(yi(w∗xi+b)−1)−i=1∑Nαiξi−i=1∑Nμiξi
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
N
α
i
(
y
i
(
w
∗
x
i
+
b
)
−
1
)
+
(
C
−
α
i
−
μ
i
)
∑
i
=
1
N
ξ
i
=\frac{1}{2} ||w||^2-∑_{i=1}^Nα_i (y_i (w*x_i+b)-1) +(C-α_i-μ_i ) ∑_{i=1}^Nξ_i
=21∣∣w∣∣2−i=1∑Nαi(yi(w∗xi+b)−1)+(C−αi−μi)i=1∑Nξi
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
N
α
i
(
y
i
(
w
∗
x
i
+
b
)
−
1
)
=\frac{1}{2} ||w||^2-∑_{i=1}^Nα_i (y_i (w*x_i+b)-1)
=21∣∣w∣∣2−i=1∑Nαi(yi(w∗xi+b)−1)与线性可分支持向量机一样,所以最后得到:
D
(
α
)
=
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
∗
x
j
)
+
∑
i
=
1
N
α
i
D(α)=\min_{w,b,ξ}L(w,b,ξ,α,μ)=-\frac{1}{2} ∑_{i=1}^N∑_{j=1}^Nα_i α_j y_i y_j (x_i *x_j) +∑_{i=1}^Nα_i
D(α)=w,b,ξminL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi∗xj)+i=1∑Nαi
再对
D
(
α
)
D(α)
D(α)求α的极大, 即得对偶问题:
max
α
(
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
∗
x
j
)
)
+
∑
i
=
1
N
α
i
\max_α(-\frac{1}{2}∑_{i=1}^N∑_{j=1}^Nα_i α_j y_i y_j (x_i *x_j))+∑_{i=1}^Nα_i
αmax(−21i=1∑Nj=1∑Nαiαjyiyj(xi∗xj))+i=1∑Nαi
s
t
.
∑
i
=
1
N
α
i
y
i
=
0
st. ∑_{i=1}^Nα_i y_i =0
st.i=1∑Nαiyi=0
α
i
≥
0
α_i≥0
αi≥0
μ
i
≥
0
μ_i≥0
μi≥0
C
−
α
i
−
μ
i
=
0
,
i
=
1
,
2
,
…
,
N
C-α_i-μ_i=0 ,i=1,2,…,N
C−αi−μi=0,i=1,2,…,N利用等式约束
C
−
α
i
−
μ
i
=
0
C-α_i-μ_i=0
C−αi−μi=0消去
μ
i
μ_i
μi,从而只留下变量
α
i
α_i
αi,这样将后面三个约束并为一个约束写成:
0
≤
μ
i
≤
C
0≤μ_i≤C
0≤μi≤C再将对目标函数求极大转换为求极小,于是得到对偶问题:
min
α
(
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
∗
x
j
)
)
−
∑
i
=
1
N
α
i
\min_α(\frac{1}{2}∑_{i=1}^N∑_{j=1}^Nα_i α_j y_i y_j (x_i *x_j))-∑_{i=1}^Nα_i
αmin(21i=1∑Nj=1∑Nαiαjyiyj(xi∗xj))−i=1∑Nαi
s
t
.
∑
i
=
1
N
α
i
y
i
=
0
st. ∑_{i=1}^Nα_i y_i =0
st.i=1∑Nαiyi=0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
…
,
N
0≤α_i≤C ,i=1,2,…,N
0≤αi≤C,i=1,2,…,N
假设我们现在通过某种方法求得了对偶问题的解:
α
∗
=
(
α
1
∗
,
α
2
∗
,
…
,
α
N
∗
)
α^*=(α_1^*,α_2^*,…,α_N^*)
α∗=(α1∗,α2∗,…,αN∗),现在需要求出原始问题的解
w
∗
,
b
∗
w^*,b^*
w∗,b∗,由强对偶性可知
w
∗
,
b
∗
,
α
∗
w^*,b^*,α^*
w∗,b∗,α∗满足KKT条件:
∇
w
L
(
w
∗
,
b
∗
,
ξ
∗
,
α
∗
,
μ
∗
)
=
w
∗
−
∑
i
=
1
N
α
i
∗
y
i
x
i
=
0
∇_w L(w^*,b^*,ξ^*,α^*,μ^* )=w^*-∑_{i=1}^Nα_i^* y_i x_i =0
∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−i=1∑Nαi∗yixi=0
∇
w
L
(
w
∗
,
b
∗
,
ξ
∗
,
α
∗
,
μ
∗
)
=
w
∗
−
∑
i
=
1
N
α
i
∗
y
i
x
i
=
0
∇_w L(w^*,b^*,ξ^*,α^*,μ^* )=w^*-∑_{i=1}^Nα_i^* y_i x_i =0
∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−i=1∑Nαi∗yixi=0
∇
b
L
(
w
∗
,
b
∗
,
ξ
∗
,
α
∗
,
μ
∗
)
=
−
∑
i
=
1
N
α
i
∗
y
i
=
0
∇_b L(w^*,b^*,ξ^*,α^*,μ^* )=-∑_{i=1}^Nα_i^* y_i =0
∇bL(w∗,b∗,ξ∗,α∗,μ∗)=−i=1∑Nαi∗yi=0
∇
ξ
i
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
C
−
α
i
∗
−
μ
i
∗
=
0
∇_{ξ_i } L(w,b,ξ,α,μ)=C-α_i^*-μ_i^*=0
∇ξiL(w,b,ξ,α,μ)=C−αi∗−μi∗=0
y
i
(
w
∗
∗
x
i
+
b
∗
)
−
1
+
ξ
i
∗
≥
0
y_i (w^**x_i+b^* )-1+ξ_i^*≥0
yi(w∗∗xi+b∗)−1+ξi∗≥0
α
i
∗
≥
0
α_i^*≥0
αi∗≥0
α
i
∗
(
y
i
(
w
∗
∗
x
i
+
b
∗
)
−
1
+
ξ
i
∗
)
=
0
α_i^* (y_i (w^**x_i+b^* )-1+ξ_i^* )=0
αi∗(yi(w∗∗xi+b∗)−1+ξi∗)=0
ξ
i
≥
0
,
i
=
1
,
2
,
…
,
N
ξ_i≥0 ,i=1,2,…,N
ξi≥0,i=1,2,…,N
μ
i
≥
0
μ_i≥0
μi≥0
μ
i
ξ
i
=
0
μ_i ξ_i=0
μiξi=0由第一个式子可以得到
w
∗
w^*
w∗的
α
i
∗
α_i^*
αi∗表达式:
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^*=∑_{i=1}^Nα_i^* y_i x_i
w∗=i=1∑Nαi∗yixi 若存在
0
<
α
j
∗
<
C
0<α_j^*<C
0<αj∗<C,根据KKT条件有:
α
j
∗
(
y
j
(
w
∗
∗
x
j
+
b
∗
)
−
1
+
ξ
j
∗
)
=
0
α_j^* (y_j (w^**x_j+b^* )-1+ξ_j^* )=0
αj∗(yj(w∗∗xj+b∗)−1+ξj∗)=0得:
y
j
(
w
∗
∗
x
j
+
b
∗
)
−
1
+
ξ
j
∗
=
0
y_j (w^**x_j+b^* )-1+ξ_j^*=0
yj(w∗∗xj+b∗)−1+ξj∗=0
b
∗
=
y
j
−
y
j
ξ
j
∗
−
w
∗
∗
x
j
b^*=y_j-y_j ξ_j^*-w^**x_j
b∗=yj−yjξj∗−w∗∗xj又由于:
C
−
α
j
∗
−
μ
j
∗
=
0
C-α_j^*-μ_j^*=0
C−αj∗−μj∗=0所以:
μ
j
∗
>
0
μ_j^*>0
μj∗>0再根据:
μ
i
ξ
i
=
0
μ_i ξ_i=0
μiξi=0得:
ξ
i
=
0
ξ_i=0
ξi=0最后得到:
b
∗
=
y
j
−
w
∗
∗
x
j
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
∗
x
j
)
b^*=y_j-w^**x_j=y_j-∑_{i=1}^Nα_i^* y_i (x_i*x_j)
b∗=yj−w∗∗xj=yj−i=1∑Nαi∗yi(xi∗xj)同时我们可以得到:
y
j
(
w
∗
∗
x
j
+
b
∗
)
−
1
=
0
y_j (w^**x_j+b^* )-1=0
yj(w∗∗xj+b∗)−1=0样本
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj)为间隔边界上的支持向量。
由上面推导可知只要存在支持向量,即存在
0
<
α
j
∗
<
C
0<α_j^*<C
0<αj∗<C,则
w
∗
,
b
∗
w^*,b^*
w∗,b∗的表示式与线性可分支持向量机式一样的。
分离超平面可以写成:
∑
i
=
1
N
α
i
∗
y
i
x
i
∗
x
+
b
∗
=
∑
i
=
1
N
α
i
∗
y
i
(
x
i
∗
x
)
+
b
∗
=
0
∑_{i=1}^Nα_i^* y_i x_i *x+b^*=∑_{i=1}^Nα_i^* y_i (x_i *x)+b^*=0
i=1∑Nαi∗yixi∗x+b∗=i=1∑Nαi∗yi(xi∗x)+b∗=0
分类决策函数可以写成:
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
N
α
i
∗
y
i
(
x
i
∗
x
)
+
b
∗
)
f(x)=sign(∑_{i=1}^Nα_i^* y_i (x_i *x)+b^*)
f(x)=sign(i=1∑Nαi∗yi(xi∗x)+b∗)上式称为线性可分支持向量机的对偶形式