码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习(二)--- SVM的学习:理论基础理解

时间:2016-06-03 01:18:36      阅读:358      评论:0      收藏:0      [点我收藏+]

标签:

SVM是一种应用比较广泛的分类器,全名为Support Vector Machine,即支持向量机,在没有学习SVM之前,我对这个分类器汉字的理解是支持/向量机,学习之后,才知道原名是支持向量/机,我对这个分类器的名字理解是:通过具有稀疏性质的一系列支持向量从而得到一个比较好的分类器,这个分类器在名称里面体现为Machine。下面是我对于学习SVM理论后认为几个需要理解和掌握的知识点

  • 函数间隔(functional margin) and 几何间隔(geometric margin)
  • 支持向量的理解
  • SVM的最优化问题的解决
首先给出一个一般介绍SVM开篇的一类型的图:

技术分享

这幅图上看,可以很清楚的看见,SVM实现了两类数据的分类,在这幅图中,有中间的一条横线就是我们要得到的分类器,在二维平面表现为直线(线性分类)或者曲线(非线性分类),在高维空间表现为超平面(hyperplane)。

回顾一下机器学习(一)--- 监督学习之回归中有关于逻辑回归的知识:对于分类器hypothesis,技术分享,在而进行二分类的问题上,现在对于该函数,用超平面的表达式:技术分享进行替换,对于二分类问题而言,需要说明的是:技术分享

联系该公式与上图之间的联系,当技术分享大于0的时候,则数据分类的label为1,反之则定为-1。由此引出关于函数间隔的定义,functional margin:

技术分享

其中技术分享的值为{+1,-1},当值为+1时,为了达到很好的分类效果,括号里面的值需要表现为positive,且是较为大的正值,而对值为-1,括号里面的值则需要表现为negative,且是绝对值较为大的负值。

为了比较大的函数间隔,达到很好的confidence,即分类结果更加准确可信,有可能简单的增加w和b的值,但是这样简单的处理是没有任何意义的,因为我们的目的就是为了找到一个比较好的超平面,应该是w,b是不同,在三维空间内,w代表的是分类平面的法向量,对于简单的乘上一个因子,实质上平面并没有发生改变,因此这并不是我们需要的结果。

接着我们需要引出几何间隔,geometric margin的概念。

技术分享

对于上图,B点是A点在超平面上的投影,对于B点的坐标,这是一个很简单的立体几何问题,对于超平面的法向量,w,我们可以很容易求得它的单位向量,由此可以余弦角,由此可以很容易根据A的坐标求得B的坐标,即:技术分享。由因为B点是落在超平面上的,由此可以得到以下结果:

技术分享

经过简单的线性代数的处理,可以得到:

技术分享

感觉是不是有点似曾显示的感觉,非常类似点到平面的距离的公式,因为它有可能是负值,因为少了一个绝对值符号,再经过简单的处理:

技术分享

这样就保证了非负性质。这就是几何间隔的定义式

可以看到几何间隔和函数间隔是非常类似的,但是点到平面的距离是不会因为w,b的缩发生变化,在这一点上,几何间隔比函数间隔更具有意义和价值。

因此,对于以上的二分类问题,可以得到以下的抽象模型:定义技术分享

技术分享

:通过学习和训练,可以得到一组技术分享,使得技术分享能够达到最大。技术分享


===================================================================================

接下来需要讨论上面提出的模型的求解问题。

通过函数间隔和几何间隔的关系,经过转换,可以得到:

技术分享

这里需要深入的讨论一下技术分享的问题。这也是我在理解SVM的时候始终不太明白的问题,在SVM的理论学习中,通常会有技术分享。的限制


对于技术分享,我们可以采取任意的缩放因子,这里当然就对技术分享有了一定的限制。但是可以肯定的是,通过缩放,可以使得技术分享。同时缩放技术分享,对于几何间隔是没有影响的。

======================================题外话===============================================

但是还有一个问题,一开始容易陷入怪圈的问题:对于最小间隔技术分享,可能在真实情况中,需要分类的数据到超平面的间隔可能是小于1的。那么加入最小间隔为1的这样一个限制,不就把这样一部分点过滤掉了,导致计算的时候不考虑这部分点。

对于这个问题,我的理解是。首先这样理解的因果关系是有问题的,首先我们就是为了使得最小间隔最大化,从而得到技术分享,得到分类器。那么在不确定超平面的表达式之前,函数间隔是变化的,不存在过滤不过滤的说法。加入“1”的限制,仅仅是为了方便处理。

========================================================================================

解释完技术分享的取值问题,接着开始正题,模型的求解问题。当技术分享时,可以将以上的模型求解转换为一下模型的求解:

技术分享

这个问题,是一个典型的凸优化问题,可以用QP模型来求解。

至此,关于SVM的基础知识点就已经全部清点完毕,下一篇将会讲解在以上提出的模型的求解问题。但是我总觉得还有已给关键的名词没有给出,是什么呢?对了,就是支持向量的概念。

========================================================================================

前面我们讨论了关于技术分享的取值问题,给出了技术分享的限制条件。对于满足技术分享的值为1的数据,我们称为支持向量。如下图所示:

技术分享

上图和本文的第一张图可以看到,满足技术分享的向量,即支持向量,是很少的,即具有稀疏性。

机器学习(二)--- SVM的学习:理论基础理解

标签:

原文地址:http://blog.csdn.net/mao19931004/article/details/51570686

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!