一般的,当训练样本线性可分的时候,如下图所示:

可以找到无数个划分超平面。而线性可分支持向量机利用间隔最大化来求最优划分超平面,此时解是唯一的。
通过间隔最大化或者对应的凸二次规划问题学习到的分离超平面为:
w∗⋅x+b∗=0
对应的决策函数为:
f(x)=sign(w∗⋅x+b∗)
我们称上面的的式子为线性可分的支持向量机。
函数间隔与几何间隔
给定分离超平面w⋅x+b=0,∣w⋅x+b∣能相对的表示x到超平面的距离。通过分析标签值y与w⋅x+b符号的是否一致能够表示分类是否正确,于是可以用y(w⋅x+b)的符号来表示是否分类正确及确信度,这就是函数间隔。为此,对于样本(xi,yi)我们定义函数间隔γ^i为:
γ^i=yi(w⋅xi+b)
对于有N个样本的数据集T,定义数据集T的函数间隔为:所有样本点的函数间隔的最小值,即:
γ^i=i=1,2,...,Nminγ^i=i=1,2,...,Nminyi(w⋅xi+b)(1)
如果成比例的改变w和b为2w和2b,那么函数间隔变为了原来2倍,为了消除这样的影响,我们限定L2范数∥w∥=1,此时函数间隔就成为了几何间隔。
下图给出了超平面(w,b)及其法向量w:

点A表示某一实例(xi,yi),A到超平面的距离由AB给出,记作γi:
γi=∣∣w∣∣w⋅xi+b
无论样本是正例还是负例,当样本被正确分类时,到超平面的距离为:
γi=∣∣w∣∣yi(w⋅xi+b)
我们定义上面的式子为某个样本到超平面的集合间隔。
对于有N个样本的数据集T,定义数据集T的几何间隔为:所有样本点的几何间隔的最小值,即:
γ=i=1,...,Nminγi=i=1,...,Nminγi∣∣w∣∣yi(w⋅xi+b)(2)
由函数间隔和几何间隔的定义(1),(2)可知:
γi=∣∣w∣∣γ^i
γ=∣∣w∣∣γ^(3)
如果限定∥w∥=1,那么函数间隔就等于几何间隔。
SVM模型
对于线性可分的数据可以找到无数个将数据划分的超平面,但是距离超平面较远的点对超平面的确定没有很大的影响。因此,我们把注意力放在距离超平面较近的点上,如下图中红色框选择的点。如果我们让距离超平面最近的点(图中)到超平面的距离最大化,那么就可以认为这样的划分超平面即使对于较难分类正确的点,也能得到较好的划分结果。

线性可分的SVM目标是找到间隔最大化的划分超平面,所谓间隔最大化是指:对给定的数据集的点,划分超平面不仅可以可以区分正例负例,而且还能使得最难分类的点有足够大的确信度使得他们分开,这样的平面对未知的样本实例有更好的分类能力。
要求几何间隔最大的分离超平面,可以转化为求解下面的最优化问题:
w,bmaxγs.t.∣∣w∣∣yi(w⋅xi+b)≥γi=1,2,...,N
由由函数间隔和几何间隔关系的公式(3)可以将问题转化为:
w,bmax∥w∥γ^s.t.yi(w⋅xi+b)≥γ^i=1,2,...,N
根据上面的式子,不难得出,SVM的思想是:让距离划分超平面最近的点(支持向量)到划分超平面的距离最大化。
实际上,当我们成倍的改变w,b为λw,λb,函数间隔也变为λγ^ ,并不能改变约束条件中的不等式的关系。因此,为了简化计算,我们可以取γ^=1。并且,最大化∥w∥1和最小化21∥w∥2等价,于是优化目标转化为:
w,bmin21∣∣w∣∣2;s.t1−yi(w⋅xi+b)≤0(i=1,2,...m)(4)
显然式子(4)是凸二次规划问题。要注意的是,训练样本中存在某些样本点使得约束条件取得等号:
yi(w⋅xi+b)−1=0
这样的点就是上面图片中红色方框对应的点,他们位于和决策超平面距离为1的位置上,我们称这样的点叫做支持向量。在决定分离超平面的时候,只有这些支持向量起到了作用。由于支持向量对分离超平面的决定性作用,所以将这样的分类模型叫做支持向量机。
SVM求解
为了求解支持向量机的最优化模型(4),我们需要使用拉格朗日对偶性来得到对偶问题,间接得到原始问题的最优解。这么做的好处是
- 对偶问题的计算量更小,更容易求解。
- 自然的引入核函数,进而推广到非线性可分问题。
首先需要构造拉格朗日函数,引入拉格朗日乘子αi≥0后,得到:
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi[1−yi(wTxi+b)](5)
其中,α=(α1,α2,...,αm)为拉格朗日乘子向量。
原始问题等价于:
w,bminαmaxL(w,b,α)
根据拉格朗日对偶性,所以原始问题的对偶问题是:
αmaxw,bminL(w,b,α)(6)
若原始问题与对偶问题有相同的解w∗,b∗,α∗,则要满足KKT条件:
∇wL(w∗,b∗,α∗)=w∗−i=1∑mαiyixi=0(KKT.1)∇bL(w∗,b∗,α∗)=−i=1∑mαiyi=0(KKT.2)α∗(yi(w∗Txi+b∗)−1)=0(KKT.3)yi(w∗Txi+b∗)−1≥0(KKT.4)ai∗≥0,i=1,2,...m(KKT.5)
其中公式(KKT.3)为KKT对偶互补条件,可以知道当α∗>0则有(yi(w∗Txi+b∗)−1)=0,此时的样本xi对应的点为支持向量。
所以我们通过求对偶问题的解间接得到原始问题的最优解,这样可以简小计算量,这就是SVM的对偶算法。
首先需要求L(w,b,α)对w,b的极小,再求对α的极大。
假设:ψ(α)=w,bminL(w,b,α)
将拉格朗日函数分别对w,b求偏导并令其等于0,得到:
∂w∂L(w,b,α)=0⇒w=i=1∑mαiyixi(7)
∂b∂L(w,b,α)=0⇒i=1∑mαiyi=0(8)
上面的式子已经得到了w和α的关系,只要我们后面求得使得对偶函数极大化的α,记得求得w。将式子(7),(8)代入(5)得到:
ψ(α)=21∣∣w∣∣2−i=1∑mαi[yi(wTxi+b)−1]=21wTw−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi=21wTi=1∑mαiyixi−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi=21wTi=1∑mαiyixi−wTi=1∑mαiyixi−i=1∑mαiyib+i=1∑mαi=−21wTi=1∑mαiyixi−i=1∑mαiyib+i=1∑mαi=−21wTi=1∑mαiyixi−bi=1∑mαiyi+i=1∑mαi=−21(i=1∑mαiyixi)T(i=1∑mαiyixi)−bi=1∑mαiyi+i=1∑mαi=−21i=1∑mαiyixiTi=1∑mαiyixi−bi=1∑mαiyi+i=1∑mαi=−21i=1∑mαiyixiTi=1∑mαiyixi+i=1∑mαi=−21i=1,j=1∑mαiyixiTαjyjxj+i=1∑mαi=i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj
即:
ψ(α)=w,bminL(w,b,α)=i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj
接下来,对ψ(α)=w,bminL(w,b,α)求极大:
αmaxψ(α)=αmaxi=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj(9)
s.t.i=1∑mαiyixi=0αi≥0,i=1,2,...,N
将式子(9)的目标函数转换成求极小,得到等级的对偶最优化问题:
αmin21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi(10)
s.t.i=1∑mαiyixi=0αi≥0,i=1,2,...,m
只要我们可以求出上式极小化时对应的α向量就可以求出w和b了。具体怎么极小化上式得到对应的α,一般需要用到SMO算法,这个算法比较复杂,我们后面会专门来讲。在这里,我们假设通过SMO算法,我们得到了对应的α的值α∗,那么根据w=i=1∑mαiyixi可以得到对应的w∗的值:
w∗=i=1∑mαi∗yixi
正如上文讨论的,只有支持向量对决策平面有影响,其他样本则没有。选择α∗的任意一个正分量αj∗>0,按下面的式子得到b∗:
b∗=yj−(w∗)Txj=yj−i=1∑mαi∗yixiTxj
根据上面KKT条件中α∗(yi(w∗Txi+b∗)−1)=0这个对偶互补条件,可以知道当α∗>0则有(yi(w∗Txi+b∗)−1)=0,此时的样本xi对应的点到划分超平面的距离为1,也就是所谓的支持向量。因此,任意αj∗>0对应的样本xj为支持向量。
假设我们有S个支持向量,对于任意支持向量(xs,ys)可以解得b∗。但是由于数据集T严格线性可分,所以划分超平面是唯一的,于是通过任意支持向量(xs,ys)得到的b∗都是一样的。
最终得到的划分超平面为:
w∗Tx+b∗=0
最终的分类决策函数为:
f(x)=sign(w∗Tx+b∗)
线性可分SVM的算法流程
输入:线性可分的m个样本(x1,y1),(x2,y2),...,(xm,ym),
输出:分离超平面的参数w∗和b∗和分类决策函数。
(1) 构造优化问题:
αmin21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi
s.t.i=1∑mαiyixi=0αi≥0,i=1,2,...,m
(2) 采用SMO算法求出使得上式极小化的α∗
(3) 计算w∗=i=1∑mαi∗yixi
(4) 找到某个满足αj>0对应的支持向量(xj,yj),计算:
b∗=yj−(w∗)Txj=yj−i=1∑mαi∗yixiTxj
(5) 得到划分超平面与决策函数:
w∗Tx+b∗=0f(x)=sign(w∗Tx+b∗)
局限性
本文介绍的是基于硬间隔最大化的SVM算法,对于线性不可分的数据,由于异常点的存在,无法找到划分超平面,本文的算法无法使用。下一篇介绍的软间隔最大化SVM算法可以解决这里问题。
参考文章:
《统计学习方法 第二版》
支持向量机原理(一) 线性支持向量机