1.知识回顾
在前一篇文章中,我们讨论了当数据线性可分的情况下的支持向量机模型,根据几何间隔最大给出了线性可分支持向量机的原始最优化问题的数学表达式:
w
,
b
m
i
n
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
−
1
≥
0
{_{\boldsymbol{w},b}^{min}}\ \frac{1}{2}||\boldsymbol{w}||^2\\ s.t.\ y_i({\boldsymbol{w}} \cdot \boldsymbol{x}_i+{b})-1\ge 0
w,bmin 21∣∣w∣∣2s.t. yi(w⋅xi+b)−1≥0以及原始问题的对偶问题的表达式:
α
m
i
n
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
α
i
≥
0
{_\boldsymbol{\alpha}^{min}}\ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)-\sum_{i=1}^{N}\alpha_i \\ s.t.\ \sum_{i=1}^{N}\alpha_i y_i =0 \\ \alpha_i \ge 0
αmin 21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t. i=1∑Nαiyi=0αi≥0接下来,在本篇文章中我们主要讨论当数据近似线性可分时的支持向量机模型的推导与求解,我们把这种情况下的支持向量机叫做线性支持向量机。
2.线性支持向量机
先来看一下什么叫数据近似线性可分,如下图所示,蓝色圆点和红色圆点分别代表正类和负类,显然我们不能找到一个线性的分离超平面将这两类完全正确的分开;但是如果将数据中的某些特异点(黑色箭头指向的点)去除之后,剩下的大部分样本点组成的集合是线性可分的,这样的数据就叫做近似线性可分。
线性可分支持向量机对近似线性可分的数据是不适用的,因为有些样本点无法满足其
y
i
(
w
⋅
x
i
+
b
)
−
1
≥
0
y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)-1 \ge 0
yi(w⋅xi+b)−1≥0的约束条件,即某些样本点不能满足函数间隔大于1。为了解决这个问题,需要将硬间隔最大化修改为软间隔最大化。具体地,可以对每个样本点
(
x
i
,
y
i
)
(\boldsymbol{x}_i,y_i)
(xi,yi)引进一个松弛变量
ξ
i
≥
0
\xi_i \ge 0
ξi≥0,使得函数间隔加上松弛变量大于等于1,同时应对每个松弛变量进行惩罚。这样的设置可以说是放低了分类的要求,因为此时可以允许样本点的函数间隔小于1,也允许分类错误。于是便得到了线性支持向量机的原始优化问题表达式:
w
,
b
m
i
n
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
ξ
i
≥
0
{_{\boldsymbol{w},b}^{min}}\ \frac{1}{2}||\boldsymbol{w}||^2 + C \sum_{i=1}^{N}\xi_i \\ s.t.\ y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b) \ge 1-\xi_i \\ \xi_i \ge 0
w,bmin 21∣∣w∣∣2+Ci=1∑Nξis.t. yi(w⋅xi+b)≥1−ξiξi≥0其中,
C
>
0
C>0
C>0称为惩罚因子。上式中的目标函数包含两层含义:使
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||\boldsymbol{w}||^2
21∣∣w∣∣2尽量小即间隔尽量大,同时使误分类点的个数尽量小。
C
C
C是调节这二者的系数,
C
C
C越大,对误分类的惩罚就越大,误分类点就越少,但是会使得间隔越小;
C
C
C越小,对误分类的惩罚就越小,误分类点就越多,但是会使得间隔越大。
3.学习的对偶算法
还是一样,为了求解简单以及后面引入核函数推广到非线性支持向量机,我们要推导出线性支持向量机原始问题的对偶问题。
3.1 对偶问题的推导
根据原始优化问题写出拉格朗日函数:
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
−
∑
i
=
1
N
α
i
(
(
y
i
(
w
⋅
x
i
+
b
)
−
1
+
ξ
i
)
)
−
∑
i
=
1
N
μ
i
ξ
i
L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu})=\frac{1}{2}||\boldsymbol{w}||^2+C\sum_{i=1}^{N}\xi_i - \sum_{i=1}^{N}\alpha_i\big((y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)-1+\xi_i)\big)-\sum_{i=1}^{N}\mu_i\xi_i
L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi((yi(w⋅xi+b)−1+ξi))−i=1∑Nμiξi
L
(
w
,
b
,
ξ
,
α
,
μ
)
L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu})
L(w,b,ξ,α,μ)分别对
w
,
b
,
ξ
i
\boldsymbol{w},b,\xi_i
w,b,ξi求偏导:
∇
w
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
∇
b
=
−
∑
i
=
1
N
α
i
y
i
=
0
∇
ξ
i
=
C
−
α
i
−
μ
i
=
0
\nabla_{\boldsymbol{w}}=\boldsymbol{w}-\sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x}_i=0 \\ \nabla_b=-\sum_{i=1}^{N}\alpha_i y_i=0 \\ \nabla_{\xi_i}=C-\alpha_i-\mu_i=0
∇w=w−i=1∑Nαiyixi=0∇b=−i=1∑Nαiyi=0∇ξi=C−αi−μi=0可以得到:
w
=
∑
i
=
1
N
α
i
y
i
x
i
∑
i
=
1
N
α
i
y
i
=
0
C
−
α
i
−
μ
i
=
0
\boldsymbol{w}=\sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x}_i \\ \sum_{i=1}^{N}\alpha_i y_i=0 \\ C-\alpha_i-\mu_i=0
w=i=1∑Nαiyixii=1∑Nαiyi=0C−αi−μi=0代入到
L
(
w
,
b
,
ξ
,
α
,
μ
)
L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu})
L(w,b,ξ,α,μ)中,可得:
w
,
b
,
ξ
m
i
n
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
N
α
i
{_{\boldsymbol{w},b,\boldsymbol{\xi}}^{min}}\ L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu})=-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)+\sum_{i=1}^{N}\alpha_i
w,b,ξmin L(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi再对
w
,
b
,
ξ
m
i
n
L
(
w
,
b
,
ξ
,
α
,
μ
)
{_{\boldsymbol{w},b,\boldsymbol{\xi}}^{min}}\ L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\alpha},\boldsymbol{\mu})
w,b,ξmin L(w,b,ξ,α,μ)求
α
\boldsymbol{\alpha}
α的极大,即:
α
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
{_\boldsymbol{\alpha}^{max}}\ -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)+\sum_{i=1}^{N}\alpha_i
αmax −21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi再将目标函数的求极大转换为求极小,就得到了线性可分支持向量机的对偶最优化问题的目标函数:
α
m
i
n
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
{_\boldsymbol{\alpha}^{min}}\ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)-\sum_{i=1}^{N}\alpha_i
αmin 21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi约束条件为:
(1)
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^{N}\alpha_iy_i=0
∑i=1Nαiyi=0
(2)
C
−
α
i
−
μ
i
=
0
C-\alpha_i-\mu_i=0
C−αi−μi=0
(3)
α
i
≥
0
\alpha_i \ge 0
αi≥0
(4)
μ
i
≥
0
\mu_i \ge 0
μi≥0
可以对约束条件再进行一下变换:
根据约束条件(2)和(4)可以得到:
α
i
≤
C
\alpha_i \le C
αi≤C,再结合约束条件(3)可以得到:
0
≤
α
i
≤
C
0 \le \alpha_i \le C
0≤αi≤C于是就得到了原始问题的对偶问题表达式:
α
m
i
n
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
0
≤
α
i
≤
C
{_\boldsymbol{\alpha}^{min}}\ \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)-\sum_{i=1}^{N}\alpha_i \\ s.t.\ \sum_{i=1}^{N}\alpha_i y_i =0 \\ 0 \le \alpha_i \le C
αmin 21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t. i=1∑Nαiyi=00≤αi≤C可以发现,线性支持向量机与线性可分支持向量机的对偶问题只有约束条件不同,即多了个
α
i
≤
C
\alpha_i \le C
αi≤C的约束条件。
3.2 模型求解
求解上面所推出的对偶问题,可以得到对偶问题的最优解
α
∗
=
(
α
1
∗
,
α
2
∗
,
.
.
.
,
α
N
∗
)
T
\boldsymbol{\alpha}^*=({\alpha}^*_1,{\alpha}^*_2,...,{\alpha}^*_N)^T
α∗=(α1∗,α2∗,...,αN∗)T。有了
α
∗
\boldsymbol{\alpha}^*
α∗之后,就可以进一步求得原始最优化问题的解
w
∗
和
b
∗
\boldsymbol{w}^*和b^*
w∗和b∗。求解过程与上一篇文章中相同,即根据KKT条件:
α
i
∗
(
y
i
(
w
∗
⋅
x
i
+
b
∗
)
−
1
+
ξ
i
∗
)
=
0
0
≤
α
i
≤
C
C
−
α
i
∗
−
μ
i
∗
=
0
μ
i
∗
ξ
i
∗
=
0
\alpha^*_i(y_i({\boldsymbol{w}^*} \cdot \boldsymbol{x}_i+{b^*})-1+\xi^*_i)=0 \\ 0 \le \alpha_i \le C \\ C-\alpha^*_i-\mu^*_i=0 \\ \mu^*_i\xi^*_i=0
αi∗(yi(w∗⋅xi+b∗)−1+ξi∗)=00≤αi≤CC−αi∗−μi∗=0μi∗ξi∗=0所以对于
0
<
α
j
∗
<
C
0 < \alpha^*_j < C
0<αj∗<C所对应的实例点
(
x
j
,
y
j
)
(\boldsymbol{x}_j,y_j)
(xj,yj)有:
y
j
(
w
∗
⋅
x
j
+
b
∗
)
−
1
+
ξ
i
∗
=
0
ξ
i
∗
=
0
y_j({\boldsymbol{w}^*} \cdot \boldsymbol{x}_j+{b^*})-1+\xi^*_i=0 \\ \xi^*_i=0
yj(w∗⋅xj+b∗)−1+ξi∗=0ξi∗=0即:
y
j
(
w
∗
⋅
x
j
+
b
∗
)
−
1
=
0
y_j({\boldsymbol{w}^*} \cdot \boldsymbol{x}_j+{b^*})-1=0
yj(w∗⋅xj+b∗)−1=0最后可以求出:
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
⋅
x
j
)
\boldsymbol{w}^*=\sum_{i=1}^{N}\alpha^*_i y_i \boldsymbol{x}_i \\ b^*=y_j-\sum_{i=1}^{N}\alpha^*_i y_i(\boldsymbol{x}_i \cdot \boldsymbol{x}_j)
w∗=i=1∑Nαi∗yixib∗=yj−i=1∑Nαi∗yi(xi⋅xj)分离超平面可以写为:
∑
i
=
1
N
α
i
∗
y
i
(
x
i
⋅
x
)
+
b
∗
=
0
\sum_{i=1}^{N}\alpha^*_i y_i (\boldsymbol{x}_i \cdot \boldsymbol{x})+b^*=0
i=1∑Nαi∗yi(xi⋅x)+b∗=0分离决策函数可以写为:
f
(
x
)
=
sign
(
∑
i
=
1
N
α
i
∗
y
i
(
x
i
⋅
x
)
+
b
∗
)
f(\boldsymbol{x})=\text{sign}(\sum_{i=1}^{N}\alpha^*_i y_i (\boldsymbol{x}_i \cdot \boldsymbol{x})+b^*)
f(x)=sign(i=1∑Nαi∗yi(xi⋅x)+b∗)这样线性支持向量机就求解完成了。
3.3 支持向量
线性支持向量机的支持向量要比线性可分支持向量机复杂一点,如图2所示,当
α
i
∗
=
0
\alpha^*_i=0
αi∗=0时,此时样本点
(
x
i
,
y
i
)
(\boldsymbol{x}_i,y_i)
(xi,yi)不是支持向量;当
0
<
α
i
∗
<
C
0 < \alpha^*_i < C
0<αi∗<C时,
ξ
i
=
0
\xi_i=0
ξi=0,此时支持向量在间隔边界上;当
α
i
∗
=
C
,
0
<
ξ
i
<
1
\alpha^*_i=C,0<\xi_i<1
αi∗=C,0<ξi<1时,支持向量在间隔边界与分离超平面之间;当
α
i
∗
=
C
,
ξ
i
=
1
\alpha^*_i=C,\xi_i=1
αi∗=C,ξi=1时,支持向量在分离超平面上;当
α
i
∗
=
C
,
ξ
i
>
1
\alpha^*_i=C,\xi_i>1
αi∗=C,ξi>1时,支持向量在分离超平面误分类一侧。
4.合页损失函数
线性支持向量机模型还有另外一种解释,是通过合页损失函数(hinge loss)来定义的,其表达式如下:
∑
i
=
1
N
[
1
−
y
i
(
w
⋅
x
i
+
b
)
]
+
+
λ
∣
∣
w
∣
∣
2
\sum_{i=1}^{N}[1-y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)]_++\lambda||\boldsymbol{w}||^2
i=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2其中第一项为合页损失函数,其数学定义如下:
[
z
]
+
=
{
z
,
if
z
>
0
0
,
if
z
≤
0
[z]_+= \begin{cases} z ,&\text{if} \enspace z > 0 \\ 0 ,&\text{if} \enspace z \le 0 \end{cases}
[z]+={z,0,ifz>0ifz≤0其图像如图3所示:
其实用合页损失函数定义的线性支持向量机与原始的线性支持向量机模型是等价的,证明如下:
令:
[
1
−
y
i
(
w
⋅
x
i
+
b
)
]
+
=
ξ
i
[1-y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)]_+=\xi_i
[1−yi(w⋅xi+b)]+=ξi则有
ξ
i
≥
0
\xi_i \ge 0
ξi≥0,当
1
−
y
i
(
w
⋅
x
i
+
b
)
>
0
1-y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b)>0
1−yi(w⋅xi+b)>0时,有
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b) \ge 1-\xi_i
yi(w⋅xi+b)≥1−ξi;当
1
−
y
i
(
w
⋅
x
i
+
b
)
≤
0
1-y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b) \le 0
1−yi(w⋅xi+b)≤0时,
ξ
i
=
0
\xi_i=0
ξi=0,有
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
y_i(\boldsymbol{w} \cdot \boldsymbol{x}_i+b) \ge 1-\xi_i
yi(w⋅xi+b)≥1−ξi;所以可以将上面的优化问题写成:
w
,
b
m
i
n
∑
i
=
1
N
ξ
i
+
λ
∣
∣
w
∣
∣
2
{_{\boldsymbol{w},b}^{min}}\ \sum_{i=1}^{N}\xi_i+\lambda||\boldsymbol{w}||^2
w,bmin i=1∑Nξi+λ∣∣w∣∣2若取
λ
=
1
2
C
\lambda=\frac{1}{2C}
λ=2C1,则有:
w
,
b
m
i
n
1
C
(
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
)
{_{\boldsymbol{w},b}^{min}}\ \frac{1}{C}(\frac{1}{2}||\boldsymbol{w}||^2 + C \sum_{i=1}^{N}\xi_i)
w,bmin C1(21∣∣w∣∣2+Ci=1∑Nξi)与线性支持向量机的原始形式等价,证毕。
5.参考资料
1.李航《统计学习方法》
2.https://blog.csdn.net/guofei_fly/article/details/102689127