一、线性可分定义
1.线性可分【Linear Separable】:
存在一条直线【当在三维,分隔是平面,以此类推】可将两个样本分开
2.线性不可分【Nonlinear Separable】:
不存在一条直线【当在三维,分隔是平面,以此类推】将两个样本分开
当维度大于等于4时,分隔界限将会变成超平面【Hyperplane】,由于人眼对空间的感知仅仅存在于三维,说明,我们无法直观在四维及以上画出分隔界限,以此来区分线性可分和线性不可分,这个时候我们必须借助数学,去给线性可分和线性不可分给出一个定义,如下:
3.数学定义
我们用数学严格定义训练样本以及他们的标签,假设我们有N个训练样本和他们的标签,其中yi取值为+-1是我们人为规定的【Xi代表第i个样本,Xij代表第i个样本的第j个属性】【yi代表的是其标记空间】
用数学的形式严格定义二维层面的线性可分
用向量形式来定义线性可分
4.线性可分的最简化定义
5.课后思考题
二、问题描述
支持向量机算法分为两个步骤:1.解决线性可分问题;2.再将线性可分问题中获得的结论推广到线性不可分的情况下
1.如何解决线性可分问题
既然训练集是线性可分的,那么存在无数多个超平面将其分隔开来,那么哪一个超平面又是最优的呢?
在上方的图纸中,我们通常会认为2号线是比较好的,但是根据没有免费午餐定理,其实这三条线概率是一样的,那什么会这样呢?其实是因为我们对训练样本的先验分布有一定的假设
比如在下图,假设实线圆圈训练样本存在误差,实际位置是在虚线处,那么使用1号线就会出现分类错误,可知2号线更能抵御训练样本的误差,也是就他的误差容忍程度更大
2.如何得到分割线
那么2号线是怎么画出了的呢?
对于这一问题,Vladimir Vapnik基于最优化理论给出了答案
假设对于任意一条分隔样本的直线,将执行向一侧平行移动,直到它擦到一个或多个训练样本为止,如下图所示
我们定义这两条虚线都是平行的,这两条平行线擦到的训练样本成为数据集的支持向量【Support Vectors】,把这两条平行线的距离叫做间隔【margin】,支持向量机要做的就是找到是的margin最大的那条直线,如下图所示,2号线的间隔最大,
【事实上,对于这条线不是唯一的,例如平行于2号线的所有直线所得到的的间隔是一样大的,那么为了使的这条直线唯一,对此还增加了一个条件,这条线是在上下两个平行线的正中间】
3.小结
支持向量机寻找的最优分类直线应该满足【基于二维特征空间的结果,在多维,直线将变成超平面】:
(1)该直线分开了两类;
(2)该直线最大化间隔(margin)
(3)该直线处于间隔的中间,到所有支持向量距离相等
4.思考题
三、优化问题
1.最优超平面
(1.)该超平面分开了两类
(2)该超平面有最大化间隔
(3) 该超平面处于间隔的中间,到所有支持向量距离相等
2.数学定义
在这一个知识模块,将学习如何同严格的数学,去寻找最优分类超平面的过程,写出一个最优化的问题
假定训练样本集是线性可分的,支持向量机需要寻找的是最大化间隔【MARGIN】的超平面
公式说明:在最小化中,w是一个向量,他有m个分量,所以有:
限制条件说明【对于N个样本集,一共有N个这样的条件,而w和b待求的值】
3.两大事实
支持向量机要找一个超平面,使它的间隔最大【离两边所有支持向量的距离相等】,则存在以下两个事实:
4.公式推导
我们可以通过上式公式推导,以二维的公式为例:
我们基于事实一,可以支持向量机优化问题推导中最难理解的部分,
我们基于事实2,支持向量x0到超平面的距离将会成为:
5.问题转化
也就是最大化支持向量到超平面的距离,等价于最小化||w||,优化问题定义为:
我们再看限制条件:
其中yi是协调超平面的左右,如下所示,的确也符合线性可分的定义:
对于右边的常数可以任意替换,替换的式子之间也就相差了一个常数a,但其实指的是同一个平面
6.二次规划问题
对于上述的优化问题其实是凸优化问题【CONVEX OPTIMIZATION】中的二次优化问题
二次规划的定义:
(1)目标函数【Objective Function】是二次项
(2)限制条件是一次项
从而,在这两个条件下所得到的凸优化问题要么无解,要么只有唯一的最小值
在最优化理论中,如果一个问题是凸优化问题,我们就会把它当成一个已经解决的问题,因为凸优化问题只有唯一一个全局极值,我们可以采用梯度下降的算法很方便得到解。总之,如果一个优化问题是凸的,我们总能找到高效快速的算法去解决他
在这门课程中,我们不会详细去探讨如何解决凸优化问题,而只是假定,我们把问题转化为凸优化问题后,就能有解决凸优化问题的工具包去解决