3.5.1 线性可分条件下的支持向量机最优分界面 Vapnik等人在多年研究统计学习理论基础上对线性分类器提出了另一种设计最佳准则。其原理也从线性可分说起,然后扩展到线性不可分的情况。甚至扩展到使用非线性函数中去,这种分类器被称为支持向量机(Support Vector Machine,简称SVM)。支持向量机的提出有很深的理论背景。但我们只就支持向量机的最浅显原理进行讨论。因此本章所说的SVM设计的思路只是我们对它一种通俗化的理解。 支持向量机方法是在近年来提出的一种新方法。 在学习这种方法时,首先要弄清楚这种方法考虑问题的特点,这就要从线性可分的最简单情况讨论起,在没有弄懂其原理之前,不要急于学习线性不可分等较复杂的情况,支持向量机在设计时,需要用到条件极值问题的求解,因此需用拉格朗日乘子理论,但对多数人来说,以前学到的或常用的是约束条件为等式表示的方式,但在此要用到以不等式作为必须满足的条件,此时我们只要了解拉格朗日理论的有关结论就行。 |
图3.28 |
SVM的思路是这样的,由于两类别训练样本线性可分,因此在两个类别的样本集之间存在一个隔离带。对一个二维空间的问题我们用图3.28表示。其中用圈和交叉符号分别表示第一类和第二类训练样本,H是将两类分开的分界面,而H1与H2与H平行,H是其平分面,H1上的样本是第一类样本到H最近距离的点,H2的点则是第二类样本距H的最近点,由于这两种样本点很特殊,处在隔离带的边缘上,因此用再附加一个圈表示。这些点称为支持向量,它们决定了这个隔离带。 从图上可以看出能把两类分开的分界面并不止H这一个,如果略改变H的方向,则根据H1、H2与H平行这一条件,H1、 H2的方向也随之改变,这样一来,H1与H2之间的间隔(两条平行线的垂直距离)会发生改变。显然使H1与H2之间间隔最大的分界面H是最合理的选择,因此最大间隔准则就是支持向量机的最佳准则。为了将这个准则具体化,需要用数学式子表达。为了方便,我们将训练样本集表示成{ xi,yi },i=1,…,N,其中xi为d维向量也就是我们常说的特征向量,而yi∈{-1,+1},即用yi是+1或-1表示其类别。对于分界面H表示成 (3-80) 并且令 (3-81) 对在H1与H2平面上的点,上两式取等号。上两式也可合并成 (3-82) 显然H1平面到坐标原点的距离为 ,而H2则为 ,故H1到H2的间隔为 ,即与成反比。因此欲达到 Vapnik提出的使间隔最大的准则,则应使最小,而(3-82)则是它必须遵守的约束条件,可改写成大于零的不等式, (3-83) 对于这样一个带约束条件为不等式的条件极值问题,需要引用扩展的拉格朗日乘子理论,按这个理论构造拉格朗日函数的原则为:目标函数(在此为最小,为了方便用最小)减去用拉格朗日乘子(乘子值必须不小于0)与约束条件函数的乘积,在我们讨论的问题中可写成 (3-84), 由于(3-84)中的目标函数是二次函数,而约束条件中为线性函数,按拉格朗日理论该问题存在唯一解,根据研究扩展的拉格朗日理论的 Kuhn与Tucker等人的研究,表明以下是该唯一解的充分必要条件: (3-85) (3-86) 以及 (3-87) (3-88) (3-89) (3-87)和(3-88)表明,只有满足条件的点,其拉格朗日乘子才可能不为零; 而对满足的样本数据来说,其拉格朗日乘子必须为零,显然只有部分(经常是少量)的样本数据的ai不为零,而线性分界面的权向量W则是这些ai不为零的样本数据的线性组合,ai不为零的样本数据也因而被称为支持向量。 到此为止,我们可再回顾一下线性可分条件下的支持向量机方法说了些什么。 |
图3.29 |
如果知道哪些数据是支持向量,哪些不是,则问题就简单了。问题在于哪些数据是支持向量事先并不能确定,因此这只有通过求(3-84)式的极大值来求解。 从(3-85)可以看出,只要最佳的ai求得(表示成),则 |
接触支持向量机(SVM)也有一年多了,由于之前没有学习过这方面的东西,学校也没开之类课程,所以学习起来非常困难。之间经历了不少,有迷茫(能不能拿下),有无奈(看理论就像读天书)、没有人指点、没有人帮助,一度时期都快要放弃,像疯了一样的寻找资料,很是着急。不过幸运的是当初没有真的放弃!
最近几个月,一直忙于遥感方面的事,就把SVM放了一下,今天上网,在浏览一些论坛的时候,发现有许多SVM人正在经受和我一样的过去
!看着那些求助的留言,心里沉沉为了让大家少一点痛苦,我就把我的一点小小的看法也算一点建议吧写出来,希望能起一点作用!如果你要勇敢的走下去,就要做好准备,一个是要啃一下统计学习理论,二一个的要补习一下英文,三一个要学习C或MATLAB语言。
先介绍一下SVM:
支持矢量机(support vector machine 简 SVM)其实是一种统计学习方用于模式识别、回归估计及密度估计。它是在统计学习理论(Statistical Learning Theory, Vapink,1995)的基础上发展起来的一种专门解决小样本学习规律的学习方法。
与其他传统的学习方法(如模式识别,神经网络等)相比它有
一、它基于结构风险最小化原则,
这样就避免了过学习问题,泛化能力强。
二、它是一个凸优化问题,因此局部最优解一定是全局最优解的优点。
因此,许多学者认为,SVM正在成为继神经网络之后在人工智能界的又一个新的研究热点。
其实大多数的应用在分类,聚类(classifaction),回归(regressiong)两个方面,也有做数据挖掘的!
我这里有一些关于统计学习理论的一些资料和SVM学习软件(LS-SVM、SPIDER、C_SVM、LIBSVM、GINI-SVM等),及应用实例。
支持向量机,这个名字非常得怪异,直到我看了相关得文献,才知道,原来这种工具将其中最重要的一些数据定义为了支持向量,然后就给其取名支持向量机。支持向量机诞生没有多久,也就十几岁吧,先在正茁壮地成长着。我学它,就是因为大家现在都很关心它。
下面来点专业的。
SVM解决了分类问题,线性可分自不必说。在线性不可分情况下,利用一个余量。在非线性情况下,利用核函数,将低维非线性转化为高位线性问题。在解决SVM问题时,就是要求出分类函数。其实就是一些系数而已。
1. 支持向量机的关键技术是什么?
答: 支持向量机性能的优劣主要取决于核函数的选取,所以对于一个实际问题而言,如何根据实际的数据模型选择合适的核函数从而构造SVM算法.目前比较成熟的核函数及其参数的选择都是人为的,根据经验来选取的,带有一定的随意性.在不同的问题领域,核函数应当具有不同的形式和参数,所以在选取时候应该将领域知识引入进来,但是目前还没有好的方法来解决核函数的选取问题.
2. 支持向量机的优缺点?
答:优点:SVM理论提供了一种避开高维空间的复杂性,直接用此空间的内积函数(既是核函数),再利用在线性可分的情况下的求解方法直接求解对应的高维空间的决策问题.当核函数已知,可以简化高维空间问题的求解难度.同时SVM是基于小样本统计理论的基础上的,这符合机器学习的目的.而且支持向量机比神经网络具有较好的泛化推广能力.
缺点:对于每个高维空间在此空间的映射F,如何确定F也就是核函数,现在还没有合适的方法,所以对于一般的问题,SVM只是把高维空间的复杂性的困难转为了求核函数的困难.而且即使确定核函数以后,在求解问题分类时,要求解函数的二次规划,这就需要大量的存储空间.这也是SVM的一个问题.
3. 支持向量机的主要应用和研究的热点?
答:目前支持向量机主要应用在模式识别领域中的文本识别,中文分类,人脸识别等;同时也应用到许多的工程技术和信息过滤等方面.
当前研究的热点主要是对支持向量机中算法的优化,包括解决SVM中二次规划求解问题,对大规模SVM的求解问题,对SVM中QP问题的求解问题等.另外就是如何更好的构造基于SVM的多类分类器,如何提高SVM的归纳能力和分类速度等.如何根据实际问题确定核函数也是一个重要的研究热点.