第六章 支持向量机
6.1 间隔与支持向量
???Question:给定训练样本 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在样本空间中找到一个划分超平面,将不同类别的样本分开。
样本空间中任意点
x
x
x到超平面
(
w
,
b
)
(w,b)
(w,b)的距离可写为:
r
=
w
T
x
+
b
∣
∣
w
∣
∣
(1)
\begin{aligned} r = \frac{w^Tx+b}{||w||} \tag{1} \end{aligned}
r=∣∣w∣∣wTx+b(1)
假设超平面
(
w
,
b
)
(w,b)
(w,b)能够将训练样本正确分类,即对于
(
x
i
,
y
i
)
∈
D
,
若
y
i
=
+
1
,
则
有
w
T
x
i
+
b
>
0
;
若
y
i
=
−
1
,
则
w
T
x
i
+
b
<
0.
令
(x_i,y_i)∈D,若y_i=+1,则有w^Tx_i+b>0;若y_i=-1,则w^Tx_i+b<0.令
(xi,yi)∈D,若yi=+1,则有wTxi+b>0;若yi=−1,则wTxi+b<0.令
{
w
T
+
b
≥
+
1
,
y
i
=
+
1
;
w
T
+
b
≤
−
1
,
y
i
=
−
1.
(2)
\begin{aligned} \begin{cases} w^T + b ≥ +1,\quad y_i=+1;\\ w^T + b ≤ -1,\quad y_i=-1. \end{cases} \end{aligned} \tag{2}
{wT+b≥+1,yi=+1;wT+b≤−1,yi=−1.(2)
>>>Answer:距离超平面最近的这几个训练样本点使上面的式子的等号成立,它们被称为支持向量(support vector)。
两个异类支持向量到超平面的距离之和为:
γ
=
2
∣
∣
w
∣
∣
(3)
\begin{aligned} γ = \frac{2}{||w||} \end{aligned} \tag{3}
γ=∣∣w∣∣2(3)
该距离又称为间隔。
现在的目标是找到具有最大间隔 (maximum margin)的划分超平面,也就是要找到能满足式(2)中约束的参数
w
和
b
使
得
γ
w和b使得γ
w和b使得γ最大,即可转换成以下优化问题:
m
a
x
w
,
b
2
∣
∣
w
∣
∣
(4)
\begin{aligned} &\underset {w,b}{max}\quad \frac{2}{||w||}\tag{4} \end{aligned}
w,bmax∣∣w∣∣2(4)
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
.
\begin{aligned} &s.t.\quad y_i(w^Tx_i+b)≥1,\quad i=1,2,...,m. \end{aligned}
s.t.yi(wTxi+b)≥1,i=1,2,...,m.
上式又可等效于:
m
a
x
w
,
b
1
2
∣
∣
w
∣
∣
2
(5)
\begin{aligned} &\underset {w,b}{max}\quad \frac{1}{2}||w||^2\tag{5} \end{aligned}
w,bmax21∣∣w∣∣2(5)
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
.
\begin{aligned} &s.t.\quad y_i(w^Tx_i+b)≥1,\quad i=1,2,...,m. \end{aligned}
s.t.yi(wTxi+b)≥1,i=1,2,...,m.
6.2 对偶问题
???Question:注意到上式是一个凸二次规划(convex
quadratic programming)问题。
>>>Answer:可以使用拉格朗日乘子法可得到其"对偶问题" (dual problem),从它的‘对偶面’来求解问题有时候更加简单(正难则反。
L
(
w
,
b
,
a
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
(6)
\begin{aligned} L(w,b,a) = \frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b)) \end{aligned} \tag{6}
L(w,b,a)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))(6)
经过计算,上述问题可以等效于求解下列优化问题:
m
a
x
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
i
y
i
y
j
x
i
T
x
j
(7)
\begin{aligned} \underset {\alpha}{max}\quad \sum_{i=1}^{m}\alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_iy_iy_jx_{i}^{T}x_j\tag{7} \end{aligned}
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαiyiyjxiTxj(7)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
,
α
i
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
.
\begin{aligned} &s.t.\quad \sum_{i=1}^{m}\alpha_i y_i=0, \alpha_i\geq 1,\quad i=1,2,...,m. \end{aligned}
s.t.i=1∑mαiyi=0,αi≥1,i=1,2,...,m.
求解上述问题比较高效的求解算法是:SMO(Sequential Minimal Optimization)(求解步骤详情见:周志华《机器学习》)
6.3 核函数
引入核函数的目的:样本在低维度空间线性不可分,得益于数学家们的不懈努力,可以将数据映射到高维空间使得样本可分(打call)。
???Question:在求解对偶问题存在这样的问题:此直接计算
φ
(
x
i
)
φ
(
x
j
)
φ(x_i)φ(x_j)
φ(xi)φ(xj)通常是困难的。
>>>Answer:现在存在一个这样的函数,使得
κ
(
x
i
,
x
j
)
=
<
φ
(
x
i
)
φ
(
x
j
)
>
=
φ
(
x
i
)
φ
(
x
j
)
(8)
κ(x_i,x_j) = <φ(x_i)φ(x_j)> = φ(x_i)φ(x_j)\tag{8}
κ(xi,xj)=<φ(xi)φ(xj)>=φ(xi)φ(xj)(8)
成立,而计算
κ
(
x
i
,
x
j
)
κ(x_i,x_j)
κ(xi,xj)是容易的。
κ(,)称为‘核函数’(kernel function)
常用的核函数有:线性核、多项式核、高斯核、拉普拉斯核、Sigmoid核。
6.4 软间隔与正则化
???Question:在前面的讨论中,我们一直假定训练样本在样本空间或特征空间中是线性可分的。即存在一个超 面能将不同类的样本完全划分开 ,然而现实是:往往很难确定合适的核函数使得训练样本在特征空间中线性可分。更糟糕的是:即使恰好找到了某个核函数使训练集在特征空间中线性可分,也很难确定这个貌似线性可分的结果不是由于过拟合所造。
>>>Answer:缓解该问题的一个办法是允许支持向量机在一些样本上故意出错.为此要引入"软间隔" (soft margin)的概念。
软间隔直观上理解就是:部分样本在‘中间区域’,即不满足约束:
y
i
(
w
T
x
i
+
b
)
≥
1
(9)
\begin{aligned} y_i(w^Tx_i+b)\geq 1\tag{9} \end{aligned}
yi(wTxi+b)≥1(9)
在最大化间隔同时,不满足约束的样本应尽可能少,进一步优化目标可写为:
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
l
0
/
1
(
y
i
(
w
T
x
i
+
b
)
−
1
)
(10)
\begin{aligned} \underset {w,b}{min}\quad \frac{1}{2}||w||^2+C\sum_{i=1}^ml_{0/1}(y_i(w^Tx_i+b)-1) \end{aligned} \tag{10}
w,bmin21∣∣w∣∣2+Ci=1∑ml0/1(yi(wTxi+b)−1)(10)
其中,C>0,是一个常数,l_(0/1)是‘0/1损失函数’
l
0
/
1
(
z
)
=
{
1
,
i
f
z
<
0
;
0
,
o
t
h
e
r
w
i
s
e
(11)
\begin{aligned} l_{0/1}(z)=\begin{cases} 1,\quad if z<0;\\ 0,\quad otherwise \end{cases} \end{aligned} \tag{11}
l0/1(z)={1,ifz<0;0,otherwise(11)
人们通常用其他一些函数来代替l_{0/1},称为"替代损失" (surrogate 10ss). 替代损失函数一般具有较好的数学性质。常用替代损失函数:
{
h
i
n
g
e
损
失
:
l
h
i
n
g
e
(
z
)
=
m
a
x
(
0
,
1
−
z
)
指
数
损
失
(
e
x
p
o
n
e
n
t
i
a
l
l
o
s
s
)
:
l
e
x
p
(
z
)
=
e
x
p
(
−
z
)
对
率
损
失
(
l
o
g
i
s
t
i
c
l
o
s
s
)
:
l
l
o
g
(
z
)
=
l
o
g
(
1
+
e
x
p
(
−
z
)
)
(12)
\begin{aligned} \begin{cases} hinge损失:l_{hinge}(z)=max(0,1-z)\\ 指数损失(exponential loss):l_{exp}(z)=exp(-z)\\ 对率损失(logistic loss):l_{log}(z)=log(1+exp(-z)) \end{cases} \end{aligned} \tag{12}
⎩⎪⎨⎪⎧hinge损失:lhinge(z)=max(0,1−z)指数损失(exponentialloss):lexp(z)=exp(−z)对率损失(logisticloss):llog(z)=log(1+exp(−z))(12)
可写为更一般的形式
m
i
n
f
Ω
(
f
)
+
C
∑
i
=
1
m
l
(
f
(
x
i
)
,
y
i
)
(13)
\begin{aligned} \underset {f}{min} Ω(f)+C\sum_{i=1}^{m}l(f(x_i),y_i) \end{aligned} \tag{13}
fminΩ(f)+Ci=1∑ml(f(xi),yi)(13)
其中
Ω
(
f
)
Ω(f)
Ω(f)称为‘结构风险’,描述模型f的某些性质;第二项
C
∑
i
=
1
m
l
(
f
(
x
i
)
,
y
i
)
C\sum_{i=1}^{m}l(f(x_i),y_i)
C∑i=1ml(f(xi),yi)称为‘经验风险’,描述模型与训练数据的契合程度。
6.5 支持向量回归
???Question:与传统回归模型(当模型输出f(x)和真实值y不相等时存在损失)不同,支持向量回归(Support Vector Regression,简称SVR)假设我们能容忍f(x)之间最多有ε的偏差,即仅当f(x)与y之间的差别绝对值大于时才计算损失。
>>>Answer:以f(x)为中心,构建了一个宽度为2ε的问隔带,若训练样本落入此间隔带,则认为是被预测正确的。
于是,SVR 问题可形式化为
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
l
0
/
1
(
f
(
x
i
)
−
y
i
)
)
(14)
\begin{aligned} \underset {w,b}{min}\quad \frac{1}{2}||w||^2+C\sum_{i=1}^ml_{0/1}(f(x_i)-y_i)) \end{aligned} \tag{14}
w,bmin21∣∣w∣∣2+Ci=1∑ml0/1(f(xi)−yi))(14)
其中C为正则化常数,
l
0
/
1
l_{0/1}
l0/1是
ε
−
ε-
ε−不敏感损失函数。
l 0 / 1 ( z ) = { 1 , i f ∣ z ∣ < ε ; ∣ z ∣ − ε , o t h e r w i s e (15) \begin{aligned} l_{0/1}(z)=\begin{cases} 1,\quad\quad\quad&if |z|<ε;\\ |z|-ε,\quad &otherwise \end{cases} \end{aligned} \tag{15} l0/1(z)={1,∣z∣−ε,if∣z∣<ε;otherwise(15)
引入松弛变量 ξ i 和 ξ ^ i ξ_i和\widehat{ξ}_i ξi和ξ i,进而再引入拉格朗日乘子 μ i ≥ 0 , μ ^ i ≥ 0 , α i ≥ 0 , α ^ i ≥ 0 , μ_i\geq0,\widehat{μ}_i\geq0,\alpha_i\geq0,\widehat{\alpha}_i\geq0, μi≥0,μ i≥0,αi≥0,α i≥0,得到朗格朗日函数:
L ( w , b , α , α ^ , ξ , ξ ^ , μ , μ ^ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ( ξ i + ξ ^ i ) − ∑ i = 1 m μ i ξ i − ∑ i = 1 m μ ^ i ξ ^ i + ∑ i = 1 m α i ( f ( x i ) − y i − ϵ − ξ i ) + ∑ i = 1 m α ^ i ( y i − f ( x i ) − ϵ − ξ ^ i ) (16) \begin{aligned} &L(\pmb{w,b,\alpha,\widehat{\alpha},\xi,\widehat{\xi},\mu,\widehat{\mu}})\\ &=\frac{1}{2}||w||^2+C\sum_{i=1}^{m}(\xi_i+\widehat{\xi}_i)-\sum_{i=1}^{m}\mu_i\xi_i-\sum_{i=1}^{m}\widehat{\mu}_i\widehat{\xi}_i\\ &+\sum_{i=1}^{m}\alpha_i(f(x_i)-y_i-\epsilon-\xi_i)+\sum_{i=1}^{m}\widehat{\alpha}_i(y_i-f(x_i)-\epsilon-\widehat{\xi}_i) \end{aligned} \tag{16} L(w,b,α,α ,ξ,ξ ,μ,μ w,b,α,α ,ξ,ξ ,μ,μ w,b,α,α ,ξ,ξ ,μ,μ )=21∣∣w∣∣2+Ci=1∑m(ξi+ξ i)−i=1∑mμiξi−i=1∑mμ iξ i+i=1∑mαi(f(xi)−yi−ϵ−ξi)+i=1∑mα i(yi−f(xi)−ϵ−ξ i)(16)
求偏导等于0,代入上式可得到SVR的对偶问题:
m
a
x
α
,
α
^
∑
i
=
1
m
y
i
(
α
^
i
−
α
i
)
−
ϵ
(
α
^
i
+
α
i
)
−
1
2
∑
i
=
1
m
∑
j
=
1
m
(
α
^
i
−
α
i
)
(
α
^
j
−
α
j
)
x
i
T
x
j
(17)
\begin{aligned} \underset{\alpha,\widehat{\alpha}}{max}\quad&\sum_{i=1}^{m}y_i(\widehat{\alpha}_i-\alpha_i)-\epsilon(\widehat{\alpha}_i+\alpha_i)\\ &-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}(\widehat{\alpha}_i-\alpha_i)(\widehat{\alpha}_j-\alpha_j)x_i^Tx_j \end{aligned} \tag{17}
α,α
maxi=1∑myi(α
i−αi)−ϵ(α
i+αi)−21i=1∑mj=1∑m(α
i−αi)(α
j−αj)xiTxj(17)
s
.
t
.
∑
i
=
1
m
(
α
^
i
−
α
i
)
=
0
,
0
≤
α
i
,
α
^
i
≤
C
(18)
\begin{aligned} s.t.\quad&\sum_{i=1}^{m}(\widehat{\alpha}_i-\alpha_i)=0,\\ &0\leq\alpha_i,\widehat{\alpha}_i\leq{C} \end{aligned} \tag{18}
s.t.i=1∑m(α
i−αi)=0,0≤αi,α
i≤C(18)
上述过程中需满足KKT条件,即要求:
{ α i ( f ( x i ) − y i − ϵ − ξ i ) = 0 , α ^ i ( y i − f ( x i ) − ϵ − ξ ^ i ) = 0 , α i α ^ i = 0 , ξ i ξ ^ i = 0 , ( C − α i ) ξ i = 0 , ( C − α ^ i ) ξ ^ i = 0 (19) \begin{aligned} \begin{cases} \alpha_i(f(x_i)-y_i-\epsilon-\xi_i)=0,\\ \widehat{\alpha}_i(y_i-f(x_i)-\epsilon-\widehat{\xi}_i)=0,\\ \alpha_i\widehat{\alpha}_i=0,\xi_i\widehat{\xi}_i=0,\\ (C-\alpha_i)\xi_i=0,(C-\widehat{\alpha}_i)\widehat{\xi}_i =0 \end{cases} \end{aligned} \tag{19} ⎩⎪⎪⎪⎨⎪⎪⎪⎧αi(f(xi)−yi−ϵ−ξi)=0,α i(yi−f(xi)−ϵ−ξ i)=0,αiα i=0,ξiξ i=0,(C−αi)ξi=0,(C−α i)ξ i=0(19)
求解上式即可得到SVM模型的解。
以上就是学习SVM模型基础知识的简记,有关详细内容请参考资料:周志华《机器学习-第6章 支持向量机》