SVM总述
分类:硬间隔SVM(线性可分SVM)、软间隔SVM 和 核技巧 SVM。
SVM是一个二分类的分类模型。
SVM的学习目标 - 在特征空间中找到一个分类超平面 w T x + b = 0 {w^T}x + b = 0 wTx+b=0,使正例和反例之间的间隔最大(所有点中离超平面最近的点具有最大间距),这样能有较好的泛化能力。
本文主要介绍线性可分SVM。
线性可分SVM
1. 问题引入
分类学习的基本思想 - 基于训练集在样本空间找到一个分类超平面,将不同类别样本分开。
从下图可以看出:存在多个分类超平面将训练样本分开。
那么我们需要思考:这么多的分类超平面,哪个是最好的呢?或者说哪个泛化能力最强呢?
在解决这个问题之前,我们先介绍几个术语:函数间隔、几何间隔和支持向量。
2. 基本概念
2.1 函数间隔
样本空间中,分类超平面定义为 w T x + b = 0 {w^T}x + b = 0 wTx+b=0
样本空间中任意点x到超平面距离为
d
=
∣
w
T
x
+
b
∣
∥
w
∥
d = {{\left| {{w^T}x + b} \right|} \over {\left\| w \right\|}}
d=∥w∥∣∣wTx+b∣∣
则在超平面确定的情况下,
∣
w
T
x
+
b
∣
\left| {{w^T}x + b} \right|
∣∣wTx+b∣∣ 表示点x和超平面的相对距离;
w
T
x
+
b
{{w^T}x + b}
wTx+b和
y
y
y 是否同号,可以表征分类是否正确。综上我们用函数间隔表征分类的正确性及确信度。
γ ^ = y ( w T x + b ) \hat \gamma = y\left( {{w^T}x + b} \right) γ^=y(wTx+b)
上式表示超平面关于样本点 ( x , y ) (x,y) (x,y)的函数间隔。而分类超平面关于整个训练集的函数间隔,定义为超平面关于所有样本点 ( x i , y i ) \left( {{x_i},{y_i}} \right) (xi,yi)的函数间隔的最小值。
2.2 几何间隔
但是选择分类超平面,只有函数间隔还不够。因为当成比例地改变 w w w 和 b b b 时,虽然超平面没有改变,但函数间隔却发生了改变。
例如, 2 x + 2 b = 0 2x + 2b = 0 2x+2b=0 和 x + b = 0 x+b=0 x+b=0表示的就是同一个超平面 [注意 -此处 x x x可以是多维矩阵]
所以,此处对超平面的法向量
w
w
w 施加约束,如规范化
∥
w
∥
=
1
\left\| w \right\| = 1
∥w∥=1,使间隔确定化,此时称为几何间隔。
γ
=
γ
^
∥
w
∥
=
y
(
w
T
x
+
b
)
∥
w
∥
\gamma = {{\hat \gamma } \over {\left\| w \right\|}} = {{y\left( {{w^T}x + b} \right)} \over {\left\| w \right\|}}
γ=∥w∥γ^=∥w∥y(wTx+b)
下述距离均指几何间隔。
2.3 支持向量
通常距离超平面比较远的点,已经被正确分类;反而我们更关心距离超平面比较近的点,这些点更容易被误分类。因此我们让距离超平面比较近的点尽可能远离超平面,这样泛化性能会更好。
距离超平面最近的几个样本点满足
y
i
(
w
T
x
i
+
b
)
=
1
{y_i}\left( {{w^T}{x_i} + b} \right) = 1
yi(wTxi+b)=1(证明可参见第3节及Q1),这些点被称为支持向量,如下图虚线上的点所示。
3. 模型描述 - 间隔最大化
SVM的核心问题:如何求得一个使几何间隔最大的分类超平面?
max
  
w
,
b
γ
\mathop {\max\; }\limits_{w,b} \gamma
w,bmaxγ
s
.
t
.
y
i
(
w
T
x
i
+
b
)
∥
w
∥
≥
γ
,
i
=
1
,
2...
m
s.t.\quad {{{y_i}\left( {{w^T}{x_i} + b} \right)} \over {\left\| w \right\|}} \ge \gamma ,i = 1,2...m
s.t.∥w∥yi(wTxi+b)≥γ,i=1,2...m
此处,约束条件表示 γ \gamma γ 是距离超平面最近点的间隔。
考虑函数间隔和几何间隔的关系,可将其改写为:
max
w
,
b
γ
^
∥
w
∥
\mathop {\max }\limits_{w,b} {{\hat \gamma } \over {\left\| w \right\|}}
w,bmax∥w∥γ^
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
γ
^
,
i
=
1
,
2....
m
s.t.\quad{y_i}\left( {{w^T}{x_i} + b} \right) \ge \hat \gamma ,i = 1,2....m
s.t.yi(wTxi+b)≥γ^,i=1,2....m
上式中函数间隔 γ ^ {\hat \gamma } γ^的取值并不影响最优化问题的解,所以我们不妨取 γ ^ = 1 \hat \gamma = 1 γ^=1。(Q1. 为什么函数间隔的取值不影响最优化问题的解?)
下面得到线性可分SVM学习的最优化问题:
max
w
,
b
1
∥
w
∥
⇔
min
w
,
b
1
2
∥
w
∥
2
\mathop {\max }\limits_{w,b} {1 \over {\left\| w \right\|}} \Leftrightarrow \mathop {\min }\limits_{w,b} {1 \over 2}{\left\| w \right\|^2}
w,bmax∥w∥1⇔w,bmin21∥w∥2
s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2... m s.t.\quad{y_i}\left( {{w^T}{x_i} + b} \right) \ge 1,i = 1,2...m s.t.yi(wTxi+b)≥1,i=1,2...m
4. 模型求解
SVM的最优化问题是一个凸二次规划问题,可以利用拉格朗日对偶性将约束条件融入目标函数中,然后对其对偶函数进行求解。(Q2. 转换成对偶函数有什么好处?)
1)优化目标为:
min
w
,
b
1
2
∥
w
∥
2
\mathop {\min }\limits_{w,b} {1 \over 2}{\left\| w \right\|^2}
w,bmin21∥w∥2
s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2... m s.t.\quad{y_i}\left( {{w^T}{x_i} + b} \right) \ge 1,i = 1,2...m s.t.yi(wTxi+b)≥1,i=1,2...m
2)构造拉格朗日函数 - 引入拉格朗日乘子
α
i
≥
0
{\alpha _i} \ge 0
αi≥0:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
−
∑
i
=
1
m
α
i
(
y
i
(
w
T
x
i
+
b
)
−
1
)
,
α
i
≥
0
L\left( {w,b,\alpha } \right) = {1 \over 2}{\left\| w \right\|^2} - \sum\limits_{i = 1}^m {{\alpha _i}\left( {{y_i}\left( {{w^T}{x_i} + b} \right) - 1} \right)} ,\quad\quad{\alpha _i} \ge 0
L(w,b,α)=21∥w∥2−i=1∑mαi(yi(wTxi+b)−1),αi≥0
3)原始问题转换成对偶问题求解:
min
w
,
b
max
α
L
(
w
,
b
,
α
)
⇔
max
α
min
w
,
b
L
(
w
,
b
,
α
)
\mathop {\min }\limits_{w,b} \mathop {\max }\limits_\alpha L\left( {w,b,\alpha } \right) \Leftrightarrow \mathop {\max }\limits_\alpha \mathop {\min }\limits_{w,b} L\left( {w,b,\alpha } \right)
w,bminαmaxL(w,b,α)⇔αmaxw,bminL(w,b,α)
4)对偶问题求解:
4.1) - 先求优化函数对于w和b的极小值,求偏导:
∂
L
∂
w
=
w
−
∑
i
=
1
m
α
i
y
i
x
i
=
0
⇒
w
=
∑
i
=
1
m
α
i
y
i
x
i
∂
L
∂
b
=
∑
i
=
1
m
α
i
y
i
=
0
⇒
∑
i
=
1
m
α
i
y
i
=
0
\begin{aligned} {{\partial L} \over {\partial w}} &= w - \sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} = 0 \Rightarrow w = \sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} \\ {{\partial L} \over {\partial b}} &= \sum\limits_{i = 1}^m {{\alpha _i}{y_i}} = 0 \Rightarrow \sum\limits_{i = 1}^m {{\alpha _i}{y_i}} = 0 \end{aligned}
∂w∂L∂b∂L=w−i=1∑mαiyixi=0⇒w=i=1∑mαiyixi=i=1∑mαiyi=0⇒i=1∑mαiyi=0
将其代回优化函数
L
(
w
,
b
,
α
)
L\left( {w,b,\alpha } \right)
L(w,b,α),消去
w
w
w:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
−
∑
i
=
1
m
α
i
(
y
i
(
w
T
x
i
+
b
)
−
1
)
=
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
=
−
1
2
w
T
∑
i
=
1
m
α
i
y
i
x
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
=
−
1
2
∑
i
=
1
m
α
i
y
i
x
i
T
∑
i
=
1
m
α
i
y
i
x
i
+
∑
i
=
1
m
α
i
=
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
+
∑
i
=
1
m
α
i
\begin{aligned} L\left( {w,b,\alpha } \right) &= {1 \over 2}{\left\| w \right\|^2} - \sum\limits_{i = 1}^m {{\alpha _i}\left( {{y_i}\left( {{w^T}{x_i} + b} \right) - 1} \right)} \\ &= {1 \over 2}{w^T}\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} - \sum\limits_{i = 1}^m {{\alpha _i}{y_i}{w^T}{x_i}} - \sum\limits_{i = 1}^m {{\alpha _i}{y_i}b} + \sum\limits_{i = 1}^m {{\alpha _i}} \\ &= - {1 \over 2}{w^T}\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} + \sum\limits_{i = 1}^m {{\alpha _i}} \\ &= - {1 \over 2}{\left( {\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} } \right)^T}\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} + \sum\limits_{i = 1}^m {{\alpha _i}} \\ &= - {1 \over 2}\sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}^T} \sum\limits_{i = 1}^m {{\alpha _i}{y_i}{x_i}} + \sum\limits_{i = 1}^m {{\alpha _i}} \\ &= - {1 \over 2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^m {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}^T{x_j}} } + \sum\limits_{i = 1}^m {{\alpha _i}} \end{aligned}
L(w,b,α)=21∥w∥2−i=1∑mαi(yi(wTxi+b)−1)=21wTi=1∑mαiyixi−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi=−21wTi=1∑mαiyixi+i=1∑mαi=−21(i=1∑mαiyixi)Ti=1∑mαiyixi+i=1∑mαi=−21i=1∑mαiyixiTi=1∑mαiyixi+i=1∑mαi=−21i=1∑mj=1∑mαiαjyiyjxiTxj+i=1∑mαi
即
min
w
,
b
L
(
w
,
b
,
α
)
=
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
+
∑
i
=
1
m
α
i
\mathop {\min }\limits_{w,b} L\left( {w,b,\alpha } \right) = - {1 \over 2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^m {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}^T{x_j}} } + \sum\limits_{i = 1}^m {{\alpha _i}}
w,bminL(w,b,α)=−21i=1∑mj=1∑mαiαjyiyjxiTxj+i=1∑mαi
4.2) -下式再对拉格朗日乘子
α
α
α 求极大值:
max
α
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
+
∑
i
=
1
m
α
i
\mathop {\max }\limits_\alpha - {1 \over 2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^m {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}^T{x_j}} } + \sum\limits_{i = 1}^m {{\alpha _i}}
αmax−21i=1∑mj=1∑mαiαjyiyjxiTxj+i=1∑mαi
s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2... m s.t.\quad \sum\limits_{i = 1}^m {{\alpha _i}{y_i}} = 0,\quad {\alpha _i} \ge 0,i = 1,2...m s.t.i=1∑mαiyi=0,αi≥0,i=1,2...m
可以去掉负号,即为等价的极小化问题如下:
min
α
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
i
=
1
m
α
i
\mathop {\min }\limits_\alpha {1 \over 2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^m {{\alpha _i}{\alpha _j}{y_i}{y_j}{x_i}^T{x_j}} } - \sum\limits_{i = 1}^m {{\alpha _i}}
αmin21i=1∑mj=1∑mαiαjyiyjxiTxj−i=1∑mαi
s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2... m s.t.\quad \sum\limits_{i = 1}^m {{\alpha _i}{y_i}} = 0,\quad {\alpha _i} \ge 0,i = 1,2...m s.t.i=1∑mαiyi=0,αi≥0,i=1,2...m
4.3) - 一般用SMO算法对 α \alpha α求极小
5)由对偶问题的解求原始问题的解。
5.1) - 假设已通过SMO算法得到对偶最优化问题的解
α
∗
{\alpha ^*}
α∗。则根据4.1)小节,可得:
w
∗
=
∑
i
=
1
m
α
i
∗
y
i
x
i
{w^*} = \sum\limits_{i = 1}^m {{\alpha _i}^*{y_i}{x_i}}
w∗=i=1∑mαi∗yixi
5.2) - 对于任意支持向量
(
x
s
,
y
s
)
\left( {{x_s},{y_s}} \right)
(xs,ys),有
y
s
(
w
T
x
s
+
b
)
=
1
⇒
w
T
x
s
+
b
=
y
s
⇒
b
=
y
s
−
w
T
x
s
{y_s}\left( {{w^T}{x_s} + b} \right) = 1 \Rightarrow {w^T}{x_s} + b = {y_s} \Rightarrow b = {y_s} - {w^T}{x_s}
ys(wTxs+b)=1⇒wTxs+b=ys⇒b=ys−wTxs
即
b
∗
=
y
s
−
w
T
x
s
=
y
s
−
∑
i
=
1
m
α
i
∗
y
i
x
i
T
x
s
\begin{aligned} {b^*} &= {y_s} - {w^T}{x_s} \\ &= {y_s} - \sum\limits_{i = 1}^m {{\alpha _i}^*{y_i}{x_i}^T{x_s}} \end{aligned}
b∗=ys−wTxs=ys−i=1∑mαi∗yixiTxs
理论上每个支持向量求得的 b ∗ {b^*} b∗ 都可以作为最终结果,但为了增强算法的健壮性,一般对所有支持向量所求得的 b ∗ {b^*} b∗ 取平均作为最终结果(软间隔情况)。(对于严格线性可分的SVM, 求得的 b ∗ {b^*} b∗ 都是相同的)
5. 拓展 - 其他知识点
软间隔SVM,松弛变量
非线性分类问题 - 核函数
SMO序列最小最优化算法
Q&A
Q1. 为什么函数间隔的取值不影响最优化问题的解?
我们知道,当成比例地改变 w w w 和 b b b 时,超平面并没有改变: λ w T x + λ b = 0 ⇔ w T x + b = 0 \lambda {w^T}x + \lambda b = 0 \Leftrightarrow {w^T}x + b = 0 λwTx+λb=0⇔wTx+b=0
假设将 w w w 和 b b b 按比例地改变为 λ w \lambda w λw 和 λ b \lambda b λb ,则函数间隔为 λ γ ^ \lambda \hat \gamma λγ^,最优化问题如下:
max w , b λ γ ^ ∥ λ w ∥ = γ ^ ∥ w ∥ \mathop {\max }\limits_{w,b} {{\lambda \hat \gamma } \over {\left\| {\lambda w} \right\|}} = {{\hat \gamma } \over {\left\| w \right\|}} w,bmax∥λw∥λγ^=∥w∥γ^ s . t . y i ( λ w T x i + λ b ) ≥ λ γ ^ ⇔ y i ( w T x i + b ) ≥ γ ^ , i = 1 , 2... N s.t.\quad{y_i}\left( {\lambda {w^T}{x_i} + \lambda b} \right) \ge \lambda \hat \gamma \Leftrightarrow {y_i}\left( {{w^T}{x_i} + b} \right) \ge \hat \gamma ,i = 1,2...N s.t.yi(λwTxi+λb)≥λγ^⇔yi(wTxi+b)≥γ^,i=1,2...N
也就是说成比例的改变函数间隔 γ ^ \hat \gamma γ^ 的取值(成比例地改变 w w w 和 b b b - 不会影响待求的超平面),没有改变最优化问题。
Q2. 转换成对偶函数有什么好处?
对偶问题更容易求解,更高效;
对偶问题求解时,引入了核函数,进而推广到非线性分类问题。