支持向量机(Support Vector Machine, SVM)是一种二分类模型。它的基本思想是间隔最大化。
1、线性可分支持向量机
给定训练集
T={(x1,y1),(x2,y2),...,(xm,ym)}
,其中
(xi,yi)
表示第
i
个训练样本。输入实例
xi∈Rd
, 标记
yi∈{+1,−1}
,+1代表正例,-1代表反例。
假设训练集线性可分,即存在超平面能正确划分训练集,并且很容易看出这种超平面有无穷多个。分类超平面用
ωTx+b=0
表示,对所有
ωTx+b>0
的实例,超平面将其划分为正类;对所有
ωTx+b<0
的实例,超平面将其划分为反例。
学习的目的,就是找到这样一个分类超平面,使其对训练集进行正确划分。上面也说了,在训练集线性可分的情况下,这样的分类超平面有无穷多个。支持向量机通过间隔最大化求最优分类超平面,这个最优超平面的解是唯一的。
1.1 函数间隔与几何间隔
函数间隔
超平面
ωTx+b=0
关于样本点
(xi,yi)
的函数间隔为
γ^i=yi(ωTxi+b),(1)
关于训练集T的函数间隔为
γ^=miniγ^i.(2)
对于分类超平面
ωTx+b=0
与样本
(xi,yi)
,
(ωTxi+b)
的符号与
yi
的符号是否一致能够表示分类是否正确;
|ωTxi+b|
能够相对地表示
xi
距离超平面的远近,而实例点距离分类超平面的远近可以表示分类的确信程度。所以函数间隔不仅包含了超平面是否将样本正确分类的信息,还包含了超平面对样本分类的确信度。
几何间隔
超平面
ωTx+b=0
关于样本点
(xi,yi)
的几何间隔为
γi=yi(ωTxi+b)||ω||,(3)
关于训练集T的函数间隔为
γ=miniγi.(4)
几何间隔是有符号距离,只有在样本点被超平面正确分类时才是实例点到超平面的距离。
由(1)~(4)可以得到
γ=γ^||ω||.(5)
1.2 间隔最大化
线性可分支持向量机的目的是找到把训练数据正确划分且几何间隔最大的分类超平面。间隔最大的分类超平面对未知实例有很好的泛化能力。
寻找几何间隔最大的超平面可以表示为优化问题:
maxω,bγ=maxω,bminiγi=maxω,bminiyi(ωTxi+b)||ω||(6)
可以写成约束优化问题:
maxω,bs.t.γyi(ωTxi+b)||ω||≥γ(1)(2)(7)
把(5)代入(7)中,得到
maxω,bs.t.γ^||ω||yi(ωTxi+b)≥γ^(3)(4)(8)
无论
γ^
取什么值,优化问题(8)的最优解对应的超平面和最优值总是不变的。比如取
γ^=1
,此时求出最优解为
(ω∗|γ^=1,b∗|γ^=1)
,对应的最优值为
1||ω∗|γ^=1||
;现在取
γ^=2
,可以求出最优解为
(2ω∗|γ^=1,2b∗|γ^=1)
,对应的最优值为
1||ω∗|γ^=1||
。可以看出,两个最优解对应的超平面是同一个超平面。
于是,令
γ=1
,优化问题(8)等价于优化问题
maxω,bs.t.1||ω||yi(ωTxi+b)≥1(5)(6)(9)
而最大化
1||ω||
等价于最小化
12||ω||2
,于是优化问题(9)等价于
minω,bs.t.12||ω||2yi(ωTxi+b)≥1(7)(8)(10)
(10)就是线性可分支持向量机的最优化问题。这是一个凸二次规划问题。可以用一般的凸二次规划算法求解,也可以用优化问题的拉格朗日法求解。
1.3 对偶问题
原始优化问题(10)可以通过极大极小化拉格朗日函数得到对偶优化问题,然后根据对偶问题的最优解得到原始问题的最优解。
引入拉格朗日乘子
αi≥0,i=1,2,⋯,m
,构建拉格朗日函数
L(ω,b,α)=12||ω||2+∑i=1mαi(1−yi(ωTxi+b))(11)
原始问题的对偶问题是极大极小问题:
maxαminω,bL(ω,b,α).
为了求对偶问题,首先求
minω,bL(ω,b,α)
,令
∇ωL=ω−∑i=1mαiyixi=0(12)
∇bL=−∑i=1mαiyi=0(13)
得到
ω=∑i=1mαiyixi(14)
∑i=1mαiyi=0(15)
代入L中,得到
minω,bL(ω,b,α)=12(∑i=1mαiyixTi∑j=1mαjyjxj)+∑i=1mαi−∑i=1mαiyi(∑j=1mαjyjxTj)xi−∑i=1mαiyib=12(∑i=1m∑j=1mαiαjyiyjxTixj)+∑i=1mαi−∑i=1m∑j=1mαiαjyiyjxTixj=−12∑i=1m∑j=1mαiαjyiyjxTixj+∑i=1mαi(9)(10)(11)(12)(13)(16)
然后求
minω,bL(ω,b,α)
对
α
的极大,得到:
maxαs.t.−12∑i=1m∑j=1mαiαjyiyjxTixj+∑i=1mαi∑i=1mαiyi=0αi≥0,i=1,2,⋯,m(14)(15)(16)(17)(18)(17)
求得的对偶问题可以重写成
minαs.t.12∑i=1m∑j=1mαiαjyiyjxTixj−∑i=1mαi∑i=1mαiyi=0αi≥0,i=1,2,⋯,m(19)(20)(21)(22)(23)(18)
偶优化问题(18)的最优解和原始优化问题(10)的最优解存在,且满足KKT条件:
∇ωL(ω∗,b∗,α∗)=ω∗−∑i=1mα∗iyixi=0(19)
∇bL(ω∗,b∗,α∗)=−∑i=1mα∗iyi=0(20)
α∗i(1−yi(ω∗Txi+b∗))=0,i=1,2,⋯,m(21)
1−yi(ω∗Txi+b∗)≤0,i=1,2,⋯,m(22)
α∗i≥0,i=1,2,⋯,m(23)
所以求出对偶问题(18)的最优解
α∗
后,可以根据(19)得到
ω∗
:
ω∗=∑i=1mα∗iyixi(24)
至于
b∗
,由公式(21)知道,如果
αj>0
,那么
1−yj(ω∗Txj+b∗)=0
,所以
b∗=yj−ω∗Txj=yj−∑i=1mα∗iyi(xTixj)(25)
至于怎么求解对偶问题(18),阅读SMO一节。