参考链接:

1.https://blog.csdn.net/TaiJi1985/article/details/75087742

2.李航《统计学习方法》7.1节 线性可分支持向量机与硬间隔最大化

3.https://zhuanlan.zhihu.com/p/45444502,第三部分 手推SVM

本文目标:理解SVM的原始目标,即间隔最大化,并将其表示为约束最优化问题的转换道理。

背景知识:假设已经知道了分离平面的参数w和b,函数间隔γ',几何间隔γ,不懂的可以参考书本及其它。

为了将线性可分的数据集彻底分开,并分得最好,SVM的原始目标是找到一个平面(用w,b表示,二维数据中是一条直线,如下图所示),使得该平面与正负两类样本的最近样本点的距离最大化。简单的说,就是任给一个平面w,b,总有一个样本点离它的距离最近(点到平面的距离,可以用来表示),过该样本点作平行于分割平面的平面,两个平面形成分隔带。我们的目标是比较各种平面(无数个),找出一个平面使得“分隔带最胖”。那么如何来表述“分隔带最胖”呢?

(引自参考链接1)

对于平面w,b来说,假设距离平面最近的点是,又由于该平面w,b可以将所有样本点正确分类,即满足,因此我们可以将上述最近点到平面w,b的距离改写为,其中取值为+1或-1。因此我们的目标就是最大化,注意该式子中已经是离超平面w,b最近点了,称为γ超平面w,b关于训练数据集T的几何间隔

因此我们的原始问题:求得一个几何间隔最大的分离超平面,可以表示为下述约束最优化问题:

重要问题一:为何会出现第二行中的约束条件?

有了这N个约束条件,好像w,b的可选范围小了很多,跟一开始单纯的最大化几何间隔的任意选w,b有所背离啊?等等,这儿需要注意的是,一开始我们目标是最大化几何间隔,这个几何间隔其实是所有样本点的几何间隔中最小值,而所有样本点的几何间隔有可能是正数(被正确划分),也有可能是负数(被错分)。但是我们一开始讨论最大化几何间隔的时候已经默认平面w,b把训练集T中的所有样本点都正确分类了,只有这样我们才会要求“分隔带最胖”啊,如果有错分的,那分隔带越胖就越不好了。因此满足将所有样本点都正确分类的w,b本来就没多少(限制在一定的范围内了,虽然还是有无数种可能),所以原本我们就要求w,b满足,而且还得要求如下,

,以保证之前是离超平面w,b最近点的设定

重要问题二:能否对约束最优化问题进行简化?因为目前来看被优化的目标函数γ跟w,b和都有关系,有点不简洁。

解决思路是,对于任意的平面w,b,其实都有无数组参数(λw,λb)λ不为0,都表示该平面。因此我每次选到一个w,b,就相应的知道了最近点(最近点其实是依赖于w,b的,称为支持向量,个人理解也可以称作支持样本点),我都缩放一下w,b,使得函数间隔γ'=1,即:

。注意到,缩放w,b前后,其所代表的平面是同一个超平面;而且缩放w,b对于目标函数γ毫无影响,因为其分子分母都是缩放相同的倍数;再者,约束条件的不等号两边都是同时缩放相同的倍数,也无影响。因此,如果我们采用枚举法来求解上述最优化问题(为直观理解,其实是枚举不完的),每次我们随机考察一个平面(w,b),我们都缩放为(w',b')=(λw,λb),使得函数间隔γ'=1,那么我们依旧在考察同一个平面,依旧能算出和缩放前一样的目标函数γ值,依旧符合同样的约束条件。这么处理(特定缩放)有何好处呢?通过这样的处理,我们把约束最优化问题可以转化为如下形式:

如此形式,简洁明了多了。再者我们可以将max变为min,最大化与最小化是等价的,就得到了如下线性可分支持向量机学习的最优化问题:

PS:

为加深上述重要问题二的理解,我们可以举一个例子来验证它。

假设有A,B两种w,b的方案,A平面的支持向量(最近点),B平面的支持向量,我们来比较A,B方案的优劣。

     1)首先在原始目标函数下,得到两个平面的γ如下:

  我们假设,那么我们换种思路来比较A方案与B方案,看看结果是否一致。

   2)令,注意到在给定平面A的情况下这是一个数(其实就是平面A关于训练集T的函数间隔)。

     我们令缩放为,则

   同理,对于平面B,我们可以将缩放为,则

     现在我们通过比较来确定哪个方案更好,是A还是B?

所以我们发现结果是一致的,A优于B,而且目标函数值也与原目标函数值一致。至此,我们验证了准确性,直观感受了w,b缩放前后目标函数值的不变性。

SVM中的间隔最大化的更多相关文章

  1. SVM中为何间隔边界的值为正负1

    在WB二面中,问到让讲一下SVM算法. 我回答的时候,直接答道线性分隔面将样本分为正负两类,取平行于线性切割面的两个面作为间隔边界,分别为:wx+b=1和wx+ b = -1. 面试官就问,为什么是正 ...

  2. 5. 支持向量机(SVM)软间隔

    1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...

  3. SVM中的软间隔最大化与硬间隔最大化

    参考文献:https://blog.csdn.net/Dominic_S/article/details/83002153 1.硬间隔最大化 对于以上的KKT条件可以看出,对于任意的训练样本总有ai= ...

  4. SVM 推到期间 遇到的 表背景知识 (间隔最大化)

    背景,在看原理的时候,发现很多地方一知半解的,补充如下. 其他补充: 注:以下的默认为2分类 1.SVM原理: (1)输入空间到特征空间得映射 所谓输入空间即是输入样本集合,有部分情况输入空间与特征空 ...

  5. 线性可分支持向量机与软间隔最大化--SVM(2)

    线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...

  6. svm中的数学和算法

    支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出很多特有的优势,并可以推广应用到函数拟合等其它 ...

  7. 支持向量机(SVM)的推导(线性SVM、软间隔SVM、Kernel Trick)

    线性可分支持向量机 给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为 \[w^{\ast }x+b^{\ast }=0\] 以及相应的决策函数 \[f\le ...

  8. [机器学习]SVM---硬间隔最大化数学原理

    注:以下的默认为2分类 1.SVM原理: (1)输入空间到特征空间得映射 所谓输入空间即是输入样本集合,有部分情况输入空间与特征空间是相同得,有一部分情况二者是不同的,而模型定义都是定义到特征空间的, ...

  9. [机器学习&数据挖掘]SVM---软间隔最大化

    根据上个硬间隔最大化已经知道,在解决线性可分数据集的分类问题时,求得拉格朗日乘子.w.b就得到分离超平面,然后就可以进行分类,软间隔最大化是针对非线性可分的数据集,因为并不是数据集在可分的时候会出现一 ...

随机推荐

  1. 【Leetcode】【Easy】Remove Duplicates from Sorted List

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  2. OFBiz部署与运行

    下载及部署命令:http://ofbiz.apache.org/download.html OFBiz的安装部署是基于ant的,官网的案例是执行load-demo任务和start任务.以下分析是以12 ...

  3. NO.002-2018.02.07《越人歌》先秦:佚名

    参考之后略有修改,疑问点“不訾诟耻”释义 越人歌原文.翻译及赏析_古诗文网 蒙羞被好兮不訾诟耻_释义_吴江诗词网   越人歌 先秦:佚名 今夕何夕兮,搴舟中流.今晚是怎样的晚上啊河中漫游.搴(qiān ...

  4. HDU 2647 拓扑排序

    题意:每个人的工资至少888,然后有m个条件,前者比后者要多.求最少工资. 分析: 最开始的开邻接矩阵的肯定超时,如果dfs,会出现由于刚开始不是从入度为0的点出发,后期修改不了.比较麻烦. 正确方式 ...

  5. 百度提供的LBS服务

    并不是所有 LBS 云服务 都可以使用 js Ajax 访问,涉及跨域问题 (Jsonp 方式解决)Jsonp 解决跨域问题原理,在页面生成<script> 加载远程 js 代码片段.在L ...

  6. Spring 声明式事务管理方式

    声明式事务管理,基于AOP对目标代理,添加环绕通知,比编码方案优势,不具有侵入式,不需要修改原来的代码. 1.基于XML配置的声明式事务管理方案(案例)      接口Service public i ...

  7. 用js写三级联动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. ROS编译工作区缺少cv_bridge的问题解决

    cv_bridge是OpenCV与ROS之间的格式转换桥梁,编译工作区时遇到报错(目标不存在),直接将cv_bridge包复制到指定的目录即可. 下载地址:https://github.com/ros ...

  9. Oracle数据库对象,同义词、序列、视图、索引

    数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...

  10. python 并发编程之多线程

    一.线程理论 1.什么是线程 ​ 多线程(即多个控制线程)的概念是,在一个进程中存在多个线程,多个线程共享该进程的地址空间,相当于一个车间内有多条流水线,都共用一个车间的资源. 所以,进程只是用来把资 ...