支持向量机(support vector machines, SVM)是一种二类分类模型,它的学习策略是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数最小化问题。
1、线性可分支持向量机
在之前的模型中,输入空间就是特征空间,但在支持向量机中,输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间,它们是两个空间。在支持向量机中,学习是在特征空间进行的。线性可分支持向量机与线性支持向量机假设这两个空间的元素一一对应,而非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。
这一节讨论的是线性可分支持向量机,线性可分支持向量机与感知机有点像。感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无穷多个。而线性可分支持向量机利用间隔最大化求最优分离超平面,这时解是唯一的。
2、函数间隔和几何间隔
先介绍函数间隔(functional margin)与几何间隔(geometric margin)的概念。当超平面
w⋅x+b=0给定的情况下,
∣w⋅x+b∣可以相对地表示点
x距离超平面的远近。再考虑到
w⋅x+b与
y的符号是否一致,可以表示分类是否正确,所以定义超平面
(w,b)关于样本点
(xi,yi)的函数间隔为
γ^i=yi(w⋅xi+b) 定义超平面
(w,b)关于训练数据集
T的函数间隔为所有样本点
(xi,yi)的函数间隔的最小值,即
γ^=i=1,⋯,Nminγ^i 在上述函数间隔中,只要成比例地改变
w与
b,超平面还是原来的超平面,但函数间隔
γ^却成比例改变了,那有没有办法让间隔是确定的呢?
可以对超平面的法向量
w加某些约束,如规范化
∣∣w∣∣=1,因此便引出了几何间隔的概念。定义超平面
(w,b)关于样本点
(xi,yi)的几何间隔为
γi=yi(∣∣w∣∣w⋅xi+∣∣w∣∣b) 其中,
∣∣w∣∣为
w的
L2范数。定义超平面
(w,b)关于训练数据集
T的几何间隔为所有样本点
(wi,yi)的几何间隔的最小值,即
γ=i=1,⋯,Nminγi 由上面四个式子可见,函数间隔和几何间隔有下面的关系
γi=∣∣w∣∣γ^i
γ=∣∣w∣∣γ^ 如果
∣∣w∣∣=1,函数间隔和几何间隔相等;如果
w与
b成比例地改变(超平面没变),函数间隔也成比例改变,但几何间隔不变。
3、间隔最大化
支持向量机的基本想法是求解得到一个超平面,使其能正确划分训练数据集的同时让几何间隔最大。间隔最大化的直观解释是:不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开,这样的超平面应该对未知的新实例有很好的分类预测能力。
因此求取一个几何间隔最大的超平面,可以表示为下面的约束最优化问题:
w,bmax γ
s.t. yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)≥γ, i=1,2,⋯,N 用函数间隔
γ^表示几何间隔
γ,即代入式子
γ=∣∣w∣∣γ^,可得
w,bmax ∣∣w∣∣γ^
s.t. yi(w⋅xi+b)≥γ^, i=1,2,⋯,N 观察上面最优化问题,假设将
w与
b按比例改变为
λw与
λb,这时函数间隔也变成了
λγ^,这一改变对目标函数和约束条件都没有影响。因此上面的最优化问题,实际上
γ^会受到
w与
b的影响,可以用
γ^=1将
γ^固定下来。另外,由于最大化
∣∣w∣∣1与最小化
21∣∣w∣∣是等价的,最终线性可分支持向量机学习的最优化问题变成了
w,bmin 21∣∣w∣∣2
s.t. yi(w⋅xi+b)−1≥0, i=1,2,⋯,N 可以发现,这是一个凸二次规划(convex quadratic programming)问题,即目标函数与不等式约束都是
Rn上的连续可微的凸函数,等式约束是
Rn上的仿射函数(当然这里没有等式约束)。
线性可分训练集的最大间隔分离超平面是存在且唯一的,即上述最优化问题存在一个唯一的最优解,接下来证明这一点。
首先证明解的存在性。因为目标函数是最小化
21∣∣w∣∣2,而本身
∣∣w∣∣是有下界的,即
w=0;当
w=0时,约束条件变成了
yib−1≥0,而训练数据集中既有正类点又有负类点,即
yi等于1或-1,显然此时无法满足约束条件,因此必有一个
w̸=0的解。
接着证明解
(w∗,b∗)的唯一性。
假设存在两个最优解
(w1∗,b1∗)和
(w2∗,b2∗),这两个解都对应了目标函数
21∣∣w∣∣2的最小化,所以显然有
∣∣w1∗∣∣=∣∣w2∗∣∣=c。若此时有另一个解
(w,b),其中
w取值为
w=2w1∗+w2∗,由于这个解必然不可能优于最优解,因此
∣∣w∣∣≥c;而另一方面
∣∣w∣∣=∣∣2w1∗+2w2∗∣∣≤∣∣2w1∗∣∣+∣∣2w2∗∣∣=c,因此可得
∣∣w∣∣=c=2∣∣w1∗∣∣+∣∣w2∗∣∣。结合
w=2w1∗+w2∗,可知
w1∗与
w2∗必然有倍数关系,又
∣∣w1∗∣∣=∣∣w2∗∣∣,因此
w1∗=w2∗。
证明了
w∗的唯一性,接着证明
b∗的唯一性。设训练数据集的正类点中,点
x1′和点
x2′分别对应于
(w∗,b1∗)和
(w∗,b2∗)使不等式等号成立的点;负类点中,点
x1′′和点
x2′′分别对应于
(w∗,b1∗)和
(w∗,b2∗)使不等式等号成立的点。即
1⋅(w∗⋅x1′+b1∗)−1=0
1⋅(w∗⋅x2′+b2∗)−1=0
−1⋅(w∗⋅x1′′+b1∗)−1=0
−1⋅(w∗⋅x2′′+b2∗)−1=0 因此
b1∗=−21(w∗⋅x1′+w∗⋅x1′′)
b2∗=−21(w∗⋅x2′+w∗⋅x2′′) 两式相减,得
b1∗−b2∗=−21[w∗⋅(x1′−x2′)+w∗⋅(x1′′−x2′′)] 又因为
x2′点不对应于
(w∗,b1∗)使不等式等号成立,
x1′点不对应于
(w∗,b2∗)使不等式等号成立,所以
w∗⋅x2′+b1∗≥1=w∗⋅x1′+b1∗
w∗⋅x1′+b2∗≥1=w∗⋅x2′+b2∗ 即
w∗⋅x2′≥w∗⋅x1′
w∗⋅x1′≥w∗⋅x2′ 所以
w∗⋅(x1′−x2′)=0 同理,对于
x1′′与
x2′′,有
w∗⋅(x1′′−x2′′)=0 因此,代入
b1∗−b2∗的表达式中,有
b1∗−b2∗=0
b∗的唯一性得证。
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量(support vector),支持向量满足以下等式
yi(w⋅xi+b)−1=0 支持向量正例点与负例点所在超平面的距离称为间隔(margin),等于
∣∣w∣∣2。
4、学习的对偶算法
接下来考虑如何求解线性可分支持向量机的原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题(dual problem)得到原始问题(primal problem)的最优解,这就是线性可分支持向量机的对偶算法(dual algorithm)。
首先引进拉格朗日乘子(Lagrange multiplier)
αi≥0,构建拉格朗日函数(Lagrange function)
L(w,b,α)=21∣∣w∣∣2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi 根据拉格朗日对偶性,原始问题的对偶问题是
αmaxw,bminL(w,b,α) 首先求解内部最小化问题
minw,bL(w,b,α),分别对
w与
b求偏导,得
▽wL(w,b,α)=w−i=1∑Nαiyixi=0
▽bL(w,b,α)=−i=1∑Nαiyi=0 即
w=i=1∑Nαiyixi
i=1∑Nαiyi=0 代入拉格朗日函数,得
w,bminL(w,b,α)=21i=1∑Ni=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi(j=1∑Nαjyjxj)⋅xi+i=1∑Nαi 进一步化简
w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi 第二步,求解外部最大化问题,可以将其转化为如下最小化问题
αmin 21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
s.t. i=1∑Nαiyi=0
αi≥0, i=1,2,⋯,N 这样便能得到最优解
α∗=(α1∗,α2∗,⋯,αN∗)。
接着考虑如何通过对偶问题的解
α∗求得原始问题的解
w∗与
b∗。
引出下面定理:若目标函数
f(x)与不等式约束
ci(x)是凸函数,等式约束
hj(x)是仿射函数,且
ci(x)是严格可行的,则
x∗和
α∗,
β∗分别是原始问题和对偶问题的解的充要条件是
x∗,
α∗,
β∗满足下面的KKT条件
▽xL(x∗,α∗,β∗)=0
αi∗ci(x∗)=0, i=1,2,⋯,k
ci(x∗)≤0, i=1,2,⋯,k
αi∗≥0, i=1,2,⋯,k
hj(x∗)=0, i=1,2,⋯,l 上面第二个式子称为KKT的对偶互补条件,由此条件可知若
αi∗>0,则
ci(x∗)=0。
回到线性可分支持向量机,首先要明确
L(w∗,b∗,α∗)中的
w∗与
b∗对应定理的
x∗,
α∗对应定理的
α∗,没有等式约束来对应定理的
β∗。接着写出线性可分支持向量机的KKT条件
▽wL(w∗,b∗,α∗)=w∗−i=1∑Nαi∗yixi=0
▽bL(w∗,b∗,α∗)=−i=1∑Nαi∗ti=0
αi∗[yi(w∗⋅xi+b∗)−1]=0, i=1,2,⋯,N
yi(w∗⋅xi+b∗)−1≥0, i=1,2,⋯,N
αi∗≥0, i=1,2,⋯,N 因此,马上可以得到
w∗的求取公式
w∗=i=1∑Nαi∗yixi 又因为至少有一个
αj∗>0,根据KKT的对偶互补条件,对此
j有
yj(w∗⋅xj+b∗)−1=0 由于
yj=±1,可将式子改写为
w∗⋅xj+b∗=yj 代入
w∗的表达式,得
b∗=yj−i=1∑Nαi∗yi(xi⋅xj) 那么,为什么刚才说至少有一个
αj∗>0呢?假设所有的
αj∗=0,即
α∗=0,代入
w∗的表达式中可得
w∗=i=1∑Nαi∗yixi=0 而在文章的最开头已经证明了
w∗=0不是原始最优化问题的解,产生矛盾。
综上所述,求解超平面的过程是,首先求解对偶问题的解
α∗,再求原始问题的解
w∗与
b∗。
观察上面
w∗与
b∗的表达式,可以发现它们只依赖于
αi∗>0的样本点
(xi,yi),而其他
αi∗=0的样本点对
w∗与
b∗没有影响。这些
αi∗>0的样本点就是支持向量,这些样本点一定在间隔边界上,即它们的不等式约束
ci(x)满足
w∗⋅xi+b∗=±1