支持向量机(support vector machines, SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问。支持向量机的学习算法是求解凸二次规划的最优化算法。

支持向量机学习模型:线性可分支持向量机(linear support vector machine in linearly separable case )、线性支持向量机(linear support vector machine)及非线性支持向量机(non-linear support vector machine)。学习方法包括:硬间隔最大化(hud margin maximization)、软间隔最大化(soft margin maximization)、核技巧(kernel trick)。通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机。这样的方法称为核技巧(kernel trick)

7.1 线性可分支持向量机与硬间隔最大化

定义7.1 (线性可分支持向量机):给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为

以及相应的分类决策函数

称为线性可分支持向量机.

函数间隔和几何间隔

定义7.2(函数间隔  functiona lmargin):对于给定的训练数据集T和超平面(w, b),定义超平面关于样本点(xi, yi)的函数间隔为

定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(xi, yi)的函数间隔之最小值,即

函数间隔可以表示分类预测的正确性及确信度。但是成比例地改变w和b,例如将它们改为2w和2b,超平面并没有改变,但函数间隔却成为原来的2倍。

对分离超平面的法向量、加某些约束,如规范化,||w||=1,使得间隔是确定的。这时函数间隔成为几何间隔。

定义7.2(几何间隔 geometric margin):对于给定的训练数据集T和超平面(w, b),定义超平面关于样本点(xi, yi)的函数间隔为

定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(xi, yi)的函数间隔之最小值,即

函数间隔和几何间隔的关系:

如果超平面参数w和b成比例地改变(超平面没有改变),函数间隔也按此比例改变,而几何间隔不变。

间隔最大化

支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化。

间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类,也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。

线性可分支持向量机的学习算法——最大间隔法(maximum margin method)。

定理7.1 (最大间隔分离超平面的存在唯一性):若训练数据集z线性可分,则可将训练数据集中的样本点完全正确分开的最大间隔分离超平面存在且唯一。

支持向量和间隔边界

在线性可分情况下,训练数据集的样本点中与分离超平面跄离最近的样本点的实例称为支持向量( support vector )。支持向量是使约束条件式等号成立的点,即

对yi=+1的正例点,支持向量在超平面

对yi=-1的负例点,支持向量在超平面

下图中在H1和H2上的点就是支持向量

H1和H2之间的距离称为间隔(margin)。间隔依赖于分离超平面的法向量w,等于2/||w||。H1和H2称为间隔边界.

在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。如果移动支持向量将改变所求的解;但是如果移动其他实例点,甚至去掉这些点,则解是不会改变的。由于支持向量在确定分离超平面中起决定性作用,所以将这种分类模型称为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本确定。

学习的对偶算法(dual algorithn)

构建拉格朗日函数(Lagrange function),引进拉格朗日乘子(Lagrange multiplier):

根据拉格朗日对偶性,原始问题的对偶问题是拉格朗日函数的极大极小问题

定理7.2:设a*是对偶最优化问题的解,则存在下标j使得aj* >0,并可按下式求得原始最优化问题的解:

算法7.2(线性可分支持向量机学习算法)

定义7.4(支持向量):将训练数据集中对应于ai*>0的样本点(xi, yi)的实例xi称为支持向量。支持向量一定在间隔边界上。

7.2 线性支持向量机与软间隔最大化

针对线性不可分训练数据:

线性不可分意味着某些样本点不能满足函数间隔大于等于1的约束条件,为了解决这个问题,可以对每个样本点引进一个松弛变量,约束条件变为:

线性不可分的线性支持向量机的学习问题变成凸二次规划(convex quadratic progamming )问题(原始问题):

定义7.5(线性支持向量机):对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,即软间隔最大化问题。得到的分离超平面为

以及相应的分类决策函数

称为线性支持向量机.

学习的对偶算法(dual algorithn) :拉格朗日函数

通过求解对偶问题得到

定理7.3:设a*是对偶最优化问题的一个解,则存在一个分量0<aj* <C,可得原始最优化问题的解:

算法7.3(线性支持向量机学习算法)

支持向量

线性不可分的情况下,将对偶问题的解a*中对应于aj* > 0的样本点(xi,yi)的实例xi称为支持向量(软间隔的支持向量)。

软间隔的支持向量xi或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。

若a*<C,则约束,支持向量xi恰好落在间隔边界上;

若a*<C,0<约束<1,则分类正确,xi在间隔边界与分离超平面之间;

若a*<C,约束=1,则xi在分离超平面上:

若a*<C,约束>1,则xi位于分离超平面误分一侧.

合页损失函数

线性支持向量机学习还有另外一种解释,就是最小化以下目标函数

目标函数的第1项是经验损失或经验风险,函数

称为合页损失函数(hinge loss ftmction)

定理7.4 线性支持向量机原始最优化问题等价于最优化问题:

合页损失函数不仅要分类正确,而且确信度足够高时损失才是0。

7.3 非线性支持向量机与核函数

核技巧 
非线性分类问题:如果能用Rn中的一个超曲面将正负例正确分开,则称这个问题为非线性可分问题.

求解方法:进行非线性变换,将非线性问题变成线性问题。

核技巧应用到支持向量机,其基本想法就是通过一个非线性变换将输入空间(欧氏空间Rn或离散集合)对应于一个特征空间(希尔伯特空间H),使得在输入空间Rn中的超曲面模型对应于特征空间H中的超平面模型(支持向量机)。

定义7.6(核函数)设X是输入空间,H为特征空间,如果存在一个映射映射函数

使得对所有属于X的x,z,函数K(x,z)满足条件

则称K(x,z)为核函数。

核技巧的想法是,在学习与预测中只定义核函数K(x,z),而不显式地定义映射函数。对于给定的核K(x,z),特征空间x和映射函数的取法并不唯一,可以取不同的特征空间,即便是在同一特征空间里也可以取不同的映射。

核技巧在支持向量机中的应用

在对偶问题的目标函数中的内积(xi*xj)可以用核函数K(xi, xj)来代替:

分类决策函数也可用核函数代替,变为:

这等价于经过映射函数将原来的输入空间变换到一个新的特征空间,将输入空间中的内积(xi*xj)变换为特征空间中的内积。在新的特征空间里从训练样本中学习线性支持向量机。当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型。

在核函数给定的条件下,可以利用解线性分类问题的方法求解非线性分类问题的支持向量机。学习是隐式地在特征空间进行的,不需要显式地定义特征空间和映射函数。这样的技巧称为核技巧。

正定核(positive definite kernel function)的充要条件

定理7.5(正定核的充要条件) 设K:X*X->R是对称函数,则K(x,z)为正定核函数的充要条件是对任意xi属于X,i=1,2,... ,m,  K(x,z)对应的Gram矩阵

是半正定矩阵.

定义7.7 (正定核的等价定义)

设X包含于Rn,K(x,z)为定义在X*X上的对称函数,如果对任意xi属于X,i=1,2,... ,m,  K(x,z)对应的Gram矩阵

是半正定矩阵,则称K(x,z)是正定核。

常用核函数

(1) 多项式核函数(polynomial kernel function)

对应的支持向量机是一个P次多项式分类器.在此情形下,分类决策函数成为

(2)高斯核函数(Gaussian kernel  function)

对应的支持向量机是一个高斯径向基函数( radial basis function )分类器.在此情形下,分类决策函数成为

(3)字符串核函数(string kernel function)

核函数不仅可以定义在欧氏空间上,还可以定义在离散数据的集合上。比如,字符串核是定义在字符串集合上的核函数。

两个字符串s和t上的字符串核函数是基于映射

的特征空间中的内积

字符串核函数气kn(s, t)给出了字符串s和t中长度等于n的所有子串组成的特征向量的余弦相似度(cosine similuity)。直观上,两个字符串相同的子串越多,它们就越相似,字符串核函数的值就越大。字符串核函数可以由动态规划快速地计算。

非线性支持向量分类机

定义7.8 (非线性支持向量机) 从非线性分类训练集,通过核函数与软间隔最大化,或凸二次规划,学习得到的分类决策函数

称为非线性支持向量,K(x,z)是正定核函数


7.4 序列最小最优化算法(sequential minimal opfimization,SMO)

SMO算法要解如下凸二次规划的对偶问题:

SMO算法是一种启发式算法,其基本思路是:如果所有变量的解都满足此最优化问题的KKT条件(Karush-Kuhn-Tucker conditions),那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充分必要条件。否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题。这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小。重要的是,这时子问题可以通过解析方法求解,这样就可以大大提高整个算法的计算速度。子问题有两个变量,一个是违反KKT条件最严重的那一个,另一个由约束条件自动确定。如此,SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。

整个SMO算法包括两个部分:求解两个变量二次规划的解析方法和选择变量的启发式方法.

两个变量二次规划的求解方法

不失一般性,假设选择的两个变量是a1,a2,其他变量ai (i=3,4, ..., N)是固定的。SMO的最优化问题的子问题可以写成:

假设初始可行解为a1old和a2old,最优解为a1new和a2new,满足

L与H是a2new所在的对角线段端点的界

如果y1 != y2,

如果y1 = y2,

根据约束条件,有

引入记号,

代入到最优化问题中,有

这样,通过对W进行求导可以得到

定理7.6 最优化问题沿着约束方向未经剪辑时的解是

 经剪辑后的解是

变量的选择方法

第1个变量的选择

SMO称选择第1个变量的过程为外层循环。外层循环在训练样本中选取违

反KKT条件最严重的样本点,并将其对应的变量作为第1个变量。具体地,检

验训练样本点(xi,yi)是否满足KKT条件,即

该检验是在范围内进行的。在检验过程中,外层循环首先遍历所有满足条件的样本点,即在间隔边界上的支持向量点,检验它们是否满足KKT条件。如果这些样本点都满足KKT条件,那么遍历整个训练集,检验它们是否满足KKT条件。

第2个变量的选择

SMO称选择第2个变量的过程为内层循环。假设在外层循环中已经找到第1个变量a1,现在要在内层循环中找第2个变量a2。第2个变量选择的标准是希望使a2有足够大的变化.

由定理7.6可知a2是依赖于|E1-E2|的,为了加快计算速度,一种简单的做法是选择a2使其对应的|E1-E2|最大。因为a1已定,E1也确定了。如果E1是正的,那么选择最小的Ei作为E2;如果E1是负的,那么选择最大的Ei作为E2。在特殊情况下,如果内层循环通过以上方法选择的a2不能使目标函数有足够的下降,那么采用以下启发式规则继续选择a2。遍历在间隔边界上的支持向量点,依次将其对应的变量作为a2试用,直到目标函数有足够的下降。若找不到合适的a2,那么遍历训练数据集;若仍找不到合适的a2,则放弃第1个a1,再通过外层循环寻求另外的a1

计算阈值b和差值Ei

由变量选择的检验条件可得,

如果

如果

如果a1new和a2new同时满足条件那么。如果a1new和a2new是0或者C,那么b1new和b2new以及它们之间的数都是符合KKT条件的阈值,这时选择它们的中点作为bnew

Ei值的更新要用到bnew值,以及所有支持向量对应的aj

其中S是所有支持向量xj的集合

转载于:https://www.cnblogs.com/ylHe/p/10488023.html

复习支持向量机(SVM)没空看书时,掌握下面的知识就够了相关推荐

  1. 突然感到很无聊当没有看书时

    今天星期五,按常规是该看书的.可.............. 教室被人占了, 去计算机室,明天考试,准备计算机室 只好心情很烦的回了. 现在第一次感到自己没有去看书是多么烦的一件事啊!!! 转载于:h ...

  2. 以前看书时记得一些笔记(二),很早了,现在再看都有些看不懂了

    MFC学习: 1.CObject类为MFC总类,该类下面有一个重要的类CCmdTarget.而CCmdTarget类下面又有四个重要的继承类,分别为:CWinThread.CDocument.CDoc ...

  3. 985硕博导师:如果你没空看书,我强烈建议你做这件事

    昨天在微博上看到一个网友的投稿: 研三了,我经常陷入自我怀疑,感觉就是骑虎难下. 句句扎心,路过的研究僧们都在评论里抱团宣泄. 考研难,读研难,毕业后更难! 刚入学时,很多人被导师的光环所吸引.然而现 ...

  4. 如果你没空看书,至少看看这里

    点击蓝字  可快速关注 面对海量信息,我们不可能有时间去一一筛选,导致我们看到的总是局部.包括公众号,看似可以随便关注,但是你的选择其实是有限空间的.你可以关注更多资讯.干货十足的公号主动和别人分享有 ...

  5. 关于《指针的艺术》看书时所遇到的问题

    2011年1月5号 指针与结构体 struct person { char *name; // 姓名 char address[30]; // 家庭地址 int height; // 身高 struc ...

  6. 10x 程序员工作法 - 总复习 | 重新来“看书”

    1.应用场景 主要用于总复习 | 重新来"看书-10x 程序员工作法 2.学习/操作 1.文档阅读 总复习 | 重新来"看书"-极客时间 2.整理输出 原文 我们继续复习 ...

  7. 心情平静时看书,还是看书得到平静

    之前一直认为,只有心平气和的时候,才适合看:心若焦躁不安,精神不集中,是不能看书的,这时看书的效果不好,达不到看书的目的. 这里的平静,有两个方面.一是环境的安宁.无法想象如果处于嘈杂的场所,人还怎么 ...

  8. 支持向量机SVM(三)软间隔与松弛变量的替代损失函数

    前两篇关于SVM的讨论中,我们只讨论了样本在原始空间和特征空间中线性可分的情况,但是,现实不可能这么完美,就算真的被找到了,但是世上没有免费的午餐,最后的结果很可能过拟合了. 所以要来讨论一下,怎么付 ...

  9. 统计学习方法|支持向量机(SVM)原理剖析及实现

    欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...

最新文章

  1. (转)C#开发微信门户及应用(4)--关注用户列表及详细信息管理
  2. 回首向来萧瑟处,也无风雨也无晴~小祁的2018
  3. ABAP:List中回写CheckBox的值到内表
  4. 信息系统项目管理师-项目合同管理核心知识点思维脑图
  5. hibernate报错 net.sf.json.util.CycleDetectionStrategy$StrictionStrategyRepeatedReferenceAsObject
  6. linux 搭建任务队列集群,beanstalkd任务队列 linux平台安装测试
  7. 使用 Redis 实现自动补全功能
  8. 关联查询objectid_SAP 删除的BOM如何查询呢?
  9. paip.IIS 7.5 应用程序池,应用程序以及虚拟目录的存储位置
  10. cad通过钢筋大样生成钢筋明细表插件_常青藤钢筋工具系统
  11. 西南科技大学OJ45 分数求和
  12. python螺旋输出矩阵_Python实现打印螺旋矩阵功能的方法
  13. 如何使用MISRA改进嵌入式编程
  14. 2019426 SPSS入门学习
  15. [转]周易入门三十五问答
  16. Unirech腾讯云国际版-使用腾讯云服务器手动建立WordPress 个人站点Linux系统教程
  17. 计算机文档加密如何解锁,电脑提示文档已被administrator锁定怎么办
  18. 开始做一个简单的记账工具
  19. 明日之后怎么跳过实名认证_明日之后新手视频攻略如何跳过 明日之后新手教程内容说明...
  20. [ Linux ] 可重入函数,volatile 关键字,SIGCHLD信号

热门文章

  1. BZOJ 3244: [Noi2013]树的计数
  2. 高级软件工程第九次作业:东理三剑客团队作业-随笔2
  3. 三、单一职责原则、开放-封闭原则、依赖倒转原则
  4. 防火墙及其功能(转)
  5. 提升我的工作效率(一)--常用的快捷键
  6. 函数①函数声明与表达式
  7. Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现
  8. win7下安装IIS7.0及部署VS2010 ASP.NET程序网站的相关问题
  9. linux 基础 文件系统 用户权限
  10. awk -f 分隔符 命令_千面 awk