模式识别(Pattern Recognition)学习笔记(十一)--SVM支持向量机(狭义):大间隔
2016-11-22 18:08
162 查看
1.最优分类超平面
对于感知器,我们知道了在梯度下降迭代过程中,只要选择的权向量初始值和不同的步长,就会产生不同的解,想象一下,只要样本集是线性可分的(不考虑线性不可分的情况,后续深入学习),就会有无数个决策面可以将它们分开,不同的只是距离超平远近的问题,因此对于这种问题就会存在多解性,如图1,但是我们要想办法找到这多解中的最优的一个解,即最优分类超平面。接下来,再想象一下,如果让你来对上图中的两类样本进行分类,第一反应肯定那条直线AB的位置,不光是人的本能所致,更因为这条AB直线可以将两类样本分的间隔最远,于是我们的主要任务来了,那就是形式化这条直线,也就是找到最优分类面。
假如有样本集:
其中x是每个样本,y是对应的类别标签,取值为+1或-1,因此存在一个这样的最优的超平面会把它们无错误的分开:
(1)
于是由上式我们可以得到最优分类超平面的定义,即:超平面,如果它能够将训练样本正确无误的分开,并且两类训练样本中距离该超平面最近的那个样本到超平面的距离是最远的,那么这个超平面就是我们要找的最优分类超平面(Optimal Seperating Hyperplane),简称最优超平面。两类样本中距离超平面最近的样本到超平面的距离叫做分类间隔,于是最优超平面又叫做最大间隔超平面。
2.SVM
根据上述类别标签,我们使用符号函数来定义最优超平面下的决策函数:
(2)
即:(3)
回顾线性判别中提到的,样本x到分类面g(x)=0的距离为
,因此对于上述符号函数定义的决策函数,当权值w和b的尺度发生改变时既不影响决策结果,也不影响分类间隔,这样就会造成多个等价解,为了得到唯一解,首先需要对公式(3)变形,以确定w和b的尺度:
(4)
进一步变形,将上式左右两边同乘与类别标签,得到:
(5)
上式是分类超平面的权值尺度的约束条件,这种约束下的超平面也因此被称为规范化的分类超平面,明显地,g(x)=+1与g(x)=-1就是两类中各自距离分类面最近的样本并且与分类面平行的两个边界超平面,如图:
由上图可知,分类间隔
,为了使该间隔最大,于是我们可以转化为:
(6)
同Fisher判别的准则函数求解方法一样,采用拉格朗日乘法来求解,引入拉格朗日系数
:
(7)
为了使w,b最小,而alpha最大,可证明在泛函L(w,b,alpha)的鞍点上有满足的解,因此在泛函L(w,b,alpha)的鞍点上,泛函L(w,b,alpha)对w,b的偏导为零,很容易求导得到:
(8)
(9)
将上述两个式子代入泛函L(w,b,alpha),即代入公式(7),得到等价解:
(10)
(11)
&&
这是一个最优分类面的对偶问题,同样可以根据拉格朗日法求出对偶问题的解
(具体解法省略,不再赘述),从而求出公式(6)的原问题的解:
(12)
已经求到了w,接下来,我们来求解b。根据最优化理论中的Kuhn-Tucker条件,在公式(7)的鞍点处满足:
(13)
很清楚的发现,对于上式中,当大括号{}中那一项大于0时,
必=0;当大括号中的等于0时,
才有可能大于0,而这些大括号中等于0的样本正是距离分类面最近的样本,也就是说正是这些样本决定了最终的最优超平面的位置,实际上,我们可以回头看看公式(8)和(12),求和的时候也正是那些
大于0的样本参与了有效的求和,注意,前方高能,干货来啦,这些参与了求和的样本被叫做支持向量(support
vector),但它们只能是训练样本中的很少一部分。
因此对于这些支持向量来说,它们满足:
(14)
已知,因此通过上式可以求出b,通常更倾向于采用所有
非零的样本用上式求出b,然后取其均值。
这样,我们就完整的求出了w和b,即得到了最优分类面的形式化表达。由于上述得到的解完全取决于那些支持向量,所以这种方法后来被称作为支持向量机(Support Vector Machine),简称著名的SVM。
如果你已经学习了感知器,并且对感知器有很深的了解,那么你会发现本篇文章所讲的最优超平面,其实说白了就是在固定权值尺度下的对余量的最大化,可以将两者放在一起加深学习。
相关文章推荐
- 模式识别(Pattern Recognition)学习笔记(十一)--SVM支持向量机(狭义):大间隔
- 支持向量机(SVM)关键点攻略(最大间隔,对偶问题)
- [置顶] Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM
- 林轩田--机器学习技法--SVM笔记4--软间隔支持向量机(Soft-Margin Support Vector Machine)
- SVM 支持向量机(2) 软间隔最大化与核方法
- 机器学习笔记八 - SVM(Support Vector Machine,支持向量机)的剩余部分。即核技法、软间隔分类器、对SVM求解的序列最小化算法以及SVM的一些应用
- 【机器学习】使用Scikit-Learn库实现支持向量机(SVM)最大化分类间隔
- (十一)机器学习中的一个常用算法SVM算法,即支持向量机Support Vector Machine(SVM)
- 机器学习(九):CS229ML课程笔记(5)——支持向量机(SVM),最优间隔分类,拉格朗日对偶性,坐标上升法,SMO
- 【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件
- 支持向量机(SVM)(三)-- 最优间隔分类器(optimal margin classifier)
- 机器学习第十课:支持向量机SVM(一)线性可分(硬间隔)SVM
- 机器学习(七、八):SVM(支持向量机)【最优间隔分类、顺序最小优化算法】
- 【模式识别】SVM——支持向量机
- 支持向量机SVM(一):支持向量机SVM的推倒:从logistic回归,到函数间隔,集合间隔,到寻找最优间隔分类器。
- 支持向量机(SVM)(三)-- 最优间隔分类器(optimal margin classifier)
- 模式识别(Pattern Recognition)学习笔记(十二)--SVM(广义):大间隔
- 学习笔记——支持向量机svm(1)最简单的支持向量机
- 机器学习之支持向量机SVM Support Vector Machine (一) 线性SVM模型与软硬间隔
- 模式识别(Pattern Recognition)学习笔记(二十三)-- SVM的两大思想:大间隔与核函数