之前的文章:线性可分硬间隔支持向量机
链接: 线性可分硬间隔支持向量机中所介绍的方法对于线性不可分的数据集并不适用,因为在求解凸二次规划问题时不能保证所有的约束条件都得到满足。
假设样本数据集是线性不可分的,训练数据中存在一些奇异点,将这些奇异点去除之后,剩余的大部分样本是线性可分的。
为了解决这个问题,对每一个样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)引入一个松弛变量
ξ
i
⩾
0
\xi_i\geqslant0
ξi⩾0,使函数间隔加上松弛变量大于等于1.这样,约束条件就变为了
y
i
(
w
⋅
x
i
+
b
)
⩾
1
−
ξ
i
y_i(w\cdot x_i+b)\geqslant1-\xi_i
yi(w⋅xi+b)⩾1−ξi
同时,对于每一个松弛变量
ξ
i
\xi_i
ξi都支付一个代价
ξ
i
\xi_i
ξi,于是,目标函数就变为了
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为惩罚系数。
于是,线性不可分的线性支持向量机的学习问题变味了如下的凸二次规划问题(原始问题):
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
\min_{w,b,\xi}\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i
w,b,ξmin21∣∣w∣∣2+Ci=1∑Nξi
s.t.
y
i
(
w
⋅
x
i
+
b
)
⩾
1
=
ξ
i
,
i
=
1
,
2
,
⋯
,
N
y_i(w\cdot x_i+b)\geqslant1=\xi_i, i=1,2,\cdots,N
yi(w⋅xi+b)⩾1=ξi,i=1,2,⋯,N
ξ
i
⩾
0
,
i
=
1
,
2
,
⋯
,
N
\xi_i\geqslant0,i=1,2,\cdots,N
ξi⩾0,i=1,2,⋯,N
可以证明,
w
w\,
w的解是唯一的,但是
b
\,b\,
b的解可能不唯一,而是存在一个区间。
设上述问题的解为
w
∗
w^*
w∗,
b
∗
b^*
b∗,则可以得到分离超平面
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∗),并且把这样的模型称为线性支持向量机。
下面进行求解
写出上述目标函数的拉格朗日函数
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\geqslant0,\mu_i\geqslant0
αi⩾0,μi⩾0
对偶问题为极大极小,首先求极小
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
\min_{w,b,\xi}L(w,b,\xi,\alpha,\mu)
minw,b,ξL(w,b,ξ,α,μ)
分别求
w
,
b
,
ξ
w,b,\xi
w,b,ξ的梯度得到:
w
=
∑
i
=
1
N
α
i
y
i
x
i
w = \sum_{i=1}^Nα_iy_ix_i
w=i=1∑Nαiyixi
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^Nα_iy_i=0
i=1∑Nαiyi=0
C
−
α
i
−
μ
i
=
0
C-\alpha_i-\mu_i=0
C−αi−μi=0
带入之前的问题,可得到最终需要求解的问题
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
\min_{\alpha}\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
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
s.t.
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^N\alpha_iy_i = 0
i=1∑Nαiyi=0
0
⩽
α
i
⩽
C
,
i
=
1
,
2
,
⋯
,
N
0\leqslant\alpha_i\leqslant C,i=1,2,\cdots,N
0⩽αi⩽C,i=1,2,⋯,N
相比线性可分的模型,改变了约束条件。
设
α
∗
=
(
α
1
∗
,
α
2
∗
,
⋯
,
α
N
∗
)
\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)
α∗=(α1∗,α2∗,⋯,αN∗)为对偶问题的一个解,若存在
α
∗
\alpha^*
α∗的一个分量
α
j
∗
\alpha^*_j
αj∗,
0
<
α
j
∗
<
C
0<\alpha^*_j<C
0<αj∗<C,则原始问题的解
w
∗
,
b
∗
w^*,b^*
w∗,b∗可按下式求得
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
b
∗
=
y
i
−
∑
i
=
1
N
y
i
α
i
∗
(
x
i
⋅
x
j
)
b^*=y_i-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_j)
b∗=yi−i=1∑Nyiαi∗(xi⋅xj)
由此可求出:
∑
i
=
1
N
α
i
∗
y
i
(
x
⋅
x
i
)
+
b
∗
=
0
\sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b^*=0
i=1∑Nαi∗yi(x⋅xi)+b∗=0
分类决策函数为
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
N
α
i
∗
y
i
(
x
⋅
x
i
)
+
b
∗
)
f(x)=sign(\sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b^*)
f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)
合页损失函数
其实,线性支持向量机的学习还有另外一种解释,就是最小化
min
w
,
b
∑
i
=
1
N
[
1
−
y
i
(
w
⋅
x
i
+
b
)
]
+
+
λ
∣
∣
w
∣
∣
2
\min_{w,b}\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
也就是说,将第一项的经验损失改为了合页损失函数,下标“+”表示取正值的函数。
该损失函数与感知机的损失函数相比,要求的确信度更高。
参考:《统计学习方法》 李航著