支持向量机概述
- 格式:pdf
- 大小:339.50 KB
- 文档页数:5
⽀持向量机(svm)介绍⽀持向量机(SVM)介绍⽬标本⽂档尝试解答如下问题:如何使⽤OpenCV函数训练⼀个SVM分类器,以及⽤测试训练结果。
什么是⽀持向量机(SVM)?⽀持向量机 (SVM) 是⼀个类分类器,正式的定义是⼀个能够将不同类样本在样本空间分隔的超平⾯。
换句话说,给定⼀些标记(label)好的训练样本 (监督式学习), SVM算法输出⼀个最优化的分隔超平⾯。
如何来界定⼀个超平⾯是不是最优的呢? 考虑如下问题:假设给定⼀些分属于两类的2维点,这些点可以通过直线分割,我们要找到⼀条最优的分割线.Note在这个⽰例中,我们考虑卡迪尔平⾯内的点与线,⽽不是⾼维的向量与超平⾯。
这⼀简化是为了让我们以更加直觉的⽅式建⽴起对SVM概念的理解,但是其基本的原理同样适⽤于更⾼维的样本分类情形。
在上⾯的图中,你可以直觉的观察到有多种可能的直线可以将样本分开。
那是不是某条直线⽐其他的更加合适呢? 我们可以凭直觉来定义⼀条评价直线好坏的标准:距离样本太近的直线不是最优的,因为这样的直线对噪声敏感度⾼,泛化性较差。
因此我们的⽬标是找到⼀条直线,离所有点的距离最远。
由此, SVM算法的实质是找出⼀个能够将某个值最⼤化的超平⾯,这个值就是超平⾯离所有训练样本的最⼩距离。
这个最⼩距离⽤SVM术语来说叫做间隔(margin) 。
概括⼀下,最优分割超平⾯最⼤化训练数据的间隔。
如何计算最优超平⾯?下⾯的公式定义了超平⾯的表达式:叫做权重向量,叫做偏置(bias)。
See also关于超平⾯的更加详细的说明可以参考T. Hastie, R. Tibshirani 和 J. H. Friedman的书籍Elements of Statistical Learning, section 4.5 (Seperating Hyperplanes)。
最优超平⾯可以有⽆数种表达⽅式,即通过任意的缩放和。
习惯上我们使⽤以下⽅式来表达最优超平⾯式中表⽰离超平⾯最近的那些点。
支持向量机支持向量机,英文名为support vector machine,一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划(convex quadratic programming)问题的求解,支持向量机的学习算法是求解凸二次规划的最优化算法。
其方法包含构建由简到繁的模型:线性可分支持向量机、线性支持向量机和非线性支持向量机。
线性可分支持向量机假定一特征空间上的训练数据集T={(x1,y1),(x2,y2),⋯,(x N,y N)},其中x i∈χ= R n,y i∈Y={+1,−1},i=1,2,⋯,N,x i为第i个特征向量,也就是实例,y i为x i的类标记,当y i=+1时,称x i为正例;当y i=−1时,称x i为负例,(x i,y i)称为样本点。
再假设训练数据集是线性可分的,即存在某个超平面能够将正例和负例完全正确的分开,不妨设分离超平面方程为w∙x+b=0,法向量为w、截距为b。
一般地,当训练数据集线性可分时,存在无穷多个分离超平面可将两类数据正确分开,线性可分支持向量机利用间隔最大化求最优分离超平面,这是解是唯一的。
若最优分离超平面为w∗∙x+b∗=0,则分类决策函数为f(x)=sign(w∗∙x+b∗)。
在上图中,有A、B、C三个点,表示三个实例,设“。
”表示正类,“×”表示负类,则这三个点全在正类。
A距分类超平面较远,若预测该点为正类就比较确信预测是正确的;C距分类超平面较近,若预测该点为负类就不那么确信;B介于AC两者之间,预测为正类的确信度也在A与C之间。
故一般来说,点距离分离超平面的远近可以表示分类预测的确信程度。
在超平面w ∙x +b =0确定的情况下,|w ∙x +b |能够相对地表示点x 到超平面的远近,而w ∙x +b 的符号与类标记y 的符号是否一致可表示分类是否正确,所以y (w ∙x +b )可以来表示分类的真确性及确信度,我们称之为函数间隔。
支持向量机的概念
支持向量机(Support Vector Machine,SVM)是一种常用的
机器学习算法,用于分类和回归问题。
它的核心思想是将样本映射到高维空间中,并在该空间中找到一个最优的超平面,以将不同类别的样本最大程度地分开。
具体来说,SVM在高维空间中寻找一个超平面,使得该超平
面与离它最近的各类样本的距离最大。
这些离超平面最近的样本点被称为支持向量,因为它们对于确定超平面起到了关键的作用。
通过这种方式,SVM能够有效地处理高维数据,并在
复杂的数据集中实现较好的分类效果。
SVM的基本原理可以理解为将原始的样本数据点映射到一个
高维特征空间,并通过最大化样本点与超平面之间的间隔来找到最优的超平面。
间隔表示了样本点与决策边界的距离,支持向量机的目标是找到使间隔最大化的超平面。
SVM的优点包括可以处理高维数据、对于样本点的位置不敏感、具有较好的泛化性能等。
它在分类问题上的应用非常广泛,并且在文本分类、图像识别、生物信息学等领域取得了很好的效果。
然而,SVM也存在一些缺点,例如对大规模数据集的
处理效率较低、需要选择合适的核函数等。
支持向量机的概念可以通过上述的描述理解,它是一种用于分类和回归问题的机器学习算法,通过在高维空间中寻找最优的超平面来实现分类任务。
第1 2章12.1 案例背景12.1.1 SVM概述支持向量机(Support Vector Machine,SVM)由Vapnik首先提出,像多层感知器网络和径向基函数网络一样,支持向量机可用于模式分类和非线性回归。
支持向量机的主要思想是建立一个分类超平面作为决策曲面,使得正例和反例之间的隔离边缘被最大化;支持向量机的理论基础是统计学习理论,更精确地说,支持向量机是结构风险最小化的近似实现。
这个原理基于这样的事实:学习机器在测试数据上的误差率(即泛化误差率)以训练误差率和一个依赖于VC维数(Vapnik - Chervonenkis dimension)的项的和为界,在可分模式情况下,支持向量机对于前一项的值为零,并且使第二项最小化。
因此,尽管它不利用问题的领域内部问题,但在模式分类问题上支持向量机能提供好的泛化性能,这个属性是支持向量机特有的。
支持向量机具有以下的优点:①通用性:能够在很广的各种函数集中构造函数;②鲁棒性:不需要微调;③有效性:在解决实际问题中总是属于最好的方法之一;④计算简单:方法的实现只需要利用简单的优化技术;⑤理论上完善:基于VC推广性理论的框架。
在“支持向量”x(i)和输入空间抽取的向量x之间的内积核这一概念是构造支持向量机学习算法的关键。
支持向量机是由算法从训练数据中抽取的小的子集构成。
支持向量机的体系结构如图12 -1所示。
图12-1 支持向量机的体系结构其中K为核函数,其种类主要有:线性核函数:K(x,x i)=x T x i;多项式核函数:K(x,x i)=(γx T x i+r)p,γ>0;径向基核函数:K(x,x i )=exp(-γ∥x −x i ∥2), γ>0;两层感知器核函数:K(x,x i )=tanh(γx T x i+r )。
1.二分类支持向量机C - SVC 模型是比较常见的二分类支持向量机模型,其具体形式如下:1)设已知训练集:T ={(x 1,y 1),…,(x i ,y i )}∈(X ×Y )ι其中,x i ∈X =R n ,y i ∈Y ={1,-1}( i =1,2,…,ι);x i 为特征向量。
支持向量机名词解释支持向量机(SVM)是一种常见的监督学习算法,在机器学习中得到广泛应用。
它被广泛认为是一种高效、准确和可靠的模型,尤其在处理分类问题时效果显著。
本文将简单介绍SVM的一些基本概念和术语,以便理解该算法的工作原理和实现过程。
1. 支持向量支持向量是指对于已知分类的数据集,对超平面(将两类数据分开的区域)有贡献的最小数据集。
换句话说,支持向量是在SVM分类器中最重要的训练样本,它们确定了分类器的位置。
2. 超平面超平面是将不同类别的数据样本分开的一条直线、曲线或者更高维的平面,可以理解为是分类器的决策边界。
在二维空间中,超平面可以表示为一条直线,而在更高维空间中,超平面可以表示为多条直线。
3. 核函数核函数是用来将低维特征空间中的数据映射到高维特征空间的一种技术。
由于在低维空间中可能存在不可分数据样本,但在高维空间中,则可以更容易地进行分类。
SVM算法中常用的核函数有线性核函数、多项式核函数和径向基函数(RBF)核函数等。
4. 松弛变量在SVM分类器中,有一些数据点可能很难完美地分到某一类,因此引入了松弛变量,这允许一些样本被分错。
松弛变量可以限制分类器的严格性,使其更适合实际应用场景。
5. C参数C参数是SVM模型中的一个重要参数,控制了松弛变量的程度,即分类器允许多少样本分类错误。
C值越大,分类器越严格,而C值越小,则分类器允许更多的松弛变量,允许分类器在某些情况下接受错误分类。
总之,支持向量机是一种十分重要的学习算法,在机器学习任务中有着广泛的应用,本文对其进行了简要介绍。
了解这些基本概念和术语可以帮助我们理解和应用SVM算法,提高建模和预测的准确性,为未来的研究提供便利。
支持向量机概述(一)支持向量机简介支持向量机(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 ) = m2}.VC 维反映了函数集的学习能力。
一般而言,VC 维越大,学习机器越复杂。
但目前没有通用的关于任意VC 维计算的理论,只对一些特殊函数集的VC 维可以计算。
如何利用理论和实验的方法计算VC 维是当前统计学习理论中一个待研究的问题[3]。
1.2 结构风险最小化机器学习本质上是一种对问题真实模型的逼近,由于真实世界的模型往往无法精确给出,我们给出的模型与真实模型就存在一个误差,这个与真实模型之间的误差积累就叫做风险。
统计学习理论系统地研究了对于各种类型的函数集,经验风险和实际风险之间的关系,即泛化误差界。
支持向量机(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)。
支持向量机(Support Vector Machine,SVM)概述
支持向量机(Support Vector Machine,SVM)是基于统计学习理论发展起来的新一代机器学习算法,由Vapnik于1992年介绍进入机器学习领域,之后受到广泛关注。
支持向量机理论处理的是两类分类问题,对于多类分类问题,通过多个二分类模型组合构成。
SVM的基本原理是将样本映射到高维空间,然后在高维空间中构建线性分类器,寻找使分类间隔最大的最优超平面,这个特点在保证分类器在具有较好的泛化能力的同时解决了维数灾难问题。
SVM的目标是在有限样本信息下寻求学习精度和学习能力的最优解,该问题最终转化成为一个二次型寻优问题,从理论上来看,将得到全局最优解,解决了神经网络中无法避免的局部极值问题。
由于SVM具有以上多个优点,使得该算法在众多领域获得较好应用,包括图像分类,生物信息学,病虫害识别等。
下面将具体介绍SVM的原理和求解过程。
(1)线性可分的情况
给定一些样本数据,分别属于两个不同的类,标记为:{x i,y i},x i∈R d
y i∈{1,−1},i=1,2,…,n。
由于这些样本数据是线性可分的,因此,存在一个超平面H:w T∙x+b=0,可以把这两类数据正确分开。
同时存在两个平行于H的超平面H1:w T∙x+b=1和H2:w T∙x+b=−1,使得距离超平面H最近的样本分别位于H1和H2之上,这些样本称为支持向量。
而剩余其他样本都将位于H1和H2之外,即满足式(1)或式(2)的约束条件。
w T∙x i+b≥1 y i=1(1)
w T∙x i+b≤−1 y i=−1(2)
在两类分类问题中,由于表示分类标记的y i只有1和-1两个值,因此可将式(1)和式(2)合并得到式(3)
y i(w T∙x i+b)−1≥0(3)
由两个平行平面之间的距离公式可得超平面H1和H2之间的间隔为
f(w)=2
(4)
‖w‖
SVM的目标就是寻找在满足式(3)约束的同时能够把样本准确分开,并
且使H1和H2的距离最大的超平面H 。
此时,寻找最优分类超平面的问题就转化为在式(3)的约束下,求f (w )的最大值,也就是求‖w ‖2的最小值,为后续计算方便,采用等价函数12‖w ‖2替换‖w ‖2。
对于不等式约束的条件极值问题,可以用拉格朗日方法求解,其方程如式
(5)所示:
L (w,b,αi )=12‖w ‖2−∑αi (y i (w T ∙x i +b )−1)n i=1 (5) 其中αi ≥0,为拉格朗日系数。
那么我们要处理的优化问题就转换为
min w,b max αi ≥0
L (w,b,αi ) (6) (6)式是一个凸规划问题,直接求解该式比较困难,为此,将该拉格朗日函数做一个等价变换,
min w,b max αi ≥0L (w,b,αi )=max αi ≥0min w,b
L (w,b,αi ) (7) 式(7)即为对偶变换,原凸规划问题就转换为对偶问题:
max αi ≥0min w,b
L (w,b,αi ) (8) 通过(8)式计算w 和b 的偏导数,由(5)式可得
ðL (w,b,αi )ðw
=w −∑αi y i x i n i=1 (9) ðL (w,b,αi )ðb =−∑αi y i n i=1 (10)
令式(9)、(10)分别为0可得
w =∑αi y i x i n i=1 (11)
∑αi y i n i=1=0 (12)
将(11)式带入(8)式有:
max αi ≥0min w,b L (w,b,αi )=max αi ≥0{∑αi n i=1−12∑∑αi αj y i y j n j=1x i T x j n i=1} (13) 对偶问题最终转换为:
{max αi ≥0{∑αi n i=1−12∑∑αi αj y i y j x i T x j n j=1n i=1}subject to ∑αi y i n i=1=0
αi ≥0 (14)
(14)式可以直接通过数值方法计算求解。
需要指出的是,在(6)式的凸规划问题中包含了一个隐含条件,即
αi (y i (w T ∙x i +b )−1)=0 (15)
(15)式表示的意义是:如果一个样本是支持向量,则其对应的拉格朗日系数大于0,否则,其对应的拉格朗日系数等于0。
由此可知,只有支持向量对应的拉格朗日系数不为0。
求出拉格朗日系数后可通过式(11)求出w ,而阈值b 也可通过(15)式求出。
最终得到最优分类超平面H 和决策函数((16)式)。
f (x )=∑αi y i x i T x n i=1+b =∑αi y i 〈x i ,x 〉n i=1+b (16)
(16)式中〈x i ,x 〉表示向量内积。
(2) 线性不可分的情况
对于线性不可分问题,SVM 的处理方法是选择一个核函数K (x i ,x )将数据映射到高维空间,在高维空间中构建线性分类器,来解决在原始空间中线性不可分的问题。
引入核函数后决策函数的形式变为:
f (x )=∑αi y i K (x i ,x )n i=1+b (17)
目前常用的核函数如表1所示。
核函数的选择决定了特征空间的结构。
核函数的选定非常关键,它的选择好坏直接影响到算法的实现与效果。
从大量已有的研究结果来看,径向基核函数的分类效果较好。
表1 几种常用核函数
虽然引入核函数后使得原始数据再高维空间线性可分的概率大大增加,但是并不能使所有在原始空间线性不可分的问题得到解决。
为此SVM 引入非负变量ξi ,C 。
其中ξi 是松弛变量,表示对应样本点x i 偏离最优超平面的程度,C 称为惩罚系数,是已知常数,用于控制寻找最优超平面H 和使样本点偏离最优超平面程度的权重。
此时,约束条件式(3)变成
y i (w T ∙x i +b )−(1−ξi )≥0 (18)
原线性可分问题的目标函数min 12‖w ‖2变为
min 12‖w ‖2+C ∑ξi n i=1 (19)
同线性可分情况,在此构建拉格朗日函数:
L (w,b,ξi ,αi ,r i )=12‖w ‖2+C ∑ξi n i=1−∑αi (y i (w T ∙x i +b )−1+ξi )n i=1−∑r i ξi n i=1 (20)
分析方法同线性可分情况,对(20)式计算w 、b 和 ξ的偏导数并令偏导数为0,可得
w =∑αi y i x i n i=1 (21)
∑αi y i n i=1=0 (22)
C −αi −r i =0 (23)
由于r i ≥0,且C −αi −r i =0,因此有C ≥αi ,非线性问题的对偶问题最终可以写为
将式(21)带回式(20)可得目标函数:
max α∑αi n i=1−12∑∑αi αj y i y j n j=1x i T x j n i=1 (24) 线性不可分情况下的对偶问题最终转换为:
{max α{∑αi n i=1−12∑∑αi αj y i y j x i T x j n j=1n i=1}subject to ∑αi y i n i=1=0
0 ≤αi ≤C (25)
式(25)与线性可分情况下的目标函数求解方法相同。
最终的决策函数与(17)式相同。
(3) 多类分类问题
SVM 是典型的两类分类器,对于多类分类问题,SVM 有两种较常用的方法,以N 类问题为例,一种是依次将其中一类定位正样本,其余类看作是负样本,这样我们可以得到N 个两类分类器。
对于某个输入样本,其分类结果为各两类分类器输出值最大的类别。
另一种方法是从N 类中选取两类构建分类器,从而需要构建N(N-1)/2个两类分类器,最后采取投
票法确定最终分类结果。