1、间隔与支持向量
给定训练样本集D,分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。但能将样本分开的划分超平面可能有很多个,我们怎么确定是哪一个呢?
直观上看,应该选择两类样本正中间的划分超平面,因为该划分超平面对训练样本局部扰动的“容忍”度最好,当训练集由于噪声干扰等因素的影响发生变化时,该超平面受到的影响最小。
在样本空间中,划分超平面可用
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为位移项,决定了超平面与原点之间的距离。记超平面为
(
w
,
b
)
(w,b)
(w,b),样本空间中任意一点
x
x
x到超平面的距离为
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r=\frac{|w^Tx+b|}{||w||}
r=∣∣w∣∣∣wTx+b∣假设超平面能将训练样本正确分类,则对于
(
x
i
,
y
i
)
∈
D
(x_i,y_i)\in D
(xi,yi)∈D,若
y
i
=
+
1
,
则
w
T
x
i
+
b
>
0
;
若
y
i
=
−
1
,
则
w
T
x
i
+
b
<
0
y_i=+1,则w^Tx_i+b>0;若y_i=-1,则w^Tx_i+b<0
yi=+1,则wTxi+b>0;若yi=−1,则wTxi+b<0
使等号成立的几个训练样本称为支持向量,两个支持向量之间的距离为
γ
=
2
∣
∣
w
∣
∣
\gamma=\frac{2}{||w||}
γ=∣∣w∣∣2,它被称为间隔。
显然,我们希望找到间隔最大的划分超平面,即找到使 γ \gamma γ最大的参数 w w w和 b b b, 很明显,我们只需最大化 ∣ ∣ w ∣ ∣ − 1 ||w||^{-1} ∣∣w∣∣−1即在 1 − y i ( w T x + b ) ≤ 0 1-y_i(w^Tx+b)\leq0 1−yi(wTx+b)≤0 的条件下最小化 ∣ ∣ w ∣ ∣ 2 ||w||^2 ∣∣w∣∣2。
2、对偶问题
使用拉格朗日乘子法对其求解,为每个约束添加拉格朗日乘子 α i ≥ 0 \alpha_i\geq0 αi≥0,令 L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x + b ) ) , L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum\limits^{m}_{i=1}\alpha_i(1-y_i(w^Tx+b)), L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTx+b)),其中, α = ( α 1 , α 2 , … … , α m ) \alpha=(\alpha_1,\alpha_2,……,\alpha_m) α=(α1,α2,……,αm),令 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)对 w w w和 b b b的偏导为零可得 w = ∑ i = 1 m α i y i x i , w=\sum\limits_{i=1}^{m}\alpha_iy_ix_i, w=i=1∑mαiyixi, 0 = ∑ i = 1 m α i y i 0=\sum\limits_{i=1}^{m}\alpha_iy_i 0=i=1∑mαiyi代入上式将 w w w 和 b b b 消去,我们的问题就变成在 ∑ i = 1 m α i y i = 0 \sum\limits_{i=1}^{m}\alpha_iy_i=0 i=1∑mαiyi=0 和 α i ≥ 0 \alpha_i\geq 0 αi≥0的条件下求 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 \underset {\alpha}{max}\sum\limits_{i=1}^{m}\alpha_i-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
解出
α
\alpha
α后,求出
w
w
w和
b
b
b就可以得到模型
f
(
x
)
=
w
T
x
+
b
=
∑
i
=
1
m
α
i
y
i
x
i
T
x
+
b
f(x)=w^Tx+b=\sum\limits_{i=1}^{m}\alpha_iy_ix_i^Tx+b
f(x)=wTx+b=i=1∑mαiyixiTx+b
因为问题
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
\underset {w,b}{min}\frac{1}{2}||w||^2
w,bmin21∣∣w∣∣2具有不等式约束,因此上式要满足KKT条件
α
i
≥
0
y
i
f
(
x
i
)
−
1
≥
0
α
i
(
y
i
f
(
x
i
)
−
1
)
=
0
\alpha_i\geq 0 \\ y_if(x_i)-1\geq0 \\ \alpha_i(y_if(x_i)-1)=0
αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
因此,对任意训练样本,总有
α
i
=
0
\alpha_i=0
αi=0 或
y
i
f
(
x
i
)
=
1
y_if(x_i)=1
yif(xi)=1,若
α
i
=
0
\alpha_i=0
αi=0,可以发现此样本不会在
f
(
x
)
f(x)
f(x)中出现,若
α
i
>
0
\alpha_i>0
αi>0,则必有
y
i
f
(
x
i
)
=
1
y_if(x_i)=1
yif(xi)=1,所对应的样本是一个支持向量。
怎么解 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 \underset {\alpha}{max}\sum\limits_{i=1}^{m}\alpha_i-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj呢?
可以看出,这是一个二次规划问题,可以使用二次规划算法来求解,然而,这种算法的开销很大。为了解决这个问题,人们研究出了很多高效的算法,SMO就是其中一个著名的代表。因为上式满足约束
∑
i
=
1
m
α
i
y
i
=
0
\sum\limits_{i=1}^{m}\alpha_iy_i=0
i=1∑mαiyi=0,假设除
α
i
,
α
j
\alpha_i,\alpha_j
αi,αj其他的参数都是固定的常数,那么可以写出
α
i
y
i
+
α
j
y
j
=
c
\alpha_iy_i+\alpha_jy_j=c
αiyi+αjyj=c
c
=
−
∑
k
≠
i
,
j
α
k
y
k
c=-\sum\limits_{k\neq i,j}\alpha_ky_k
c=−k=i,j∑αkyk
α
j
y
j
=
c
−
α
i
y
i
\alpha_jy_j=c-\alpha_iy_i
αjyj=c−αiyi,消去变量
α
j
\alpha_j
αj就可以对
α
i
\alpha_i
αi求解了,具体的求解方法现在还没有弄懂。求出
α
\alpha
α后,就可以计算出
w
w
w了。
怎么确定b呢?因为任意支持向量 ( x s , y s ) (x_s,y_s) (xs,ys)都有 y s f ( x s ) = 1 y_sf(x_s)=1 ysf(xs)=1,即 y s ( ∑ i ∈ S α i y i x i T x s + b ) = 1 y_s(\sum\limits_{i\in S}\alpha_iy_ix_i^Tx_s+b)=1 ys(i∈S∑αiyixiTxs+b)=1将任一支持向量代入,我们就可解出b了。注意,在现实任务中,我们通常会使用所有支持向量求解的平均值 b = 1 ∣ s ∣ ∑ s ∈ S ( 1 y s − ∑ i ∈ S α i y i x i T x s ) b=\frac{1}{|s|}\sum\limits_{s\in S}(\frac{1}{y_s}-\sum\limits_{i\in S}\alpha_iy_ix_i^Tx_s) b=∣s∣1s∈S∑(ys1−i∈S∑αiyixiTxs)
3、核函数
在之前的讨论中,我们假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类,然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。对这样的问题,我们一般将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
令
ϕ
(
x
)
\phi(x)
ϕ(x)表示将
x
x
x映射后的特征向量,在特征空间划分超平面所对应的模型可表示为
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
f(x)=w^T\phi(x)+b
f(x)=wTϕ(x)+b我们的约束条件就变成了
y
i
(
w
T
ϕ
(
x
)
+
b
)
≥
1
y_i(w^T\phi(x)+b)\geq1
yi(wTϕ(x)+b)≥1,其对偶问题是
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
)
\underset {\alpha}{max}\sum\limits_{i=1}^{m}\alpha_i-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j)
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)因为直接计算
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\phi(x_i)^T\phi(x_j)
ϕ(xi)Tϕ(xj)是很困难的,令
k
(
x
i
,
x
j
)
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
k(x_i,x_j)=\phi(x_i)^T\phi(x_j)
k(xi,xj)=ϕ(xi)Tϕ(xj),上式可重写为
m
a
x
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
k
(
x
i
,
x
j
)
\underset {\alpha}{max}\sum\limits_{i=1}^{m}\alpha_i-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_jk(x_i,x_j)
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjk(xi,xj)求解后得到的模型是
f
(
x
)
=
∑
i
=
1
m
α
i
y
i
k
(
x
,
x
i
)
+
b
f(x)=\sum\limits_{i=1}^{m}\alpha_iy_ik(x,x_i)+b
f(x)=i=1∑mαiyik(x,xi)+b这里的函数
k
(
.
,
.
)
k(. \ , \ .)
k(. , .)就是核函数。显然,在知道
ϕ
(
.
)
\phi(.)
ϕ(.)的情况下,我们很容易就能写出核函数,但大多数情况下我们并不知道
ϕ
(
.
)
\phi(.)
ϕ(.),那么我们怎么知道什么样的函数能做核函数呢?
令
χ
\chi
χ为输入空间,
k
(
.
,
.
)
k(. \ , \ .)
k(. , .)是定义在
χ
∗
χ
\chi*\chi
χ∗χ上的对称函数,若对于所有
D
=
D=
D={
x
1
,
x
2
,
…
…
,
x
m
x_1,x_2,……,x_m
x1,x2,……,xm},“核矩阵”
K
=
[
k
(
x
1
,
x
1
)
…
k
(
x
1
,
x
j
)
…
k
(
x
1
,
x
m
)
⋮
⋱
⋮
⋱
⋮
k
(
x
i
,
x
1
)
…
k
(
x
i
,
x
j
)
…
k
(
x
i
,
x
m
)
⋮
⋱
⋮
⋱
⋮
k
(
x
m
,
x
1
)
…
k
(
x
m
,
x
j
)
…
k
(
x
m
,
x
m
)
]
K=\left[ \begin{matrix} k(x_1,x_1) & \ldots & k(x_1,x_j)&\ldots&k(x_1,x_m)\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ k(x_i,x_1) &\ldots& k(x_i,x_j) &\ldots& k(x_i,x_m) \\ \vdots&\ddots&\vdots&\ddots&\vdots\\ k(x_m,x_1) & \ldots &k(x_m,x_j)&\ldots& k(x_m,x_m) \end{matrix} \right]
K=⎣⎢⎢⎢⎢⎢⎢⎡k(x1,x1)⋮k(xi,x1)⋮k(xm,x1)…⋱…⋱…k(x1,xj)⋮k(xi,xj)⋮k(xm,xj)…⋱…⋱…k(x1,xm)⋮k(xi,xm)⋮k(xm,xm)⎦⎥⎥⎥⎥⎥⎥⎤总是半正定的,我们就称
k
k
k为核函数。核函数K就是指
K
(
x
,
y
)
=
<
f
(
x
)
,
f
(
y
)
>
K(x, y) = <f(x), f(y)>
K(x,y)=<f(x),f(y)>,其中x和y是n维的输入值,
f
(
⋅
)
f(·)
f(⋅) 是从n维到m维的映射(通常,m>>n), <x, y>是x和y的内积。常用的核函数有以下几种:
- 线性核: K ( x i , x j ) = x i T x j K(x_i,x_j)=x_i^Tx_j K(xi,xj)=xiTxj
- 多项式核: K ( x i , x j ) = ( x i T x j ) d , d ≥ 1 K(x_i,x_j)=(x_i^Tx_j)^d \ , \ d\geq1 K(xi,xj)=(xiTxj)d , d≥1为多项式的次数
- 高斯核 : K ( x i , x j ) = exp ( − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 ) , σ > 0 K(x_i,x_j)=\exp(-\frac{||x_i-x_j||^2}{2\sigma^2}),\sigma>0 K(xi,xj)=exp(−2σ2∣∣xi−xj∣∣2),σ>0为高斯核的带宽
- 拉普拉斯核: k ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ σ ) , σ > 0 k(x_i,x_j)=exp(-\frac{||x_i-x_j||}{\sigma}),\sigma>0 k(xi,xj)=exp(−σ∣∣xi−xj∣∣),σ>0
- S i g m o i d Sigmoid Sigmoid核: K ( x i , x j ) = tanh ( β x i T x j + θ ) , t a n h K(x_i,x_j)=\tanh(\beta x_i^Tx_j+\theta),tanh K(xi,xj)=tanh(βxiTxj+θ),tanh为双曲正切函数, β > 0 , θ < 0 \beta>0,\theta<0 β>0,θ<0
此外,核函数还有以下性质:
- 若 k 1 k_1 k1和 k 2 k_2 k2为核函数,则对于任意正数 γ 1 \gamma_1 γ1、 γ 2 \gamma_2 γ2,其线性组合 γ 1 k 1 + γ 2 k 2 \gamma_1k_1+\gamma_2k_2 γ1k1+γ2k2也是核函数。
- 若 k 1 k_1 k1和 k 2 k_2 k2为核函数,则核函数的直积 k 1 ⊗ k 2 ( x , z ) = k 1 ( x , z ) k 2 ( x , z ) k_1 \otimes k_2(x,z)=k_1(x,z)k_2(x,z) k1⊗k2(x,z)=k1(x,z)k2(x,z) 也是核函数。
- 若 k 1 k_1 k1为核函数,则对于任意函数 g ( x ) g(x) g(x), k ( x , z ) = g ( x ) k 1 ( x , z ) g ( z ) k(x,z)=g(x)k_1(x,z)g(z) k(x,z)=g(x)k1(x,z)g(z)也是核函数。
4、软间隔与正则化
在之前的讨论中,我们一直假定存在一个超平面能将不同类的样本完全划分开,然而,在现实任务中很难确定一个合适的核函数使得训练样本在特征空间中线性可分,解决这一问题的一个方法是允许支持向量机在一些样本上出错,为此,我们引入了软间隔的概念。简单来说,就是允许一些样本可以不满足约束
y
i
(
w
i
x
i
+
b
)
≥
1
y_i(w_ix_i+b)\geq1
yi(wixi+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
)
\underset {w,b}{min}\frac{1}{2}||w||^2+C\sum\limits_{i=1}^{m}l_{0/1}(y_i(w^Tx_i+b)-1)
w,bmin21∣∣w∣∣2+Ci=1∑ml0/1(yi(wTxi+b)−1)其中C>0是一个常数,
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, if \ \ z<0\\ 0, otherwise \end{cases}
l0/1(z)={1,if z<00,otherwise
当C为无穷大时,若
y
i
(
w
i
x
i
+
b
)
<
1
y_i(w_ix_i+b)<1
yi(wixi+b)<1,则我们得到的结果为负值,这显然是不对的,这种情况下,就要求所有样本满足约束,当C取有限值时,则允许一些样本不满足约束。由于
l
0
/
1
l_{0/1}
l0/1是非连续的,使得上式不易求解,因此常用一些函数来代替它,称为替代损失函数。替代损失函数一般是凸的连续函数且是
l
0
/
1
l_{0/1}
l0/1的上界。常用的替代损失函数有
h
i
n
g
e
损
失
:
l
h
i
n
g
e
(
z
)
=
m
a
x
(
0
,
1
−
z
)
;
hinge损失:l_{hinge}(z)=max(0,1-z);
hinge损失:lhinge(z)=max(0,1−z);
指
数
损
失
:
l
e
x
p
(
z
)
=
e
x
p
(
−
z
)
;
指数损失:l_{exp}(z)=exp(-z);
指数损失:lexp(z)=exp(−z);
对
率
损
失
:
l
l
o
g
(
z
)
=
l
o
g
(
1
+
e
x
p
(
−
z
)
)
对率损失:l_{log}(z)=log(1+exp(-z))
对率损失:llog(z)=log(1+exp(−z))
若采用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
)
)
\underset {w,b}{min}\frac{1}{2}||w||^2+C\sum\limits_{i=1}^{m}max(0,1-y_i(w^Tx_i+b))
w,bmin21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(wTxi+b))
引入松弛变量
ξ
i
≥
0
\xi_i\geq0
ξi≥0,上式可化为在
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
y_i(w^Tx_i+b)\geq1-\xi_i
yi(wTxi+b)≥1−ξi的条件下求
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
\underset {w,b}{min}\frac{1}{2}||w||^2+C\sum\limits_{i=1}^{m}\xi_i
w,bmin21∣∣w∣∣2+Ci=1∑mξi这就是最常用的“软间隔支持向量机”,对上式求解,令
L
(
w
,
b
,
α
,
ξ
,
μ
)
=
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
+
∑
i
=
1
m
α
i
(
1
−
ξ
i
−
y
i
(
w
T
x
i
+
b
)
)
−
∑
i
=
1
m
μ
i
ξ
i
L(w,b,\alpha,\xi,\mu)=\frac{1}{2}||w||^2+C\sum\limits_{i=1}^{m}\xi_i+\sum\limits_{i=1}^{m}\alpha_i(1-\xi_i-y_i(w^Tx_i+b))-\sum\limits_{i=1}^{m}\mu_i\xi_i
L(w,b,α,ξ,μ)=21∣∣w∣∣2+Ci=1∑mξi+i=1∑mαi(1−ξi−yi(wTxi+b))−i=1∑mμiξi对
w
,
b
,
ξ
i
w,b,\xi_i
w,b,ξi求偏导为零得
w
=
∑
i
=
1
m
α
i
y
i
x
i
,
0
=
∑
i
=
1
m
α
i
y
i
,
C
=
α
i
+
μ
i
w=\sum\limits_{i=1}^{m}\alpha_iy_ix_i\ ,\\ 0=\sum\limits_{i=1}^{m}\alpha_iy_i\ ,\\ C=\alpha_i+\mu_i
w=i=1∑mαiyixi ,0=i=1∑mαiyi ,C=αi+μi
代入
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
)
)
\underset {w,b}{min}\frac{1}{2}||w||^2+C\sum\limits_{i=1}^{m}max(0,1-y_i(w^Tx_i+b))
w,bmin21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(wTxi+b)),可得到它的对偶问题为在
∑
i
=
1
m
α
i
y
i
=
0
,
0
≤
α
i
≤
C
\sum\limits_{i=1}^{m}\alpha_iy_i=0,0 \leq \alpha_i \leq C
i=1∑mαiyi=0,0≤αi≤C的条件下求
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
\underset {\alpha}{max}\sum\limits_{i=1}^{m}\alpha_i-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj同样地,它要满足KKT条件要求
α
i
≥
0
,
μ
i
≥
0
y
i
f
(
x
i
)
−
1
+
ξ
i
≥
0
α
i
(
y
i
f
(
x
i
)
−
1
+
ξ
i
)
=
0
ξ
i
≥
0
,
μ
i
ξ
i
=
0
\alpha_i\geq0,\mu_i\geq0\\ y_if(x_i)-1+\xi_i\geq0\\ \alpha_i(y_if(x_i)-1+\xi_i)=0\\ \xi_i\geq0,\mu_i\xi_i=0
αi≥0,μi≥0yif(xi)−1+ξi≥0αi(yif(xi)−1+ξi)=0ξi≥0,μiξi=0可以发现,对任意训练样本,总有
α
i
=
0
\alpha_i=0
αi=0或
y
i
f
(
x
i
)
=
1
−
ξ
i
y_if(x_i)=1-\xi_i
yif(xi)=1−ξi.若
α
i
=
0
\alpha_i=0
αi=0,此样本不会在
f
(
x
)
f(x)
f(x)中出现;若
α
i
>
0
\alpha_i>0
αi>0,则
y
i
f
(
x
i
)
=
1
−
ξ
i
y_if(x_i)=1-\xi_i
yif(xi)=1−ξi,此样本为支持向量。因为
C
=
α
i
+
μ
i
C=\alpha_i+\mu_i
C=αi+μi,当
α
i
<
C
\alpha_i<C
αi<C时,
μ
i
>
0
\mu_i>0
μi>0,此时必有
ξ
i
=
0
\xi_i=0
ξi=0,此时样本恰在样本最大边界上,若
α
i
=
C
\alpha_i=C
αi=C,则
μ
i
=
0
\mu_i=0
μi=0,此时若
ξ
i
<
1
\xi_i<1
ξi<1则落在最大间隔内部,
ξ
i
>
1
\xi_i>1
ξi>1则分类错误。可以看出最终模型仅与支持向量有关,即采用hinge损失含还是仍然保持了稀疏性。
把损失函数替换成其他的替代损失函数得到其他学习模型,这些模型具有一个共性:优化目标中的第一项用来描述用来描述划分超平面的“间隔大小”,另一项 ∑ i = 1 m l ( f ( x i , y i ) ) \sum\limits_{i=1}^{m}l(f(x_i,y_i)) i=1∑ml(f(xi,yi))用来表述训练集的误差,可写为更一般的形式 m i n f Ω ( f ) + C ∑ i = 1 m l ( f ( x i ) , x i ) \underset {f}{min} \Omega(f) +C\sum\limits_{i=1}^{m}l(f(x_i),x_i) fminΩ(f)+Ci=1∑ml(f(xi),xi)其中 Ω ( f ) \Omega(f) Ω(f)称为“结构风险”,用于描述模型的某些性质;第二项 ∑ i = 1 m l ( f ( x i ) , y i ) \sum\limits_{i=1}^{m}l(f(x_i),y_i) i=1∑ml(f(xi),yi)称为经验风险,用于描述模型与训练数据的契合程度;C用于对二者进行折中。上式称为正则化问题, Ω ( f ) \Omega(f) Ω(f)称为正则化项,C则称为正则化常数,常用的正则化项有 L p L_p Lp范数,任意向量 x x x的 L p L_p Lp范数的定义为 ∣ ∣ x ∣ ∣ p = ∑ i ∣ x i ∣ p p ||x||_p=\sqrt[p]{\sum\limits_{i}|x_i|^p} ∣∣x∣∣p=pi∑∣xi∣p
5、支持向量回归
给定训练样本
D
=
D=
D={
(
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)},
y
i
∈
R
y_i\in R
yi∈R,我们希望学习到一个
f
(
x
)
f(x)
f(x)使得其与y尽可能的接近,
w
,
b
w,b
w,b是待确定的参数。在这个模型中,只有当f(x)与y完全相同时,损失才为零,而支持向量回归(SVR)允许
f
(
x
)
f(x)
f(x)与
y
y
y之间有
ε
\varepsilon
ε的偏差,当
f
(
x
)
f(x)
f(x)与
y
y
y之间的差别绝对值大于
ε
\varepsilon
ε时才计算损失
于是我们的问题就变成了
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
l
ε
(
f
(
x
i
)
−
y
i
)
\underset {w,b}{min}\frac{1}{2}||w||^2+C\sum\limits_{i=1}^{m}l_{\varepsilon}(f(x_i)-y_i)
w,bmin21∣∣w∣∣2+Ci=1∑mlε(f(xi)−yi)
l
ε
(
z
)
=
{
0
,
i
f
z
≥
0
∣
z
∣
−
ε
,
o
t
h
e
r
w
i
s
e
l_{\varepsilon}(z)= \begin{cases} 0, if \ \ z\geq0\\ |z|-\varepsilon, otherwise \end{cases}
lε(z)={0,if z≥0∣z∣−ε,otherwise引入松弛变量,将上式重写为
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
(
ξ
i
+
ξ
^
i
)
\underset {w,b}{min}\frac{1}{2}||w||^2+C\sum\limits_{i=1}^{m}(\xi_i+\hat\xi_i)
w,bmin21∣∣w∣∣2+Ci=1∑m(ξi+ξ^i),对其求解,引入拉格朗日乘子
μ
i
,
μ
^
i
,
α
i
,
α
^
i
\mu_i,\hat\mu_i,\alpha_i,\hat\alpha_i
μi,μ^i,αi,α^i均大于等于零,令
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
)
−
ε
)
L(w,b,\alpha,\hat\alpha,\xi,\hat\xi,\mu,\hat\mu)=\frac {1}{2}||w||^2+C\sum\limits_{i=1}^{m}(\xi_i+\hat\xi_i)-\sum\limits_{i=1}^{m}\mu_i\xi_i-\sum\limits_{i=1}^{m}\hat\mu_i\hat\xi_i \\+\sum\limits_{i=1}^{m}\alpha_i(f(x_i)-y_i-\varepsilon-\xi_i)+\sum\limits_{i=1}^{m}\hat\alpha_i(y_i-f(x_i)-\varepsilon)
L(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)−ε)令
L
(
w
,
b
,
α
,
α
^
,
ξ
,
ξ
^
,
μ
,
μ
^
)
L(w,b,\alpha,\hat\alpha,\xi,\hat\xi,\mu,\hat\mu)
L(w,b,α,α^,ξ,ξ^,μ,μ^)对
w
,
b
,
ξ
i
,
ξ
^
i
w,b,\xi_i,\hat\xi_i
w,b,ξi,ξ^i求偏导为零得
w
=
∑
i
=
1
m
(
α
^
i
−
α
i
)
x
i
0
=
∑
i
=
1
m
(
α
^
i
−
α
i
)
C
=
α
i
+
μ
i
C
=
α
^
i
+
μ
^
i
w=\sum\limits_{i=1}^{m}(\hat\alpha_i-\alpha_i)x_i \\ 0=\sum\limits_{i=1}^{m}(\hat\alpha_i-\alpha_i) \\ C=\alpha_i+\mu_i \\ C=\hat \alpha_i+\hat\mu_i
w=i=1∑m(α^i−αi)xi0=i=1∑m(α^i−αi)C=αi+μiC=α^i+μ^i
代入可得
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
l
ε
(
f
(
x
i
)
−
y
i
)
\underset {w,b}{min}\frac{1}{2}||w||^2+C\sum\limits_{i=1}^{m}l_{\varepsilon}(f(x_i)-y_i)
w,bmin21∣∣w∣∣2+Ci=1∑mlε(f(xi)−yi)的对偶问题是在
∑
i
=
1
m
(
α
^
i
−
α
i
)
=
0
,
0
≤
α
i
,
α
^
i
≤
C
\sum\limits_{i=1}^{m}(\hat\alpha_i-\alpha_i)=0,0\leq\alpha_i,\hat\alpha_i\leq C
i=1∑m(α^i−αi)=0,0≤αi,α^i≤C的条件下求解
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
\underset {\alpha,\hat\alpha}{max}\sum\limits_{i=1}^{m}y_i(\hat\alpha_i-\alpha_i)-\varepsilon(\hat\alpha_i-\alpha_i)-\frac{1}{2}\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}(\hat\alpha_i-\alpha_i)(\hat\alpha_j-\alpha_j)x^T_ix_j
α,α^maxi=1∑myi(α^i−αi)−ε(α^i−αi)−21i=1∑mj=1∑m(α^i−αi)(α^j−αj)xiTxj同样地,上式要满足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
\alpha_i(f(x_i)-y_i- \varepsilon-\xi_i)=0\\ \hat\alpha_i(y_i-f(x_i)-\varepsilon-\hat\xi_i)=0\\ \alpha_i\hat\alpha_i=0,\xi_i\hat \xi_i=0\\ (C-\alpha_i)\xi_i=0,(C-\hat\alpha_i)\hat\xi_i=0
α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可以看出,只有当
f
(
x
i
)
−
y
i
−
ε
−
ξ
i
=
0
f(x_i)-y_i-\varepsilon-\xi_i=0
f(xi)−yi−ε−ξi=0时,
α
i
\alpha_i
αi能取非零值;只有当
y
i
−
f
(
x
i
)
−
ε
−
ξ
^
i
=
0
y_i-f(x_i)-\varepsilon-\hat\xi_i=0
yi−f(xi)−ε−ξ^i=0时,
α
^
i
\hat\alpha_i
α^i能取非零值.约束
f
(
x
i
)
−
y
i
−
ε
−
ξ
i
=
0
f(x_i)-y_i-\varepsilon-\xi_i=0
f(xi)−yi−ε−ξi=0和
y
i
−
f
(
x
i
)
−
ε
−
ξ
^
i
=
0
y_i-f(x_i)-\varepsilon-\hat\xi_i=0
yi−f(xi)−ε−ξ^i=0不能同时成立,因此
α
i
,
α
^
i
\alpha_i,\hat\alpha_i
αi,α^i中至少有一个为零。
因为 w = ∑ i = 1 m ( α ^ i − α i ) x i w=\sum\limits_{i=1}^{m}(\hat\alpha_i-\alpha_i)x_i w=i=1∑m(α^i−αi)xi,所以 f ( x ) = w T x + b = ∑ i = 1 m ( α ^ i − α i ) x i T x + b f(x)=w^Tx+b=\sum\limits_{i=1}^{m}(\hat\alpha_i-\alpha_i)x_i^Tx+b f(x)=wTx+b=i=1∑m(α^i−αi)xiTx+b能使 ( α ^ i − α i ) ≠ 0 (\hat\alpha_i-\alpha_i)\neq0 (α^i−αi)=0的样本即为SVR的支持向量。
因为 ( C − α i ) ξ i = 0 (C-\alpha_i)\xi_i=0 (C−αi)ξi=0,若 0 < α i < C 0<\alpha_i<C 0<αi<C,则必有 ξ i = 0 \xi_i=0 ξi=0,又因为 α i ( f ( x i ) − y i − ε − ξ i ) = 0 \alpha_i(f(x_i)-y_i- \varepsilon-\xi_i)=0 αi(f(xi)−yi−ε−ξi)=0,可以得出 b = y i + ε − ∑ j = 1 m ( α ^ i − α i ) x j T x b=y_i+\varepsilon-\sum\limits_{j=1}^{m}(\hat\alpha_i-\alpha_i)x_j^Tx b=yi+ε−j=1∑m(α^i−αi)xjTx任意选取一个 α i \alpha_i αi就可以求出b了,同样地,我们选取多个满足 0 < α i < C 0<\alpha_i<C 0<αi<C的样本求解b后取平均值。
6、核方法
表示定理:令
H
H
H为核函数
k
k
k对应的再生希尔伯特空间,
∣
∣
h
∣
∣
H
||h||_H
∣∣h∣∣H表示H空间关于h的范数,对于任意单调递增函数
Ω
\Omega
Ω 和任意非负损失函数
l
l
l,优化问题
m
i
n
h
∈
H
F
(
h
)
=
Ω
(
∣
∣
h
∣
∣
H
)
+
l
(
h
(
x
1
)
,
h
(
x
2
)
,
…
…
,
h
(
x
m
)
)
\underset {h\in H}{min}F(h)=\Omega(||h||_H)+l(h(x_1),h(x_2),……,h(x_m))
h∈HminF(h)=Ω(∣∣h∣∣H)+l(h(x1),h(x2),……,h(xm))的解总可写为
h
∗
(
x
)
=
∑
i
=
1
m
α
i
k
(
x
,
x
1
)
h^*(x)=\sum\limits_{i=1}^{m}\alpha_ik(x,x_1)
h∗(x)=i=1∑mαik(x,x1)表示定理对损失函数没有限制,对正则化项
Ω
\Omega
Ω仅要求单调递增,那么对于一般的损失函数和正则化项,优化问题的最优解
h
∗
(
x
)
h^*(x)
h∗(x)都可表示为核函数
k
(
x
,
x
i
)
k(x,x_i)
k(x,xi)的线性组合;充分展现了核函数的优势,在核函数的基础上,人们研究出一系列学习方法,统称为"核方法"。其中,最常见的,是通过引入核函数将线性学习器拓展为非线性学习器。下面来了解以下具体流程。
先假设可通过某种映射
ϕ
\phi
ϕ将样本映射到一个特征空间
F
F
F,然后在
F
F
F中执行线性判别分析,以求得
h
(
x
)
=
w
T
ϕ
(
x
)
h(x)=w^T\phi(x)
h(x)=wTϕ(x),同样,我们希望同类样例的投影点尽可能相近,异类的尽可能远离,我们的学习目标可表示为
m
a
x
w
J
(
w
)
=
w
T
S
b
ϕ
w
w
T
S
w
ϕ
w
\underset {w}{max}J(w)=\frac{w^TS_b^{\phi}w}{w^TS_w^{\phi}w}
wmaxJ(w)=wTSwϕwwTSbϕw
S
b
ϕ
S_b^\phi
Sbϕ和
S
w
ϕ
S_w^\phi
Swϕ分别为类间散度矩阵和类内散度矩阵,他们的值分别为
S
b
ϕ
=
(
μ
1
ϕ
−
μ
0
ϕ
)
(
μ
1
ϕ
−
μ
0
ϕ
)
T
S
w
ϕ
=
∑
i
=
0
1
∑
x
∈
X
i
(
ϕ
(
x
)
−
μ
i
ϕ
)
(
ϕ
(
x
)
−
μ
i
ϕ
)
T
S_b^{\phi}=(\mu_1^{\phi}-\mu_0^{\phi})(\mu_1^{\phi}-\mu_0^{\phi})^T\\ S_w^{\phi}=\sum\limits_{i=0}^{1}\sum\limits_{x\in X_i}(\phi(x)-\mu_i^{\phi})(\phi(x)-\mu_i^{\phi})^T
Sbϕ=(μ1ϕ−μ0ϕ)(μ1ϕ−μ0ϕ)TSwϕ=i=0∑1x∈Xi∑(ϕ(x)−μiϕ)(ϕ(x)−μiϕ)T令
X
i
X_i
Xi表示第
i
i
i类样本的集合,第
i
i
i类样本在特征空间
F
F
F中的均值为
μ
i
ϕ
=
1
m
i
∑
x
∈
X
i
ϕ
(
x
)
\mu_i^{\phi}=\frac{1}{m_i}\sum\limits_{x\in X_i}\phi(x)
μiϕ=mi1x∈Xi∑ϕ(x)通常我们难以知道映射
ϕ
\phi
ϕ的具体形式,因此使用核函数
k
(
x
,
x
i
)
=
ϕ
(
x
i
)
T
ϕ
(
x
)
k(x,x_i)=\phi(x_i)^T\phi(x)
k(x,xi)=ϕ(xi)Tϕ(x)来隐式地表达这个映射和特征空间
F
F
F。因为
h
(
x
)
=
∑
i
=
1
m
α
i
k
(
x
,
x
i
)
=
w
T
ϕ
(
x
)
h(x)=\sum\limits_{i=1}^{m}\alpha_ik(x,x_i)=w^T\phi(x)
h(x)=i=1∑mαik(x,xi)=wTϕ(x),所以
w
=
∑
i
=
1
m
α
i
ϕ
(
x
i
)
w=\sum\limits_{i=1}^{m}\alpha_i\phi(x_i)
w=i=1∑mαiϕ(xi)令K为核函数对应的核矩阵,令
l
i
∈
l_i\in
li∈{0,1}
m
∗
1
^{m*1}
m∗1为第i类样本的指示向量,当
x
j
∈
X
i
x_j\in X_i
xj∈Xi时
l
i
l_i
li的第j个分量为1,否则为0。再令
μ
^
0
=
1
m
0
K
l
0
μ
^
1
=
1
m
1
K
l
1
M
=
(
μ
^
0
−
μ
^
1
)
(
μ
^
0
−
μ
^
1
)
T
N
=
K
K
T
−
∑
i
=
0
1
m
i
μ
^
i
μ
^
i
T
\hat\mu_0=\frac{1}{m_0}Kl_0\\ \hat\mu_1=\frac{1}{m_1}Kl_1\\ M=(\hat\mu_0-\hat\mu_1)(\hat\mu_0-\hat\mu_1)^T\\ N=KK^T-\sum\limits_{i=0}^{1}m_i\hat\mu_i\hat\mu_i^T
μ^0=m01Kl0μ^1=m11Kl1M=(μ^0−μ^1)(μ^0−μ^1)TN=KKT−i=0∑1miμ^iμ^iT则式
m
a
x
w
J
(
w
)
=
w
T
S
b
ϕ
w
w
T
S
w
ϕ
w
\underset {w}{max}J(w)=\frac{w^TS_b^{\phi}w}{w^TS_w^{\phi}w}
wmaxJ(w)=wTSwϕwwTSbϕw就可以转化为
m
a
x
α
J
(
α
)
=
α
T
M
α
α
T
N
α
\underset {\alpha}{max}J(\alpha)=\frac{\alpha^TM\alpha}{\alpha^TN\alpha}
αmaxJ(α)=αTNααTMα这样,我们用线性判别分析求解方法即可求出
α
\alpha
α了,然后根据式
h
(
x
)
=
∑
i
=
1
m
α
i
k
(
x
,
x
i
)
h(x)=\sum\limits_{i=1}^{m}\alpha_ik(x,x_i)
h(x)=i=1∑mαik(x,xi)就可得到
h
(
x
)
h(x)
h(x)了。