背景
回顾 感知机 处理二分类问题。先给定一个特征空间上的训练集:
T={(x1,y1),(x2,y2),…,(xN,yN)}xi∈X=Rn,yi∈Y={−1,+1},i=1,2,…,N; 0<η⩽1
我们的目标是在特征空间上找到一个分离超平面,能将样本分到不同的类中,超平面对应的方程为:
w∗⋅x+b∗=0
它由法向量w和 截距b 决定,记作(w,b)。分离超平面将特征空间划分为两部分,一部分是正类,一部分是负类。法向量指向的一侧为正类,另一侧为负类。
一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。也就是说感知机和支持向量机在损失函数的选择不同,造成最终超平面的不同。
间隔最大化
在介绍间隔最大化及其相应的约束最优化问题之前,先介绍函数间隔和几何间隔。
函数间隔
对于正确分类点来说: w⋅x0+b 与 yi 总是符号相同。即:
yi(w⋅x0+b)>0
所以有:∣w⋅x0+b∣=yi(w⋅x0+b) 用来表示分类的正确性及确信度。这就是函数间隔。
定义超平面(w,b) 关于样本点(xi,yi) 的函数间隔为:
γ^i=yi(w⋅xi+b)
超平面(w,b) 关于样本点(xi,yi) 的函数间隔的最小值为:
γ^=i=1,…,Nminγ^i
几何间隔
函数间隔存在一个问题:只要成比例的改变w,b ,如:将他们变为2w,2b,超平面并没有改变,但是函数间隔却变为了原来的两倍。所以我们引入∣∣w∣∣ 对函数间隔进行约束,得到几何间隔:
γi=∣∣w∣∣yi(w⋅xi+b)
超平面(w,b) 关于样本点(xi,yi) 的几何间隔的最小值为:
γ=i=1,…,Nminγi
间隔最大化
间隔最大化的直观解释是: 最大化最小几何间距。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。即:
w,bmaxγs.t.∣∣w∣∣yi(w⋅xi+b)≥γ,i=1,2,…,N
将上式的几何间隔转为函数间隔表达:
w,bmax∥w∥γ^s.t. yi(w⋅xi+b)≥γ^,i=1,2,…,N
函数间隔的取值并不影响最优化问题的解,所以取γ^=1,所以上述问题转为以下问题:
w,bmin21∣∣w∣∣2s.t. yi(w⋅xi+b)−1≥0,i=1,2,…,N
这是一个凸二次规划问题。这个问题的最优解w∗,b∗ 即为算求的超平面。
学习的对偶算法
求解SVM的最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。这样做的优点是:(1)对偶问题往往容易求解(2)自然引入核函数。
原始问题:
w,bmin21∣∣w∣∣2s.t. 1−yi(w⋅xi+b)≤0,i=1,2,…,N
首先构造拉格朗日函数,对每一个不等式约束引入拉格朗日乘子αi≥0,i=1,2,…,N ,定义拉格朗日函数:
L(w,b,α)=21∥w∥2+[i=1∑Nαi[1−yi(w⋅xi+b)]]=21∥w∥2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαiαi⩾0,i=1,2,…,N
其中,α=(α1,α2,…,αN)T 是拉格朗日乘子。
原始问题等价于:
w,bminαmaxL(w,b,α)
根据拉格朗日对偶性,所以原始问题的对偶问题是:
αmaxw,bminL(w,b,α)
原始问题与对偶问题有相同的解,所以我们通过求对偶问题的解间接得到原始问题的最优解,这样可以简小计算量,这就是SVM的对偶算法。
所以接下来我们的目标就是求解:αmaxw,bminL(w,b,α) 。分两步进行:
(1)求w,bminL(w,b,α)
将拉格朗日函数L(w,b,α) 分别对w,b 求偏导并令其等于0。
∂w∂L(w,b,α)=w−i=1∑Nαiyixi=0⇒w=i=1∑Nαiyixi
∂b∂L(w,b,α)=−i=1∑Nαiyi=0⇒i=1∑Nαiyi=0
将w=i=1∑Nαiyixi,i=1∑Nαiyi=0 ,带入L(w,b,α) 得:
L(w,b,α)=21∣∣w∣∣2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi=21wTw−i=1∑NαiyiwTxi−i=1∑Nαiyib+i=1∑Nαi=21wTi=1∑Nαiyixi−i=1∑NαiyiwTxi−i=1∑Nαiyib+i=1∑Nαi=21wTi=1∑Nαiyixi−wTi=1∑Nαiyixi−i=1∑Nαiyib+i=1∑Nαi=−21wTi=1∑Nαiyixi−i=1∑Nαiyib+i=1∑Nαi=−21wTi=1∑Nαiyixi−bi=1∑Nαiyi+i=1∑Nαi=−21(i=1∑Nαiyixi)T(i=1∑Nαiyixi)−bi=1∑Nαiyi+i=1∑Nαi=−21i=1∑NαiyixiTi=1∑Nαiyixi−bi=1∑Nαiyi+i=1∑Nαi=−21i=1∑NαiyixiTi=1∑Nαiyixi+i=1∑Nαi=−21i=1∑Nj=1∑NαiyixiTαjyjxj+i=1∑Nαi=−21i=1∑Nj=1∑NαiyiαjyjxiTxj+i=1∑Nαi
即:
w,bminL(w,b,α)=−21i=1,j=1∑NαiyixiTαjyjxj+i=1∑Nαi
(2) 求w,bminL(w,b,α) 对α 的极大化
αmaxi=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxjst.i=1∑Nαiyi=0αi≥0,i=1,2,…N
假设上式的最优解为α∗=(α1∗,α2∗,…αN∗) 。
所以,我们就有了对偶问题的最优解:α∗,w∗,b∗
为什么原始问题与对偶问题有相同的解?
若原始问题与对偶问题有相同的解w∗,b∗,α∗,则要满足KKT条件:
∇wL(w∗,b∗,α∗)=w∗−i=1∑mαiyixi=0(1)∇bL(w∗,b∗,α∗)=−i=1∑mαiyi=0(2)α∗(1−yi(w∗Txi+b∗))=0(3)1−yi(w∗Txi+b∗)≤0(4)ai∗≥0,i=1,2,...m(5)
由此得
w=i=1∑Nαiyixi
公式(3)为KKT对偶互补条件(只要一个不为0,另一个就必为0),可以知道:而当αi=0 对应样本xi 的约束不起作用。而当α∗>0,则有:
yi(w∗Txi+b∗)−1=0yi(i=1∑NαiyixiTxi+b∗)−1=0
此时,αi>0 对应样本xi的点为支持向量。xi 一定在间隔边界上。
由此说明:当样本点xi 处于可行域的内部时,这时不等式约束并不起作用,只有位于可行域边界的点才会起作用,也就是所谓的支持向量。
注意到yj2=1,即得:
b∗=yj−i=1∑mαi∗yixiTxj
所以超平面为:
i=1∑Nαi∗yi(x⋅xi)+b∗=0
支持向量和间隔边界
通过上述分析可知:支持向量是使得约束
yi(wxi+b)−1=0
成立的点。
当yi=1 是,支持向量在超平面H1 上:
H1:wx+b=1
当yi=−1 是,支持向量在超平面H2 上:
H1:wx+b=−1
如下图所示:在H1和H2 上的点就是支持向量。

H1和H2 之间的距离称为间隔。
线性可分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算法可以解决这个问题。