支持向量机系列

一、     什么是支持向量机

    支持向量机(英语:Support
Vector Machine,简称为SVM,)是一种监督式学习的方法,可广泛地应用于统计分类以及回归分析。支持向量机属于一般化线性分类器,也可以被认为是提克洛夫规范化(Tikhonov Regularization)方法的一个特例。这族分类器的特点是他们能够同时最小化经验误差与最大化几何边缘区,因此支持向量机也被称为最大边缘区分类器。

    支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面,分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。

 

二、     SVM的分类

a) 从线性可分到线性不可分

考虑以下形式的样本点 超平面的数学形式可以写作:

W * X – b=0。

其中X是超平面上的点,W是垂直于超平面的向量。根据几何知识,我们知道W向量垂直于分类超平面。加入位移b的目的是增加间隔。如果没有b的话,那超平面将不得不通过原点,限制了这个方法的灵活性。由于我们要求最大间隔,因此我们需要知道支持向量以及(与最佳超平面)平行的并且离支持向量最近的超平面。我们可以看到这些平行超平面可以由方程族:

W * X – b = 1

W * X – b = -1

来表示。 由于W只是超平面的法向量,长度未定,是一个变量,所以等式右边的1和-1只是为计算方便而取的常量,其他常量只要互为相反数亦可。如果这些训练数据是线性可分的,那就可以找到这样两个超平面,在它们之间没有任何样本点并且这两个超平面之间的距离也最大。

  1.        i. 线性可分

线性SVM很容易求得上面的W,并容易进行推广,如下图所示,在2维的情况下直接可以通过线性分开两类数据点。下图中的直线(分类范数)直接可以看作决策函数。

 

 

  1.         ii.  线性不可分

如下图所示,部分训练集的数据是线性不可分的,在这种情况下需要利用核函数,将原始的数据进行Transform,将现有的数据维度进行提升到高维空间中,进行线性划分。在这个过程中包含了两步:

1、 使用数据进行映射,转换到一个特征空间。

2、 使用特征空间进行训练线性分类。

 

b)  支持向量回归SVR

支持向量的方法也会应用到回归问题中,支持向量回归也分为线性回归和非线性回归两种,但不是统计学中的线性或者非线性回归了,而是根据是否需要嵌入到高维空间来划分的.

  1.          i. 在原始空间存在超平面

直接通过代数中的最优化求解,求得上面W*X + B = 0的W值。使得样本点到超平面的距离尽可能大。而且在求解过程中引入了松弛变量,使用拉格朗日乘子发,通过对偶形式进行求解。

  1.        ii. 需要核函数映射回归

对于不可能在原始空间就可以线性分离的样本集S,先用一个非线性映射将数据S映射到一个高维特征空间中,使得S在特征空间H中具有很好的线性回归特征,先在该特征空间中进行线性回归,然后返回到原始空间R中。这就是支持向量非线性回归。具体流程:训练集—>映射到特征空间—>构造线性回归—>计算W,b—>构造非线性函数。

三、     核函数介绍

在非线性向量机中,即线性不可分的情况下,将低数维度的数据映射到高维空间后,会出现维数灾难,在此时,核函数就隆重登场了,核函数的价值在于它虽然也是讲特征进行从低维到高维的转换,但核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算。核函数通过内积计算,避免了高维空间中的计算。

    注:松弛变量,是处理分类时出现离群点的方法,并非所有的样本点都有一个松弛变量与其对应。实际上只有“离群点”才有,或者也可以这么看,所有没离群的点松弛变量都等于0(对负类来说,离群点就是在前面图中,跑到H2右侧的那些负样本点,对正类来说,就是跑到H1左侧的那些正样本点)。松弛变量的值实际上标示出了对应的点到底离群有多远,值越大,点就越远。

a)   多项式核函数 poly ,维度:(n+d)/d

b)   线性 Liner ,这实际上就是原始空间中的内积。这个核存在的主要目的是使得“映射后空间中的问题”和“映射前空间中的问题”两者在形式上统一起来了。

c)   高斯核函数  ,维度:无穷维

d)   径向基核函数

e)   傅里叶核

f)   Sigmoid核函数:采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。

四、     核函数的选择

a)   选取核函数解决实际问题时,通常采用的方法有:

  1.          i. 利用专家的先验知识预先选定核函数;
    1.        ii.      采用Cross-Validation方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,通过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM误差小很多。径向基核函数是不会出太大偏差的一种,首选。
  2.       iii. 采用由Smits等人提出的混合核函数方法,该方法较之前两者是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的工作。

 

 

参考文献1:

    支持向量机通俗导论:http://blog.csdn.net/v_july_v/article/details/7624837

        SVM入门:http://www.blogjava.net/zhenandaci/category/31868.html

        SVM:http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495537.html

    支持向量机系列:http://blog.pluskid.org/?page_id=683

 

参考文献2:

 

你可能感兴趣的:(支持)