<老古董>线性支持向量机中的硬间隔(hard margin)和软间隔(soft margin)是什么
_________________________________________________________________________________________________
The support-vector mechine is a new learning machine for two-group classification problems. The machine conceptually implements the following idea: input vectors are non-linearly mapped to a very high-dimension feature space. In this feature space a linear decision surface is constructed. Special properties of the decision surface ensures high generalization ability of the learning machine. The idea behind the support-vector network was previously implemented for the restricted case where the training data can be separated without errors. We here extend this result to non-separable training data.
High generalization ability of support-vector networks utilizing polynomial input transformations is demonstrated. We also compare the performance of the support-vector network to various classical learning algorithms that all took part in a benchmark study of Optical Character Recognition.
摘自eptember 1995, Volume 20, Issue 3, pp 273–297
_________________________________________________________________________________________________
支持向量机,上世纪流行的一种用来解决二分类问题的模型。
它可以这样理解————我们使用一组样本( ,yi)(其中y∈{-1,1},称为标签;
为一维向量,称为特征)来构建模型(训练模型)。咋说呢,借助坐标系把这些点的特征在空间中表示出来,使用两种颜色来表示y。需要寻找一个平面把这些点划分为两类。这个平面就是我们的分类器。表示出来一看呢,有的是线性可分的,有的是线性不可分的。分别如下面二图。


SVM刚诞生时遇到的问题大多都如前者,这样我们直接计算“最大间隔超平面”就ok,这个称为“线性支持向量机”,即最初的SVM;(作者————1963年,万普尼克)
后来,遇到了更多复杂的情况(如第二张图),大家希望能改进SVM,使它也能够很好地处理后者,于是把核技巧拿到了SVM上,借助核函数
将原特征向量映射到高维空间,使它可以一刀划分开来(像上面的左图),再计算“最大间隔超平面”。经过这一改进之后,SVM的泛化能力大大加强。这个称为“非线性支持向量机”。(作者————1992年,Bernhard E. Boser、Isabelle M. Guyon和弗拉基米尔·万普尼克)

_________________________________________________________________________________________________
1962年出生的线性支持向量机中有两个概念:“硬间隔”,“软间隔”。
“硬间隔”“软间隔”是概念,而不是性质。像训练数据的“线性可分”“线性不可分”就是一种性质。
如果我们的训练数据集是线性可分的,那么可以找到一个超平面将训练数据集严格地划开,分为两类(可以想象成一个平板)。我们找两个这样的超平面,它们满足1.两者平行2.两者距离最大(即下图中的两条虚线)。两个超平面上的样本x们称为”支持向量“。“最大间隔超平面”(也就是分类器)是两超平面的平均值。我们定义这两个超平面间的区域为“间隔”。在这种情况下它就是“硬间隔”。
最大间隔超平面可以表示为: W*X+b = 0
两个超平面可以分别表示为: W*X+b = 1,W*X+b = -1


对于数据线性不可分的情况(上图),我们引入铰链损失函数,
当约束条件 (1) 满足时(也就是如果 位于边距的正确一侧)此函数为零。对于间隔的错误一侧的数据,该函数的值与距间隔的距离成正比。 然后我们希望最小化(参数
用来权衡增加间隔大小与确保
位于间隔的正确一侧之间的关系)
这时的“间隔”就是“软间隔”。
总结一下,我们构建模型使用的数据集如果是严格可一刀分开的, 那么两超平面间的间隔就是“硬间隔”;如果不是严格可以一刀分开的,两超平面间的间隔就是“软间隔”。这是针对线性支持向量机而言。哈哈哈有人说了线性支持向量机都五十年前的东西了,还不如说说非线性支持向量机。进入非线性支持向量机时代后,“硬间隔”“软间隔”是对于核函数变换后的超平面而言的了。
现在对付“软间隔”我们都用“泛化”和“拟合”了,上世纪机器学习刚起步的时候可没这么多东西。可以说是冷兵器时代,如今科技发达,处理二分类问题我们可以用很多技术——逻辑回归啊,神经网络啊,各种聚类算法啊,等等。
参考:
1. https://link.springer.com/article/10.1007%2FBF00994018
2. https://en.wikipedia.org/wiki/Support-vector_machine
<老古董>线性支持向量机中的硬间隔(hard margin)和软间隔(soft margin)是什么的更多相关文章
- 5. 支持向量机(SVM)软间隔
1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...
- 支持向量机 (二): 软间隔 svm 与 核函数
软间隔最大化(线性不可分类svm) 上一篇求解出来的间隔被称为 "硬间隔(hard margin)",其可以将所有样本点划分正确且都在间隔边界之外,即所有样本点都满足 \(y_{i ...
- <老古董>1962年的线性支持向量机解法
我们说“训练”支持向量机模型,其实就是确定"最大间隔超平面". 用数学语言来说就是确定一个最优的W.好比训练一个逻辑回归模型的目的是确定最优的W和b. 输入 X,为一个n维向量 输 ...
- 支持向量机(SVM)的推导(线性SVM、软间隔SVM、Kernel Trick)
线性可分支持向量机 给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为 \[w^{\ast }x+b^{\ast }=0\] 以及相应的决策函数 \[f\le ...
- 线性可分支持向量机与软间隔最大化--SVM(2)
线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...
- SVM中的软间隔最大化与硬间隔最大化
参考文献:https://blog.csdn.net/Dominic_S/article/details/83002153 1.硬间隔最大化 对于以上的KKT条件可以看出,对于任意的训练样本总有ai= ...
- SVM支持向量机——核函数、软间隔
支持向量机的目的是寻找一个能讲两类样本正确分类的超平面,很多时候这些样本并不是线性分布的. 由此,可以将原始特征空间映射到更高维的特征空间,使其线性可分.而且,如果原始空间是有限维,即属性数量有限, ...
- 《机器学习_07_02_svm_软间隔支持向量机》
一.简介 上一节介绍了硬间隔支持向量机,它可以在严格线性可分的数据集上工作的很好,但对于非严格线性可分的情况往往就表现很差了,比如: import numpy as np import matplot ...
- 支持向量机(SVM)必备概念(凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件、KKT条件)
SVM目前被认为是最好的现成的分类器,SVM整个原理的推导过程也很是复杂啊,其中涉及到很多概念,如:凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件.KKT条件还有 ...
随机推荐
- LTE 网元功能
E-NodeB : 无线资源管理,无线承载控制.无线接入控制.连接移动性控制.UE的上下行动态资源分配 IP头压缩及用户数据流加密 UE连接期间选择MME 路由用户面数据至S-GW 寻呼消息的组织和发 ...
- request DELETE 请求
Django对于PUT/DELETE请求并没有像POST/GET那样有一个字典结构.我们需要手动处理request.body获取参数: 第一种方式: ujson.loads(request.body. ...
- jgrid异步数据加载
参考:https://blog.csdn.net/hurryjiang/article/details/7077725
- Spark教程——(4)Spark-shell调用SQLContext(HiveContext)
启动Spark-shell: [root@node1 ~]# spark-shell Setting default log level to "WARN". To adjust ...
- ch5 对链接应用样式
简单的链接样式 对链接应用样式最容易的方式是:使用锚类型选择器,例如 a {color:red;} 链接伪类选择器:1.:link:寻找没有被访问过的链接2.:visited:寻找被访问过的链接 动态 ...
- [Codeforces #615 div3]1294E Obtain a Permutation
Before the Beginniing 本文为 Clouder 原创文章,原文链接为Click,转载时请将本段放在文章开头显眼处.如进行了二次创作,请明确标明. 由本人转载于博客园. 题意分析 C ...
- luogu P2756 飞行员配对方案问题(Dinic板子)
建立一个超级源点,将每个外籍飞行员连一条capacity为1的路,一个超级汇点,每个英国飞行员也连一条capacity为1的路,根据读入在英国飞行员和外籍飞行员连接capacity为1的路,匹配方案就 ...
- js求两个整数的百分比
function GetPercent(num, total) { num = parseFloat(num); ...
- Linux下如何拷贝整个目录下的所有文件
分类: Linux使用2014-01-14 13:38 1449人阅读 评论(0) 收藏 举报 如何在Linux下拷贝一个目录呢?这好像是再如意不过的问题了.比如要把/home/usera拷贝到/mn ...
- 用sql删除数据库重复的数据的方法
/***********************************************两个意义上的重复记录:1.是完全重复的记录,也即所有字段均重复的记录,2.是部分关键字段重复的记录, ...