文章目录
1. 支持向量机概述
支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机 、线性支持向量机以及非线性支持向量机 。简单模型是复杂模型的基础,也是复杂模型的特殊情况。当训练数据线性可分时,通过硬间隔最大化 , 学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机; 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
2. 函数间隔与几何间隔
对于给定的训练数据集
T
T
T 和超平面
(
w
,
b
)
(w,b)
(w,b),定义超平面
(
w
,
b
)
(w,b)
(w,b) 关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi) 的函数间隔为
γ
i
=
y
(
w
T
x
+
b
)
\gamma_{i} = y(w^Tx + b)
γi=y(wTx+b)在这类定义下,训练集中不同的点就有不同的函数间隔,我们规定训练集
T
T
T 关于超平面
(
w
,
b
)
(w,b)
(w,b) 的函数间隔为训练集样本中函数间隔的最小值,即
γ
=
m
i
n
i
=
1
,
⋯
,
N
γ
i
\gamma = \mathop{min}\limits_{i=1,\cdots,N}\gamma_{i}
γ=i=1,⋯,Nminγi
函数间隔可以表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还不够。因为只要成比例地改变 w w w 和 b b b, 例如将它们改为 2 w 2w 2w 和 2 b 2b 2b , 超平面并没有改变,但函数间隔却成为原来的 2 2 2 倍,由此我们定义出几何间隔的概念。
对于给定的训练数据集T 和超平面
(
w
,
b
)
(w,b)
(w,b) ,定义超平面
(
w
,
b
)
(w,b)
(w,b) 关于样本点
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi) 的几何间隔为
γ
^
=
y
(
w
T
x
+
b
)
∣
∣
w
∣
∣
2
=
γ
i
∣
∣
w
∣
∣
2
\hat\gamma = \frac{y(w^Tx + b)}{||w||_2} = \frac{\gamma_{i}}{||w||_2}
γ^=∣∣w∣∣2y(wTx+b)=∣∣w∣∣2γi
∣
∣
w
∣
∣
2
||w||_2
∣∣w∣∣2 表示为
w
w
w 的
L
2
L_2
L2 范数。
3. 硬间隔最大化算法
3.1 最大间隔算法
对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化。下面的算法就是根据使硬间隔最大来进行划分的。
使用最大间隔来求得的超平面,其可以表示如下:
m
a
x
w
,
b
γ
\mathop{max}\limits_{w,b} \gamma
w,bmaxγ
s
.
t
.
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
2
≥
γ
,
i
=
1
,
2
,
⋯
,
N
s.t. \hspace{1em} \frac{y_i(w^Tx_i + b)}{||w||_2} \geq \gamma,i=1,2,\cdots,N
s.t.∣∣w∣∣2yi(wTxi+b)≥γ,i=1,2,⋯,N考虑几何间隔和函数间隔的关系式,可将这个问题改写为
m
a
x
w
,
b
γ
^
∣
∣
w
∣
∣
2
\mathop{max}\limits_{w,b} \frac{\hat{\gamma}}{||w||_2}
w,bmax∣∣w∣∣2γ^
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
γ
^
,
i
=
1
,
2
,
⋯
,
N
s.t. \hspace{1em} {y_i(w^Tx_i + b)} \geq \hat\gamma,i=1,2,\cdots,N
s.t.yi(wTxi+b)≥γ^,i=1,2,⋯,N函数间隔并不影响最优化问题的解。这样,我们可以取
γ
^
=
1
\hat \gamma=1
γ^=1 并将其带入上面的式子,并且我们发现最大化
1
∣
∣
w
∣
∣
\frac{1}{||w||}
∣∣w∣∣1 与最小化
1
2
∣
∣
w
∣
∣
2
\frac{1}{2} ||w||^2
21∣∣w∣∣2 是一样的效果,所以要求的式子可以等价为:
m
a
x
w
,
b
1
2
∣
∣
w
∣
∣
2
\mathop{max}\limits_{w,b} \frac{1}{2} ||w||^2
w,bmax21∣∣w∣∣2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
−
1
≥
0
,
i
=
1
,
2
,
⋯
,
N
s.t. \hspace{1em} {y_i(w^Tx_i + b)} -1\geq 0,i=1,2,\cdots,N
s.t.yi(wTxi+b)−1≥0,i=1,2,⋯,N这是一个凸优化的问题,可以列式求得最优解。
示例如下:
3.2 算法局限
有时候本来数据的确是可分的,也就是说可以用 线性分类SVM的学习方法来求解,但是却因为混入了异常点,导致不能线性可分,比如下图,本来数据是可以按下面的实线来做超平面分离的,可以由于一个橙色和一个蓝色的异常点导致我们没法按照上一篇线性支持向量机中的方法来分类。
另外一种情况没有这么糟糕到不可分,但是会严重影响我们模型的泛化预测效果,比如下图,本来如果我们不考虑异常点,SVM的超平面应该是下图中的红色线所示,但是由于有一个蓝色的异常点,导致我们学习到的超平面是下图中的粗虚线所示,这样会严重影响我们的分类模型预测效果。
4. 软间隔最大算法
4.1 原始约束
软间隔为每个样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi) 引入了一个松弛变量
ξ
i
≥
0
\xi_i \geq 0
ξi≥0 ,使函数间隔加上松弛变量大于等于1,这样,约束条件就变为了
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
⋯
,
N
{y_i(w^Tx_i + b)} \geq 1- \xi_i,i=1,2,\cdots,N
yi(wTxi+b)≥1−ξi,i=1,2,⋯,N当然,松弛变量不能白加,这是有成本的,对每一个松弛变量
ξ
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 为惩罚参数,可以理解为我们一般回归和分类问题正则化时候的参数。
C
C
C 越大,对误分类的惩罚越大,
C
C
C 越小,对误分类的惩罚越小。
原始问题相当于就是解如下问题:
m
a
x
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
\mathop{max}\limits_{w,b,\xi} \frac{1}{2} ||w||^2+C \sum_{i=1}^{N} \xi_i
w,b,ξmax21∣∣w∣∣2+Ci=1∑Nξi
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
⋯
,
N
ξ
i
≥
0
(
i
=
1
,
2
,
.
.
.
m
)
\begin{aligned} s.t. \hspace{1em} & {y_i(w^Tx_i + b)} \geq 1- \xi_i,i=1,2,\cdots,N \\ & \xi_i \geq 0 \;\;(i =1,2,...m) \end{aligned}
s.t.yi(wTxi+b)≥1−ξi,i=1,2,⋯,Nξi≥0(i=1,2,...m)直接解就行,但是,为了让问题能够方便计算,我们一般使用如下的对偶形式。
4.2 拉格朗日对偶性
设约束最优问题如下所示
m
i
n
f
(
x
)
s
.
t
.
c
i
(
x
)
≤
0
,
i
=
1
,
⋯
,
n
h
i
(
x
)
=
0
,
j
=
1
,
⋯
,
m
\begin{aligned} &min f(x) \\ s.t. \hspace{1em} & c_i(x) \leq 0,i=1,\cdots,n \\ & h_i(x)=0,j=1,\cdots,m \end{aligned}
s.t.minf(x)ci(x)≤0,i=1,⋯,nhi(x)=0,j=1,⋯,m此时有
n
n
n 个不等式约束,
m
m
m 个等式约束,此时可以构造广义拉格朗日函数:
L
(
x
,
α
,
β
,
)
=
f
(
x
)
+
∑
i
=
1
n
α
i
c
i
(
x
)
+
∑
i
=
1
m
β
i
h
i
(
x
)
L(x,\alpha,\beta,)=f(x)+\sum_{i=1}^{n}\alpha_ic_i(x)+\sum_{i=1}^{m}\beta_ih_i(x)
L(x,α,β,)=f(x)+i=1∑nαici(x)+i=1∑mβihi(x)其中,
α
,
β
\alpha,\beta
α,β 是拉格朗日乘子,均大于等于0。
可以证明出来,以下两个问题是等价的:
min
f
(
x
)
=
min
max
L
(
x
,
α
,
β
)
\min f(x)= \min \max L(x,\alpha,\beta)
minf(x)=minmaxL(x,α,β)其对偶问题为
max
min
L
(
x
,
α
,
β
)
\max \min L(x,\alpha,\beta)
maxminL(x,α,β)
4.3 优化目标函数
将支持向量机的约束带入上面的拉格朗日约束可以得到:
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
m
ξ
i
−
∑
i
=
1
m
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
]
−
∑
i
=
1
m
μ
i
ξ
i
L(w,b,\xi,\alpha,\mu) = \frac{1}{2}||w||_2^2 +C\sum\limits_{i=1}^{m}\xi_i - \sum\limits_{i=1}^{m}\alpha_i[y_i(w^Tx_i + b) - 1 + \xi_i] - \sum\limits_{i=1}^{m}\mu_i\xi_i
L(w,b,ξ,α,μ)=21∣∣w∣∣22+Ci=1∑mξi−i=1∑mαi[yi(wTxi+b)−1+ξi]−i=1∑mμiξi其中
μ
i
≥
0
,
α
i
≥
0
\mu_i \geq 0, \alpha_i \geq 0
μi≥0,αi≥0。
需要求的该函数的对偶式如下:
m
a
x
⏟
α
i
≥
0
,
μ
i
≥
0
,
m
i
n
⏟
w
,
b
,
ξ
L
(
w
,
b
,
α
,
ξ
,
μ
)
\underbrace{max}_{\alpha_i \geq 0, \mu_i \geq 0,} \; \underbrace{min}_{w,b,\xi}\; L(w,b,\alpha, \xi,\mu)
αi≥0,μi≥0,
maxw,b,ξ
minL(w,b,α,ξ,μ)首先我们来求优化函数对于
w
,
b
,
ξ
w, b, \xi
w,b,ξ 的极小值,这个可以通过求偏导数求得:
∂
L
∂
w
=
0
⇒
w
=
∑
i
=
1
m
α
i
y
i
x
i
\frac{\partial L}{\partial w} = 0 \;\Rightarrow w = \sum\limits_{i=1}^{m}\alpha_iy_ix_i
∂w∂L=0⇒w=i=1∑mαiyixi
∂
L
∂
b
=
0
⇒
∑
i
=
1
m
α
i
y
i
=
0
\frac{\partial L}{\partial b} = 0 \;\Rightarrow \sum\limits_{i=1}^{m}\alpha_iy_i = 0
∂b∂L=0⇒i=1∑mαiyi=0
∂
L
∂
ξ
=
0
⇒
C
−
α
i
−
μ
i
=
0
\frac{\partial L}{\partial \xi} = 0 \;\Rightarrow C- \alpha_i - \mu_i = 0
∂ξ∂L=0⇒C−αi−μi=0然后利用上面的三个式子可以消去
w
,
b
w,b
w,b
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
m
ξ
i
−
∑
i
=
1
m
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
]
−
∑
i
=
1
m
μ
i
ξ
i
=
1
2
∣
∣
w
∣
∣
2
2
−
∑
i
=
1
m
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
]
+
∑
i
=
1
m
α
i
ξ
i
(
∵
C
−
α
i
−
μ
i
=
0
)
=
1
2
∣
∣
w
∣
∣
2
2
−
∑
i
=
1
m
α
i
[
y
i
(
w
T
x
i
+
b
)
−
1
]
=
1
2
w
T
w
−
∑
i
=
1
m
α
i
y
i
w
T
x
i
−
∑
i
=
1
m
α
i
y
i
b
+
∑
i
=
1
m
α
i
(
∵
∣
∣
w
∣
∣
2
2
=
w
T
w
)
=
1
2
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
∑
i
=
1
m
α
i
y
i
w
T
x
i
−
∑
i
=
1
m
α
i
y
i
b
+
∑
i
=
1
m
α
i
(
∵
w
=
∑
i
=
1
m
α
i
y
i
x
i
)
=
1
2
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
∑
i
=
1
m
α
i
y
i
b
+
∑
i
=
1
m
α
i
=
−
1
2
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
∑
i
=
1
m
α
i
y
i
b
+
∑
i
=
1
m
α
i
=
−
1
2
w
T
∑
i
=
1
m
α
i
y
i
x
i
−
b
∑
i
=
1
m
α
i
y
i
+
∑
i
=
1
m
α
i
=
−
1
2
(
∑
i
=
1
m
α
i
y
i
x
i
)
T
(
∑
i
=
1
m
α
i
y
i
x
i
)
−
b
∑
i
=
1
m
α
i
y
i
+
∑
i
=
1
m
α
i
(
∵
w
=
∑
i
=
1
m
α
i
y
i
x
i
)
=
−
1
2
∑
i
=
1
m
α
i
y
i
x
i
T
∑
i
=
1
m
α
i
y
i
x
i
−
b
∑
i
=
1
m
α
i
y
i
+
∑
i
=
1
m
α
i
=
−
1
2
∑
i
=
1
m
α
i
y
i
x
i
T
∑
i
=
1
m
α
i
y
i
x
i
+
∑
i
=
1
m
α
i
(
∵
∑
i
=
1
m
α
i
y
i
=
0
)
=
−
1
2
∑
i
=
1
,
j
=
1
m
α
i
y
i
x
i
T
α
j
y
j
x
j
+
∑
i
=
1
m
α
i
(
∵
(
a
+
b
+
c
+
…
)
(
a
+
b
+
c
+
…
)
=
a
a
+
a
b
+
a
c
+
b
a
+
b
b
+
b
c
+
…
)
=
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
\begin{aligned} L(w,b,\xi,\alpha,\mu) & = \frac{1}{2}||w||_2^2 +C\sum\limits_{i=1}^{m}\xi_i - \sum\limits_{i=1}^{m}\alpha_i[y_i(w^Tx_i + b) - 1 + \xi_i] - \sum\limits_{i=1}^{m}\mu_i\xi_i \\ &= \frac{1}{2}||w||_2^2 - \sum\limits_{i=1}^{m}\alpha_i[y_i(w^Tx_i + b) - 1 + \xi_i] + \sum\limits_{i=1}^{m}\alpha_i\xi_i(\because C- \alpha_i - \mu_i = 0) \\ & = \frac{1}{2}||w||_2^2 - \sum\limits_{i=1}^{m}\alpha_i[y_i(w^Tx_i + b) - 1] \\ & = \frac{1}{2}w^Tw-\sum\limits_{i=1}^{m}\alpha_iy_iw^Tx_i - \sum\limits_{i=1}^{m}\alpha_iy_ib + \sum\limits_{i=1}^{m}\alpha_i(\because ||w||_2^2 =w^Tw) \\ & = \frac{1}{2}w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i -\sum\limits_{i=1}^{m}\alpha_iy_iw^Tx_i - \sum\limits_{i=1}^{m}\alpha_iy_ib + \sum\limits_{i=1}^{m}\alpha_i(\because w = \sum\limits_{i=1}^{m}\alpha_iy_ix_i) \\ & = \frac{1}{2}w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - \sum\limits_{i=1}^{m}\alpha_iy_ib + \sum\limits_{i=1}^{m}\alpha_i \\ & = - \frac{1}{2}w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - \sum\limits_{i=1}^{m}\alpha_iy_ib + \sum\limits_{i=1}^{m}\alpha_i \\ & = - \frac{1}{2}w^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - b\sum\limits_{i=1}^{m}\alpha_iy_i + \sum\limits_{i=1}^{m}\alpha_i \\ & = -\frac{1}{2}(\sum\limits_{i=1}^{m}\alpha_iy_ix_i)^T(\sum\limits_{i=1}^{m}\alpha_iy_ix_i) - b\sum\limits_{i=1}^{m}\alpha_iy_i + \sum\limits_{i=1}^{m}\alpha_i(\because w = \sum\limits_{i=1}^{m}\alpha_iy_ix_i) \\ & = -\frac{1}{2}\sum\limits_{i=1}^{m}\alpha_iy_ix_i^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i - b\sum\limits_{i=1}^{m}\alpha_iy_i + \sum\limits_{i=1}^{m}\alpha_i \\ & = -\frac{1}{2}\sum\limits_{i=1}^{m}\alpha_iy_ix_i^T\sum\limits_{i=1}^{m}\alpha_iy_ix_i + \sum\limits_{i=1}^{m}\alpha_i(\because \sum\limits_{i=1}^{m}\alpha_iy_i = 0) \\ & = -\frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_iy_ix_i^T\alpha_jy_jx_j + \sum\limits_{i=1}^{m}\alpha_i(\because (a+b+c+…)(a+b+c+…)=aa+ab+ac+ba+bb+bc+…) \\ & = \sum\limits_{i=1}^{m}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j \end{aligned}
L(w,b,ξ,α,μ)=21∣∣w∣∣22+Ci=1∑mξi−i=1∑mαi[yi(wTxi+b)−1+ξi]−i=1∑mμiξi =21∣∣w∣∣22−i=1∑mαi[yi(wTxi+b)−1+ξi]+i=1∑mαiξi(∵C−αi−μi=0) =21∣∣w∣∣22−i=1∑mαi[yi(wTxi+b)−1] =21wTw−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi(∵∣∣w∣∣22=wTw) =21wTi=1∑mαiyixi−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi(∵w=i=1∑mαiyixi) =21wTi=1∑mαiyixi−wTi=1∑mαiyixi−i=1∑mαiyib+i=1∑mαi =−21wTi=1∑mαiyixi−i=1∑mαiyib+i=1∑mαi =−21wTi=1∑mαiyixi−bi=1∑mαiyi+i=1∑mαi =−21(i=1∑mαiyixi)T(i=1∑mαiyixi)−bi=1∑mαiyi+i=1∑mαi(∵w=i=1∑mαiyixi) =−21i=1∑mαiyixiTi=1∑mαiyixi−bi=1∑mαiyi+i=1∑mαi =−21i=1∑mαiyixiTi=1∑mαiyixi+i=1∑mαi(∵i=1∑mαiyi=0)=−21i=1,j=1∑mαiyixiTαjyjxj+i=1∑mαi(∵(a+b+c+…)(a+b+c+…)=aa+ab+ac+ba+bb+bc+…) =i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj所以,我们的优化与约束就成了下面的式子:
m
i
n
⏟
α
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
i
=
1
m
α
i
\underbrace{ min }_{\alpha} \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j - \sum\limits_{i=1}^{m}\alpha_i
α
min21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
s.t. \; \sum\limits_{i=1}^{m}\alpha_iy_i = 0
s.t.i=1∑mαiyi=0
0
≤
α
i
≤
C
0 \leq \alpha_i \leq C
0≤αi≤C
4.4 软间隔对偶算法流程
- 选择惩罚参数 C > 0 C > 0 C>0 , 构造并求解凸二次规划问题 m i n ⏟ α 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j − ∑ i = 1 m α i \underbrace{ min }_{\alpha} \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j - \sum\limits_{i=1}^{m}\alpha_i α min21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi s . t . ∑ i = 1 m α i y i = 0 s.t. \; \sum\limits_{i=1}^{m}\alpha_iy_i = 0 s.t.i=1∑mαiyi=0 0 ≤ α i ≤ C 0 \leq \alpha_i \leq C 0≤αi≤C求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯ , α N ∗ ) \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*) α∗=(α1∗,α2∗,⋯,αN∗)
- 计算
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^*=\sum_{i=1}^N\alpha^*_iy_ix_i
w∗=∑i=1Nαi∗yixi
选择 α ∗ \alpha^* α∗ 一个分量 α j ∗ \alpha^*_j αj∗ 并满足条件 0 ≤ α j ∗ ≤ C 0 \leq \alpha^*_j \leq C 0≤αj∗≤C,计算
b s ∗ = y s − ∑ i = 1 m α i y i x i T x s b_s^{*} = y_s - \sum\limits_{i=1}^{m}\alpha_iy_ix_i^Tx_s bs∗=ys−i=1∑mαiyixiTxs - 求得分离超平面 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∗)。
实际上求得 α ∗ \alpha^* α∗ 的过程用到的是SMO算法,该算法在下节将会讲到。
参考文章
[1] https://www.cnblogs.com/pinard/p/6100722.html