假设训练数据集不是线性可分的。通常情况是,训练数据中有一些特异点(outlier),将这些特异点除去后,剩下大部分的样本点组成的集合是线性可分的。
①从原问题到对偶问题
-
对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 引进一个松弛变量,使函数间隔加上松弛变量大于等于1。约束条件变为
y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , . . . , N y_i(w\cdot x_i +b)\ge1-\xi_i,\quad i =1,2,...,N yi(w⋅xi+b)≥1−ξi,i=1,2,...,N
同时,对每个松弛变量,支付一个代价,原优化问题变为凸二次规划(convex quadratic programming)问题:
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 \begin{array}{ll} \min \limits_{w, b, \xi} & \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i} \\ \text { s.t. } & y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N \\ & \xi_{i} \geqslant 0, \quad i=1,2, \cdots, N \end{array} w,b,ξmin s.t. 21∥w∥2+C∑i=1Nξiyi(w⋅xi+b)⩾1−ξi,i=1,2,⋯,Nξi⩾0,i=1,2,⋯,N
C 称为惩罚参数,一般由应用问题决定,C 值大时对误分类的惩罚增大,C值小时对误分类的惩罚减小。最小化目标函数包含两层含义:使 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2 尽量小即间隔尽量大,同时使误分类点的个数尽量小,C 是调和二者的系数。 -
原始最优化问题的拉格朗日函数是
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) \equiv \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}-\sum_{i=1}^{N} \alpha_{i}\left(y_{i}\left(w \cdot x_{i}+b\right)-1+\xi_{i}\right)-\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\ge0,\mu_i\ge0 αi≥0,μi≥0
②对偶问题的解的形式化简
现在我们要解的原问题的变量从两个
w
,
b
w,b
w,b变成了三个
w
,
b
,
ξ
w,b,\xi
w,b,ξ,同样原始问题等价于对拉格朗日函数的min-max问题,对偶问题是拉格朗日函数的max-min问题,其中min针对问题变量,max针对约束参数。对偶问题的内层min问题,对问题变量求导有
∇
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
\begin{array}{l} \nabla_{w} L(w, b, \xi, \alpha, \mu)=w-\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0 \\ \nabla_{b} L(w, b, \xi, \alpha, \mu)=-\sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ \nabla_{\xi_{i}} L(w, b, \xi, \alpha, \mu)=C-\alpha_{i}-\mu_{i}=0 \end{array}
∇wL(w,b,ξ,α,μ)=w−∑i=1Nαiyixi=0∇bL(w,b,ξ,α,μ)=−∑i=1Nα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
\begin{array}{c} w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i} \\ \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ C-\alpha_{i}-\mu_{i}=0 \end{array}
w=∑i=1Nαiyixi∑i=1Nαiyi=0C−αi−μi=0
代回拉格朗日函数,得到对偶问题:
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
\begin{array}{ll} \max \limits_{\alpha} & -\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \\ \text { s.t. } & \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ & C-\alpha_{i}-\mu_{i}=0 \\ & \alpha_{i} \geqslant 0 \\ & \mu_{i} \geqslant 0, \quad i=1,2, \cdots, N \end{array}
αmax s.t. −21∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi∑i=1Nαiyi=0C−αi−μi=0αi⩾0μi⩾0,i=1,2,⋯,N
再将对目标函数求极大转换为求极小,消去变量
μ
i
\mu_i
μi,得到对偶问题如下,可以看到只是约束参数
α
i
\alpha_i
αi的范围多了一个C
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
\begin{array}{ll} \min \limits_{\alpha} & \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} \\ \text { s.t. } & \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ & 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N \end{array}
αmin s.t. 21∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi∑i=1Nαiyi=00⩽αi⩽C,i=1,2,⋯,N
可以通过求解对偶问题而得到原始问题的解,进而确定分离超平面和决策函数。
③从对偶问题的解到原问题的解
假设对偶问题的解
α
∗
\alpha^*
α∗已经知道,(对原问题)用KKT条件得
∇
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
∇
ξ
L
(
w
∗
,
b
∗
,
ξ
∗
,
α
∗
,
μ
∗
)
=
C
−
α
∗
−
μ
∗
=
0
α
i
∗
(
y
i
(
w
∗
⋅
x
i
+
b
∗
)
−
1
+
ξ
i
∗
)
=
0
μ
i
∗
ξ
i
∗
=
0
y
i
(
w
∗
⋅
x
i
+
b
∗
)
−
1
+
ξ
i
∗
⩾
0
ξ
i
∗
⩾
0
α
i
∗
⩾
0
μ
i
∗
⩾
0
,
i
=
1
,
2
,
⋯
,
N
\begin{array}{l} \nabla_{w} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=w^{*}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}=0 \\ \nabla_{b} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}=0 \\ \nabla_{\xi} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=C-\alpha^{*}-\mu^{*}=0 \\ \alpha_{i}^{*}\left(y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1+\xi_{i}^{*}\right)=0 \\ \mu_{i}^{*} \xi_{i}^{*}=0 y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1+\xi_{i}^{*} \geqslant 0 \\ \xi_{i}^{*} \geqslant 0 \\ \alpha_{i}^{*} \geqslant 0 \\ \mu_{i}^{*} \geqslant 0, \quad i=1,2, \cdots, N \end{array}
∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−∑i=1Nαi∗yixi=0∇bL(w∗,b∗,ξ∗,α∗,μ∗)=−∑i=1Nαi∗yi=0∇ξL(w∗,b∗,ξ∗,α∗,μ∗)=C−α∗−μ∗=0αi∗(yi(w∗⋅xi+b∗)−1+ξi∗)=0μi∗ξi∗=0yi(w∗⋅xi+b∗)−1+ξi∗⩾0ξi∗⩾0αi∗⩾0μi∗⩾0,i=1,2,⋯,N
第一个式子容易得到
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^{*}=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}
w∗=i=1∑Nαi∗yixi
至少有一个(不是要求的,是求解问题的时候,发现至少一个非零才是合理的,否则都为0,根据第一个式子w也为0) α j ∗ > 0 \alpha_j^*>0 αj∗>0,任选其一, y j ( w ∗ ⋅ x j + b ∗ ) − 1 = 0 y_{j}\left(w^{*} \cdot x_{j}+b^{*}\right)-1=0 yj(w∗⋅xj+b∗)−1=0
注意到 y j 2 = 1 y_{j}^{2}=1 yj2=1,联立上述二式得
b ∗ = 1 y j − w ∗ ⋅ x j = y j − ∑ i = 1 N α i ∗ y i x i x j b^*=\frac{1}{y_j}-w^*\cdot x_j=y_j-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}x_j b∗=yj1−w∗⋅xj=yj−∑i=1Nαi∗yixixj
和前述硬间隔的结果一样。
④从原问题的解到分离超平面、决策函数、支撑向量
进一步,分离超平面可以写成
∑
i
=
1
N
α
i
∗
y
i
(
x
⋅
x
i
)
+
b
∗
=
0
\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+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\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}\right)
f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)
可以看到,
w
∗
,
b
∗
w^*,b^*
w∗,b∗只依赖于那些
α
j
∗
>
0
\alpha_j^*>0
αj∗>0的样本,这样的对应的训练样本我们就称之为支撑向量。
注:
每次任选一个符合条件的非0的 α j \alpha_j αj就可求得w和b,但是这样的结果可能由于j不一样而不唯一。