线性支持向量机
实际当中大多数数据集都不是线性可分的,线性支持向量机主要是针对去掉少数样本之后线性可分样本数据集。线性不可分即意味着由少数样本点不能满足函数间隔大于等于1的约束条件,因此可以对每一个样本点加上一个松弛变量,并对每个松弛变量进行惩罚。于是原始问题变为:
m
i
n
ω
,
b
,
ξ
1
2
∣
∣
ω
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
min_{\omega ,b ,\xi}~\frac{1}{2}||\omega||^2+C\sum_{i=1}^{N}\xi_{i}
minω,b,ξ 21∣∣ω∣∣2+Ci=1∑Nξi
s
.
t
.
y
i
(
ω
⋅
x
i
+
b
)
+
ξ
i
≥
1
s.t.~~y_{i}(\omega\cdot x_{i}+b)+\xi_{i}\ge1
s.t. yi(ω⋅xi+b)+ξi≥1
ξ
i
≥
0
,
i
=
1
,
.
.
.
,
N
\xi_{i}\ge0,i=1,...,N
ξi≥0,i=1,...,N
- ξ i ∣ ∣ ω ∣ ∣ \frac{\xi_{i}}{||\omega||} ∣∣ω∣∣ξi为错分样本或分对的样本但到所对应的间隔超平面的函数间隔没有达到1的样本到所对应的超平面的距离,如上图所示。
- 原问题是一个凸二次规划问题, ( ω , b , ξ ) (\omega,b,\xi) (ω,b,ξ)的解存在, ω \omega ω是唯一的, b b b的解不唯一。
求解分离超平面
求解方法和线性可分支持向量机差不多:
写出原问题的对偶问题
≫
\gg
≫由对偶问题的解写出原问题的解
原问题的对偶问题
Step1:原问题的拉格朗日函数为
L
(
ω
,
b
,
ξ
,
α
,
μ
)
=
1
2
∣
∣
ω
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
−
∑
i
=
1
N
α
i
(
y
i
(
ω
⋅
x
i
+
b
)
−
1
+
ξ
i
)
−
∑
i
N
μ
i
ξ
i
L(\omega,b,\xi,\alpha,\mu)=\frac{1}{2}||\omega||^2+C\sum_{i=1}^N \xi_{i}-\sum_{i=1}^N\alpha_{i}(y_{i}(\omega\cdot x_{i}+b)-1+\xi_{i})-\sum_{i}^{N}\mu_{i}\xi_{i}
L(ω,b,ξ,α,μ)=21∣∣ω∣∣2+Ci=1∑Nξi−i=1∑Nαi(yi(ω⋅xi+b)−1+ξi)−i∑Nμiξi
- 原问题形如:
m i n x ∈ R f ( x ) min_{x\in R }f(x) minx∈Rf(x)
s . t c i ( x ) ≤ 0 , h j ( x ) = 0 s.t~~c_{i}(x) \le0,h_{j}(x)=0 s.t ci(x)≤0,hj(x)=0
i = 1 , . . . , m ; j = 1 , . . . , n i=1,...,m;~~j=1,...,n i=1,...,m; j=1,...,n
其拉格朗日函数为:
L ( x ∗ , α ∗ , β ∗ ) = f ( x ) + ∑ i α i c i ( x ) + ∑ j β j h j ( x ) L(x^{*},\alpha^*,\beta^*)=f(x)+\sum_{i}\alpha_{i}c_{i}(x)+\sum_{j}\beta_{j}h_{j}(x) L(x∗,α∗,β∗)=f(x)+∑iαici(x)+∑jβjhj(x)
Step2:求
m
i
n
ω
,
b
,
ξ
L
(
ω
,
b
,
ξ
,
α
,
μ
)
min_{\omega,b,\xi}~~L(\omega,b,\xi,\alpha,\mu)
minω,b,ξ L(ω,b,ξ,α,μ)
▽
ω
L
(
ω
,
b
,
ξ
,
α
,
μ
)
=
ω
−
∑
i
α
i
y
i
x
i
=
0
\bigtriangledown_{\omega}~L(\omega,b,\xi,\alpha,\mu)=\omega-\sum_{i}\alpha_{i}y_{i}x_{i}=0
▽ω L(ω,b,ξ,α,μ)=ω−i∑αiyixi=0
▽
b
L
(
ω
,
b
,
ξ
,
α
,
μ
)
=
−
∑
i
α
i
y
i
=
0
\bigtriangledown_{b}~L(\omega,b,\xi,\alpha,\mu)=-\sum_{i}\alpha_{i}y_{i}=0
▽b L(ω,b,ξ,α,μ)=−i∑αiyi=0
▽
ξ
L
(
ω
,
b
,
ξ
,
α
,
μ
)
=
C
−
α
i
−
μ
i
=
0
\bigtriangledown_{\xi}~L(\omega,b,\xi,\alpha,\mu)=C-\alpha_{i}-\mu_{i}=0
▽ξ L(ω,b,ξ,α,μ)=C−αi−μi=0
将上面三个式子带入
m
i
n
ω
,
b
,
ξ
L
(
ω
,
b
,
ξ
,
α
,
μ
)
min_{\omega,b,\xi}~~L(\omega,b,\xi,\alpha,\mu)
minω,b,ξ L(ω,b,ξ,α,μ),得:
m
i
n
ω
,
b
,
ξ
L
(
ω
,
b
,
ξ
,
α
,
μ
)
=
−
1
2
∑
i
=
1
N
∑
i
=
1
N
α
i
α
j
y
i
y
j
(
x
i
,
x
j
)
+
∑
i
=
1
N
α
i
min_{\omega,b,\xi}~~L(\omega,b,\xi,\alpha,\mu)=-\frac{1}{2}\sum_{i=1}^{N}\sum_{i=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i},x_{j})+\sum_{i=1}^{N}\alpha_{i}
minω,b,ξ L(ω,b,ξ,α,μ)=−21i=1∑Ni=1∑Nαiαjyiyj(xi,xj)+i=1∑Nαi
Step3:最后得到对偶问题
m
a
x
α
−
1
2
∑
i
=
1
N
∑
i
=
1
N
α
i
α
j
y
i
y
j
(
x
i
,
x
j
)
+
∑
i
=
1
N
α
i
max_{\alpha}~~-\frac{1}{2}\sum_{i=1}^{N}\sum_{i=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i},x_{j})+\sum_{i=1}^{N}\alpha_{i}
maxα −21i=1∑Ni=1∑Nαiαjyiyj(xi,xj)+i=1∑Nαi
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
s.t.~~\sum_{i=1}^{N}\alpha_{i}y_{i}=0
s.t. i=1∑Nαiyi=0
C
=
α
i
+
μ
i
~~~~~~~~C=\alpha_{i}+\mu_{i}
C=αi+μi
α
i
≥
0
,
μ
i
≥
0
,
i
=
1
,
.
.
.
,
N
\alpha_{i}\ge 0,\mu_{i}\ge0,i=1,...,N
αi≥0,μi≥0,i=1,...,N
去掉
μ
i
\mu_{i}
μi,得到对偶问题
m
i
n
α
1
2
∑
i
=
1
N
∑
i
=
1
N
α
i
α
j
y
i
y
j
(
x
i
,
x
j
)
−
∑
i
=
1
N
α
i
min_{\alpha}~~\frac{1}{2}\sum_{i=1}^{N}\sum_{i=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i},x_{j})-\sum_{i=1}^{N}\alpha_{i}
minα 21i=1∑Ni=1∑Nαiαjyiyj(xi,xj)−i=1∑Nαi
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
s.t.~~\sum_{i=1}^{N}\alpha_{i}y_{i}=0
s.t. i=1∑Nαiyi=0
0
≤
α
i
≤
C
~~~~~~~~0\le\alpha_{i}\le C
0≤αi≤C
i
=
1
,
.
.
.
,
N
~~~~~~~i=1,...,N
i=1,...,N
对偶问题求解
采用上一篇提出的SMO算法
由对偶问题的解写出原问题的解
原始问题是凸二次规划问题,故其拉格朗日函数满足KKT条件,即
▽
ω
L
(
ω
,
b
,
ξ
,
α
,
μ
)
=
ω
−
∑
i
α
i
y
i
x
i
=
0
\bigtriangledown_{\omega}~L(\omega,b,\xi,\alpha,\mu)=\omega-\sum_{i}\alpha_{i}y_{i}x_{i}=0
▽ω L(ω,b,ξ,α,μ)=ω−i∑αiyixi=0
▽
b
L
(
ω
,
b
,
ξ
,
α
,
μ
)
=
−
∑
i
α
i
y
i
=
0
\bigtriangledown_{b}~L(\omega,b,\xi,\alpha,\mu)=-\sum_{i}\alpha_{i}y_{i}=0
▽b L(ω,b,ξ,α,μ)=−i∑αiyi=0
▽
ξ
L
(
ω
,
b
,
ξ
,
α
,
μ
)
=
C
−
α
i
−
μ
i
=
0
\bigtriangledown_{\xi}~L(\omega,b,\xi,\alpha,\mu)=C-\alpha_{i}-\mu_{i}=0
▽ξ L(ω,b,ξ,α,μ)=C−αi−μi=0
α
i
(
y
i
(
ω
⋅
x
i
+
b
)
−
1
+
ξ
i
)
=
0
\alpha_{i}(y_{i}(\omega\cdot x_{i}+b)-1+\xi_{i})=0
αi(yi(ω⋅xi+b)−1+ξi)=0
μ
i
ξ
i
=
0
\mu_{i}\xi_{i}=0
μiξi=0
y
i
(
ω
⋅
x
i
+
b
)
−
1
+
ξ
i
)
≥
0
y_{i}(\omega\cdot x_{i}+b)-1+\xi_{i})\ge0
yi(ω⋅xi+b)−1+ξi)≥0
ξ
i
≥
0
,
α
i
≥
0
,
μ
i
≥
0
\xi_{i}\ge0,\alpha_{i}\ge0,\mu_{i}\ge0
ξi≥0,αi≥0,μi≥0
i
=
1
,
.
.
.
,
N
i=1,...,N
i=1,...,N
因此得到原问题的解和对偶问题的解的关系:
ω
=
∑
i
=
1
N
α
i
y
i
x
i
\omega=\sum_{i=1}^{N}\alpha_{i}y_{i}x_{i}
ω=i=1∑Nαiyixi
b
=
y
j
−
∑
i
=
1
N
α
i
y
i
(
x
i
⋅
x
j
)
b=y_{j}-\sum_{i=1}^{N}\alpha_{i}y_{i}(x_{i}\cdot x_{j})
b=yj−i=1∑Nαiyi(xi⋅xj)
其中
0
≤
α
i
≤
C
0\le \alpha_{i}\le C
0≤αi≤C
最终求得超平面
∑
i
=
1
N
α
i
y
i
(
x
⋅
x
i
)
+
b
=
0
\sum_{i=1}^{N}\alpha_{i}y_{i}(x\cdot x_{i})+b=0
i=1∑Nαiyi(x⋅xi)+b=0
决策函数
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
N
α
i
y
i
(
x
⋅
x
i
)
+
b
)
f(x)=sign(\sum_{i=1}^{N}\alpha_{i}y_{i}(x\cdot x_{i})+b)
f(x)=sign(i=1∑Nαiyi(x⋅xi)+b)
支持向量
α i > 0 \alpha_{i}>0 αi>0对应得样本点 ( x i , y i ) (x_{i},y_{i}) (xi,yi)为支持向量,此时由KKT条件可知,支持向量分如下几种情况
{
α
i
≤
C
,
μ
i
>
0
,
ξ
i
=
0
,
y
i
(
ω
⋅
x
i
+
b
)
=
1
分类正确,支持向量落在边界上
α
i
=
C
,
μ
i
=
0
,
0
<
ξ
i
<
1
,
0
,
y
i
(
ω
⋅
x
i
+
b
)
+
ξ
i
=
1
分类正确,支持向量落在边界和超平面之间
α
i
=
C
,
μ
i
=
0
,
ξ
i
=
1
,
y
i
(
ω
⋅
x
i
+
b
)
=
0
分类未知,支持向量落在超平面上
α
=
C
,
μ
i
=
0
,
ξ
i
>
1
,
y
i
(
ω
⋅
x
i
+
b
)
+
ξ
i
=
1
分类错误,支持向量位于超平面误分一次
\begin{cases} \alpha_{i}\le C, \mu_{i}>0,\xi_{i}=0,y_{i}( {\omega\cdot x_{i}+b)=1} &{\text{ 分类正确,支持向量落在边界上}}\\ \alpha_{i}=C, \mu_{i}=0,0<\xi_{i}<1,0,y_{i}( {\omega\cdot x_{i}+b)+\xi_{i}=1} &{\text{分类正确,支持向量落在边界和超平面之间}}\\ \alpha_{i}=C,\mu_{i}=0,\xi_{i}=1,y_{i}( \omega\cdot x_{i}+b)=0&{\text{分类未知,支持向量落在超平面上}}\\ \alpha= C,\mu_{i}=0,\xi_{i}>1,y_{i}( {\omega\cdot x_{i}+b)+\xi_{i}=1} &{\text{分类错误,支持向量位于超平面误分一次}} \end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧αi≤C,μi>0,ξi=0,yi(ω⋅xi+b)=1αi=C,μi=0,0<ξi<1,0,yi(ω⋅xi+b)+ξi=1αi=C,μi=0,ξi=1,yi(ω⋅xi+b)=0α=C,μi=0,ξi>1,yi(ω⋅xi+b)+ξi=1 分类正确,支持向量落在边界上分类正确,支持向量落在边界和超平面之间分类未知,支持向量落在超平面上分类错误,支持向量位于超平面误分一次
上一篇