SVM简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

松弛变量
原来,我们的约束条件为:
现在考虑到一些特殊点,约束条件变为:
其中 称为松弛变量,对应数据点xi允许偏离的函数间隔。当然,如果松弛 变量任意大的话,那任意的超平面都是符合条件的了。所以,我们在原来的目标函数 后面加上一项,使得这些松弛变量的总和也要最小:
其中C为惩罚因子。
松弛变量
完整的式子为:
线性分类器
通过一个分类面,可以将上图中两类样本分开,平面两边数据的类别y可以 分别用1和-1表示。
线性分类器
定义一个样本点到超平面的函数间隔为:
i yi wT xi b
那么,当 所以,
,超平面关于数据集的函数间隔为其中的最小值。 ,yi同时大于0,当 , yi同时小于0。
i wT xi b = g xi
线性分类器
通俗来讲,SVM是一种二类分类模型,其基本模型定义为特征空间上的间隔最 大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题 的求解。 以右图为例,在一个二维平面内,有 两个类别的离散样本点,一条直线将两类 样本分开。 一个线性函数,如果能将样本完全正 确分开,这些数据即为线性可分。 线性函数在一维空间为一个点,二维 空间是一条直线,三维空间里是一个平面。 如果不关注维数,线性函数被统称为—— 超平面。
如果使用核函数向高维空间映射后,问题仍然是线性不可分,如图: 用黑圈圈起来的蓝点就将本来线性可分的 问题变得不可分,这个点偏离正常点很远, 可能是噪点,但是在SVM模型中,本来就只用 到了支持向量,噪点的存在影响会很大。为 了处理这种情况,SVM允许数据点在一定程度 上偏离超平面。那么,在有松弛的情况下, 其实噪点也属于支持向量,不同的支持向量 拉格朗日参数的值不同。
这个式子有这么几点要注意: 一是并非所有的样本点都有一个松弛变量与其对应。实际上只有“离群点”才有,或 者也可以这么看,所有没离群的点松弛变量都等于0。 二是松弛变量的值实际上标示出了对应的点到底离群有多远,值越大,点就越远。 三是惩罚因子C决定了你有多重视离群点带来的损失,显然当所有离群点的松弛变量 的和一定时,你定的C越大,对目标函数的损失也越大,此时就暗示着你非常不愿意放弃 这些离群点,最极端的情况是你把C定为无限大,这样只要稍有一个点离群,目标函数的 值马上变成无限大,马上让问题变成无解。 四是惩罚因子C不是一个变量,整个优化问题在解的时候,C是一个你必须事先指定的 值。
现在把w和b进行一下归一化,即用w/||w||和b/||w||分别代替原来的w和b,那么 间隔就可以写成
i
这个式子正好是解析几何中,点xi到直线 g ( x)=0 的距离公式,推广一下,那么 就是样本点xi到分类超平面 g ( x)=0 的距离。
1 g xi w
线性分类器
当用归一化的w和b代替原值之后的间隔有一个专门的名称,叫做几何间隔, 几何间隔所表示的正是点到超平面的欧氏距离。以上是单个点到某个超平面的距 离定义,同样可以定义一个点的集合(就是一组样本)到某个超平面的距离为此 集合中离超平面最近的点的距离。下面的图更加直观的展示出了几何间隔的现实 含义:
按照间隔的定义,满足这些条件就相当于让下面的式子总是成立:
yi wT xi b 1, 2,3..n,n为样本总数 i=1,
因此我们的两类分类问题也被我们转化成了它的数学形式,一个带约束的最小值 的问题:
1 min w 2
2
subject to 因此,满足上面公式的分类面就是最优分类面,过在平行于分类面的的超平面 H1和H2上的训练样本,即使得上式等号成立的训练样本,称为支持向量。
但是,我们可以找到一条曲线,如右图, 它的函数表达式为:
g ( x) c0 c1x c2 x2
核函数
问题是,这个函数并不是一个线性函数,但是,如果新建向量, y=[y1;y2;y3]=[1;x;x2] α =[α 1; α 2; α 3]=[c0;c1;c2] 这样g(x)就可以转化为f(y)=<a,y>= ay ,在任意维度的空间中,这种形式的函数 都是一个线性函数(只不过其中的a和y都是向量罢了)。 原来在二维空间中一个线性不可分的问题,映射到四维空间后,变成了线性可分 的!因此这也形成了我们最初想解决线性不可分问题的基本思路——向高维空间转化, 使其变得线性可分。 那么,是否可以找到一种映射,将输入空间映射到高维特征空间,最终在高维特 征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开呢? 对于非线性的情况,SVM 的处理方法是选择一个核函数 ,通过将数据映射到高 维空间,来解决在原始空间中线性不可分的问题。
g ( x) i yi K xi,x b
i 1
n
因此,尽管给出线性不可分的问题,通过选定核函数,就可以当做线性分类器 使用。
核函数
• • •
用不同核函数可以导致不同的支持向量机,常用的几种核函数有: 线性核函数
多项式核函数 高斯核函数(径向基核函数)

Sigmoid核函数
松弛变量
线性分类器的解
为什么非支持向量对应的等于零呢?直观上来理解的话,就是这些“后方”的 点——正如我们之前分析过的一样,对超平面是没有影响的,由于分类完全有超平面 决定,所以这些无关的点并不会参与分类问题的计算,因而也就不会产生任何影响了。 计算过程中,通过 Lagrange multiplier得到的目标函数:
线性分类器
假设有一个线性函数:
g ( x) wT x b
我们可以取阈值为0,如果有一个样本 需要判别 ,如果 g ( xi ) 0 ,判断该样本属于类别C1,如果 g ( xi ) 0 ,判断该样本属于类别C2,等于的时候就拒 绝判断。 于是,图中中间那条直线就可以表达为 g ( x)=0 T ,即 w x b=0,这个函数也被叫分类面。 但是,很容易看出,中间那条分界线并不是唯一的,只要稍微旋转一下,仍 然可以正确分类两类数据,或者,稍微平移一下。 通常使用叫做“分类间隔”的指标来找到最优分类面。
g ( x) w, x b
是无法进行正确分类的,那么就按照某种映射,将x映射为φ (x) ,以同样的 映射,将w映射为φ (w) ,那么得到线性函数:
g ( x ) w , x b
它可将原问题可分。但是,如果先将数据映射到高纬空间,再进行内积计算, 可能导致维数灾难,所以引进核函数来简化映射空间中的内积运算(先内积,再用核 函数计算使得结果与上式结果相同,高维空间的内积运算转化为低维输入空间的核函 数计算)即分类函数为:
松弛变量
并不是每一个松弛变量都必须使用相同的惩罚因子C,可以对不同利群点采用 不同的C值,来表明样本的重视程度。重要的样本C就取大点,反之取小点。 对付数据集偏斜问题的方法之一就是在惩罚因子上作文章,那就是给样本数量 少的负类更大的惩罚因子,表示我们重视这部分样本(因此我们的目标函数中因松 弛变量而损失的部分就变成了:
注意到如果 xi 是支持向量的话,上式中红颜色的部分是等于0的(因为支持向量 的函数间隔等于1,而对于非支持向量来说,函数间隔会大于1,因此红颜色部分是大 于零的,而又α i是非负的,为了满足最大化,α i必须等于0。这也就是这些非支持向 量的点的局限性。
核函数
之前一直在讨论的线性分类器, 只能对线性可分的样本做处理。如果提供的样本 线性不可分,结果很简单,线性分类器的求解程序会无限循环,永远也解不出来。这 必然使得它的适用范围大大缩小,而它的很多优点我们实在不原意放弃,怎么办呢? 是否有某种方法,让线性不可分的数据变得线性可分呢? 举个例子,我们把横轴上a点到b点间的红色部分里的所有点定为正类,两边黑色 部分定为负类,那么显然找不到一个线性函数,即一条直线(二维空间的线性函数) 将其分开。
SVM的多分类
SVM是一种典型的两类分类器,但现实中要解决的往往是多分类问题。 几种方法: •一对多方法(One-Against-The-Rest):如果有k类,在某一类和其他k-1类间建立 超平面,建立k个SVM分类器,每个SVM分类器将某一类的数据从其他类的数据中鉴 别出来,但是,有“数据集偏斜”问题,而且每次训练都用到了所有样本。 •一对一方法(One-Against-One):为任意两个类构建超平面,即k类需要训练k* (k-1)/2个SVM分类器,测试时采用投票,投票类别最多的为测试类别,但是如果 k太大,训练和决策时就会很耗时; •SVM决策树(SVM Decision Tree):将SVM与二叉树结合,构成多类分类器,形似 有向无环图,也叫DAG SVM。缺点是,如果某个节点出错,那么错误就会在后续节 点延续。
C i Ci 1
p
j p 1

pq
j
i 0
其中i=1„p都是正样本,j=p+1„p+q都是负样本。libSVM这个算法包在解决偏 斜问题的时候用的就是这种方法。 那C+和C-怎么确定呢?它们的大小是试出来的(参数调优),但是它们的比例 可以有些方法来确定。咱们先假定说C+是5这么大,那确定C-的一个很直观的方法 就是使用两类样本数的比来算。
yi wT xi b -1 0, 2,3...n,n为样本总数 i=1,
线性分类器的解
求解上述的约束优化问题是一个二次凸规划问题,由于目标函数和约束条件都是 凸的,根据最优化理论,这一问题存在全局最小解。 应用Lagrange乘子法并满足KKT条件(Karush-Kuhn-Tucher),求得
核函数
在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函 数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面, 从而把平面上本身不好分的非线性数据分开。如图所示,一堆数据在二维空间无法划 分,从而映射到三维空间里划分:
核函数
如果原始数据是不可线性划分的,按照公式:
1 即 最大,也就是,min w 。 w
实际上,对于这个目标函数,经常利用另一个完全等价的函数代替:
1 2 min w 。 2
线性分类器的解
很容易看出当||w||=0的时候就得到了目标函数的最小值。反映在图中,就是H1 与H2两条直线间的距离无限大,这个时候,所有的样本点(无论正样本还是负样本) 都跑到了H1和H2中间。所有的样本都不可分了。
对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度 也越大。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大 化这个“间隔”值。
线性分类器的解
选择一个最优分类超平面的问题,即最大化几何间隔的问题:
几何
1 g x w
固定间隔
g ( x) =1 (即超平面的函数间隔),那么要使几何间隔最大化,
w i yi xi
i 1
n
因此,分类函数为:
g ( x) i yi xi, x b
i 1
n
对于新点 x的预测,只需要计算它与训练数据点的内积即可(表示向量内积), 此外,所谓 Supporting Vector 也在这里显示出来——事实上,所有非Supporting Vector 所对应的系数α 都是等于零的,因此对于新点的内积计算实际上只要针对少 量的“支持向量”而不是所有的训练数据即可。
支持向量机简介 (support vector machine)
苏志铭 2015.5.20
Outline
• • • • • • • SVM简介 线性分类器 线性分类器求解 核函数 松弛变量 SVM的多分类 总结
SVM简介
支持向量机,因其英文名为support vector machine,故一般简称SVM, 支持向量机是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性 及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机 器学习问题中。 支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基 础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度, Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷, 以期获得最好的推广能力。 VC维:对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越 高,一个问题就越复杂。 结构风险:结构风险为经验风险与置信风险之和。经验风险,代表了分类器 在给定样本上的误差;置信风险,代表了我们在多大程度上可以信任分类器在未 知文本上分类的结果。
造成这种结果的原因是在描述问题的时候只考虑了目标,而没有加入约束条件, 约束条件就是在求解过程中必须满足的条件,体现在我们的问题中就是样本点必须在 H1或H2的某一侧(或者至少在H1和H2上),而不能跑到两者中间。我们前文提到过把 间隔固定为1,这是指把所有样本点中间隔最小的那一点的间隔定为1。
线性分类器的解
相关文档
最新文档