**
简介
**
支持向量机(support vector machine),一般简称为SVM,是一种二分类模型,学习策略是间隔最大化,最终转化为二次规划的求解问题。
假设有数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
n
,
y
n
)
}
T=\lbrace(x_1,y_1 ),(x_2,y_2 ),…,(x_n, y_n )\rbrace
T={(x1,y1),(x2,y2),…,(xn,yn)},其中
x
i
x_i
xi表示第i个实例,
y
i
y_i
yi表示数据的类标记,y∈{+1,-1},当y=+1时表示案例属于正类,y=-1时表示案例属于负类。再假设数据集线性可分。
学习的目标就是在特征空间中找到一个超平面
ω
∗
x
+
b
=
0
ω*x+b=0
ω∗x+b=0,将数据集分为正负两类。
找出超平面之后,要通过决策函数对数据类型进行判断,本文采用决策函数为
f
(
x
)
=
s
i
g
n
(
ω
∗
x
+
b
)
f(x)=sign(ω*x+b)
f(x)=sign(ω∗x+b)。
f
(
x
)
=
{
1
,
if
x
>
=
0
0
,
if
x
<
0
f(x)= \begin{cases} 1, & \text {if $x>=0$ } \\ 0, & \text{if $x<0$ } \end{cases}
f(x)={1,0,if x>=0 if x<0
函数间隔和几何间隔
一般情况下,某点距超平面的距离可以表示分类的确信程度,在超平面
ω
∗
x
+
b
=
0
ω*x+b=0
ω∗x+b=0确定的情况下,
∣
ω
∗
x
+
b
∣
|ω*x+b|
∣ω∗x+b∣可以表示该点到平面的距离。对点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),
(
ω
∗
x
i
+
b
)
(ω*x_i+b)
(ω∗xi+b)和
y
i
y_i
yi的符号可以判断分类是否正确,此时定义该点的函数间隔为:
ι
i
=
y
i
∗
(
ω
∗
x
i
+
b
)
\iota_i=y_i*(ω*x_i+b)
ιi=yi∗(ω∗xi+b)
定义超平面(ω,b)关于数据集T的函数间隔为所有实例点的函数间隔的最小值,即:
ι
=
m
i
n
(
ι
i
)
\iota=min(\iota_i )
ι=min(ιi)
函数间隔可以表示分类的正确性,但是只要成比例的改变超平面的参数,函数间隔会发生改变但是分类结果保持不变,所以需要对函数间隔加一些约束,例如规范化超平面的法向量,
∣
∣
ω
∣
∣
=
1
||ω||=1
∣∣ω∣∣=1,这使得间隔时确定的,此时函数间隔变为几何间隔。
定义数据集中点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的几何间隔为:
γ
=
y
i
∗
(
w
∣
∣
ω
∣
∣
∗
w
+
b
∣
∣
ω
∣
∣
)
\gamma=y_i*(\frac{w}{||ω||}*w+\frac{b}{||ω||})
γ=yi∗(∣∣ω∣∣w∗w+∣∣ω∣∣b)
与函数间隔相似的是定义超平面(ω,b)关于数据集T的几何间隔为所有实例点的几何间隔的最小值,即:
γ
=
m
i
n
(
γ
i
)
\gamma=min(γ_i )
γ=min(γi)
根据两者的定义,函数间隔和几何关系有如下关系:
ι
=
γ
∗
∣
(
∣
ω
∣
)
∣
\iota=γ*|(|ω|)|
ι=γ∗∣(∣ω∣)∣
其中
∣
∣
ω
∣
∣
||ω||
∣∣ω∣∣是ω的
L
2
L_2
L2范式,就是内积。
(硬)间隔最大化
支持向量机的基本思路就是找到可以把数据分为正负两类的超平面,对于数据集T来说在分类精度不确定的情况下可以找到无数个超平面,为了让分类准确,我们让几何间隔保持最大,也就是说最难分的点(靠近超平面的点)也有足够的确信度将其分开,此时超平面对未知的新实例具有较好的分类作用。
将几何间隔最大化问题写成如下方程:
m
a
x
γ
w
,
b
max \quad\gamma_{w,b}
maxγw,b
s
.
t
.
y
i
(
w
∣
∣
ω
∣
∣
∗
w
+
b
∣
∣
ω
∣
∣
)
≥
γ
i
=
1
,
2
,
…
,
n
s.t.\qquad y_i (\frac{w}{||ω||}*w+\frac{b}{||ω||})≥γ\qquad i=1,2,…,n
s.t.yi(∣∣ω∣∣w∗w+∣∣ω∣∣b)≥γi=1,2,…,n
方程表示我们希望最大化几何间隔γ,而数据集中所有点的几何间隔至少为γ。考虑到几何间隔和函数间隔的关系,方程用函数间隔表示为:
m
a
x
ι
∣
∣
w
∣
∣
max\quad\frac{\iota}{||w||}
max∣∣w∣∣ι
s
.
t
.
y
i
∗
(
w
∗
x
i
+
b
)
≥
ι
i
i
=
1
,
2
,
.
.
.
,
n
s.t.\quad y_i*(w*x_i+b)≥\iota_i\quad i=1,2,...,n
s.t.yi∗(w∗xi+b)≥ιii=1,2,...,n
此时可以看出来γ ̌的取值与最优化问题无关,我们将
ι
\iota
ι取值为1,而最大化
1
∣
∣
w
∣
∣
\frac{1}{||w||}
∣∣w∣∣1的问题相当于最小化
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2,此时将上述方程整理为:
m
i
n
1
2
∣
∣
w
∣
∣
w
,
b
2
min \quad\frac{1}{2}||w||^2_{w,b}
min21∣∣w∣∣w,b2
s
.
t
.
y
i
∗
(
w
∗
x
i
+
b
)
≥
1
i
=
1
,
2
,
…
,
n
s.t. \quad y_i *(w*x_i+b)≥1\quad i=1,2,…,n
s.t.yi∗(w∗xi+b)≥1i=1,2,…,n
这是一个凸二次规划问题,可以采用拉格朗日对偶法进行进一步计算。此时给出支持向量的概念,优化问题的提出基础是最难分的点也要保证较好的分类效果,最难分的点就是超平面附近的点,在超平面两端,各有点在约束条件上,以正数集为例。点A
(
x
a
,
y
a
)
(x_a,y_a)
(xa,ya)位于正数据,则
y
a
=
1
y_a=1
ya=1,同时有
w
∗
x
a
+
b
=
1
w*x_a+b=1
w∗xa+b=1,这样的点就是支持向量。在优化问题中,支持向量的位置决定最终的结果,除支持向量以外,其他点位置变动或直接删除没有影响。
拉格朗日对偶法
假设一个约束条件优化问题,方程如下:
m
i
n
f
(
x
)
x
min\quad f(x)_x
minf(x)x
s
.
t
.
g
i
(
x
)
≤
0
,
i
=
1
,
2
,
…
,
n
;
h
j
(
x
)
=
0
,
j
=
1
,
2
,
…
,
m
s.t.\quad g_i (x)≤0,i=1,2,…,n; h_j (x)=0,j=1,2,…,m
s.t.gi(x)≤0,i=1,2,…,n;hj(x)=0,j=1,2,…,m
构建拉格朗日函数为:
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
n
α
i
g
i
+
∑
j
=
1
m
β
j
h
j
L(x,α,β)=f(x)+\sum_{i=1}^{n}\alpha_ig_i+\sum_{j=1}^{m}\beta_jh_j
L(x,α,β)=f(x)+i=1∑nαigi+j=1∑mβjhj
s
.
t
.
α
i
≥
0
,
i
=
1
,
2
,
…
,
n
s.t. α_i≥0,i=1,2,…,n
s.t.αi≥0,i=1,2,…,n
考虑x的函数,
p
(
x
)
=
m
a
x
α
,
β
;
α
i
≥
0
L
(
x
,
α
,
β
)
p(x)=max_{α,β;α_i≥0} \quad L(x,α,β)
p(x)=maxα,β;αi≥0L(x,α,β)
当x不满足原本的约束条件时,即出现
g
i
(
x
)
>
0
g_i (x)>0
gi(x)>0或者
β
i
≠
0
β_i≠0
βi̸=0,就令
α
i
α_i
αi 、
β
i
β_i
βi趋向无穷大,则有p(x)也趋向于无穷大;当x满足约束条件时,p(x)=f(x)。
可以整理为:
p
(
x
)
=
{
f
(
x
)
,
满足约束条件
∞
,
不满足约束条件
p(x)= \begin{cases} f(x), & \text { 满足约束条件 } \\ ∞, & \text{不满足约束条件 } \end{cases}
p(x)={f(x),∞, 满足约束条件 不满足约束条件
此时原本的极小化问题表示为:
m
i
n
x
m
a
x
α
,
β
;
α
i
>
0
L
(
x
,
α
,
β
)
min_x\quad max_{α,β;α_i>0 } \quad L(x,α,β)
minxmaxα,β;αi>0L(x,α,β)
定义为拉格朗日函数的极小极大问题。
m
a
x
α
,
β
;
α
i
>
0
m
i
n
x
L
(
x
,
α
,
β
)
max_{α,β;α_i>0}\quad min_x\quad L(x,α,β)
maxα,β;αi>0minxL(x,α,β)
是原本优化问题的对偶问题,而且对偶问题在某些条件下最优值相等。
间隔最大化的对偶计算
原问题为
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
min_{w,b} \quad\frac{1}{2} ||w||^2
minw,b21∣∣w∣∣2
s
.
t
.
y
i
(
w
x
i
+
b
)
≥
1
i
=
1
,
2
,
…
,
n
s.t. y_i (wx_i+b)≥1\quad i=1,2,…,n
s.t.yi(wxi+b)≥1i=1,2,…,n
拉格朗日函数为:
(1)
L
(
w
,
b
,
x
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
n
α
i
y
i
(
y
i
(
w
x
i
+
b
)
)
+
∑
i
=
1
n
α
i
L(w,b,x)=\frac{1}{2}||w||^2-\sum_{i=1}^{n}\alpha_iy_i(y_i (wx_i+b))+\sum_{i=1}^{n}\alpha_i\tag{1}
L(w,b,x)=21∣∣w∣∣2−i=1∑nαiyi(yi(wxi+b))+i=1∑nαi(1)
s
.
t
.
α
i
>
0
s.t.\quad α_i>0
s.t.αi>0
原问题可以整理为:
m
i
n
w
,
b
m
a
x
α
L
(
w
,
b
,
α
)
min_{w,b}\quad max_\alpha \quad L(w,b,α)
minw,bmaxαL(w,b,α)
对偶问题为:
m
a
x
α
m
i
n
w
,
b
L
(
w
,
b
,
α
)
max_α\quad min_{w,b} \quad L(w,b,α)
maxαminw,bL(w,b,α)
求解过程如下:
先求
m
i
n
w
,
b
L
(
w
,
b
,
α
)
min_{w,b}\quad L(w,b,α)
minw,bL(w,b,α)。
(1)
{
d
L
d
w
=
w
−
∑
i
=
1
n
α
i
y
i
x
i
=
0
,
d
L
d
b
=
∑
i
=
1
n
α
i
y
i
0
,
\begin{cases} \frac{dL}{dw}=w-\sum_{i=1}^{n}\alpha_iy_ix_i=0, & \text { } \\\frac{dL}{db}=\sum_{i=1}^{n}\alpha_iy_i0, & \text{ } \end{cases} \tag{1}
{dwdL=w−∑i=1nαiyixi=0,dbdL=∑i=1nαiyi0, (1)
把2式代入1整理则有
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
n
α
i
y
i
(
w
T
x
i
+
b
)
+
∑
i
=
1
n
α
i
L(w,b,α)=\frac{1}{2} ||w||^2-\sum_{i=1}^{n}\alpha_iy_i(w^Tx_i+b)+\sum_{i=1}^{n}\alpha_i
L(w,b,α)=21∣∣w∣∣2−i=1∑nαiyi(wTxi+b)+i=1∑nαi
=
1
2
w
T
w
−
∑
i
=
1
n
α
i
y
i
w
T
x
i
−
∑
i
=
1
n
α
i
y
i
b
+
∑
i
=
1
n
α
i
=\frac{1}{2}w^Tw-\sum_{i=1}^{n}\alpha_iy_iw^Tx_i-\sum_{i=1}^{n}\alpha_iy_ib+\sum_{i=1}^{n}\alpha_i
=21wTw−i=1∑nαiyiwTxi−i=1∑nαiyib+i=1∑nαi
=
1
2
w
T
∑
i
=
1
n
α
i
y
i
x
i
−
∑
i
=
1
n
α
i
y
i
w
T
x
i
+
∑
i
=
1
n
α
i
y
i
b
+
∑
i
=
1
n
α
i
=\frac{1}{2}w^T \sum_{i=1}^{n}\alpha_iy_ix_i-\sum_{i=1}^{n}\alpha_iy_iw^Tx_i+\sum_{i=1}^{n}\alpha_iy_ib+\sum_{i=1}^{n}\alpha_i
=21wTi=1∑nαiyixi−i=1∑nαiyiwTxi+i=1∑nαiyib+i=1∑nαi
=
1
2
w
T
∑
i
=
1
n
α
i
y
i
x
i
−
w
T
∑
i
=
1
n
α
i
y
i
x
i
+
∑
i
=
1
n
α
i
=\frac{1}{2}w^T\sum_{i=1}^{n}\alpha_iy_ix_i-w^T \sum_{i=1}^{n}\alpha_iy_ix_i+\sum_{i=1}^{n}\alpha_i
=21wTi=1∑nαiyixi−wTi=1∑nαiyixi+i=1∑nαi
=
−
1
2
w
T
∑
i
=
1
n
α
i
y
i
x
i
+
∑
i
=
1
n
α
i
=-\frac{1}{2}w^T \sum_{i=1}^{n}\alpha_iy_ix_i+\sum_{i=1}^{n}\alpha_i
=−21wTi=1∑nαiyixi+i=1∑nαi
=
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
∙
x
j
)
+
∑
i
=
1
n
α
i
=-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_jy_iy_j(x_i∙x_j)+\sum_{i=1}^{n}\alpha_i
=−21i=1∑nj=1∑nαiαjyiyj(xi∙xj)+i=1∑nαi
问题转换为:
m
a
x
α
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
(
x
i
∙
x
j
)
+
∑
i
=
1
n
α
i
max_α\quad-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_jy_iy_j(x_i∙x_j)+\sum_{i=1}^{n}\alpha_i
maxα−21i=1∑nj=1∑nαiαjyiyj(xi∙xj)+i=1∑nαi
s
.
t
.
∑
i
=
1
n
α
i
y
i
=
0
,
α
i
≥
0
s.t. \sum_{i=1}^{n}\alpha_iy_i=0, α_i≥0
s.t.i=1∑nαiyi=0,αi≥0
对上式求出最优解
α
∗
=
(
α
1
,
α
2
,
…
,
α
n
)
α^*=(α_1,α_2,…,α_n)
α∗=(α1,α2,…,αn)
计算
w
∗
=
∑
i
=
1
n
x
i
y
i
α
i
,
b
∗
=
y
j
−
∑
i
=
1
n
α
i
y
i
(
x
i
∙
x
j
)
w^*=\sum_{i=1}^{n}x_iy_i\alpha_i,b^*=y_j-\sum_{i=1}^{n}\alpha_iy_i(x_i∙x_j)
w∗=i=1∑nxiyiαi,b∗=yj−i=1∑nαiyi(xi∙xj)
(未完)