1、概念
支持向量机(support vector machines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器;同时,支持向量机包括的核技巧使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。
假设给定一个特征空间上的训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}
T={(x1,y1),(x2,y2),...,(xN,yN)}
其中,
x
i
∈
χ
=
R
n
x_i\in\chi=R^n
xi∈χ=Rn,
y
i
∈
Υ
=
{
+
1
,
−
1
}
y_i\in\Upsilon=\{+1,-1\}
yi∈Υ={+1,−1},
i
=
1
,
2
,
.
.
.
N
i=1,2,...N
i=1,2,...N,
x
i
x_i
xi为第
i
i
i个特征向量,也称为实例,
y
i
y_i
yi为
x
i
x_i
xi的类标记,当
y
i
=
+
1
y_i=+1
yi=+1时,称
x
i
x_i
xi为正例;当
y
i
=
−
1
y_i=-1
yi=−1时,称
x
i
x_i
xi为负例,
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)称为样本点。
2、线性可分支持向量机
给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为
ω
∗
⋅
x
+
b
∗
=
0
\omega^*\cdot x+b^*=0
ω∗⋅x+b∗=0
以及相应的分类决策函数
f
(
x
)
=
s
i
g
n
(
ω
∗
⋅
x
+
b
∗
)
f(x)=sign(\omega^*\cdot x+b^*)
f(x)=sign(ω∗⋅x+b∗)
称为线性可分支持向量机。
2.1、函数间隔和几何间隔
(1)(函数间隔) 对于给定的训练数据集
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
i
(
w
⋅
x
i
+
b
)
\hat{\gamma_i}=y_i(w\cdot x_i+b)
γi^=yi(w⋅xi+b)
定义超平面
(
w
,
b
)
(w,b)
(w,b) 关于训练数据集
T
T
T 的函数间隔为超平面
(
w
,
b
)
(w,b)
(w,b)关于
T
T
T中所有样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的函数间隔之最小值,即
γ
^
=
m
i
n
i
=
1
,
.
.
.
N
γ
i
^
\hat{\gamma}=\underset{i=1,...N}{min} \hat{\gamma_i}
γ^=i=1,...Nminγi^
函数间隔可以表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还不够。因为只要成比例地改变
w
w
w和
b
b
b,例如将它们改为
2
w
2w
2w和
2
b
2b
2b,超平面并没有改变,但函数间隔却成为原来的2倍。这一事实启示我们,可以对分离超平面的法向量
w
w
w加某些约束,如规范化,
∣
∣
ω
∣
∣
=
1
||\omega||= 1
∣∣ω∣∣=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
i
(
ω
∣
∣
ω
∣
∣
⋅
x
i
+
b
∣
∣
ω
∣
∣
)
\gamma_i=y_i(\frac{\omega}{||\omega||}\cdot x_i + \frac{b}{||\omega||})
γi=yi(∣∣ω∣∣ω⋅xi+∣∣ω∣∣b)
定义超平面
(
w
,
b
)
(w,b)
(w,b)关于训练数据集
T
T
T的几何间隔为超平面
(
w
,
b
)
(w,b)
(w,b)关于
T
T
T中所有样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的几何间隔之最小值,即
γ
=
m
i
n
i
=
1
,
.
.
.
N
γ
i
{\gamma}=\underset{i=1,...N}{min} {\gamma_i}
γ=i=1,...Nminγi
2.2、间隔最大化
下面考虑如何求得一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题:
m
a
x
ω
,
b
γ
\underset{\omega,b}{max}\ \gamma
ω,bmax γ
s
.
t
.
y
i
(
ω
∣
∣
ω
∣
∣
⋅
x
i
+
b
∣
∣
ω
∣
∣
)
≥
γ
,
i
=
1
,
2
,
.
.
.
,
N
s.t.\qquad y_i(\frac{\omega}{||\omega||}\cdot x_i + \frac{b}{||\omega||})\geq\gamma,\quad i=1,2,...,N
s.t.yi(∣∣ω∣∣ω⋅xi+∣∣ω∣∣b)≥γ,i=1,2,...,N
考虑几何间隔和函数间隔的关系,可将这个问题改写为
m
a
x
ω
,
b
γ
^
∣
∣
ω
∣
∣
\underset{\omega,b}{max} \quad \frac{\hat{\gamma}}{||\omega||}
ω,bmax∣∣ω∣∣γ^
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
≥
γ
^
,
i
=
1
,
2
,
.
.
.
,
N
s.t. \qquad y_i(w\cdot x_i+b)\geq\hat{\gamma}, \quad i=1,2,...,N
s.t.yi(w⋅xi+b)≥γ^,i=1,2,...,N
函数间隔
γ
^
\hat{\gamma}
γ^的取值并不影响最优化问题的解。事实上,假设将
w
w
w和
b
b
b按比例改变为
λ
w
\lambda w
λw和
λ
b
\lambda b
λb,这时函数间隔成为
λ
γ
^
\lambda \hat{\gamma}
λγ^。函数间隔的这一改变对上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,这样,就取
γ
^
=
1
\hat{\gamma}=1
γ^=1,将
γ
^
=
1
\hat{\gamma}=1
γ^=1代入上面的最优化问题,注意到最大化
1
∣
∣
ω
∣
∣
\frac{1}{||\omega||}
∣∣ω∣∣1和最小化
1
2
∣
∣
ω
∣
∣
2
\frac{1}{2}{||\omega||}^2
21∣∣ω∣∣2是等价的,于是引出线性可分支持向量机学习算法。
2.3、线性可分支持向量机学习算法——最大间隔法
输入:线性可分训练数据集分类决策函数
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}
T={(x1,y1),(x2,y2),...,(xN,yN)},其中,
x
i
∈
χ
=
R
n
x_i\in\chi=R^n
xi∈χ=Rn,
y
i
∈
Υ
=
{
+
1
,
−
1
}
y_i\in\Upsilon=\{+1,-1\}
yi∈Υ={+1,−1},
i
=
1
,
2
,
.
.
.
N
i=1,2,...N
i=1,2,...N
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
m
a
x
ω
,
b
1
2
∣
∣
ω
∣
∣
2
\underset{\omega,b}{max} \quad \frac{1}{2}{||\omega||}^2
ω,bmax21∣∣ω∣∣2
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
−
1
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
s.t. \qquad y_i(w\cdot x_i+b)-1\geq 0 ,\quad i=1,2,...,N
s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,N
求得最优解:
w
∗
w^*
w∗,
b
∗
b^*
b∗。
(2)由此得到分离超平面:
ω
∗
⋅
x
+
b
∗
=
0
\omega^*\cdot x+b^*=0
ω∗⋅x+b∗=0
分类决策函数
f
(
x
)
=
s
i
g
n
(
ω
∗
⋅
x
+
b
∗
)
f(x)=sign(\omega^*\cdot x+b^*)
f(x)=sign(ω∗⋅x+b∗)
3、学习的对偶算法
为了求解上述线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法(dual algorithm)。
这样做的优点,一是对偶问题往往更容易求解;二是自然引入核函数,进而推广到非线性分类问题。
3.1、拉格朗日函数
假设
f
(
x
)
f(x)
f(x),
c
i
(
x
)
c_i(x)
ci(x),
h
j
(
x
)
h_j(x)
hj(x)是定义在
R
n
R^n
Rn上的连续可微函数。考虑约束最优化问题
m
i
n
x
∈
R
n
f
(
x
)
\underset{x\in R^n}{min} \quad f(x)
x∈Rnminf(x)
s
.
t
.
c
i
(
x
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
k
s.t. \qquad c_i(x)\leq 0, \quad i=1,2,...,k
s.t.ci(x)≤0,i=1,2,...,k
h
j
(
x
)
=
0
,
j
=
1
,
2
,
.
.
.
,
l
\qquad h_j(x)=0 ,j=1,2,...,l
hj(x)=0,j=1,2,...,l
称此约束最优化问题为原始最优化问题或原始问题。引进广义拉格朗日函数:
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
k
α
i
c
i
(
x
)
+
∑
j
=
1
l
β
j
h
j
(
x
)
L(x,\alpha,\beta)=f(x)+\sum_{i=1}^{k} \alpha_i c_i(x)+\sum_{j=1}^{l}\beta_j h_j(x)
L(x,α,β)=f(x)+i=1∑kαici(x)+j=1∑lβjhj(x)
这里,
x
=
(
x
(
1
)
,
x
(
2
)
,
…
,
x
(
n
)
)
T
∈
R
n
x=(x^{(1)},x^{(2)},…,x^{(n)})^T\in R^n
x=(x(1),x(2),…,x(n))T∈Rn,
α
i
\alpha_i
αi,
β
j
\beta_j
βj是拉格朗日乘子,
α
i
≥
0
\alpha_i≥0
αi≥0。
3.2、求解线性可分支持向量机的最优化问题(对偶算法)
对每一个不等式约束
y
i
(
w
⋅
x
i
+
b
)
−
1
≥
0
y_i(w\cdot x_i+b)-1\geq 0
yi(w⋅xi+b)−1≥0引进拉格朗日乘子
α
i
≥
0
\alpha_i\geq 0
αi≥0,
i
=
1
,
2
,
.
.
.
,
N
i=1,2,...,N
i=1,2,...,N,定义拉格朗日函数:
L
(
ω
,
b
,
α
)
=
1
2
∣
∣
ω
∣
∣
2
+
∑
i
=
1
N
α
i
(
1
−
y
i
(
w
⋅
x
i
+
b
)
)
L(\omega,b,\alpha)=\frac{1}{2}{||\omega||}^2+\sum_{i=1}^{N}\alpha_i (1-y_i(w\cdot x_i+b))
L(ω,b,α)=21∣∣ω∣∣2+i=1∑Nαi(1−yi(w⋅xi+b))
其中,
α
=
(
α
1
,
α
2
,
.
.
.
,
α
N
)
T
\alpha=(\alpha_1,\alpha_2,...,\alpha_N)^T
α=(α1,α2,...,αN)T为拉格朗日乘子向量。
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
所以,为了得到对偶问题的解,需要先求
L
(
ω
,
b
,
α
)
L(\omega,b,\alpha)
L(ω,b,α)对
ω
,
b
\omega,b
ω,b的极小,再求对
α
\alpha
α的极大。
(1)求
m
i
n
ω
,
b
L
(
ω
,
b
,
α
)
\underset{\omega,b}{min} L(\omega,b,\alpha)
ω,bminL(ω,b,α)
将拉格朗日函数
L
(
ω
,
b
,
α
)
L(\omega,b,\alpha)
L(ω,b,α)分别对
ω
,
b
\omega,b
ω,b求偏导数并令其等于0。
∇
ω
L
(
ω
,
b
,
α
)
=
ω
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
\nabla_{\omega}{L(\omega,b,\alpha)}=\omega-\sum_{i=1}^{N} \alpha_i y_i x_i=0
∇ωL(ω,b,α)=ω−i=1∑Nαiyixi=0
∇
b
L
(
ω
,
b
,
α
)
=
∑
i
=
1
N
α
i
y
i
=
0
\nabla_{b}{L(\omega,b,\alpha)}=\sum_{i=1}^{N} \alpha_iy_i=0
∇bL(ω,b,α)=i=1∑Nαiyi=0
得
ω
=
∑
i
=
1
N
α
i
y
i
x
i
\omega=\sum_{i=1}^{N}\alpha_i y_i x_i
ω=i=1∑Nαiyixi
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^{N}\alpha_i y_i=0
i=1∑Nαiyi=0
代入拉格朗日函数,即得
m
i
n
ω
,
b
L
(
ω
,
b
,
α
)
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
N
α
i
\underset{\omega,b}{min} L(\omega,b,\alpha)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_i
ω,bminL(ω,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
(2)求
m
i
n
ω
,
b
L
(
ω
,
b
,
α
)
\underset{\omega,b}{min} L(\omega,b,\alpha)
ω,bminL(ω,b,α)对
α
\alpha
α的极大值,即是对偶问题
m
a
x
α
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
N
α
i
\underset{\alpha}{max} \ -\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_i
αmax −21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
s.t. \qquad \sum_{i=1}^{N}\alpha_i y_i=0
s.t.i=1∑Nαiyi=0
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
\qquad \alpha_i\geq0,i=1,2,...,N
αi≥0,i=1,2,...,N
将上述目标函数由求极大转换成求极小,就得到下面与之等价的对偶最优化问题:
m
i
n
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
\underset{\alpha}{min} \quad \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_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
s.t. \qquad \sum_{i=1}^{N}\alpha_i y_i=0
s.t.i=1∑Nαiyi=0
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
\qquad \alpha_i\geq0,i=1,2,...,N
αi≥0,i=1,2,...,N
3.3、优化问题满足KKT条件
对线性可分训练数据集,假设对偶最优化问题对
α
\alpha
α的解为
α
∗
=
(
α
1
∗
,
α
2
∗
,
.
.
.
,
α
N
∗
)
T
\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T
α∗=(α1∗,α2∗,...,αN∗)T,可以由
α
∗
\alpha^*
α∗求得原始最优化问题对
(
ω
∗
,
b
∗
)
(\omega^*,b^*)
(ω∗,b∗)的解
ω
∗
\omega^*
ω∗ ,
b
∗
b^*
b∗ 。
KKT条件如下:
∇
ω
L
(
ω
∗
,
b
∗
,
α
∗
)
=
ω
∗
−
∑
i
=
1
N
α
i
∗
y
i
x
i
=
0
\nabla_{\omega}{L(\omega^*,b^*,\alpha^*)}=\omega^*-\sum_{i=1}^{N} \alpha_i^* y_i x_i=0
∇ωL(ω∗,b∗,α∗)=ω∗−i=1∑Nαi∗yixi=0
∇
b
L
(
ω
∗
,
b
∗
,
α
∗
)
=
∑
i
=
1
N
α
i
∗
y
i
=
0
\nabla_{b}{L(\omega^*,b^*,\alpha^*)}=\sum_{i=1}^{N} \alpha_i^* y_i=0
∇bL(ω∗,b∗,α∗)=i=1∑Nαi∗yi=0
α
i
∗
(
y
i
(
ω
∗
⋅
x
i
+
b
∗
)
−
1
)
=
0
,
i
=
1
,
2
,
.
.
.
,
N
\alpha_i^*(y_i(\omega^*\cdot x_i+b^*)-1)=0,i=1,2,...,N
αi∗(yi(ω∗⋅xi+b∗)−1)=0,i=1,2,...,N
y
i
(
ω
∗
⋅
x
i
+
b
∗
)
−
1
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
y_i(\omega^*\cdot x_i+b^*)-1\geq 0,i=1,2,...,N
yi(ω∗⋅xi+b∗)−1≥0,i=1,2,...,N
α
i
∗
≥
0
\alpha_i^*\geq 0
αi∗≥0
由此得
ω
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
\omega^*=\sum_{i=1}^{N}\alpha_i^* y_i x_i
ω∗=i=1∑Nαi∗yixi
其中至少有一个
α
∗
>
0
\alpha^*>0
α∗>0,对此
j
j
j有
y
j
(
ω
∗
⋅
x
j
+
b
∗
)
−
1
=
0
y_j(\omega^*\cdot x_j+b^*)-1=0
yj(ω∗⋅xj+b∗)−1=0
又
y
j
2
=
1
y_j^2=1
yj2=1,即得
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
⋅
x
j
)
b^*=y_j-\sum_{i=1}^{N}\alpha_i^* y_i(x_i\cdot x_j)
b∗=yj−i=1∑Nαi∗yi(xi⋅xj)
3.4、线性可分支持向量机学习算法
输入:线性可分训练数据集分类决策函数
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}
T={(x1,y1),(x2,y2),...,(xN,yN)},其中,
x
i
∈
χ
=
R
n
x_i\in\chi=R^n
xi∈χ=Rn,
y
i
∈
Υ
=
{
+
1
,
−
1
}
y_i\in\Upsilon=\{+1,-1\}
yi∈Υ={+1,−1},
i
=
1
,
2
,
.
.
.
N
i=1,2,...N
i=1,2,...N
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
m
i
n
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
\underset{\alpha}{min} \quad \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_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
s.t. \quad \sum_{i=1}^{N}\alpha_i y_i=0
s.t.i=1∑Nαiyi=0
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
\alpha_i\geq0,i=1,2,...,N
αi≥0,i=1,2,...,N
求得最优解
α
∗
=
(
α
1
∗
,
α
2
∗
,
.
.
.
,
α
N
∗
)
T
\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T
α∗=(α1∗,α2∗,...,αN∗)T
(2)计算
ω
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
\omega^*=\sum_{i=1}^{N}\alpha_i^* y_i x_i
ω∗=i=1∑Nαi∗yixi
并选择
α
∗
\alpha^*
α∗的一个正分量
α
j
∗
>
0
\alpha_j^*>0
αj∗>0,计算
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
⋅
x
j
)
b^*=y_j-\sum_{i=1}^{N}\alpha_i^* y_i(x_i\cdot x_j)
b∗=yj−i=1∑Nαi∗yi(xi⋅xj)
(3)求得分离超平面
ω
∗
⋅
x
+
b
∗
=
0
\omega^*\cdot x+b^*=0
ω∗⋅x+b∗=0
分类决策函数:
f
(
x
)
=
s
i
g
n
(
ω
∗
⋅
x
+
b
∗
)
f(x)=sign(\omega^*\cdot x+b^*)
f(x)=sign(ω∗⋅x+b∗)