<老古董>线性支持向量机中的硬间隔(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条件还有 ...
随机推荐
- Java连载80-数字类格式、随机数、BigDecimal
一.数字类 1.关于数字格式化:java.text.DecimalFormat; 2.数字格式元素: # 任意数字 , 千分位 . 小数点 0 不够补零 package com.bjpowernode ...
- 2.Git知识
Git安装 Git在不同的操作系统上安装是不一样的,这里只讲解我们需要的,也就是在Windows下的安装,主要安装msysGit和TortoiseGit 安装msysGit,到https://code ...
- scrapy 中没有 crawl 命令
确保两点: 1.把爬虫.py 复制到 spider 文件夹里 如 执行 scrapy crawl demo.py (spiders 中就要有 demo.py 文件) 2.在项目文件夹内执行命令 在 s ...
- 排序--选择排序Selection Sort Java实现
基本原理 选择排序的简单原理:选择排序算法通过从未排序部分重复查找最小元素(考虑升序)并将其放在开头来对数组进行排序. 将数组两个子数组: 已排序子数组 未排序子数组 选择排序中每次循环都会从未排序子 ...
- 二 SSH整合:Spring整合Hibernate,无障碍整合&无核心配置整合,Hibernate模版常用方法,
重建SSH项目 java项目可以直接复制,但是web项目除了改名字还要该配置,如下: 方式一:无障碍整合:带Hibernate配置文件 <?xml version="1.0" ...
- 有关vector元素的取地址
1--原则上,最好不要对vector的元素取地址,除非所有的vector元素已经填充完毕,这样vector的元素不会发生位置移动,地址才不会变,这样才能确保取得的地址的有效性.PS:即使在可以用已经分 ...
- ZB本地设置
(1)web.config <!--本地服务器--> <add name="connectionString" connectionString="mG ...
- java学习-初级入门-面向对象②-面向对象概述-面向对象程序设计
我们在 面向对象①中学习了,结构化程序设计. 今天我们一起学习面向对象程序设计. 学习面向对象程序设计就要了解,在面向对象中重要的知识点. 继承 . 多态 . 抽象 . 接口 我们会在接下 ...
- 090、Java中String类之判断两个int型整数是否相等
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- Lua 完美打印数据 (例子)
例子1 : ableprint = function(data,cstring,deepIndex) --第二个参数可以为空,第三个参数不要手动添加,它是用来进行打印深度控制的. if data == ...