支持向量机(二)
前面我们介绍了对于线性可分数据的线性可分支持向量机以及硬间隔最大化,下来我们来看写对于线性不可分数据集的线性支持向量机与软间隔最大化。
线性支持向量机
线性可分问题的支持向量机学习方法对于线性不可分训练数据无疑是不适用的,通常情况,将训练集中的奇异点去除,就会重新变为线性可分的。
为了解决线性不可分问题,为每个样本点
(
x
i
,
y
i
)
\left( {{x_i},{y_i}} \right)
(xi,yi)引入一个松弛变量
ξ
i
≥
0
{\xi _i} \ge 0
ξi≥0,使函数间隔加上松弛变量大于等于
1
1
1。约束条件变为:
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
{y_i}\left( {w \cdot {x_i} + b} \right) \ge 1 - {\xi _i}
yi(w⋅xi+b)≥1−ξi
同时对每个松弛变量
ξ
i
{\xi _i}
ξi支付一个代价函数,则目标函数变为:
1
2
∥
w
∥
2
+
C
∑
i
=
1
N
ξ
i
\frac{1}{2}{\left\| w \right\|^2} + C\sum\limits_{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 \mathop {\min }\limits_{w,b,\xi } \frac{1}{2}{\left\| w \right\|^2} + C\sum\limits_{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 s.t.\quad {y_i}\left( {w \cdot {x_i} + b} \right) \ge 1 - {\xi _i},\quad i = 1,2, \cdots ,N s.t.yi(w⋅xi+b)≥1−ξi,i=1,2,⋯,N
ξ i ≥ 0 , i = 1 , 2 , ⋯   , N {\xi _i} \ge 0,\quad i=1,2,\cdots,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\left( x \right) = sign\left( {{w^*} \cdot x + {b^*}} \right) 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\left( {w,b,\xi ,\alpha ,\mu } \right) = \frac{1}{2}{\left\| w \right\|^2} + C\sum\limits_{i = 1}^N {{\xi _i}} - \sum\limits_{i = 1}^N {{\alpha _i}\left( {{y_i}\left( {w \cdot {x_i} + b} \right) - 1 + {\xi _i}} \right)} - \sum\limits_{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 \ge 0,\mu_i\ge 0 αi≥0,μi≥0。 - 求解
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
\mathop {\min }\limits_{w,b,\xi } L\left( {w,b,\xi ,\alpha ,\mu } \right)
w,b,ξminL(w,b,ξ,α,μ)
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 \mathop {\min }\limits_{w,b,\xi } L\left( {w,b,\xi ,\alpha ,\mu } \right)= - \frac{1}{2}\sum\limits_{i = 1}^N {\sum\limits_{j = 1}^N {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}{x_j}} + } \sum\limits_{i = 1}^N {{\alpha _i}} w,b,ξminL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyjxixj+i=1∑Nαi - 再求解
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
\mathop {\min }\limits_{w,b,\xi } L\left( {w,b,\xi ,\alpha ,\mu } \right)
w,b,ξminL(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 \mathop {\max - }\limits_\alpha \frac{1}{2}\sum\limits_{i = 1}^N {\sum\limits_{j = 1}^N {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}{x_j}} + } \sum\limits_{i = 1}^N {{\alpha _i}} αmax−21i=1∑Nj=1∑Nαiαjyiyjxixj+i=1∑Nαi
s . t . ∑ i = 1 N α i y i = 0 s.t. \quad \sum\limits_{i = 1}^N {{\alpha _i}{y_i}} = 0 s.t.i=1∑Nαiyi=0
C − α i − μ i = 0 C - {\alpha _i} - {\mu _i} = 0 C−αi−μi=0
α i ≥ 0 {\alpha _i} \ge 0 αi≥0
μ i ≥ 0 , i = 1 , 2 , ⋯   , N {\mu _i} \ge 0,\quad i = 1,2, \cdots ,N μi≥0,i=1,2,⋯,N - 求解方式: w ∗ , b ∗ w^*,b^* w∗,b∗与线性可分支持向量相同
支持向量
- 上面对偶问题得解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T {\alpha ^*} = {\left( {\alpha _1^*,\alpha _2^*, \cdots ,\alpha _N^*} \right)^T} α∗=(α1∗,α2∗,⋯,αN∗)T中对应于 α i ∗ > 0 \alpha _i^* > 0 αi∗>0的样本点 ( x i , y i ) \left( {{x_i},{y_i}} \right) (xi,yi)的实例 x i x_i xi称为支持向量。
- 实例 x i x_i xi到间隔边界的距离为 ξ i ∥ w ∥ \frac{{{\xi _i}}}{{\left\| w \right\|}} ∥w∥ξi。
- 四种情况
- α 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位于分离超平面误分一侧
合页损失函数
线性支持向量机学习的另一种解释:
min
w
,
b
,
ξ
1
2
∥
w
∥
2
+
C
∑
i
=
1
N
ξ
i
\mathop {\min }\limits_{w,b,\xi } \frac{1}{2}{\left\| w \right\|^2} + C\sum\limits_{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
s.t.\quad {y_i}\left( {w \cdot {x_i} + b} \right) \ge 1 - {\xi _i},\quad i = 1,2, \cdots ,N
s.t.yi(w⋅xi+b)≥1−ξi,i=1,2,⋯,N
ξ
i
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
{\xi _i} \ge 0,\quad i=1,2,\cdots,N
ξi≥0,i=1,2,⋯,N
等价于最小化目标函数:
∑
i
=
1
N
[
1
−
y
i
(
w
⋅
x
i
+
b
)
]
+
+
λ
∥
w
∥
2
\sum\limits_{i = 1}^N {{{\left[ {1 - {y_i}\left( {w \cdot {x_i} + b} \right)} \right]}_ + } + \lambda {{\left\| w \right\|}^2}}
i=1∑N[1−yi(w⋅xi+b)]++λ∥w∥2
目标函数的第一项为经验损失或经验风险,函数
L
(
y
i
(
w
⋅
x
i
+
b
)
)
=
[
1
−
y
i
(
w
⋅
x
i
+
b
)
]
+
L\left( {{y_i}\left( {w \cdot {x_i} + b} \right)} \right) = {\left[ {1 - {y_i}\left( {w \cdot {x_i} + b} \right)} \right]_ + }
L(yi(w⋅xi+b))=[1−yi(w⋅xi+b)]+
称为合页损失函数,下标“+”表示:
[
z
]
+
=
{
z
,
z
>
0
0
,
z
≤
0
{\left[ z \right]_ + } = \left\{ \begin{array}{l} z,\quad z > 0\\ 0,\quad z \le 0 \end{array} \right.
[z]+={z,z>00,z≤0
参考文献
《统计学习方法》