支持向量机——精选推荐
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
支持向量机概述
(一)支持向量机简介
支持向量机(Support V ec tor Mac hine )是Cortes 和V apn ik 于1995年首先提出的,它在解决小样本、非线性及高维模式识别中有许多特有的优势,并能推广应用到函数拟合等其他机器学习问题中[1]。
支持向量机方法是建立在统计学习理论的VC 维和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性和学习能力之间寻求最佳折衷,以期获得最好的推广能力[2]。
1.1 VC 维
定义1.1(N(F,m Z )):设F 是一个假设集,即由在n R X 上取值为-1或1的若干函数组成的集合。
记m Z = },...,,{21m x x x 为X 中的m个点组成的集合。
考虑当f 取遍F 中的所有可能的假设时产生的m 维向量(f (1x ),f (2x ),…f (m x ))。
定义N(F,m Z ))为上述m 维向量中不同的向量个数。
定义1.2(m Z 被F 打散):设F 是一个假设集,m Z = },...,,{21m x x x 为X 中的m 个点组成的集合。
称m Z 被F 打散,或F 打散m Z 。
定义 1.3(VC 维):设假设集F 是一个由X 上取值为-1或1的函数组成的集合。
定义F 的VC 维为m ax{m|N(F,m Z ) = m
2}.
VC 维反映了函数集的学习能力。
一般而言,VC 维越大,学习机器越复杂。
但目前没有通用的关于任意VC 维计算的理论,只对一些特殊函数集的VC 维可以计算。
如何利用理论和实验的方法计算VC 维是当前统计学习理论中一个待研究的问题[3]。
1.2 结构风险最小化
机器学习本质上是一种对问题真实模型的逼近,由于真实世界的模型往往无法精确给出,我们给出的模型与真实模型就存在一个误差,这个与真实模型之间的误差积累就叫做风险。
统计学习理论系统地研究了对于各种类型的函数集,经验风险和实际风险之间的关系,即泛化误差界。
统计学习理论指出:经验风险)(w R emp 和实际风险)(w R 之间至少以1-η的概率满足如下关系
l h l h w R w R emp )4/ln()1)/2(ln()()(η-++
≤ 其中,l 是样本数,h 是函数集的VC 维。
这一结论表明,统计学习的实际风险由两部分组成:一个是经验风险,另一个是置信风险。
置信风险反映了真实风险和经验风险差值的上确界,和VC 维h 记样本数l 有关。
可简单地表示为
)/()()(l h w R w R em p Φ+≤
在有限的训练样本下,学习机器的复杂性越高,VC 维越大,置信风险就越大,就会导致真实风险和经验风险间的差别越大。
如图所示
这就解释了为什么有些学习机器训练阶段的准确率可以达到100%而泛化能力却很差。
结构风险最小化原则(Struc tural Risk Minim iz ation ,SRM )就是为了取得经验风险与置信风险的最小和。
统计机器学习理论就是为了努力最小化结构风险。
即不仅要使经验风险最小化,还要使VC 维最小。
(二)线性分类器
线性分类器是最简单也是很有效的分类器形式,SVM 就是是从线性可分情况下的最优分 类面发展而来的[4]。
2.1线性可分
当一个线性函数能将样本完全正确地分开时,此时这些样本就是线性可分的。
否则就称
为非线性可分的。
线性函数指形如f(x) = w x + b 的一次函数,此函数值为0时确定了一个n 维空间的超平面(Hyper Plane)。
w 、x 为n 维向量,b 为常数。
2.2 最优分类面
方形和圆形为两类样本,H 为分类线,21H ,H 分别为过各类分类线最近的样本,且与分类线平行,他们之间的距离margin 称为分类间隔。
当分类线H 不但能将两类正确分开,而且使分类间隔最大时,此分类线称为最优分类线。
对分类线方程w x + b = 0进行归一化处理,使得对线性可分的样本集}1,1{,,,...,1),,(-+∈∈=y R x n i y x d i i ,满足
.,....,1,01])[(n i b x w y i i =≥-+⋅
此时分类间隔等于w /2,使间隔最大等价于使2w 最小。
满足上述条件的分类面就叫最优分类面,21H ,H 上的训练样本点就称作支持向量。
使分类间隔最大实际上就是对推广能力的控制,这是SVM 的核心思想之一。
统计学习理论指出,在N 维空间中,设样本分布在一个半径为R 的超球范围内,则满足条件A w ≤的正则超平面构成的指示函数集})sgn {(),,(b x w b w x f +⋅=(sgn()为符号函数)的VC 维满足下面的界
1)],min([22+≤N A R h
因此,使2
w 最小就是使VC 维的上界最小,从而实现SRM 准则中对函数复杂性的选择。
于是问题就转换成一个有约束的非线性规划问题: 2,2
1min w b w l i b x w y t s i i ,....,2,1,1)(..=≥+⋅
称上二式组成的最优化问题为原始优化问题。
由于此为凸二次寻优问题,根据最优化理论,
这个问题存在唯一全局最小解。
其Lagrange 函数为:
∑=+⋅-+=l i i i i b x w y w L 1
2)](1[21α 其中,0≥i α是约束1)(≥+⋅b x w y i i 的Lagrange 乘子。
根据KKT 条件(Karush-Kuhn-Tuc ker )有:
∑∑===⇒=-=∂∂l i i i i l i i i i x y w x y w w L 1
10αα 01
==∂∂∑=l i i i y b L α 根据w olf 对偶理论,经运算将原始优化问题转为
∑∑==⋅-=l i l j i j i j i j i i x x y y w 1
1,)(21)(max ααααα .,...,2,1,0,0..1l i y t s i l i i i
=≥=∑=αα
解此最优化问题,可确定最优超平面。
且通常只有一小部分i α不为0,这些非零解对应的样本就是支持向量。
此时得到的最优分类函数是
∑=+⋅=+⋅=n
i i i i b x x y b x w x f 1*})(sgn{})sgn{()(α
不难看出,式中的求和实际上只对支持向量进行。
*
b 可由任一支持向量回代求得。
此时,我们就得到了一个样本线性可分时的线性分类器。
(三)核函数
线性可分的问题可以由上述的线性分类器求解,当待分类样本为非线性可分时,可以通过非线性变换转化为某个高维空间中的线性问题,在变换空间求最优分类面。
如图
当(a,b )范围内的样本为一类,其余部分为一类时,在二维空间无法找到一个线性函数将其正确分开,但我们可以找到一条曲线,如
此时该函数表达式为
2120)(c x c x c x g ++=
新建一个向量
T T T T c c c a a a a x x y y y y ),,(),,(,)1,,(),,(2103212321====
将g(x)转化为>=<y a y f ,)(,此时f(y)与g(x)等价,且为四维空间中的线性函数。
这样,我们就将低维的非线性可分问题转化为了高维的线性可分问题。
但遗憾的是,目前还没有一种系统地将低维向量映射到高维的方法[5]。
事实上,计算过程中我们只关心高维向量之间的内积,只要找出一种方法可以求出此值就得到了我们想要的结果。
核函数(kernel func tion )正是为了求出低维空间的向量经过变换后在高维空间的内积而提出的。
并且由于其输入为原空间中的低维向量,避开了高维变换计算问题,使得问题大大
简化了。
根据泛函的有关理论,只要一种核函数),(j i x x K 满足Merc er 条件,它就对应某一变换空间中的内积[6]。
Merc er 条件:对任意的对称函数),(x x K ',它是某个特征空间中的内积运算的充分必要条
件是,对任意0)(≡/x ϕ,且∞<⎰
dx x )(2ϕ,有 0)()(),(>'''⎰⎰x dxd x x x x K ϕϕ
用核函数替换内积函数后,此时的最优分类目标函数变为
∑=+⋅=n
i i i i b x x K y x f 1*})(sgn{)(α
此时由于计算仍在原空间进行,分类器的计算复杂度没有增加[4]。
目前,常用的核函数有以下几种:
线性核函数:
j i j i x x x x K ⋅=),(
多项式核函数:
d j i j i x x x x K ]1)[(),(+⋅=
径向基函数(RBF ):
)exp(),(2j i j i x x x x K --=γ
Sigmoid 函数:
))(tanh(),(c x x v x x K j i j i +⋅=
这时SVM 实现的是包含一个隐层的多层感知器,隐层节点数是由算法自动确定的,而且算法不存在困扰神经网络方法的局部极小点问题。
(四)松弛变量及惩罚因子
核函数解决了低维向高维空间映射的计算问题,但如果映射到高维空间之后有少量样本的存在使得问题仍然是非线性可分的,这种造成少量错分的问题称为近似线性可分。
如图
4.1 松弛变量
此时我们对错分样本点i 引入一非负松弛变量i ζ使其间隔可以大于规定的间隔。
并使用一个惩罚因子C 衡量其带来的损失。
此时,我们的原始优化问题就变为:
min ∑=+l i i C w 1
221ζ subjec t to 0)
,...2,1(1])[(≥=-≥+i i i i l i b wx y ζζ
此时,近似线性可分问题就转为了线性可分问题。
由此得到的分类器称为软间隔分类器,之前未加入松弛变量得到的分类器为硬间隔分类器。
引入松弛变量可以获得更大的分类间隔,但同时也使分类器的精确分类能力降低了。
4.2 惩罚因子
惩罚因子C 代表了对离群点的重视程度,C 越大,表示不能舍弃该样本的程度越大,在极端的情况下,C 趋于无穷时退化为硬间隔分类问题。
惩罚因子可用来解决数据集偏斜的问题,即分别给正类、负类的样本点赋予不同的惩罚因子,由此区分对两类样本的重视程度。
数据集偏斜是指参与分类的两类样本数量差距很大,此时对于数量少的样本应予以重视,不能轻易舍弃,应赋予较大的惩罚因子。
此时我们目标函数中因松弛变量而损失的部分就变为
11≥+∑∑++=-
=+j q p p j j p i i C C ζζζ
其中,i=1..p 为正样本,j=p+1…p+q 为负样本。
+C 、-C 的比例选取应根据实际情况具体问题具体分析,如当两类样本分部情况类似时,正负类惩罚因子的比例可以由数量之比确定,当一类与另一类相比样本较集中时,可以用覆盖两类的超球半径之比来确定。
(五)SVM 用于多类分类
由于SVM 属于二类分类器,一个分类器只能完成二类分类,在处理多类分类问题时,需要用到多个分类器共同完成分类工作。
常用的多类分类方法有:一类对余类(1-a-r )、一对一类(1-a-1)和有向无环图支持向量机(DAG SMV)
1-a-r 方法是指,训练时,每次选取一个类的样本作为正类样本,其余为负类样本,此时生成的分类器个数为n 。
分类时,将待分类样本代入每个分类器进行运算。
1-a-r 方法由于分类器较少,所以分类速度较快,但会出现分类重叠或不可分类现象,并且由于训练阶段正负类数量差距较大,这就人为造成了数据集偏斜。
1-a-1方法是指,训练时,选取一个样本作为正类样本,分别取其余样本中的一类为负类样本进行训练,此时生成的分类器个数为n(n-1)个。
分类时,将待分类样本代入每个分类器进行运算,采用每个分类器投票的方式决定样本类别。
1-a-r 方法的优点在于,由于训练阶段正负类样本数量较少,整体上来说,速度要优于1-a-r 方法,虽然仍然存在分类重叠现象,但避免了不可分类现象,缺点在于分类器个数过多,分类过程会较慢。
DAGS MV 方法是指,训练时,按照1-a-1的方法求出分类器,在分类阶段,以有向无环图的形式选取分类器进行运算,最终得到分类结果,如图
DAG S VM的优点在于分类时不必遍历所有的分类器,具有较高的分类效率。
但一旦根节点分类错误,则后面将无法修正错误并导致错误的分类。
故一般根节点都会使用差别较大的两类分类器。
(六)SVM算法的改进
目前针对SVM应用中出现的问题,主要针对S VM的一些不足之处进行如下改进和完善。
6.1对学习训练速度的改进
SVM训练速度与支持向量的数量有关,支持向量个数越大,训练的计算量就越大,识别的计算量也同样很大。
于是,就需要提高SVM的计算速度,以便处理大规模问题。
因此,降低支持向量数目、简化支持向量成为一项非常有意义的工作[7][8]。
6.2 对SVM多分类算法的研究
经典SVM算法在二类分类问题上得到了很好的研究和应用,但现实中的问题往往需要多类分类问题。
如何将SVM良好的二分类处理能力有效地延伸到多累分类问题上,是扩大S VM 应用领域的实际要求,是目前研究的一个重要方面[9][10]。
6.3对过学习问题的优化
当训练样本两类样本混杂较严重时,SVM也可能出现过学习现象,使得决策面过于复杂而降低了泛化能力。
因此,对过学习问题的研究和寻找避免方法也是研究之一[11]。
6.4 对SVM样本孤立点和噪点处理的改进
改进对训练样本中噪点的处理提高其泛化能力,因为SVM在构造最优分类面时所有样本具有相同的作用,因此,存在对噪声或野值敏感的问题。
于是,如何消除噪点影响也是改进SVM的研究方向之一[12]。
6.5核函数的构造和参数的选择理论研究
基于各个不同的应用领域,可以构造不同的核函数,能或多或少的引入领域知识。
现在核函数广泛应用的类型有:多项式逼近、贝叶斯分类器、径向基函数、多层感知器等。
参数的选择现在多利用交叉验证的方法来确认。
6.6 主动学习的SVM
主动学习在学习过程中可以根据学习进程,选择最有利于分类器性能的样本来进一步训练分类器,它能有效地减少评价样本的数量,也就是通过某种标准对样本分类的有效性进行排序,然后选择有效样本进行训练。
(七)SVM的应用
由于SVM坚实的理论基础以及分类器较低的系统资源占用,使得S VM成为一种较有力的工具。
7.1 在函数拟合上的应用
SVM方法可以很好地应用于函数拟合问题中,其思路与在模式识别中十分相似,一般支持向量都是在函数变化比较剧烈的位置上的样本[4]。
凡是涉及内积运算的只要用核函数来计算就可以实现非线性函数拟合。
7.2 在高维模式识别上的应用
由于SVM的分类器十分简洁,使得SVM在高维模式识别方面有特有的优势。
如文本分类领域,即使计算高维样本也不会对计算机造成太大的负担。
而其他方法,如KNN方法,在样本维数及样本数过高时效率会非常低下。
7.3 在一般模式识别上的应用
凡是能够量化为向量形式的问题都可以将SVM作为工具来使用,如人脸识别、三维物体识别、遥感图像分析、时间序列预测、波束成型等。
在现实应用中,SVM在手写识别[13],波束成形[14]等应用领域取得了良好的效果。
(八)讨论
由于统计学习理论和支持向量机建立了一套较好的在小样本下机器学习的理论框架和通用方法,既有严格的理论基础,又能较好地解决小样本、非线性、高维和局部极小点等实际问题,因此成为继神经网络之后的有一个研究方向。
但从文中我们可以看出,支持向量机还有许多领域有待研究,如VC维的确定、核函数的选择、如何找到一个更好反映学习机器的参数和得到更紧的界等。
在应用方面,支持向量机在性能上有各种出色的表现,目前,支持向量机更趋向于与其他机器学习方法的融合,如SVM与KNN算法、S VM与神经网络等等。