Prequisite
分类
简要说一下SVM的分类:
- 线性可分SVM
- 线性不可分SVM
1.软间隔法
2.核技巧
线性可分SVM
引入
假设给定训练集:
T={(x1,y1),(x2,y2),⋯,(xn,yn)}
其中,xi∈Rp,y∈Y={−1,1},i=1,2,⋯,n,并且假设有样本集线性可分。
设有分离超平面:
wTx+b=0
使得样本集被分成正负两部分。
以及分类决策函数:
f(x)=sign(wTx+b)
并有wTx+b>0时,为正类;wT+b<0时,为负类。
很自然的,我们只需要:
yi(wTxi+b)>0
对每个样本(xi,yi)成立即可。
但这存在一个问题,考虑下面一个例子:

可以发现,满足上面条件的超平面有无穷多个。但是从样本点来看,是存在一个相比较而言更加好的一个超平面,那么就是处于H1,H2中间的超平面,而SVM正是可以求解这个最优超平面的算法。
算法
Functional/Geometric Margin
首先介绍两个概念:
函数间隔(functional margin):
γ^i=yi(wTxi+b)
假如,我们已经求解得到最优超平面,即是有w,b。但是,实际上λw,λb也同样为那个最优超平面的系数。因此,首先,基于这一点,函数间隔只能描述相对大小;其二,为了解决这个多解问题,我们应该引入一些限制条件,比如∣∣w∣∣=1,进行归一化。而为了不受w,b的成倍变化带来的大小变化,我们引入几何间隔。
几何间隔(geometric margin):
γi=∣∣w∣∣yi(wTxi+b)
注意:上述距离一般为,带符号的距离(signed distance),而当样本点被正确分类时,那么就成为样本点到超平面的距离。
(硬)间隔最大化
SVM的间隔最大化思想就是,找到w,b使得,距离超平面最近的那个点,其到超平面的距离最大。基于这个想法,我们有:
又:有:w,bmaximinγis.t.yi(wTxi+b)>0,i=1,2,⋯,nγi=∣∣w∣∣yi(wTxi+b)w,bmaximin∣∣w∣∣yi(wTxi+b)=w,bmax∣∣w∣∣1iminyi(wTxi+b)
又由上文分析,yi(wTxi+b)=γ^i可以被任意放缩,那么:
令:问题转化为:也即是:iminγ^i=1w,bmax∣∣w∣∣1s.t.yi(wTxi+b)≥1,i=1,2,⋯,nw,bmin21wTws.t.yi(wTxi+b)≥1,i=1,2,⋯,n
对偶算法
拉格朗日函数
通过上文的分析,我们得到目标函数和限制条件:
w,bmin21wTws.t.1−yi(wTxi+b)≤0,i=1,2,⋯,n
很自然的,我们想到构造拉格朗日函数,有:
L(w,b,λi)=21wTw+i∑nλi(1−yi(wTxi+b))s.tλi≥0
此时,问题就变成了,无约束的优化问题:
w,bminλimaxL(w,b,λi)=21wTw+i∑nλi(1−yi(wTxi+b))s.tλi≥0
对偶转换
由拉格朗日的对偶性,我们可以知,上述问题可以转换为:
λimaxw,bminL(w,b,λi)=21wTw+i∑nλi(1−yi(wTxi+b))s.tλi≥0
关于为什么要进行对偶转换,原因有两点:1.更容易求解。2.自然引入核函数,进来推广到非线性空间。
对偶问题证明
please jump:SVM对偶问题
对偶问题的求解
由上文可知对偶问题为:
λimaxw,bminL(w,b,λi)=21wTw+i∑nλi(1−yi(wTxi+b))s.tλi≥0
现在就来求解w,b:
先看min部分:
综上有:代入对偶问题有:w,bminL(w,b)=21wTw+i∑nλi(1−yi(wTxi+b))=21wTw+i∑nλi−i∑nλiyi(wTxi+b))∂b∂L(w,b)=−i∑nλiyi=0∂w∂L(w,b)=w−i∑nλiyixi=0i∑nλiyi=0w=i∑nλiyixiλimaxL(λi)=21(i∑nλiyixi)T(i∑nλiyixi)+i∑nλi−i∑nλiyi(wTxi+b) =21(i∑nλiyixi)T(j∑nλjyjxj)+i∑nλi−i∑nλiyi((j∑nλjyjxj)Txi) −i∑nλiyib =21i∑nj∑n(λiyixi)Tλjyjxj−i∑nj∑nλiyi(λjyjxj)Txi+i∑nλi =21i∑nj∑n(λiλjyiyj)xiTxj−i∑nj∑n(λiλjyiyj)xjTxi+i∑nλi又xjTxi=xiTxj =−21i∑nj∑n(λiλjyiyj)xiTxj+i∑nλi
综上,max部分为:
λimaxL(λi)=−21i∑nj∑n(λiλjyiyj)xiTxj+i∑nλi
即是:
λiminL(λi)=21i∑nj∑n(λiλjyiyj)xiTxj−i∑nλis.t.λi≥0i∑nλiyi=0
假设求得:λ∗=(λ1,λ2,⋯,λn),那么只需要带入∑inλiyixi,即可解得w∗,又通过w∗Txi+b=1,λi≥0,即可解得b∗。此时xi也被称为支持向量(support vector)。
待续。。。