支持向量机是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它称为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机,线性支持向量机及非线性支持向量机。
简单模型是复杂模型的基础,也是复杂模型的特殊情况。当训练数据线性可分时。通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时候,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,也称为软间隔支持向量机;当训练数据线性不可分时候,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
当输入空间为欧氏空间或离散集合,特征空间为希尔伯特空间时(完备的内积空间),核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机。这样的方法称为核技巧。
7.1线性可分支持向量机与硬间隔最大化
考虑一个二类分类问题。假设输入空间与特征空间为两个不同的空间。输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间。线性可分支持向量机,线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。所以,输入都由输入空间转换到特征空间,支持向量机的学习是在特征空间进行的。
假设给定训练集,且训练集线性可分。学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。分离超平面对应于方程wx+b=0,它由法向量w和截距b决定,可用(w,b)来表示。分离超平面将特征空间划分为两部分,一部分是正类,一部分是负类。法向量指向的一侧为正类,另一侧为负类。
一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时候的解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面。
定义7.1(线性可分支持向量机)给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为 w∗x+b=0 w ∗ x + b = 0 以及相应的分类决策函数 f(x)=sign(wx+b) f ( x ) = s i g n ( w x + b ) 。
一般来说,一个点距离分离超平面地远近可以表示分离预测的准确程度,越远地点准确度越高。在超平面 w∗x+b=0 w ∗ x + b = 0 确定的情况下, |wx+b| | w x + b | 能够相对地表示点x距离超平面的远近,而wx+b的符号与类标记y的符号是否一致能够表示分类是否正确。所以可用量y(wx+b)来表示分类的正确性及确信度,这就是函数间隔的概念。
定义7.2(函数间隔)对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点
(xi,yi)
(
x
i
,
y
i
)
的函数间隔为
γi∧=yi(wxi+b)
γ
i
∧
=
y
i
(
w
x
i
+
b
)
。定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点
(xi,yi)
(
x
i
,
y
i
)
的函数间隔之最小值,即
γ∧=minγi∧
γ
∧
=
min
γ
i
∧
。
函数间隔可以表示分类预测的正确性及确信度。但是在选择分离超平面时候,只有函数间隔还不够。因为只要成比例地改变w和b,超平面并没有改变,但函数间隔却成为原来的2倍。这一事实启示我们,可以对分离超平面地法向量w加某些约束,如规范化,
|w||=1
|
w
|
|
=
1
,使得间隔是确定的。这时候函数间隔成为几何间隔。
定义7.3(几何间隔)对于给定地训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点 (xi,yi) ( x i , y i ) 的几何间隔为 γi=yi(w||w||xi+b||w||) γ i = y i ( w | | w | | x i + b | | w | | ) 。定义超平面(w,b)关于训练数据集T的几何间隔为超平面(w,b)关于T中所有样本点 (xi,yi) ( x i , y i ) 的几何最小值,即 γ=minγi γ = min γ i 。
间隔最大化
支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面,对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化(与将要讨论的训练数据集近似线性可分时的软间隔最大化相对应)。
间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例分开,而且对最难分的实例点(离超平面最近的 点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。
最大间隔分离超平面
约束最优化问题:
maxw,bγ
max
w
,
b
γ
s.t.yi(w||w||xi+b||w||)≥γ,i=1,2,...,N
s
.
t
.
y
i
(
w
|
|
w
|
|
x
i
+
b
|
|
w
|
|
)
≥
γ
,
i
=
1
,
2
,
.
.
.
,
N
即最大化超平面(w,b)关于训练数据集的几何间隔
γ
γ
。
考虑几何间隔和函数间隔的关系式,可将这个问题改写为:
maxw,bγ∧||w||
max
w
,
b
γ
∧
|
|
w
|
|
s.t.yi(wxi+b)≥γ∧,i=1,2,...,N
s
.
t
.
y
i
(
w
x
i
+
b
)
≥
γ
∧
,
i
=
1
,
2
,
.
.
.
,
N
函数间隔
γ∧
γ
∧
的取值并不影响最优化问题的解。事实上,假设将w和b按比例改变为
λw
λ
w
和
λb
λ
b
,这时候函数间隔成为
λγ∧
λ
γ
∧
。函数间隔的这一改变对上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,也就是说,它产生一个等价的最优化问题。这样,就可以取
γ∧=1
γ
∧
=
1
,代入上面的最优化问题,注意到最大化
1||w||
1
|
|
w
|
|
和最小化
12||w||2
1
2
|
|
w
|
|
2
是等价的,于是得到下面的线性可分支持向量机学习的最优化问题
minw,b12||w||2
min
w
,
b
1
2
|
|
w
|
|
2
s.t.yi(wxi+b)−1≥0,i=1,2,...,N
s
.
t
.
y
i
(
w
x
i
+
b
)
−
1
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
这是一个凸二次规划问题。
PS.凸优化问题
凸优化问题是指约束最优化问题
minwf(w)
min
w
f
(
w
)
s.t.gi(w)≤0,i=1,2,...,k
s
.
t
.
g
i
(
w
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
k
hi(w)=0,i=1,2,...,l
h
i
(
w
)
=
0
,
i
=
1
,
2
,
.
.
.
,
l
其中,目标函数f(w)和约束函数
gi(w)
g
i
(
w
)
都是
Rn
R
n
上的连续可微的凸函数,约束函数
hi(w)
h
i
(
w
)
是仿射函数。(f(x)称为仿射函数,如果它满足f(x)=ax+b)。
当目标函数f(w)是二次函数且约束函数
gi(w)
g
i
(
w
)
是仿射函数时,上述凸最优化问题称为凸二次规划问题。
算法7.1(线性可分支持向量机学习算法——最大间隔法)
输入:线性可分训练数据集
输出:最大间隔分离超平面和分类决策函数
(1)构造并求解约束最优化问题:
minw,b12||w||2
min
w
,
b
1
2
|
|
w
|
|
2
s.t.yi(wxi+b)−1≥0,i=1,2,...,N
s
.
t
.
y
i
(
w
x
i
+
b
)
−
1
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
3.支持向量和间隔边界
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量。支持向量是使得约束条件式等号成立的点,即
yi(wxi+b)−1=0
y
i
(
w
x
i
+
b
)
−
1
=
0
对
yi=+1
y
i
=
+
1
的正例点,支持向量在超平面
H1:wx+b=1
H
1
:
w
x
+
b
=
1
对
yi=−1
y
i
=
−
1
的负例点,支持向量在超平面
H2:wx+b=−1
H
2
:
w
x
+
b
=
−
1
H1和H2平行,并且没有实例点落到它们中间。在H1和H2之间形成一条长带,分离超平面与它们平行且位于它们中央。长带的宽度,即H1与H2之间的距离称为间隔。间隔依赖于分离超平面的法向量w,等于
2||w||
2
|
|
w
|
|
。H1和H2称为间隔边界。
在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。如果移动支持向量将改变所求的解;但是如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解是不会改变的。由于支持向量在确定分离超平面中起着决定性作用,所以将这种分类模型称为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本确定。
为了求解支持向量机的最优化问题
minw,b12||w||2
min
w
,
b
1
2
|
|
w
|
|
2
s.t.yi(wxi+b)−1≥0,i=1,2,...,N
s
.
t
.
y
i
(
w
x
i
+
b
)
−
1
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。这么做的优点,一是对偶问题往往更容易求解;二是自然引入核函数,进而推广到非线性分类问题。
首先构建拉格朗日函数。对此,对每一个不等式约束引进拉格朗日乘子
αi≥0
α
i
≥
0
,定义拉格朗日函数:
L(w,b,α)=12||w||2−∑i=1Nαiyi(wxi+b)+∑i=1Nαi
L
(
w
,
b
,
α
)
=
1
2
|
|
w
|
|
2
−
∑
i
=
1
N
α
i
y
i
(
w
x
i
+
b
)
+
∑
i
=
1
N
α
i
其中,
α=(α1,α2,...,αN)T
α
=
(
α
1
,
α
2
,
.
.
.
,
α
N
)
T
为拉格朗日乘子向量。
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
maxαminw,bL(w,b,a)
max
α
min
w
,
b
L
(
w
,
b
,
a
)
,所以为了得到对偶问题的解,需要先求
L(w,b,a)
L
(
w
,
b
,
a
)
对w,b的极小,再求对
α
α
的极大。
(1)求
minw,bL(w,b,α)
min
w
,
b
L
(
w
,
b
,
α
)
将拉格朗日函数
L(w,b,a)
L
(
w
,
b
,
a
)
分别对w,b求偏导数并令其等于0。
∇wL(w,b,α)=w−∑i=1Nαiyixi=0
∇
w
L
(
w
,
b
,
α
)
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
∇bL(w,b,α)=∑i=1Nαiyi=0
∇
b
L
(
w
,
b
,
α
)
=
∑
i
=
1
N
α
i
y
i
=
0
得
∑i=1Nαiyi=0
∑
i
=
1
N
α
i
y
i
=
0
,
w=∑i=1Nαiyixi
w
=
∑
i
=
1
N
α
i
y
i
x
i
代入拉格朗日对偶式子得
L(w,b,α)=12∑i=1N∑j=1Nαiαjyiyj(xixj)−∑i=1Nαiyi((∑j=1Nαjyjxj)xi+b)+∑i=1Nαi
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
y
i
(
(
∑
j
=
1
N
α
j
y
j
x
j
)
x
i
+
b
)
+
∑
i
=
1
N
α
i
=−12∑i=1N∑j=1Nαiαjyiyj(xixj)+∑i=1Nαi
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
x
j
)
+
∑
i
=
1
N
α
i
(2)求
minw,bL(w,b,α)
min
w
,
b
L
(
w
,
b
,
α
)
的极大,即是对偶问题
maxα−12∑i=1N∑j=1Nαiαjyiyj(xixj)+∑i=1Nαi
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=1Nαiyi=0,αi≥0,i=1,2,...,N
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
,
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
将上述式子的目标函数由求极大转换成求极小,就得到下面与之等价的对偶最优化问题:
minα12∑i=1N∑j=1Nαiαjyiyj(xixj)−∑i=1Nαi
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=1Nαiyi=0,αi≥0,i=1,2,...,N
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
,
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
支持向量一定在间隔边界上, w∗xi+b∗=±1 w ∗ x i + b ∗ = ± 1 。
7.2线性支持向量机与软间隔最大化
线性不可分的时候,可修改硬间隔最大化,使其成为软间隔最大化。通常情况是,训练数据中有一些特异点,将这些特异点去除以后,剩下大部分样本点组成的集合是线性可分的。
线性不可分意味着某些样本点不能满足函数间隔大于等于1的约束条件。为了解决这个问题,可以对每个样本点
(xi,yi)
(
x
i
,
y
i
)
引入一个松弛变量
ξi≥0
ξ
i
≥
0
,使得函数间隔加上松弛变量大于等于1。这样约束条件变为
yi(wxi+b)≥1−ξi
y
i
(
w
x
i
+
b
)
≥
1
−
ξ
i
。同时,对每个松弛变量
ξi
ξ
i
。目标函数由原来的
12||w||2
1
2
|
|
w
|
|
2
变成
12||w||2+C∑i=1Nξi
1
2
|
|
w
|
|
2
+
C
∑
i
=
1
N
ξ
i
。这里,
C>0
C
>
0
称为惩罚参数,一般由应用问题决定的。C值大时对误分类的惩罚增大,C值小时对误分类的惩罚减小。最小化目标函数包含两层含义:使得
12||w||2
1
2
|
|
w
|
|
2
尽量小即间隔尽量大,同时使误分类点的个数尽量小,C是调和二者的系数。相应于硬间隔最大化,它被称为软间隔最大化。
线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题:
minw,b,ξ12||w||2+C∑i=1Nξi
min
w
,
b
,
ξ
1
2
|
|
w
|
|
2
+
C
∑
i
=
1
N
ξ
i
s.t.yi(wxi+b)≥1−ξi,i=1,2,…,N ξi≥0,i=1,2,…,N
s
.
t
.
y
i
(
w
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
…
,
N
ξ
i
≥
0
,
i
=
1
,
2
,
…
,
N
可以证明w的解释唯一的,但b的解释不唯一的,b的解存在于一个区间。
定义7.5(线性支持向量机)对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,即软间隔最大化问题,得到的分离超平面为 w∗x+b∗=0 w ∗ x + b ∗ = 0 以及相应的分离决策函数 f(x)=sign(w∗x+b∗) f ( x ) = s i g n ( w ∗ x + b ∗ ) 称为线性支持向量机。
学习的对偶算法
相应的拉格朗日函数为
L(w,b,ξ,α,μ)=12||w||2+C∑i=1Nξi−∑i=1Nαi(yi(wxi+b)−1+ξi)−∑i=1Nμiξi
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
,其中
αi≥0,μi≥0
α
i
≥
0
,
μ
i
≥
0
。
对偶问题是拉格朗日函数的极大极小问题,首先求
L(w,b,ξ,α,μ)
L
(
w
,
b
,
ξ
,
α
,
μ
)
对
w,b,ξ
w
,
b
,
ξ
的极小,由
∇wL(w,b,ξ,α,μ)=w−∑i=1Nαiyixi=0
∇
w
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
∇bL(w,b,ξ,α,μ)=−∑i=1Nαiyi=0
∇
b
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
−
∑
i
=
1
N
α
i
y
i
=
0
∇ξiL(w,b,ξ,α,μ)=C−αi−μi=0
∇
ξ
i
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
C
−
α
i
−
μ
i
=
0
得
w=∑i=1Nαiyixi
w
=
∑
i
=
1
N
α
i
y
i
x
i
∑i=1Nαiyi=0
∑
i
=
1
N
α
i
y
i
=
0
C−αi−μi=0
C
−
α
i
−
μ
i
=
0
代入得极大对偶问题:
maxα−12∑i=1N∑i=1Nαiαjyiyj(xixj)+∑i=1Nαi
max
α
−
1
2
∑
i
=
1
N
∑
i
=
1
N
α
i
α
j
y
i
y
j
(
x
i
x
j
)
+
∑
i
=
1
N
α
i
s.t.∑i=1Nαiyi=0
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
0≤αi≤C
0
≤
α
i
≤
C
合页损失函数
对于线性支持向量机来说,其还有另外一种解释,就是最小化以下目标函数:
∑i=1N[1−yi(wxi+b)]+λ||w||2
∑
i
=
1
N
[
1
−
y
i
(
w
x
i
+
b
)
]
+
λ
|
|
w
|
|
2
目标函数的第一项是经验损失或经验风险,函数
L(y(wx+b))=[1−y(wx+b)]
L
(
y
(
w
x
+
b
)
)
=
[
1
−
y
(
w
x
+
b
)
]
称为合页损失函数。目标函数的第2项是系数为
λ
λ
的w的
L2
L
2
范数,是正则化项。