对于PLA算法来说,最终得到哪一条线是不一定的,取决于算法scan数据的过程。
  
  从VC bound的角度来说,上述三条线的复杂度是一样的
  
  Eout(w)≤Ein0+Ω(H)dvc=d+1
  
  直观来看,最右边的线是比较好的hyperplane。
  
  为什么最右边的分隔面最好?
  
  对于测量误差的容忍度是最好的。例如对于每张图片中左下角的样本点,当未来要判定与该点非常接近的点(有可能它们的feature本来就是一样的,只不过因为测量的误差的存在,所以feature变得有点不同了)的label的时候,最右边的hyperplane对这些误差会有最大的容忍度。
  
  tolerate more noise ⟶ more robust to overfitting
  
  当对测量误差有更大的容忍度的时候,就能更加避免过拟合的情况出现。
  
  所以我们想要找的超平面就是能够更大的容忍测量误差的超平面。直观上来说,就是找这样的一个超平面,离这个超平面最近的点的到这个超平面的距离也是很大的。
  
  这里写图片描述
  
  “胖”分割面
  
  如下图所以,我们想要找的是“最胖”的那条线。
  
  这里写图片描述
  
  最大间隔分类超平面
  
  maxwsubject to fatness(w)w classifies every (xn,yn) correctlyfatness(w)=minn−1,⋯,N distance(xn,w)
  
  即我们要找一条线w,首先这条线要正确的划分每一个实例(w classifies every (xn,yn) correctly)。其次这条线要是最”胖”的(maxw fatness(w))。线w的”胖”的衡量方法是:到所有的点中距离最近的点的长度作为该w的fatness(胖瘦程度)。一句话:找能正确划分数据的最胖的线。
  
  fatness: 正式的表达为margin
  
  correctness: 要求yn=sign(wTxn)
  
  上述的表达可以进一步数学化为:
  
  maxwsubject to margin(w) every ynwTxn>0margin(w)=minn−1,⋯,N distance(xn,w)
  
  goal: 找最大间隔(margin)的分类超平面
  
  最大间隔问题
  
  点到超平面的距离
  
  上面提到了我们要找最“胖”的线,这里涉及到了一个距离的计算。那么怎么算一个点x到平面wTx+b=0的距离。
  
  这里写图片描述
  
  考虑在平面上的两个点x′,x′′, 那么有
  
  wTx′=−b, wTx′′=−b
  
  两式相减:
  
  wT(x′′−x′)vector www.txfenfenc11.cn on hyperplane=0
  
  所以可以得到w是该平面的法向量。(x′′−x′是该平面的任意向量,w和该平面的任意向量垂直)。
  
  那么x到平面的距离公式如下(投影):
  
  distance(x,b,w)=|wT||w||(x−x′)|=1||w|||wTx+b|
  
  其中,b,w代表平面。距离即是求x−x′在w上投影的长度。第二步化简用到wTx′=−b。
  
  到分隔超平面的距离
  
  上一节中推导了点到平面的距离计算方法,
  
  distance(x,b,w)=1||w|||wTx+b|
  
  对于我们最终想要得到的分隔超平面,我们可以得到如下的结果:
  
  yn(wTxn+b)>0
  
  那么任意一个点到分隔超平面的距离可以变为:
  
  distance(xn,b,w)=1||w||yn(wTxn+b)
  
  即我们想要做的事情变为:
  
  maxw.bsubject to margin(w,b) every yn(wTxn+b)>0margin(w,b)=minn=1,⋯,N 1||w||yn(wTxn+b)
  
  我们最终想要找的是一个hyperplane,也就是wTx+b=0(我们现在在选择它的系数w和b)。情况是这样的: wTx+b=0和3wTx+3b=0是没有什么差别的,只是进行了系数的放缩,其实是一个超平面,在二维就表示一条直线。那么在这里我们考虑一个很特别的放缩使得:
  
  minn=1,⋯,N yn(wTxn+b)=1
  
  这样的放缩总是可以做到的。这样的话:
  
  margin(w,b)=1||w||
  
  原来的问题变为:
  
  maxw.bsubject to 1||w|| every yn(wTxn+b)>0minn=1,⋯,N yn(wTxn+b)=1
  
  进一步可以变为:
  
  maxw.bs.t. 1||w|| minn=1,⋯,N yn(wTxn+b)=1
  
  条件minn=1,⋯,N yn(wTxn+b) www.wmyl11.com =1包括every www.zbcppt.com yn(wTxn+b)>0, 所以后者可以去掉。
  
  最大间隔问题
  
  我们进一步得到了描述比较简单的间隔最大化问题的需求。
  
  maxw.bs.t. 1||w|| www.caihonyule.com/ minn=1,⋯,N www.chushiyl.cn/ yn(wTxn+b)=1
  
  现在的目标是要把条件中的min操作去掉。我们将条件minn=1,⋯,N yn(wTxn+b)=1放宽至:for all n都有yn(wTxn+b)≥1。现在我们担心的问题是:原来的条件要求最小的yn(wTxn+b)等于1, 而现在要求所有的yn(wTxn+b)大于等于1。那么在新的条件下会不会正好存在这样的w使得所有的yn(wTxn+b)都大于1了,这样我们放宽条件就出了问题,因为求得的解不在满足原来的条件了。
  
  以下将证明,即使放宽了条件,最佳解依然满足
  
  反证法:
  
  如果最佳解使得所有的都是大于1的, 例如, 那么我们进行一下缩放可知也是放松后问题的解。但是此时显然比会有更大的。 所以假设:最佳解使得所有的都是大于1, 是错误的。
  
  现在问题的形式变为:
  
  变为最小为问题:
  
  支撑向量机
  
  一个特例
  
  这里写图片描述
  
  图中的样本点和信息如下:
  
  根据最优化问题的要求我们需要满足一下4个条件:
  
  根据以上的两个式子可以得到:
  
  所以我们可以令。这样的话不仅仅满足了条件,也使得target function取得了最小的值。其中b的值可以通过计算一个范围得到。这样我们就得到了我们最想要的hyperplane:。这就是我们想要找的支撑向量机。
  
  此时。
  
  这里写图片描述
  
  我们可以看到有一些离hyperplane很近的点,也就是如图用方框框起来的那些点。这些点就可以确定我们想要的hyperplane,我们把这些点叫做Support Vector。可以理解为这些支撑向量就可以确定我们想要的分割超平面,而不需要其他的点。
  
  SVM的一般解法
  
  通过分析可知,我们想要最小化的问题是个的二次函数,该问题的条件是的线性一次式。我们把这样的问题叫做二次规划(Quadratic programming)
  
  所以我们的一个解法是将我们的问题表示为二次规划的标准形式,然后就可以调用二次规划的包进行运算。
  
  标准的二次规划问题
  
  所以我们要确定其中的系数
  
  线性可分的硬间隔SVM算法
  
  使用二次规划解决SVM
  
  表示为规范的问题,
  
  return as
  
  note:
  
  hard-margin:表明我们坚持要将正例和负例完全的分开。
  
  linear:表明我们是在使用来训练SVM,我们得到的是在空间中的分割超平面。而没有经过任何的特转换
  
  所以如果我们想要一个非线性的hyperplane,可以使用

SVM学习笔记-线性支撑向量机的更多相关文章

  1. 统计学习方法:支撑向量机(SVM)

    作者:桂. 时间:2017-05-13  21:52:14 链接:http://www.cnblogs.com/xingshansi/p/6850684.html 前言 主要记录SVM的相关知识,参考 ...

  2. 8.支撑向量机SVM

    1.什么是SVM 下面我们就来介绍一些SVM(Support Vector Machine),首先什么是SVM,它是做什么的?SVM,中文名是支撑向量机,既可以解决分类问题,也可以解决回归问题,我们来 ...

  3. 走过路过不要错过 包你一文看懂支撑向量机SVM

    假设我们要判断一个人是否得癌症,比如下图:红色得癌症,蓝色不得. 看一下上图,要把红色的点和蓝色的点分开,可以画出无数条直线.上图里黄色的分割更好还是绿色的分割更好呢?直觉上一看,就是绿色的线更好.对 ...

  4. 支撑向量机(SVM)

    转载自http://blog.csdn.net/passball/article/details/7661887,写的很好,虽然那人也是转了别人的做了整理(最原始文章来自http://www.blog ...

  5. SVM支撑向量机原理

    转自:http://blog.csdn.net/v_july_v/article/details/7624837 目录(?)[-] 支持向量机通俗导论理解SVM的三层境界 前言 第一层了解SVM 1分 ...

  6. SVM学习笔记(一)

    支持向量机即Support Vector Machine,简称SVM.一听这个名字,就有眩晕的感觉.支持(Support).向量(Vector).机器(Machine),这三个毫无关联的词,硬生生地凑 ...

  7. SVM学习笔记

    一.SVM概述 支持向量机(support vector machine)是一系列的监督学习算法,能用于分类.回归分析.原本的SVM是个二分类算法,通过引入“OVO”或者“OVR”可以扩展到多分类问题 ...

  8. 模式识别笔记3-支持向量机SVM

    1. 线性SVM 对两类点的划分问题,这里对比下逻辑回归和SVM的区别: 逻辑回归的思想是,将所有点到决策平面的距离作为损失来进行训练,目标是到决策平面的距离和最小 SVM的思想是,只关注支持向量(图 ...

  9. 第11章 支撑向量机SVM

    Support Vector Machine ,  问题:如果决策边界不唯一 , , , , , , , ,  s.t.(such that):之前都是全局最优化问题,这次是有条件的最优化问题 har ...

随机推荐

  1. POJ1845

    这还是一道综合了许多数论的知识点的,做完也涨了不少姿势 但还是因为约数和公式这个鬼东西去找了度娘 题意很简单,就是求\(A^B\)的约数之和\(mod\ 9901\). 但是这种题意越是简单的题目越是 ...

  2. maven项目中 org.hibernate.MappingNotFoundException: resource:*.hbm.xml not found问题的解决方案

    是因为*.hbm.xml没有放到resource的mapper下导致的 对于Maven工程,编译的工作是由Maven程序来完成的,而Maven默认只会把src/main/resources文件夹下的文 ...

  3. hibernate 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.xxx 这类的问题

    <!-- 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.intern ...

  4. 【转载】固态硬盘的S.M.A.R.T详解

    文章来源于: 瑞耐斯存储技术 兵哥写这篇文章,是因为在测试的过程中看到了 SSD存在偶尔有性能下降的情况,经分析为S.M.A.R.T命令所导致,虽然这种情况看似不严重,但如果应用在诸如数据采集等关键性 ...

  5. Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)

    Nginx.LVS.HAProxy 是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,通常会结合Keepalive做健康检查,实现故障转移的高可用功能. 1)在四层(tcp)实现负载均衡的 ...

  6. Linux下rsyslog日志收集服务环境部署记录

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  7. PHP从入门到精通(四)

    PHP数组中的常用函数汇总 为了更直观的讲解各函数的作用和用法,方便大家的理解,首先,我们来定义一个数组.下面各函数的操作将以本数组为例: $arr = array(1,2,3,4,5,6," ...

  8. 基本的排序算法C++实现(插入排序,选择排序,冒泡排序,归并排序,快速排序,最大堆排序,希尔排序)

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/8529525.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  9. 关于第二次阅读作业中"银弹"“大泥球”等的个人理解

    这几天时间比较充裕,就一点一点的借助英语翻译(毕竟英语不好)阅读了一下老师建议的论文作品.感觉他们的思维和我们的是不在一个角度上的,在我们看来,编写代码的任务仅仅就是实现了设计文档中的功能,而这些在课 ...

  10. 对spring cloud config的一点理解

    以下部分纯属个人理解,但是结果都是经过demo验证. 一.spring cloud config介绍 spring cloud是spring家族中的一个微服务工具包,其中包含了很多微服务的工具.偏向于 ...