前言
此文介绍了线性可分支持向量机的硬间隔最大化以及它的对偶算法,很好的理解线性可分支持向量机是理解线性支持向量机的基础,只要理解前面的,后面的就会很容易理解。
首先,前面我们所讨论的都是基于线性可分的训练数据集,但在现实任务中,我们得到的一般都不是线性可分的,这是线性可分支持向量机就不适用了。因为这时我们之前所提到的不等式约束并不能都成立。
缓解该问题的一个办法就是允许支持向量机在一些样本上出错。那么我们怎样才能将它扩展到线性不可分问题呢?这就需要我们将硬间隔最大化改为软间隔最大化
软间隔
图片来源:周志华《机器学习》
我们之前提到的硬间隔,是要求所有样本都满足约束条件,而软间隔则是允许某些样本不满足约束:
y
i
(
w
⋅
x
i
+
b
)
⩾
1
y_i(w \cdot x_i+b) \geqslant 1
yi(w⋅xi+b)⩾1
自然,在最大化间隔的同时,不满足约束的样本应尽可能的少。
为了解决某些样本不满足约束条件,可以对每个样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi) 引入一个松弛变量
ξ
i
⩾
0
\xi_i \geqslant 0
ξi⩾0,是函数间隔加上松弛变量大于等于1,这样,约束条件就变为:
y
i
(
w
⋅
x
i
+
b
)
⩾
1
−
ξ
i
y_i(w \cdot x_i+b) \geqslant 1-\xi_i
yi(w⋅xi+b)⩾1−ξi
同时,对每个松弛变量
ξ
i
\xi_i
ξi,支付一个代价
ξ
i
\xi_i
ξi 。目标函数由原来的
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2变成:
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i
21∣∣w∣∣2+Ci=1∑Nξi
这里,
C
>
0
C > 0
C>0称为惩罚系数,
C
C
C值大时对误分类的惩罚增加,
C
C
C值小时对误分类的惩罚减小。
此时,最优化的目标函数包括两个含义:
- 使 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2尽量小即间隔尽量大
- 使误分类点的个数尽量小
C C C是调和二者的系数
有了上面的思路,可以和线性可分支持向量机一样来考虑线性支持向量机的学习问题。
线性不可分的线性支持向量机的学习问题就变为如下凸二次规划问题(原始问题):
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
⩾
1
−
ξ
i
,
i
=
1
,
2
,
.
.
.
,
N
ξ
i
⩾
0
,
i
=
1
,
2
,
.
.
.
,
N
\min_{w,b,\xi} \quad \frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \\ s.t. \quad y_i(w \cdot x_i+b) \geqslant 1-\xi_i,i = 1,2,...,N \\ \xi_i \geqslant 0,i = 1,2,...,N
w,b,ξmin21∣∣w∣∣2+Ci=1∑Nξis.t.yi(w⋅xi+b)⩾1−ξi,i=1,2,...,Nξi⩾0,i=1,2,...,N
通过求解以上凸二次规划问题,即软间隔最大化问题,得到的分离超平面为:
w
∗
⋅
x
+
b
∗
=
0
w^*\cdot x + b^* = 0
w∗⋅x+b∗=0
以及相应的分类决策函数:
f
(
x
)
=
s
i
g
n
(
w
∗
⋅
x
+
b
∗
)
f(x) = sign(w^*\cdot x + b^*)
f(x)=sign(w∗⋅x+b∗)
这就称为:线性支持向量机
对偶算法
对偶问题的构建和线性可分支持向量机的对偶问题的构建类似。
为了让大家更容易理解,现在我们再来构建一次:
(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(w,b,\xi,\alpha,\mu) = \frac{1}{2}||w||^2 + C\sum_{i=1}^N\xi_i - \sum_{i=1}^N\alpha_i(y_i(w \cdot x_i + b) -1 + \xi_i) - \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
其中,
α
i
⩾
0
,
μ
i
⩾
0
\alpha_i \geqslant 0,\mu_i \geqslant 0
αi⩾0,μi⩾0
(2)求 min w , b , ξ L ( w , b , ξ , α , μ ) \min_{w,b,\xi} \ L(w,b,\xi,\alpha,\mu) minw,b,ξ L(w,b,ξ,α,μ)
拉格朗日函数$L(w,b,\xi,\alpha,\mu)
依
次
对
依次对
依次对w,b,\xi$求偏导数并令为0:
∇
w
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
∇
b
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
−
∑
i
=
1
N
α
i
y
i
=
0
∇
ξ
i
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
C
−
α
i
−
μ
i
=
0
\nabla_wL(w,b,\xi,\alpha,\mu) = w - \sum_{i=1}^N\alpha_iy_ix_i = 0\\ \nabla_bL(w,b,\xi,\alpha,\mu) = -\sum_{i=1}^N\alpha_iy_i = 0\\ \nabla_{\xi_i}L(w,b,\xi,\alpha,\mu) = C - \alpha_i - \mu_i = 0
∇wL(w,b,ξ,α,μ)=w−i=1∑Nαiyixi=0∇bL(w,b,ξ,α,μ)=−i=1∑Nαiyi=0∇ξiL(w,b,ξ,α,μ)=C−αi−μi=0
得:
w
=
∑
i
=
1
N
α
i
y
i
x
i
∑
i
=
1
N
α
i
y
i
=
0
C
−
α
i
−
μ
i
=
0
w = \sum_{i=1}^N\alpha_iy_ix_i \\ \sum_{i=1}^N\alpha_iy_i = 0 \\ C - \alpha_i - \mu_i = 0
w=i=1∑Nαiyixii=1∑Nαiyi=0C−αi−μi=0
代入拉格朗日函数,得:
min
w
,
b
,
ξ
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
\min_{w,b,\xi} \ L(w,b,\xi,\alpha,\mu) = -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i \cdot 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
(3)再对
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
\min_{w,b,\xi} \ L(w,b,\xi,\alpha,\mu)
minw,b,ξ L(w,b,ξ,α,μ)求
α
\alpha
α的极大,即得对偶问题:
max
α
−
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
C
−
α
i
−
μ
i
=
0
α
i
⩾
0
μ
i
⩾
0
,
i
=
1
,
2
,
.
.
.
,
N
\max_{\alpha} \quad - \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i \cdot x_j) +\sum_{i=1}^N\alpha_i \\ s.t. \quad \sum_{i=1}^N \alpha_iy_i = 0 \\ C - \alpha_i - \mu_i = 0 \\ \alpha_i \geqslant 0 \\ \mu_i \geqslant 0, i = 1,2,...,N
αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαis.t.i=1∑Nαiyi=0C−αi−μi=0αi⩾0μi⩾0,i=1,2,...,N
将上式的目标函数由求极大转换为求极小,再将约束条件合并,得到等价的对偶最优化问题:
min
α
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
,
i
=
1
,
2
,
.
.
.
,
N
\min_{\alpha} \quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i \cdot x_j) - \sum_{i=1}^N\alpha_i \\ s.t. \quad \sum_{i=1}^N \alpha_iy_i = 0 \\ 0 \leqslant \alpha_i \leqslant C,i = 1,2,...,N
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=00⩽αi⩽C,i=1,2,...,N
线性支持向量机对偶算法:
输入:线性可分训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}
T={(x1,y1),(x2,y2),...,(xN,yN)},其中,
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
−
1
,
+
1
}
,
i
=
1
,
2
,
.
.
.
,
N
x_i \in \mathcal{X} = R^n,y_i \in \mathcal{Y}=\{-1,+1\},i=1,2,...,N
xi∈X=Rn,yi∈Y={−1,+1},i=1,2,...,N;
输出:最大间隔分离超平面和分类决策函数。
(1)选择惩罚系数 $C > 0 $ ,构造并求解约束最优化问题:
min
α
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
,
i
=
1
,
2
,
.
.
.
,
N
\min_{\alpha} \quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i \cdot x_j) - \sum_{i=1}^N\alpha_i \\ s.t. \quad \sum_{i=1}^N \alpha_iy_i = 0 \\ 0 \leqslant \alpha_i \leqslant C,i = 1,2,...,N
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=00⩽αi⩽C,i=1,2,...,N
求得最优解
α
∗
=
(
α
1
∗
,
α
2
∗
,
.
.
.
,
α
N
∗
)
T
\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T
α∗=(α1∗,α2∗,...,αN∗)T;
(2)计算:
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^* = \sum_{i=1}^N\alpha_i^*y_ix_i
w∗=i=1∑Nαi∗yixi
并选择
α
∗
\alpha^*
α∗的一个分量 $\alpha_j^* $ 适合条件
0
<
α
j
∗
<
C
0 < \alpha_j^* < C
0<αj∗<C,计算:
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
⋅
x
j
)
b^* = y_j - \sum_{i=1}^N\alpha_i^*y_i(x_i \cdot x_j)
b∗=yj−i=1∑Nαi∗yi(xi⋅xj)
(3)求得分离超平面:
w
∗
⋅
x
+
b
∗
=
0
w^* \cdot x+b^* = 0
w∗⋅x+b∗=0
分类决策函数:
f
(
x
)
=
s
i
g
n
(
w
∗
⋅
x
+
b
∗
)
f(x) = sign(w^* \cdot x+b^* )
f(x)=sign(w∗⋅x+b∗)
软间隔支持向量
软间隔的支持向量 x i x_i xi 或在间隔边界上,或在间隔边界与分离超平面之间,或在分离超平面误分一侧。
- 若 α i ∗ < C \alpha_i^* <C αi∗<C,则 ξ i = 0 \xi_i=0 ξi=0 ,支持向量 x i x_i xi 恰好落在间隔边界上;
- 若 α i ∗ = C \alpha_i^*=C αi∗=C, 0 < ξ i < 1 0 < \xi_i < 1 0<ξi<1 ,则正确分类,支持向量 x i x_i xi 在间隔边界与分离超平面之间;
- 若 α i ∗ = C \alpha_i^* = C αi∗=C, ξ i = 1 \xi_i=1 ξi=1 ,支持向量 x i x_i xi 在分离超平面上;
- 若 α i ∗ = C \alpha_i^* = C αi∗=C, ξ i > 1 \xi_i > 1 ξi>1 ,支持向量 x i x_i xi 在分离超平面误分一侧;
合页损失函数
线性支持向量机学习还有另外一种解释,就是最小化以下目标函数:
∑
i
=
1
N
[
1
−
y
i
(
w
⋅
x
i
+
b
)
]
+
+
λ
∣
∣
w
∣
∣
2
\sum_{i=1}^N[1-y_i(w \cdot x_i + b ) ] _+ + \lambda||w||^2
i=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2
目标函数第一项是经验损失或经验风险,称为合页损失函数。下标“+”表示一下取正值的函数:
[
z
]
+
=
{
z
,
z
>
0
0
,
z
⩽
0
[z]_+ = \begin{cases} z, \quad z > 0 \\ 0, \quad z \leqslant 0 \end{cases}
[z]+={z,z>00,z⩽0
这就是说,当样本点 ( x i , y i ) (x_i,y_i) (xi,yi)被正确分类且函数间隔(确信度)$y_i(w\cdot x_i+b) $大于1时,损失是0,否则损失为 1 − y i ( w ⋅ x i + b ) 1 - y_i(w\cdot x_i+b) 1−yi(w⋅xi+b),我们注意到上图中实例点 x 4 x_4 x4被正确分类,但是在间隔边界与分离超平面之间,损失不是0,目标函数第二项是系数 λ \lambda λ的 w w w的 L 2 L_2 L2范数,是正则化项。
两个方式的相互转换:
定理: 线性支持向量机原始最优化问题:
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
⩾
1
−
ξ
i
,
i
=
1
,
2
,
.
.
.
,
N
ξ
i
⩾
0
,
i
=
1
,
2
,
.
.
.
,
N
\min_{w,b,\xi} \quad \frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \\ s.t. \quad y_i(w \cdot x_i+b) \geqslant 1-\xi_i,i = 1,2,...,N \\ \xi_i \geqslant 0,i = 1,2,...,N
w,b,ξmin21∣∣w∣∣2+Ci=1∑Nξis.t.yi(w⋅xi+b)⩾1−ξi,i=1,2,...,Nξi⩾0,i=1,2,...,N
等价于最优化问题:
min
w
,
b
∑
i
=
1
N
[
1
−
y
i
(
w
⋅
x
i
+
b
)
]
+
+
λ
∣
∣
w
∣
∣
2
\min_{w,b} \quad \sum_{i=1}^N[1-y_i(w \cdot x_i + b ) ] _+ + \lambda||w||^2
w,bmini=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2
证明:
令:
[
1
−
y
i
(
w
⋅
x
i
+
b
)
]
+
=
ξ
i
[1-y_i(w \cdot x_i + b ) ] _+ = \xi_i
[1−yi(w⋅xi+b)]+=ξi
则
ξ
i
⩾
0
,
\xi_i \geqslant 0,
ξi⩾0,式$ \ \xi_i \geqslant 0$成立;
当$1-y_i(w \cdot x_i + b ) > 0
时
,
有
时,有
时,有y_i(w \cdot x_i + b ) = 1 - \xi_i$;
当$1-y_i(w \cdot x_i + b ) \leqslant 0
时
,
时,
时,\xi_i = 0$ ,有
y
i
(
w
⋅
x
i
+
b
)
⩾
1
−
ξ
i
y_i(w \cdot x_i + b ) \geqslant 1 - \xi_i
yi(w⋅xi+b)⩾1−ξi;
故:
w
,
b
,
ξ
i
w,b,\xi_i
w,b,ξi 满足约束条件,所以最优化问题:
min
w
,
b
∑
i
=
1
N
[
1
−
y
i
(
w
⋅
x
i
+
b
)
]
+
+
λ
∣
∣
w
∣
∣
2
\min_{w,b} \quad \sum_{i=1}^N[1-y_i(w \cdot x_i + b ) ] _+ + \lambda||w||^2
w,bmini=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2
可写为:
min
w
,
b
∑
i
=
1
N
ξ
i
+
λ
∣
∣
w
∣
∣
2
\min_{w,b} \quad \sum_{i=1}^N\xi_i + \lambda||w||^2
w,bmini=1∑Nξi+λ∣∣w∣∣2
若取
λ
=
1
2
C
\lambda = \frac{1}{2C}
λ=2C1,则:
min
w
,
b
1
C
(
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
)
\min_{w,b} \quad \frac{1}{C}(\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i)
w,bminC1(21∣∣w∣∣2+Ci=1∑Nξi)
与原始问题等价。
常用的合页损失函数有:
- hinge损失: ℓ h i n g e ( z ) = m a x ( 0 , 1 − z ) \ell_hinge(z) = max(0, 1-z) ℓhinge(z)=max(0,1−z)
- 指数损失: ℓ e x p ( z ) = e x p ( − z ) \ell_exp(z) = exp(-z) ℓexp(z)=exp(−z)
- 对数损失: ℓ l o g ( z ) = l o g ( 1 + e x p ( − z ) ) \ell_log(z) = log(1 + exp(-z)) ℓlog(z)=log(1+exp(−z))
函数图像如下图:
参考书籍:
《机器学习》 周志华,《统计学习方法》 李航