SVM笔记(三) 线性可分支持向量机
2016-05-26 22:44
176 查看
预备
适合场景
如果训练输入线性可分,通过应间隔最大化学习得到的线性分类器称为线性可分支持向量机。假设特征空间上的训练数据集:
T={(x1,y1),(x2,y2),...,(xN,yN)}
其中xi表示第i个特征向量,yi∈{+1,−1}为xi的类标记。
学习目标是在特征空间找到一个分离超平面:
w⋅x+b=0
可以将正负样例分开,即正负样例分布在超平面的两侧。
函数间隔和几何间隔
定义超平面关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点的函数间隔最小值γ′=min1,2,...,Nγ′i
其中γ′i=yi(w⋅xi+b)
定义超平面关于训练数据集T的几何间隔为超平面(w,b)关于T中所有样本点的几何间隔最小值
γ=min1,2,...,Nγi
其中γi=yi(w||w||⋅xi+b||w||)
几何间隔的物理意义是指点到超平面的距离,函数间隔则会随着w和b成比例的缩放而改变。
构建目标函数
目标是找到能够正确划分训练数据集并且几何间隔最大的分离超平面。直观上面理解就是距离分界面最近的距离最大化。可以表示成如下形式:maxw,bγ
s.t.yi(w||w||⋅xi+b||w||)≥γ,i=1,2,...,N
基于几何间隔和函数间隔的关系,上式等价于
maxw,bγ′||w||
s.t.yi(w⋅xi+b)≥γ′,i=1,2,...,N
考虑到以λ等比例改变w和b,对于上式没有影响,这里选择固定一个λ使得γ′=1,那么上式等价于:
minw,b12||w||2
s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,N
根据上式的最优解w∗和b∗可以构建出分离超平面和分类决策函数如下:
w∗⋅x+b∗=0
f(x)=sign(w∗⋅x+b∗)
训练数据集中的样本点中与分离超平面距离最近的样本点称为支持向量,对应于约束条件中的等号,即
yi(w⋅xi+b)−1=0
对应y={−1,+1},支持向量分布在两条超平面上面:
(w⋅xi+b)−1=0
(w⋅xi+b)+1=0
所以SVM分类中只有支持向量对应的实例在分类中起作用,其他实例点并没有作用。
求解的对偶算法
使用拉格朗日对偶性对原始问题求解。首先引入拉格朗日乘子αi≥0,i=1,2,...N,构建拉格朗日函数:L(w,b,α)=12||w||2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi
其中,α=(α1,α2,...,αN)T称为拉格朗日乘子向量。
原始问题对应的对偶问题如下:
maxαminw,bL(w,b,α)
根据L(w,b,α)对于w和b的偏导为0,可将原始问题转化为:
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi
∑i=1Nαiyi=0
αi≥0,i=1,2,...,N
假设α∗=(α∗1,α∗2,...,α∗N)T是上面问题的最优解,那么:
w∗=∑i=1Nα∗iyixi
选择一个下标j,使得α∗j>0,可得:
b∗=yj−∑i=1Nα∗iyi(xi⋅xj)
根据KKT互补条件可知,α∗i>0对应的实例为支持向量。