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