机器学习 第6章-支持向量机
6.1 间隔与支持向量
给定训练样本集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
}
,
y
i
∈
{
−
1
,
+
1
}
D=\{ (x_1,y_1),(x_2,y_2),...,(x_m,y_m)\},y_i∈\{-1,+1\}
D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,+1}分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。但能将训练样本分开的划分超平面可能有很多,如图6.1所示,我们应该努力去找到哪一个呢?
所以我们的想法应该是去找位于两类训练样本“正中间”的划分超平面,即图6.1中最粗的那条线。因为该划分超平面对训练样本局部扰动的“容忍”性最好。
在样本空间中,划分超平面可通过如下线性方程来描述:
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
其中
w
=
(
w
1
;
w
2
;
.
.
.
;
w
d
)
w=(w_1;w_2;...;w_d)
w=(w1;w2;...;wd)为法向量,决定了超平面的方向;
b
b
b为位移项,决定了超平面与原点之间的距离:显然,划分超平面可被法向量
w
w
w 和位移
b
b
b确定,下面我们将其记为
(
w
,
b
)
(w,b)
(w,b)。样本空间中任意点
x
x
x到超平面
(
w
,
b
)
(w,b)
(w,b)的距离可写为
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r={|w^Tx+b|\over ||w||}
r=∣∣w∣∣∣wTx+b∣
假设超平面
(
w
,
b
)
(w,b)
(w,b)能将训练样本正确分类,即对于
(
x
i
,
y
i
)
∈
D
(x_i,y_i)∈D
(xi,yi)∈D,若
y
i
=
+
1
yi=+1
yi=+1,则有
w
T
x
i
+
b
>
0
w^Tx_i+b>0
wTxi+b>0;若
y
i
=
−
1
y_i=-1
yi=−1,则有
w
T
x
i
+
b
<
0
w^Tx_i+b<0
wTxi+b<0。令
{
w
T
x
i
+
b
≥
+
1
y
i
=
+
1
w
T
x
i
+
b
≤
−
1
y
i
=
−
1
\begin {cases} w^Tx_i+b≥+1 & y_i=+1\\ w^Tx_i+b≤-1 & y_i=-1 \end{cases}
{wTxi+b≥+1wTxi+b≤−1yi=+1yi=−1
如图6.2所示,距离超平面最近的这几个训练样本点使上式的等号成立它们被称为“支持向量”(support vector),两个异类支持向量到超平面的距离之和为
γ
=
2
∣
∣
w
∣
∣
γ={2\over ||w||}
γ=∣∣w∣∣2
它被称为"间隔" (margin)。
要使
γ
γ
γ最大,即找到满足的参数
w
w
w和
b
b
b,则要满足下式:
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
min_{w,b} {1\over2}||w||^2
minw,b21∣∣w∣∣2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
s.t. y_i(w^Tx_i+b)≥1,i=1,2,...,m
s.t.yi(wTxi+b)≥1,i=1,2,...,m
也就是支持向量机SVM的基本型
6.2 对偶问题
SVM的基本型本身是一个凸二次规划问题,能直接用现成的优化计算包求解,但我们可以有更高效的办法。
对前面一个式子使用使用拉格朗日乘子法可得到其“对偶问题”(dual problem)。具体来说,对该式子的每条约束添加拉格朗日乘子
α
i
>
0
α_i>0
αi>0,则该问题的拉格朗日函数可写为
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L(w,b,α)={1\over 2}||w||^2+∑^m_{i=1}α_i(1-y_i(w^Tx_i+b))
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))
其中
α
=
(
α
1
;
α
2
;
.
.
.
;
α
m
)
α=(α_1;α_2;...;α_m)
α=(α1;α2;...;αm)令
L
(
w
,
b
,
α
)
L(w,b,α)
L(w,b,α)对
w
w
w和
b
b
b的偏导为零可得
w
=
∑
i
=
1
m
α
i
y
i
x
i
w=∑^m_{i=1}α_iy_ix_i
w=i=1∑mαiyixi
0
=
∑
i
=
1
m
α
i
y
i
0=∑^m_{i=1}α_iy_i
0=i=1∑mαiyi
w
w
w代入
L
(
w
,
b
,
α
)
L(w,b,α)
L(w,b,α)中,消去
w
w
w和
b
b
b,再有
0
=
∑
i
=
1
m
α
i
y
i
0=∑^m_{i=1}α_iy_i
0=∑i=1mαiyi的约束,则可以得到:
m
a
x
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
max_α\quad ∑^m_{i=1}α_i-{1\over 2}∑^m_{i=1}∑^m_{j=1}α_iα_jy_iy_jx^T_ix_j
maxαi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
α
i
≥
0
i
=
1
,
2
,
.
.
.
,
m
s.t. ∑^m_{i=1}α_iy_i=0\quad α_i≥0\quad i=1,2,...,m
s.t.i=1∑mαiyi=0αi≥0i=1,2,...,m
解出
α
α
α后,求出
w
w
w与
b
b
b即可得到模型
f
(
x
)
=
∑
i
=
1
m
α
i
y
i
x
i
T
x
+
b
f(x)=∑^m_{i=1}α_iy_ix^T_ix+b
f(x)=i=1∑mαiyixiTx+b
上述过程需要满足KKT条件,即:
{
α
i
≥
0
y
i
f
(
x
i
)
−
1
≥
0
α
i
(
y
i
f
(
x
i
)
−
1
)
=
0
\begin {cases} α_i≥0\\ y_if(x_i)-1≥0\\ α_i(y_if(x_i)-1)=0\\ \end{cases}
⎩
⎨
⎧αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关。
著名的算法为SMO基本思路为先固定
α
i
\alpha _i
αi之外的所有参数,然后求
α
i
\alpha _i
αi上的极值;由于存在约束条件,若固定
α
i
\alpha _i
αi之外的所有参数,则
α
i
\alpha _i
αi可由其他参数导出。
之后将执行下述两个步骤直到收敛:
(1)选取一对需更新的变量
α
i
\alpha _i
αi和
α
j
\alpha _j
αj
(2)固定
α
i
\alpha _i
αi和
α
j
\alpha _j
αj以外的参数,求解对偶问题得到新的
α
i
\alpha _i
αi和
α
j
\alpha _j
αj。
SMO高效的原因是在固定其他参数后,只优化两个参数。对于偏移量b可以使用所有支持向量求解平均值
6.3 核函数
我们假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类。然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
令
Φ
(
x
)
Φ(x)
Φ(x)表示将映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为
f
(
x
)
=
w
T
Φ
(
x
)
+
b
f(x)=w^TΦ(x)+b
f(x)=wTΦ(x)+b
其中
w
w
w 和
b
b
b是模型参数。
其对偶问题是
m
a
x
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
Φ
(
x
i
)
T
Φ
(
x
j
)
max_\alpha∑^m_{i=1}\alpha_i-{1\over 2}∑^m_{i=1}∑^m_{j=1}\alpha_i\alpha_jy_iy_jΦ(x_i)^TΦ(x_j)
maxαi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjΦ(xi)TΦ(xj)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
α
i
≥
0
i
=
1
,
2
,
.
.
.
,
m
s.t. ∑^m_{i=1}\alpha_iy_i=0\quad \alpha_i≥0\quad i=1,2,...,m
s.t.i=1∑mαiyi=0αi≥0i=1,2,...,m
最后求解可得:
其中函数
κ
(
1
<
P
E
R
I
O
D
>
1
)
κ(1<PERIOD>1)
κ(1<PERIOD>1)就是核函数, 这一式子也叫做支持向量展式。
表6.1 列出了几种常用的核函数。
6.4 软间隔与正则化
在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说即便恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的。
缓解该问题的一个办法是允许支持向量机在一些样本上出错。为此,要引“软间隔”(soft margin)的概念,如图 6.4 所示
前面介绍的支持向量机形式是要求所有样本均满足约束
即所有样本都必须划分i丘确,这称为"硬间隔" (hard margin),而软间隔则是允许某些样本不满足约束
y
i
(
w
T
x
i
+
b
)
≥
1
y_i(w^Tx_i+b)≥1
yi(wTxi+b)≥1
当然,在最大化间隔的同时,不满足约束的样本应尽可能少。于是,优化目标可写为
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
l
0
/
1
(
y
i
(
w
T
x
i
+
b
)
−
1
)
min_{w,b}\quad {1\over 2}||w||^2+C∑^m_{i=1}l_{0/1}(y_i(w^Tx_i+b)-1)
minw,b21∣∣w∣∣2+Ci=1∑ml0/1(yi(wTxi+b)−1)
其中
C
>
0
C>0
C>0是1个常数,
l
0
/
1
l_{0/1}
l0/1是 “0/1损失函数”
l
0
/
1
(
z
)
=
{
1
i
f
z
<
0
0
o
t
h
e
r
w
i
s
e
l_{0/1}(z)=\begin{cases} 1\quad if\quad z<0\\0\quad otherwise \end{cases}
l0/1(z)={1ifz<00otherwise
若采用hinge损失,则变为
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
m
a
x
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
min_{w,b}\quad {1\over 2}||w||^2+C∑^m_{i=1}max(0,1-y_i(w^Tx_i+b))
minw,b21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(wTxi+b))
若引入松弛变量,那么可以得到软间隔支持向量机的公式为:
m
i
n
w
,
b
,
ξ
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
min_{w,b,ξ_i}\quad {1\over 2}||w||^2+C∑^m_{i=1}ξ_i
minw,b,ξi21∣∣w∣∣2+Ci=1∑mξi
KaTeX parse error: Undefined control sequence: \quadi at position 36: …1-ξ_i\quadξ_i≥0\̲q̲u̲a̲d̲i̲=1,2,...,m
这就是常用的“软间隔支持向量机”
其与硬间隔下的对偶问题相比,唯一的差别在于对偶变量的约束不同。
6.5 支持向量回归
对样本
(
x
,
y
)
(x,y)
(x,y),传统回归模型通常直接基于模型输出
f
(
x
)
f(x)
f(x)与真实输出
y
y
y之间的差别来计算损失,当且仅当
f
(
x
)
f(x)
f(x)与
y
y
y完全相同时,损失才为零。与此不同,支持向量回归(Support Vector Regression,简称 SVR)假设我们能容忍
f
(
x
)
f(x)
f(x)与
y
y
y之间最多有
ϵ
ϵ
ϵ的偏差,即仅当
f
(
x
)
f(x)
f(x)与
y
y
y之间的差别绝对值大于
ϵ
ϵ
ϵ时才计算损失。如图 6.6所示,这相当于以
f
(
x
)
f(x)
f(x)为中心,构建了一个宽度为
2
ϵ
2ϵ
2ϵ的间隔带,若训练样本落入此间隔带,则认为是被预测正确的。
于是, SVR 问题可形式化为
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
l
ϵ
(
f
(
x
i
)
−
y
i
)
min_{w,b}\quad {1\over 2}||w||^2+C∑^m_{i=1}l_ϵ(f(x_i)-y_i)
minw,b21∣∣w∣∣2+Ci=1∑mlϵ(f(xi)−yi)
经过引入松弛变量和拉格朗日变化后,可以得到其对偶问题为:
其需满足KTT条件,即
6.6 核方法
给定训练样本 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)} (x1,y1),(x2,y2),...,(xm,ym),若不考虑偏移项 b b b,则无论SVM还是SVR,学得的模型总能表示成核函数 κ ( x , x i ) κ(x,x_i) κ(x,xi)的线性组合。不仅如此,事实上我们有下面这个称为“表示定理”(representer theorem)的更一般的结论:
令
H
H
H为核函数
κ
κ
κ对应的再生核希尔伯特空间,
∣
∣
h
∣
∣
H
||h||_H
∣∣h∣∣H表示
H
H
H空间中关于h的范数,对于任意单调递增函数
Ω
:
[
0
,
∞
]
→
R
Ω:[0,∞]→R
Ω:[0,∞]→R和任意非负损失函数
l
:
R
m
→
[
0
,
∞
]
l:R^m→[0,∞]
l:Rm→[0,∞],优化问题的解总可以写为
h
∗
(
x
)
=
∑
i
=
1
m
α
i
κ
(
x
,
x
i
)
h^*(x)=∑^m_{i=1}\alpha_iκ(x,x_i)
h∗(x)=i=1∑mαiκ(x,xi)
该定理对损失函数没有限制,对正则化项要求单调递增
人们发展出一系列基于核函数的学习方法,统称为“核方法”kernelmethods)。最常见的,是通过“核化”(即引入核函数)来将线性学习器拓展为非线性学习器。“核线性判别分析”(Kernelized Linear DiscriminantAnalysis,简称 KLDA)可以通过核化来将线性学习器拓展来得到。
KLDA的学习目标是
m
a
x
w
J
(
w
)
=
w
T
S
b
ϕ
w
w
T
S
w
ϕ
w
max_w\quad J(w)={w^TS^ϕ_bw\over w^TS^ϕ_ww}
maxwJ(w)=wTSwϕwwTSbϕw
经过一系列变换可得
m
a
x
α
J
(
α
)
=
α
T
M
α
α
T
N
α
max_\alpha\quad J(\alpha)={\alpha^TM\alpha \over \alpha^TN\alpha}
maxαJ(α)=αTNααTMα
可使用线性判别分析求解方法得到 α \alpha α,进而得到投影函数 h ( x ) h(x) h(x)。