机器学习笔记2:支持向量机SVM基础入门

机器学习笔记2:支持向量机SVM基础入门

1.SVM基础概念

  支持向量机(Support Vector Machine, SVM),一般来说是一种二类分类模型,其基本模型定义为特征空间行额间隔最大的线性分类器,其学习策略就是间隔最大化,最终可以转化为一个凸二次规划问题的求解。

2 线性分类器

  首先对于SVM的第一个基础概念就是线性分类器,在上一篇的文章(基于Logistic回归进行数据预测)中,介绍了分类标准的起源——Logistic回归。如下图所示,给定一些数据点,它们分别属于两个不同的种类,如果用x(x可以是矩阵,所以可以代表多维数据)来表示数据点,用y(y分别取-1与1,分别代表两种不同的类),一个线性分类器的学习目标便是要在n维数据空间中,找到一个分隔超平面(separating hyperplane),下图中,由于数据是二维的,所以此时分隔超平面就是一条直线,如果给出的数据是三维的,那么用来分隔平面的数据就是一个平面。如果是1024维的数据,那么给出的分隔超平面就是1023维的。



  超平面的方程可以表示为:
  


这里写图片描述

  Logistic回归的目的是从特征学习出0/1分类的模型,而这个模型试讲特性的线性组合作为自变量,由于自变量的取值范围是从负无穷到正无穷。因此,使用sigmoid函数将自变量印射到(0,1)上。假设有函数如下:


这里写图片描述

  
  公式中x是n维特征向量,且函数g(x)就是Logistic函数,同时我们知道sigmoid的图像如下图所示:


这里写图片描述

  由图像可以观察到,这里讲无穷映射到了(0,1)之间,同时关于y=0或y=1的概率存在如下关系:


这里写图片描述


这里写图片描述


这里写图片描述

3 线性分类

  假设现在有一个二维平面,平面内有两种不同类型的数分别用圆和叉表示,由于这些数据是线性可分的,所以可以用一条直线来将其分开,这条直线就相当于是一个超平面,超平面的一边的数据的对应点都是-1,另一边则全是1。如下图所示:


这里写图片描述

  这个超平面可以用函数f(x)=wTx+b来表示,当f(x)等于0的时候,x便是位于超平面上的点,而f(x)大于0的点则对应y=1的数据点,f(x)小于0对于y=-1的点。如下图所示:


这里写图片描述

  引入支持向量的概念,支持向量(Support Vector)就是那些离分隔超平面最近的那些点,接下来就是试着最大化支持向量到分割面的距离。如下图所示,要计算点A到分隔超平面的距离,就必须要给出点到分隔面的法线或垂线的长度,该值的计算公式如下:


这里写图片描述

  公式里的常数b类似于Logistic回归中的截距w0,这里的向量w和常数b一起描述了所给数据的分割线或者超平面。关于这个距离公式的产生,可以参考一位作者的博文,其中1.3节函数间隔与几何间隔部分详细推导了公式产生。


这里写图片描述

4 分类器间隔最大化

  分类器的工作原理是输入数据给分类器之后,会输出一个类别标签,这是相当于一个类似Sigmoid的函数在起作用,也就是海维赛德阶跃函数(即单位阶跃函数)使得当u<0时,f(u)输出为-1,当u>0时,f(u)的输出为1。类别标签为什么选择-1与1,而不是0与1呢?这是由于-1与1之间仅仅相差一个符号,方便在数学上的处理,我们可以通过一个统一公式来表示间隔或者数据点到分隔超平面的距离,同时不必担心数据到底是属于-1还是1类型。


这里写图片描述

  如果数据点处于正方向(即+1类)并且离分隔超平面很远的位置时,结果将会是一个很大的正数;当数据点处于负方向(即-1类)并且离分隔超平面很远的距离时,由于类别标签为-1,则分隔面的函数间隔因为负负得正,任然是一个很大的正数。


这里写图片描述

  现在的目标也就是找出分类器中定义的w和b,为此我们就必须找到具有最小间隔的数据点,这些点也就是之前提到的支持向量。一旦找到具有最小间隔的数据点,我们就需要对该间隔最大化。计算的公式表示如下:


这里写图片描述


这里写图片描述


这里写图片描述


这里写图片描述

  上述的约束条件是在数据必须100%线性可分的前提下,但是在实际使用过程中,数据并不是都是完全可分的,因此我们就可以引入松弛变量(slack variable),来允许有些数据可以分布在分隔面错误的一侧,因此约束条件就需要调整为:


这里写图片描述

  这里的常数C是用来控制“最大化间隔”和“保证大部分点的函数间隔小于1.0”这两个目标的权重。在优化算法的实现代码中,常数C是一个参数,因此我们就可以通过调节该参数得到不同的结果。一旦求出了alpha,那么分隔超平面就可以通过这些alpha来表达。

  至此,初步完成了支持向量机SVM额基础概念,下个部分将会通过代码测试SMO算法及其改进原理。

August 14 , 2017

猜你喜欢

转载自blog.csdn.net/chenhaouestc/article/details/77146188