6.1 间隔与支持向量
给定训练样本集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
}
,
y
i
∈
{
−
1
,
+
1
}
D=\left \{ (x_{1},y_{1}),(x_{2},y_{2}) ,...,(x_{m},y_{m})\right \} ,y_{i}\in \left \{ -1,+1 \right \}
D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,+1},我们希望在训练集D的基础上,基于样本空间找到一个划分超平面,将不同类别的样本分开。如下图所示
在该样本空间中,中间的"实线段"都可作为划分超平面,但它们的效果不尽相同。其中位于中间的效果最好,因为该划分超平面对训练样本局部扰动的"容忍"性最好。在样本空间中,划分超平面可通过如下线性方程来描述:
w
T
x
+
b
=
0
w^{T} x+b=0
wTx+b=0
其中
w
=
(
w
1
,
w
2
,
.
.
.
,
w
d
)
w=\left ( w_{1} ,w_{2} ,...,w_{d} \right )
w=(w1,w2,...,wd)为法向量,决定了超平面的方向;
b
b
b为位移项,决定了超平面与原点之间的距离。样本空间中任意点
x
x
x到超平面
(
w
,
b
)
(w,b)
(w,b)的距离可写为
r
=
∣
w
T
x
+
b
∣
∥
w
∥
.
r = \frac{\left| {\mathbf{w}}^{\mathrm{T}}\mathbf{x} + b\right| }{\parallel \mathbf{w}\parallel }.
r=∥w∥
wTx+b
.
假设超平面
(
w
,
b
)
(w,b)
(w,b)能将训练样本正确分类,即满足下式
{
w
T
x
i
+
b
≥
+
1
,
y
i
=
+
1
w
T
x
i
+
b
≤
−
1
,
y
i
=
−
1
\left\{ \begin{array}{ll} {\mathbf{w}}^{\mathrm{T}}{\mathbf{x}}_{i} + b \geq + 1, & {y}_{i} = + 1 \\ {\mathbf{w}}^{\mathrm{T}}{\mathbf{x}}_{i} + b \leq - 1, & {y}_{i} = - 1 \end{array}\right.
{wTxi+b≥+1,wTxi+b≤−1,yi=+1yi=−1
如下图所示,图中画圈的样本点称为支持向量,它们到超平面的距离最小。其中,两个异类支持向量到超平面的距离之和为
γ
=
2
∥
w
∥
\gamma = \frac{2}{\parallel \mathbf{w}\parallel }
γ=∥w∥2,即图中两段虚线之间的间隔距离。
6.2 对偶问题
可以使用拉格朗日乘子法得到对偶问题,上面问题的拉格朗日函数可写为
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L\left( {\mathbf{w},b,\mathbf{\alpha }}\right) = \frac{1}{2}\parallel \mathbf{w}{\parallel }^{2} + \mathop{\sum }\limits_{{i = 1}}^{m}{\alpha }_{i}\left( {1 - {y}_{i}\left( {{\mathbf{w}}^{\mathrm{T}}{\mathbf{x}}_{i} + b}\right) }\right)
L(w,b,α)=21∥w∥2+i=1∑mαi(1−yi(wTxi+b))
令
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)对w和b的偏导为零可得
w
=
∑
i
=
1
m
α
i
y
i
x
i
\mathbf{w} = \mathop{\sum }\limits_{{i = 1}}^{m}{\alpha }_{i}{y}_{i}{\mathbf{x}}_{i}
w=i=1∑mαiyixi
0
=
∑
i
=
1
m
α
i
y
i
0 = \mathop{\sum }\limits_{{i = 1}}^{m}{\alpha }_{i}{y}_{i}
0=i=1∑mαiyi
将结果代入得其对偶问题
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
\mathop{\max }\limits_{\mathbf{\alpha }}\mathop{\sum }\limits_{{i = 1}}^{m}{\alpha }_{i} - \frac{1}{2}\mathop{\sum }\limits_{{i = 1}}^{m}\mathop{\sum }\limits_{{j = 1}}^{m}{\alpha }_{i}{\alpha }_{j}{y}_{i}{y}_{j}{\mathbf{x}}_{i}^{\mathrm{T}}{\mathbf{x}}_{j}
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
上面过程需满足KKT条件,即
{
α
i
≥
0
;
y
i
f
(
x
i
)
−
1
≥
0
;
α
i
(
y
i
f
(
x
i
)
−
1
)
=
\left\{ \begin{array}{l} {\alpha }_{i} \geq 0; \\ {y}_{i}f\left( {\mathbf{x}}_{i}\right) - 1 \geq 0; \\ {\alpha }_{i}\left( {{y}_{i}f\left( {\mathbf{x}}_{i}\right) - 1}\right) = \end{array}\right.
⎩
⎨
⎧αi≥0;yif(xi)−1≥0;αi(yif(xi)−1)=
在参数初始化后, SMO 不断执行如下两个步骤直至收敛:
(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
6.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,由于特征空间维数可能很高,甚至可能是无穷维,因此直接计算
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\phi {\left( {\mathbf{x}}_{i}\right) }^{\mathrm{T}}\phi \left( {\mathbf{x}}_{j}\right)
ϕ(xi)Tϕ(xj)很难,可设想该函数
κ
(
x
i
,
x
j
)
=
⟨
ϕ
(
x
i
)
,
ϕ
(
x
j
)
⟩
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\kappa \left( {{\mathbf{x}}_{i},{\mathbf{x}}_{j}}\right) = \left\langle {\phi \left( {\mathbf{x}}_{i}\right) ,\phi \left( {\mathbf{x}}_{j}\right) }\right\rangle = \phi {\left( {\mathbf{x}}_{i}\right) }^{\mathrm{T}}\phi \left( {\mathbf{x}}_{j}\right)
κ(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩=ϕ(xi)Tϕ(xj)
经过该函数的变化,上式可改写为
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
κ
(
x
i
,
x
j
)
\mathop{\max }\limits_{\mathbf{\alpha }}\mathop{\sum }\limits_{{i = 1}}^{m}{\alpha }_{i} - \frac{1}{2}\mathop{\sum }\limits_{{i = 1}}^{m}\mathop{\sum }\limits_{{j = 1}}^{m}{\alpha }_{i}{\alpha }_{j}{y}_{i}{y}_{j}\kappa \left( {{\mathbf{x}}_{i},{\mathbf{x}}_{j}}\right)
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjκ(xi,xj)
求解后得到
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
f\left( \mathbf{x}\right) = {\mathbf{w}}^{\mathrm{T}}\phi \left( \mathbf{x}\right) + b
f(x)=wTϕ(x)+b
=
∑
i
=
1
m
α
i
y
i
ϕ
(
x
i
)
T
ϕ
(
x
)
+
b
= \mathop{\sum }\limits_{{i = 1}}^{m}{\alpha }_{i}{y}_{i}\phi {\left( {\mathbf{x}}_{i}\right) }^{\mathrm{T}}\phi \left( \mathbf{x}\right) + b
=i=1∑mαiyiϕ(xi)Tϕ(x)+b
=
∑
i
=
1
m
α
i
y
i
κ
(
x
,
x
i
)
+
b
= \mathop{\sum }\limits_{{i = 1}}^{m}{\alpha }_{i}{y}_{i}\kappa \left( {\mathbf{x},{\mathbf{x}}_{i}}\right) + b
=i=1∑mαiyiκ(x,xi)+b
上面的
κ
(
.
,
.
)
\kappa (.,.)
κ(.,.)就是“核函数”,该函数有如下定理
令
χ
\chi
χ为输入空间,
κ
(
.
,
.
)
\kappa (.,.)
κ(.,.)是该空间上的对称函数,则
κ
\kappa
κ是核函数当且仅当对于任意数据,“核矩阵”K总是半正定的
上式表明:只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用.事实上,对于一个半正定核矩阵,总能找到一个与之对应的映射φ.换言之,任何一个核函数都隐式地定义了一个称为“再生核希尔伯特空间”的特征空间。
常用核函数如下:
6.4 软间隔与正则化
硬间隔:在样本空间中,对某一个超平面,其中所有的样本都必须划分正确。
软间隔:与上述类似,只不过允许部分样本不满足约束。
下图给出了三种常用的替代损失函数:
hinge损失:
ℓ
hinge
(
z
)
=
max
(
0
,
1
−
z
)
{\ell }_{\text{hinge }}\left( z\right) = \max \left( {0,1 - z}\right)
ℓhinge (z)=max(0,1−z)
指数损失:
ℓ
exp
(
z
)
=
exp
(
−
z
)
{\ell }_{\text{exp }}\left( z\right) = \exp \left( {-z}\right)
ℓexp (z)=exp(−z)
对率损失:
ℓ
log
(
z
)
=
log
(
1
+
exp
(
−
z
)
)
{\ell }_{\text{log }}\left( z\right) = \log \left( {1 + \exp \left( {-z}\right) }\right)
ℓlog (z)=log(1+exp(−z))
两者唯一的差别就在于对偶变量的约束不同:软间隔是
0
≤
α
i
≤
C
0\le \alpha _{i} \le C
0≤αi≤C, 硬间隔是
0
≤
α
i
0\le \alpha _{i}
0≤αi
6.5 支持向量回归
给定训练样本D,希望学得一个形如
f
(
x
)
=
w
T
x
+
b
f(x)=w^{T}x+b
f(x)=wTx+b的回归模型,使得
f
(
x
)
f(x)
f(x)与y尽可能接近,支持向量回归(SVR)假设我们能容忍
f
(
x
)
f(x)
f(x)与y之间最多有
ϵ
\epsilon
ϵ的偏差,如图所示
在虚线部分的样本点则认为是被预测正确的。于是,SRC问题可形式化为
min
w
,
b
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
ℓ
ϵ
(
f
(
x
i
)
−
y
i
)
,
\mathop{\min }\limits_{{\mathbf{w},b}}\frac{1}{2}\parallel \mathbf{w}{\parallel }^{2} + C\mathop{\sum }\limits_{{i = 1}}^{m}{\ell }_{\epsilon }\left( {f\left( {\mathbf{x}}_{i}\right) - {y}_{i}}\right) ,
w,bmin21∥w∥2+Ci=1∑mℓϵ(f(xi)−yi),
其中,
ℓ
ϵ
(
z
)
=
{
0
,
if
∣
z
∣
≤
ϵ
∣
z
∣
−
ϵ
,
otherwise.
{\ell }_{\epsilon }\left( z\right) = \left\{ \begin{array}{ll} 0, & \text{ if }\left| z\right| \leq \epsilon \\ \left| z\right| - \epsilon , & \text{ otherwise. } \end{array}\right.
ℓϵ(z)={0,∣z∣−ϵ, if ∣z∣≤ϵ otherwise.
引入松弛变量
ξ
i
\xi _{i}
ξi和
ξ
^
i
\hat{\xi} _{i}
ξ^i,第一个公式改写为
min
w
,
b
,
ξ
i
,
ξ
^
i
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
(
ξ
i
+
ξ
^
i
)
\mathop{\min }\limits_{{\mathbf{w},b,{\xi }_{i},{\widehat{\xi }}_{i}}}\frac{1}{2}\parallel \mathbf{w}{\parallel }^{2} + C\mathop{\sum }\limits_{{i = 1}}^{m}\left( {{\xi }_{i} + {\widehat{\xi }}_{i}}\right)
w,b,ξi,ξ
imin21∥w∥2+Ci=1∑m(ξi+ξ
i)
最终,SVR可表示为
f
(
x
)
=
∑
i
=
1
m
(
α
^
i
−
α
i
)
κ
(
x
,
x
i
)
+
b
f\left( \mathbf{x}\right) = \mathop{\sum }\limits_{{i = 1}}^{m}\left( {{\widehat{\alpha }}_{i} - {\alpha }_{i}}\right) \kappa \left( {\mathbf{x},{\mathbf{x}}_{i}}\right) + b
f(x)=i=1∑m(α
i−αi)κ(x,xi)+b
其中
κ
(
x
i
,
x
j
)
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\kappa ({\mathbf{x}}_{i},{\mathbf{x}}_{j}) = \phi ({\mathbf{x}}_{i}{)}^{T}\phi ({\mathbf{x}}_{j})
κ(xi,xj)=ϕ(xi)Tϕ(xj)为核函数。