支持向量机(SVM)原理及
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
支持向量机(SVM)原理及应用概述
支持向量机(SVM )原理及应用
一、SVM 的产生与发展
自1995年Vapnik
(瓦普尼克)在统计学习理论的基础上提出SVM 作为模式识别的新方法
之后,SVM 一直倍受关注。
同年,Vapnik 和Cortes 提出软间隔(soft margin)SVM ,通过引进松弛变量i ξ度量数据i x 的误分类(分类出现错误时i ξ大于0),同时在目标函数中增加一个分量用来惩罚非零松弛变量(即代价函数),SVM 的寻优过程即是大的分隔间距和小的误差补偿之间的平衡过程;1996年,Vapnik 等人又提出支持向量回归 (Support Vector Regression ,SVR)的方法用于解决拟合问题。
SVR 同SVM 的出发点都是寻找最优超平面(注:一维空间为点;二维空间为线;三维空间为面;高维空间为超平面。
),但SVR 的目的不是找到两种数据的分割平面,而是找到能准确预测数据分布的平面,两者最终都转换为最优化问题的求解;1998年,Weston 等人根据SVM 原理提出了用于解决多类分类的SVM 方法(Multi-Class Support Vector Machines ,Multi-SVM),通过将多类分类转化成二类分类,将SVM 应用于多分类问题的判断:此外,在SVM 算法的基本框架下,研究者针对不同的方面提出了很多相关的改进算法。
例如,Suykens 提出的最小二乘支持向量机 (Least Square Support Vector Machine ,LS —SVM)算法,Joachims 等人提出的SVM-1ight ,张学工提出的中心支持向量机 (Central Support Vector Machine ,CSVM),Scholkoph 和Smola 基于二次规划提出的v-SVM 等。
此后,台湾大学林智仁(Lin Chih-Jen)教授等对SVM 的典型应用进行总结,并设计开发出较为完善的SVM 工具包,也就是LIBSVM(A Library for Support Vector Machines)。
LIBSVM 是一个通用的SVM 软件包,可以解决分类、回归以及分布估计等问题。
二、支持向量机原理
SVM 方法是20世纪90年代初Vapnik 等人根据统计学习理论提出的一种新的机器学习方法,它以结构风险最小化原则为理论基础,通过适当地选择函数子集及该子集中的判别函数,使学习机器的实际风险达到最小,保证了通过有限训练样本得到的小误差分类器,对独立测试集的测试误差仍然较小。
支持向量机的基本思想:首先,在线性可分情况下,在原空间寻找两类样本的最优分类超平面。
在线性不可分的情况下,加入了松弛变量进行分析,通过使用非线性映射将低维输
入空间的样本映射到高维属性空间使其变为线性情况,从而使得在高维属性空间采用线性算法对样本的非线性进行分析成为可能,并在该特征空间中寻找最优分类超平面。
其次,它通过使用结构风险最小化原理在属性空间构建最优分类超平面,使得分类器得到全局最优,并在整个样本空间的期望风险以某个概率满足一定上界。
其突出的优点表现在:(1)基于统计学习理论中结构风险最小化原则(注: 所谓的结构风险最小化就是在保证分类精度(经验风险)的同时,降低学习机器的VC 维,可以使学习机器在整个样本集上的期望风险得到控制。
)和VC维理论(注:VC维(Vapnik-Chervonenkis Dimension)的概念是为了研究学习过程一致收敛的速度和推广性,由统计学理论定义的有关函数集学习性能的一个重要指标。
),具有良好的泛化能力,即由有限的训练样本得到的小的误差能够保证使独立的测试集仍保持小的误差。
(2)支持向量机的求解问题对应的是一个凸优化问题,因此局部最优解一定是全局最优解。
(3)核函数的成功应用,将非线性问题转化为线性问题求解。
(4)分类间隔的最大化,使得支持向量机算法具有较好的鲁棒性。
由于SVM自身的突出优势,因此被越来越多的研究人员作为强有力的学习工具,以解决模式识别、回归估计等领域的难题。
1.最优分类面和广义最优分类面
SVM是从线性可分情况下的最优分类面发展而来的,基本思想可用图1来说明。
对于一维空间中的点,二维空间中的直线,三维空间中的平面,以及高维空间中的超平面,图中实心
点和空心点代表两类样本,H为它们之间的分类超平面,H
1,H
2
分别为过各类中离分类面最近
的样本且平行于分类面的超平面,它们之间的距离△叫做分类间隔(margin)。
图1 最优分类面示意图
W
所谓最优分类面要求分类面不但能将两类正确分开,而且使分类间隔最大。
将两类正确分开是为了保证训练错误率为0,也就是经验风险最小(为O)。
使分类空隙最大实际上就是使推广性的界中的置信范围最小?,从而使真实风险最小。
推广到高维空间,最优分类线就成为最优分类面。
设线性可分样本集为}1,1{,,,...,1),,(x _-+∈∈=y R x n i y d i i 是类别符号。
d 维空间中线性判别函数的一般形式为是类别符号。
d 维空间中线性判别函数的一般形式为b x w x g +⋅=)((主:w 代表Hilbert 空间中权向量;b 代表阈值。
),分类线方程为0=+⋅b x w ?。
将判别函数进行归一化,使两类所有样本都满足1|)(|=x g ,也就是使离分类面最近的样本的1|)(|=x g ,此时分类间隔等于||||/2w ?,因此使间隔最大等价于使||||w (或2||||w )最小。
要求分类线对所有样本正确分类,就是要求它满足
n
i b x w y i ,...,2,1,01])[(=≥-+⋅
(1-1)
满足上述条件(1-1),并且使2||||w 最小的分类面就叫做最优分类面,过两类样本中离分类面最近的点且平行于最优分类面的超平面H 1,H 2上的训练样本点就称作支持向量(support vector),因为它们“支持”了最优分类面。
利用Lagrange (拉格朗日)优化方法可以把上述最优分类面问题转化为如下这种较简单的对偶问题,即:在约束条件,
01
=∑=i
n
i i y α
(1-2a )
n
i i ,...,2,1,0=≥α
(1-2b)
下面对i α(主:对偶变量即拉格朗日乘子)求解下列函数的最大值:
∑∑==-=n
j i j i j i j i n
i x x y y 1,1
i )
(21Q αααα)( ?
(1-3)
若*
α为最优解,则∑==n
i i y w 1**
αα (1-4)
即最优分类面的权系数向量是训练样本向量的线性组合。
注释(1-3)式由来:利用Lagrange 函数计算如下,
实例计算: 图略,可参见PPT
可调用Matlab 中的二次规划程序,求得α1, α2, α3, α4的值,进而求得w 和b 的值。
这是一个不等式约束下的二次函数极值问题,存在唯一解。
根据k ühn-Tucker 条件,解
x1 =(0, 0), y1 = +1 x2 =(1, 0), y2 = +1 x3 =(2, 0), y3 = -1 x4 =(0, 2), y4 = -1
2
12
1
(,,)((())1)
l
i i i i L w b w y x w b αα==-⋅⋅+-∑(,,)0(,,)0L w b L w b b w αα∂∂==∂∂1
1
l
l
i i
i i i
i i a y
w y x α====∑∑1
21,11
1
()()
0,1,...,,0
()sgn(())
l l i i j i j i j i i j l
i i i
i l
i i i i W y y x x i l and y
f x y x x b ααααααα=====-⋅≥===⋅⋅+∑∑∑∑222123422334
1()()(444)2
Q αααααααααα=+++--++123412013/41/41120312002144231113,02224()3220
w b g x x x αααα=⎧⎪
=⎪⎨
=⎪⎪=⎩⎡⎤-
⎢⎥⎡⎤⎡⎤⎡⎤=--=⎢⎥
⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎢⎥-⎢⎥⎣
⎦⎡⎤⎡⎤=---=
⎢⎥⎢⎥⎣⎦⎣⎦=--=
中将只有一部分(通常是很少一部分)i α不为零,这些不为0解所对应的样本就是支持向量。
求解上述问题后得到的最优分类函数是:
}
)(sgn{})sgn{()(1***
*
∑=+⋅=+⋅=n
i i i i b x x y b x w x f α
(1-5)
根据前面的分析,非支持向量对应的i α均为0,因此上式中的求和实际上只对支持向量进行。
*b 是分类阈值,可以由任意一个支持向量通过式(1-1)求得(只有支持向量才满足其中的等号条件),或通过两类中任意一对支持向量取中值求得。
从前面的分析可以看出,最优分类面是在线性可分的前提下讨论的,在线性不可分的情况下,就是某些训练样本不能满足式(1-1)的条件,因此可以在条件中增加一个松弛项参数
0i ≥ε,变成:
n
i b x w y i i i ,...,2,1,01])[(=≥+-+⋅ε
(1-6)
对于足够小的s>0,只要使
∑==n
i i F 1)(σ
σεε
(1-7)
最小就可以使错分样本数最小。
对应线性可分情况下的使分类间隔最大,在线性不可分情况下可引入约束:
k
c ≤2||w ||
(1-8)
在约束条件(1-6)幂1(1-8)下对式(1-7)求极小,就得到了线性不可分情况下的最优分类面,称作广义最优分类面。
为方便计算,取s=1。
为使计算进一步简化,广义最优分类面问题可以迸一步演化成在条件(1-6)的约束条件下求下列函数的极小值:
)
(),(21
,1
∑=+=n
i i C w w w εεφ)(
(1-9)
其中C 为某个指定的常数,它实际上起控制对锩分样本惩罚的程度的作用,实现在错分
样本的比例与算法复杂度之间的折衷。
求解这一优化问题的方法与求解最优分类面时的方法相同,都是转化为一个二次函数极值问题,其结果与可分情况下得到的(1-2)到(1-5)几乎完全相同,但是条件(1-2b)变为:
n
i C ,...,1,0i =≤≤α
(1-10)
2.SVM 的非线性映射
对于非线性问题,可以通过非线性交换转化为某个高维空间中的线性问题,在变换空间求最优分类超平面。
这种变换可能比较复杂,因此这种思路在一般情况下不易实现。
但是我们可以看到,在上面对偶问题中,不论是寻优目标函数(1-3)还是分类函数(1-5)都只涉及
训练样本之间的内积运算)(i x x ⋅。
设有非线性映射H R d →Φ:将输入空间的样本映射到高维
(可能是无穷维)的特征空间H 中,当在特征空间H 中构造最优超平面时,训练算法仅使用空间中的点积,即)()(j i x x φφ⋅,而没有单独的)(i x φ出现。
因此,如果能够找到一个函数K 使得
)
()()(j i j i x x x x K φφ⋅=⋅
(1-11)
这样在高维空间实际上只需进行内积运算,而这种内积运算是可以用原空间中的函数实现的,我们甚至没有必要知道变换中的形式。
根据泛函的有关理论,只要一种核函数)(j i x x K ⋅满足Mercer 条件,它就对应某一变换空间中的内积。
因此,在最优超平面中采用适当的内积函数)(j i x x K ⋅就可以实现某一非线性变换后的线性分类,而计算复杂度却没有增加。
此时目标函数(1-3)变为:
∑∑==⋅-=n
j i j i j i j i n
i i x x K y y Q 11,1
)
(21)(αααα
(1-12)
而相应的分类函数也变为
}
)(sgn{)(1
**∑=+⋅=n
i j i i i b x x K y x f α
(1-13)
算法的其他条件不变,这就是SVM 。
概括地说SVM 就是通过某种事先选择的非线性映射将输入向量映射到一个高维特征空间,在这个特征空间中构造最优分类超平面。
在形式上SVM 分类函数类似于一个神经网络,输出是中间节点的线性组合,每个中间节点对应于一个支持向量,如图2所示
图2 SVM 示意图
其中,输出(决策规则):})(sgn{1∑=+⋅=n
i i i i b x x K y y α,权值i i i y w α=,)(i x x K ⋅为基于s
个支持向量s x x x ,...,,21的非线性变换(内积),),...,,(21d x x x x =为输入向量。
3.核函数
选择满足Mercer 条件的不同内积核丞数,就构造了不同的SVM ,这样也就形成了不同的算法。
目前研究最多的核函数主要有三类:
(1)多顼式核函数
q i i x x x x K ]1)[(),(+⋅= (1-14) 其中q 是多项式的阶次,所得到的是q 阶多项式分类器。
(2)径向基函数(RBF)
}||ex p{),(2
2
σ
i i x x x x K --
=
(1-15)
所得的SVM 是一种径向基分类器,它与传统径向基函数方法的基本区别是,这里每一个基函数的中心对应于一个支持向量,它们以及输出权值都是由算法自动确定的。
径向基形式的内积函数类似人的视觉特性,在实际应用中经常用到,但是需要注意的是,选择不同的S 参数值,相应的分类面会有很大差别。
(3)S 形核函数
]
)(tanh[),(c x x v x x K i i +⋅=
(1-16)
这时的SVM 算法中包含了一个隐层的多层感知器网络,不但网络的权值、而且网络的隐层结点数也是由算法自动确定的,而不像传统的感知器网络那样由人凭借经验确定。
此外,该算法不存在困扰神经网络的局部极小点的问题。
在上述几种常用的核函数中,最为常用的是多项式核函数和径向基核函数。
除了上面提到的三种核函数外,还有指数径向基核函数、小波核函数等其它一些核函数,应用相对较少。
事实上,需要进行训练的样本集有各式各样,核函数也各有优劣。
B.Bacsens 和S.Viaene 等人曾利用LS-SVM 分类器,采用UCI 数据库,对线性核函数、多项式核函数和径向基核函数进行了实验比较,从实验结果来看,对不同的数据库,不同的核函数各有优劣,而径向基核函数在多数数据库上得到略为优良的性能。
三、支持向量机的应用研究现状
SVM 方法在理论上具有突出的优势,贝尔实验室率先对美国邮政手写数字库识别研究方面应用了SVM 方法,取得了较大的成功。
在随后的近几年内,有关SVM 的应用研究得到了很多领域的学者的重视,在人脸检测、验证和识别、说话人/语音识别、文字/手写体识别、图像处理、及其他应用研究等方面取得了大量的研究成果,从最初的简单模式输入的直接的SVM 方法研究,进入到多种方法取长补短的联合应用研究,对SVM 方法也有了很多改进。
(一)人脸检测、验证和识别
Osuna 最早将SVM 应用于人脸检测.并取得了较好的效果。
其方法是汽接训练非线性SVM 分类器完成人脸与非人脸的分类。
由于SVM 的训练需要大量的存储空间,并且非线性SVM 分类器需要较多的支持向量,速度很慢。
为此,马勇等提出了一种层次型结构的SVM 分类器,它
由一个线性SVM组合和一个非线性SVM组成。
检测时,由前者快速排除掉图像中绝大部分背景窗口,而后者只需对少量的候选区域做出确认;训练时,在线性SVM组台的限定下,与“自举(bootstrapping)”方法相结合可收集到训练非线性SVM的更有效的非人脸样本,简化SVM 训练的难度,大量实验结果表明这种方法不仅具有较高的检测率和较低的误检率,而且具有较快的速度。
人脸检测研究中更复杂的情况是姿态的变化。
叶航军等提出了利用支持向量机方法进行人脸姿态的判定,将人脸姿态划分成6个类别,从一个多姿态人脸库中手工标定训练样本集和测试样本集,训练基于支持向量机姿态分类器,分类错误率降低到1.67%。
明显优于在传统方法中效果最好的人工神经元网络方法。
在人脸识别中,面部特征的提取和识别可看作是对3D物体的2D投影图像进行匹配的问题。
由于许多不确定性因素的影响,特征的选取与识别就成为一个难点。
凌旭峰等及张燕昆等分别提出基于PCA与SVM相结合的人脸识别算法,充分利用了PCA在特征提取方面的有效性以及SVM在处理小样本问题和泛化能力强等方面的优势,通过SVM与最近邻距离分类器相结合,使得所提出的算法具有比传统最近邻分类器和BP网络分类器更高的识别率。
王宏漫等在PCA基础上进一步做ICA,提取更加有利于分类的面部特征的主要独立成分;然后采用分阶段淘汰的支持向量机分类机制进行识别。
对两组人脸图像库的测试结果表明,基于SVM的方法在识别率和识别时间等方面都取得了较好的效果。
(二)说话人/语音识别
说话人识别属于连续输入信号的分类问题,SVM是一个很好的分类器,但不适合处理连续输入样本。
为此,忻栋等引入隐式马尔可夫模型HMM,建立了SVM和HMM的混合模型。
HMM适合处理连续信号,而SVM适台于分类问题;HMM的结果反映了同类样本的相似度,而SVM的输出结果则体现了异类样本间的差异。
为了方便与HMM组成混合模型,首先将SVM的输出形式改为概率输出。
实验中使用YOHO数据库,特征提取采用12阶的线性预测系数分析及其微分,组成24维的特征向量。
实验表明HMM和SVM的结合达到了很好的效果。
(三)文字/手写体识别
贝尔实验室对美国邮政手写数字库进行的实验,人工识别平均错误率是2.5%,专门针对该特定问题设计的5层神经网络错误率为5.1%(其中利用了大量先验知识),而用3种SVM方法(采用3种核函数)得到的错误率分别为4.0%、4.1%和4.2%,且是直接采用16×16的字符点
阵作为输入,表明了SVM的优越性能。
手写体数字O~9的特征可以分为结构特征、统计特征等。
柳回春等在UK心理测试自动分析系统中组合SVM和其他方法成功地进行了手写数字的识别实验。
另外,在手写汉字识别方面,高学等提出了一种基于SVM的手写汉字的识别方法,表明了SVM对手写汉字识别的有效性。
(四)图像处理
(1)图像过滤。
一般的互联网色情网图像过滤软件主要采用网址库的形式来封锁色情网址或采用入工智能方法对接收到的中、英文信息进行分析甄别。
段立娟等提出一种多层次特定类型图像过滤法,即以综合肤色模型检验,支持向量机分类和最近邻方法校验的多层次图像处理框架,达到85%以上的准确率。
(2)视频字幕提取。
揽频字幕蕴含了丰富语义,可用于对相应视频流进行高级语义标注。
庄越挺等提出并实践了基于SVM的视频字幕自动定位和提取的方法。
该方法首先将原始图像帧分割为N*N的子块,提取每个子块的灰度特征;然后使用预先训练好的SVM分类机进行字幕子块和非字幕子块的分类;最后结合金字塔模型和后期处理过程,实现视频图像字幕区域的自动定位提取。
实验表明该方法取得了良好的效果。
(3)图像分类和检索。
由于计算机自动抽取的图像特征和人所理解的语义间存在巨大的差距,图像检索结果难以令人满意。
近年来出现了相关反馈方法,张磊等以SVM为分类器,在每次反馈中对用户标记的正例和反例样本进行学习,并根据学习所得的模型进行检索,使用由9918幅图像组成的图像库进行实验,结果表明,在有限训练样本情况下具有良好的泛化能力。
目前3D虚拟物体图像应用越来越广泛,肖俊等提出了一种基于SVM对相似3D物体识别与检索的算法。
该算法首先使用细节层次模型对3D物体进行三角面片数量的约减,然后提取3D 物体的特征,由于所提取的特征维数很大,因此先用独立成分分析进行特征约减,然后使用SVM进行识别与检索。
将该算法用于3D丘陵与山地的地形识别中,取得了良好效果。
(五)其他应用研究
(1)由于SVM的优越性,其应用研究目前开展已经相当广泛。
陈光英等设计并实现了一种基于SVM分类机的网络入侵检测系统。
它收集并计算除服务器端口之外TCP/IP的流量特征.使用SVM算法进行分类,从而识别出该连接的服务类型,通过与该连接服务器端口所表
明服务类型的比较,检测出异常的TCP连接。
实验结果表明,系统能够有效地检测出异常TCP 连接。
(2)口令认证简便易实现,但容易被盗用。
刘学军等提出利用SVM进行键入特性的验真,并通过实验将其与BP、RBF、PNN和LVQ 4种神经网络模型进行对比。
证实了采用SVM进行键入特性验真的有效性。
(3)李晓黎等提出了一种将SVM与无监督聚类相结合的新分类算法,并应用于网页分类问题。
该算法首先利用无监督聚类分别对训练集中正例和反例聚类.然后挑选一些例子训练SVM 并获得SVM分类器。
任何网页可以通过比较其与聚类中心的距离决定采用无监督聚类方法或SVM分类器进行分类。
该算法充分利用了SVM准确率高与无监督聚类速度快的优点。
实验表明它不仅具有较高的训练效率,而且有很高的精确度。
(4)刘江华等提出并实现一个用于人机交互的静态手势识别系统。
基于皮肤颜色模型进行手势分割,并用傅立叶描述子描述轮廓,采用最小二乘支持向量机(LS-SVM)作为分类器。
提出了LS-SVM的增量训练方式,避免了费时的矩阵求逆操作。
为实现多类手势识别,利用DAG(Directcd Acyclic Graph)将多个两类LS-SVM结合起来。
对26个字母手势进行识别。
与多层感知器、径向基函数网络等方法比较,LS-SVM的识别率最高,达到93.62%。
另外的研究还有应用SVM进行文本分类、应用SVM构造自底向上二叉树结构进行空间数据聚类分析等。
近年来,SVM在工程实践、化学化工等方面也取得了很多有益的应用研究成果,其应用领域日趋广泛。
四、结论和讨论
以统计学习理论作为坚实的理论依据,SVM有很多优点,如基于结构风险最小化,克服了传统方法的过学习(Overfitting)和陷入局部最小的问题,具有很强的泛化能力;采用核函数方法,向高维空间映射时并不增加计算的复杂性,又有效地克服了维数灾难(Curse of Dimensionality)问题。
但同时也要看到目前SVM研究的一些局限性:
(1) SVM的性能很大程度上依赖于核函数的选择,但没有很好的方法指导针对具体问题的核函数选择;
(2) 训练测试SVM的速度和规模是另一个问题,尤其是对实时控制问题,速度是一个对SVM应用的很大限制因素;针对这个问题。
Platt和Keerthi等分别提出了
SMO(Sequential Minimization Optimization)和改进的SMO方法,但还值得进一
步研究;
(3) 现有SVM理论仅讨论具有固定惩罚系数C的情况,而实际上正负样本的两种误判往往造成损失是不同的。
显然,SVM实际应用中表现出的性能决定于特征提取的质量和SVM两方面:特征提取是获得好的分类的基础,对于分类性能,还可以结合其他方法进一步提高。
就目前的应用研究状况而言,尽管支持向最机的应用研究已经很广泛,但应用尚不及人工神经网络方法,所以有理由相信SVM的应用研究还有很大潜力可挖。