支持向量机SVM

       支持向量机(support vector machines, SVM),一种监督式学习的方法,广泛应用于统计分类以及回归分析中。是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。SVM 适合中小型数据样本、非线性、高维的分类问题

       深度学习出现(2012)之前,SVM被认为是机器学习在十几年来最成功,表现最好的算法。

          相比于其他线性分类器,SVM 的目的就是想要画出一条线,以“最好地”区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。                                                                                  那么什么才叫这条线的效果好?哪里好?画线的标准是什么?
          SVM 将会寻找可以区分两个类别并且能使间隔(margin)最大的划分超平面。比较好的划分超平面,样本局部扰动时对它的影响最小、产生的分类结果最鲁棒、对未见示例的泛化能力最强。                                                                                                                                                              间隔(margin):对于任意一个超平面,其两侧数据点都距离它有一个最小距离(垂直距离),这两个最小距离的和就是间隔。比如下图中两条虚线构成的带状区域就是 margin,虚线是由距离中央实线最近的两个点所确定出来的(也就是由支持向量决定)。

         支持向量:从上图可以看出,虚线上的点到划分超平面的距离都是一样的,实际上只有这几个点共同确定了超平面的位置,因此被称作 “支持向量(support vectors)”,“支持向量机” 也是由此来的。                                                                                                                                                     我们把这些可以将两种数据区分开的数据区分开的平面叫做超平面,定义为f(x) = sign(wTx+ b) sign的含义是点在超平面上面取+1,在下面取-1,所以SVM本质上是一个判别模型,将用来支撑超平面的点叫做支持向量,一般选取的最佳的超平面一定是和两边支持向量相等的那一条。寻找最大间隔:就是寻找最大化支持向量到分隔超平面的距离,在此条件下求出分隔超平面。

一.硬间隔SVM                                                                                                                                               

求解硬间隔问题即一个寻找最大间隔超平面的数学问题,定义为max margin(w,b)所以hard-margin SVM又称为最大间隔分类器。

 到这里, SVM几何问题已经完全变成了一一个二次优化问题,而且这个函数是个凸优化问题(Convex optimization)。

模型化简

对于一些低维,简单的二次规划问题,我们可以借助Matlab来完成。但是实际中经常会遇到样本数较大,高维甚至无限维的情况,所以我们需要借助一些化简方法。

 在SVM中采用拉格朗日乘子法

 

 弱对偶关系与强对偶关系:一个集合上限的最小值一定大于等于下限的最大值。

 从而我们可以推导出以下式子

 从而将一个存在N个约束条件的优化问题转化为一个无约束问题。

无约束问题,可以直接进行求导 

 将结果带入原式子并化简可得到

 

 模型求解步骤视图

模型求解问题转化为 

KKT条件                                                                                                                                                        KKT条件是一种解决非线性规划问题的方法。对于拉格朗日乘子式,KKT条件如下:

为求分割面方程,需求解w和b,根据之前求导的结论

根据第二条松弛约束条件,存在一点(xk,yk)使得

将w带入,可以得到

 分别将w,b代入决策函数和决策平面方程,就可以得到对应表达式

Soft Margin

对于无法用一个平面分隔开的两种数据,它的核心思想就是允许有一点误差,所以我们在主函数上加上了loss。

我们把loss定义为和distance相关的函数。假设在y:(w * xi+b)≥1这个区间(两边白色区域) , loss为0说明所有点位置都是正确的,可以划分开的。

假设在y:(wTx;+ b)< 1这个区间(中间蓝色区域),loss=1- yi(wTxi+b) ,说明这些点位置都是存在误差的,需要用一个loss来矫正。

 

 

 这里的i指的是所有的分布不正确点。相当于把超平面上下两个边界赋予一个可调度,而这个宽度为,称为松弛变量。

Soft Margin模型的求解过程和硬间隔基本一致,都是先进行拉格朗日算子运算,对偶转换,KKT条件计算。

低纬度向高纬映射                                                                                                                                        某些样本,即使加入惩罚函数,也很难用一个平面来划分,在一个维度下,很难用一条线把这两种样本分开,但是可以把他们映射到两个维度下,就可以很轻松的用一条线分开。

                   SVM with polynomial kernel 可视化_腾讯视频 

svm核函数                                                                                                                                                从低维空间映射到高纬空间时,样本向量会不断的做内积,导致要做大量的运算,称为维度灾难,为了解决维度灾难问题,我们可以构造核函数使得计算结果等同于非线性映射,同时运算量又远小于线性映射。

举例:

 同样的结果,使用核函数会简单很多。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值