如何通俗的理解机器学习中的VC维、shatter和break point?
链接:https://www.zhihu.com/question/38607822/answer/149407083
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
学习VC维要先知道的概念有:增长函数(growth function)、对分(dichotomy)、打散(shattering)和断点(break point)
1.增长函数
增长函数表示假设空间H对m个示例所能赋予标记的最大可能结果数。
比如说现在数据集有两个数据点,考虑一种二分类的情况,可以将其分类成A或者B,则可能的值有:AA、AB、BA和BB,所以这里增长函数的值为4.
增长函数值越大则假设空间H的表示能力越强,复杂度也越高,学习任务的适应能力越强。不过尽管H中可以有无穷多的假设h,但是增长函数却不是无穷大的:对于m个示例的数据集,最多只能有 个标记结果,而且很多情况下也达不到的情况。
2.对分
对于二分类问题来说,H中的假设对D中m个示例赋予标记的每种可能结果称为对D的一种对分(dichotomy)。对分也是增长函数的一种上限。
3.打散
打散指的是假设空间H能实现数据集D上全部示例的对分,即增长函数=。但是认识到不打散是什么则更加重要——
有些情况下H的增长函数不可以达到对应的 值,比如说在二维实平面上的线性划分情况中,以下的情况就不可以线性可分(也就是说不能算作赋予标记的结果):
<img src="https://pic2.zhimg.com/50/v2-7492d14da3e2b248e2c4971f1937ad12_hd.jpg" data-rawwidth="287" data-rawheight="201" class="content_image" width="287">
或者下图这个
<img src="https://pic1.zhimg.com/50/v2-64faf9d2dc907120bbc9d859b35677a3_hd.jpg" data-rawwidth="271" data-rawheight="187" class="content_image" width="271">
虽然图画的非常直击灵魂,但是你应该可以体会到这种情况下二维平面的线性分类器是不可以给上面的情况分类的(事实上对于任何集合,其=16种对分中至少有一种不能被线性划分实现 )
4.Vapink-Chervonenkis Dimension
现在可以引出VC维的定义了——
假设空间H的VC维是能被H打散的最大的示例集(数据集)的大小,即有:其中 为假设空间在数据集大小为m时的增长函数。
或者有这种更平实的定义——
对于一个假设空间H,如果存在m个数据样本能够被假设空间H中的函数按所有可能的 种形式分开 ,则称假设空间H能够把m个数据样本打散(shatter)。假设空间H的VC维就是能打散的最大数据样本数目m。若对任意数目的数据样本都有函数能将它们shatter,则假设空间H的VC维为无穷大。
在上面那个4个点的图中,因为4个点的情况下以及不能做到对分,所以二维实平面上所有线性划分构成的假设空间H的VC维为3.
5.Break Point
在一些教课书中并没有提出Break Point的概念,这是林轩田《机器学习基石》公开课里的一种辅助概念。现在简单说一下break point的意义——我们希望假设空间H的增长函数越小越好(这样子假设空间比较简单),或者至少不要增长的太快——如果按照这种趋势增长那简直是没天理了。上面说道了,随着m的增大,一定会出现一个m使假设空间无法shatter。这种不满足 的情况说明增长函数从这个点开始变缓了,是一个可喜可贺的重大突破,所以我们把第一个不满足shatter的m值称为break point(这里翻译成突破点)
给个不啰嗦的定义——
If no k inputs can be shattered by H , call k a break point for H .
从这个定义上看某个假设空间H的VC维数就是最大的非break point值,也就是break point-1.
如何通俗的理解机器学习中的VC维、shatter和break point?相关推荐
- 详解机器学习中的VC维
机器学习中的经典算法SVM(支持向量机)最初是由前苏联数学家Vladimir Vapnik 和 Alexey Chervonenkis 在 1963年提出的.二人合作完成的另外一个之于机器学习的重要贡 ...
- 透彻理解机器学习中极大似然估计MLE的原理(附3D可视化代码)
文章目录 相关资料 一.什么是概率,什么是似然 二.极大似然估计 Maximum Likelihood Estimation (MLE) 的含义 2.1 机器学习中的极大化似然函数 2.2 极大似然估 ...
- 解惑(二)----- 如何通俗地理解Python中的if __name__ == ‘__main__‘
1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...
- 你真的理解机器学习中偏差 - 方差之间的权衡吗?
作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 简书地址:http://www.jianshu.com/p/f143... 我认为对偏差 - 方差之间的 ...
- [机器学习必知必会]如何理解机器学习中的正则化
正则化综述 机器学习中经常会在损失函数 中加入正则项,称之为正则化(Regularize). 目的:防止模型过拟合 原理:在损失函数上加上某些规则(限制),缩小解空间,从而减少求出过拟合解的可能性 例 ...
- (Latent Space)理解机器学习中的潜在空间
原文链接:https://zhuanlan.zhihu.com/p/369946876 搬运自 https://towardsdatascience.com/understanding-latent- ...
- 高斯过程是什么?从视觉上理解机器学习中的高斯过程——Gaussian Process
--如何将一组小型构建块转变为解决回归问题的灵活的工具. 目录 Introduction 简介 Multivariate Gaussian distributions 多元高斯分布 Marginali ...
- 深入理解机器学习中的:目标函数,损失函数和代价函数
参考知乎回答整理:https://www.zhihu.com/question/52398145 主要参考:https://www.zhihu.com/question/52398145/answer ...
- 什么事SVM中的VC维
年 9 月 23 日 在机器学习里我们常常看到这样的说法:一般而言,VC维越大, 学习能力就越强,学习也越复杂:可以通过VC维计算学习风险的上界.但进一步对VC维的介绍却不多,例如,VC维是什么?如何 ...
- 垃圾邮件分类快速理解机器学习中的朴素贝叶斯(Naive Bayes)
贝叶斯方法是一个历史悠久,有着坚实的理论基础的方法,同时处理很多问题时直接而又高效,很多高级自然语言处理模型也可以从它演化而来.因此,学习贝叶斯方法,是研究自然语言处理问题的一个非常好的切入口. 其实 ...
最新文章
- java do while变量无法赋值_Java流是否等同于具有变量赋值的while
- 【设计模式:单例模式】使用单例模式加载properties文件
- P4149-[IOI2011]Race【点分治】
- 腾讯视频如何设置缓存画质和个数
- HTML5,CSS3,JS绘制饼图
- 《金领简历》精华 创业公司 面试机会 简历
- 这么多年被第三方接入坑的那些事。。。关于md5签名和sha1证书的坑
- 一个类似百度的搜索。。。。。
- soem主站移植到rt thread smart操作系统
- AppScan介绍和安装
- 动画 | 什么是红黑树?(与2-3树等价)
- 机器学习领域著名的期刊与会议
- java中n次方怎么表示_java中的一个数的N次方
- EXCEL的COUNTIF和COUNTIFS函数的区别和联系
- 【论文笔记_对比学习_2021】CONTRASTIVE LEARNING WITH HARD NEGATIVE SAMPLES
- MarkdownPad2的使用
- HNUCM-2022年秋季学期《算法分析与设计》练习9
- JAVA一些基础概念
- PCB板的跨分割设计
- 计算机毕业设计JAVA高校体育场馆预约管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw
热门文章
- 雨果奖首设游戏奖项,Hades拿下科幻界的诺贝尔奖
- 查询水果价格c语言程序框图,浙大版《C语言程序设计(第3版)》题目集 练习3-8 查询水果价格 (15 分)...
- CentOS cp 复制隐藏文件提示 cp: cannot stat ?.xxx*?. No such file or directory
- 【期末复习】网络攻击与防御
- 杭州电子科技大学ACM-1001
- Vs code PIO一直loading
- php阴阳万年历转换的接口,用php写的阴阳万年历
- 计算机条文式求职简历范文,个人简历自我描述#40;范本)(11页)-原创力文档
- 微软官网方法制作win10u盘启动
- matlab 柯西黎曼方程,解析函数及柯西黎曼方程.ppt