有关于VC维可以在很多机器学习的理论中见到,它是一个重要的概念。在读《神经网络原理》的时候对一个实例不是很明白,通过这段时间观看斯坦福的机器学习公开课及相关补充材料,又参考了一些网络上的资料(主要是这篇,不过个人感觉仍然没有抓住重点),重新思考了一下,终于理解了这个定义所要传达的思想。

  先要介绍分散(shatter)的概念:对于一个给定集合S={x1, ... ,xd},如果一个假设类H能够实现集合S中所有元素的任意一种标记方式,则称H能够分散S。

  这样之后才有VC维的定义:H的VC维表示为VC(H) ,指能够被H分散的最大集合的大小。若H能分散任意大小的集合,那么VC(H)为无穷大。在《神经网络原理》中有另一种记号:对于二分总体F,其VC维写作VCdim(F)。

  通常定义之后,会用二维线性分类器举例说明为什么其VC维是3,而不能分散4个样本的集合,这里也就是容易产生困惑的地方。下面进行解释。

  对于三个样本点的情况,下面的S1所有的标记方式是可以使用线性分类器进行分类的,因此其VC维至少为3(图片来自于斯坦福机器学习公开课的materials,cs229-notes4.pdf):

    

  虽然存在下面这种情况的S2,其中一种标记方式无法用线性分类器分类(图片来自于斯坦福机器学习公开课的materials,cs229-notes4.pdf)

          

  但这种情况并不影响,这是因为,上一种的S1中,我们的H={二维线性分类器}可以实现其所有可能标签情况的分类,这和S2不能用H分散无关。

  而对于4个样本点的情况,我们的H不能实现其所有可能标签情况的分类(这是经过证明的,过程不详)如下图中某个S和其中一种标签分配情况:

  

        

  可见,H={二维线性分类器}的VC维是3。

  从这个解释过程可以看出,对于VC维定义理解的前提是先理解分散的定义。分散中的集合S是事先选定的,而VC维是能分散集合中基数(即这里的样本数)最大的。因此,当VC(H)=3时,也可能存在S',|S'|=3但不能被H分散;而对于任意事先给定的S",|S"|=4,H不能对其所有可能的标签分配方式进行分散。这里所谓“事先给定”可以看作其点在平面上位置已定,但所属类别未定(即可能是任意一种标签分配)

VC维含义的个人理解的更多相关文章

  1. VC维含义

    VC维含义的个人理解 有关于VC维可以在很多机器学习的理论中见到,它是一个重要的概念.在读<神经网络原理>的时候对一个实例不是很明白,通过这段时间观看斯坦福的机器学习公开课及相关补充材料, ...

  2. 【转载】VC维,结构风险最小化

    以下文章转载自http://blog.sina.com.cn/s/blog_7103b28a0102w9tr.html 如有侵权,请留言,立即删除. 1 VC维的描述和理解 给定一个集合S={x1,x ...

  3. 【转载】VC维的来龙去脉

    本文转载自 火光摇曳 原文链接:VC维的来龙去脉 目录: 说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effective Number o ...

  4. VC维的来龙去脉——转载

    VC维的来龙去脉——转载自“火光摇曳” 在研究VC维的过程中,发现一篇写的很不错的VC维的来龙去脉的文章,以此转载进行学习. 原文链接,有兴趣的可以参考原文进行研究学习 目录: 说说历史 Hoeffd ...

  5. VC维的来龙去脉(转)

    本文转自VC维的来龙去脉 本文为直接复制原文内容,建议阅读原文,原文排版更清晰,且原网站有很多有意思的文章. 阅读总结: 文章几乎为台大林老师网课“机器学习可行性”部分串联总结,是一个很好的总结. H ...

  6. svm、经验风险最小化、vc维

    原文:http://blog.csdn.net/keith0812/article/details/8901113 “支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上” 结构化 ...

  7. VC维

    vc理论(Vapnik–Chervonenkis theory )是由 Vladimir Vapnik 和 Alexey Chervonenkis发明的.该理论试图从统计学的角度解释学习的过程.而VC ...

  8. Computer Science Theory for the Information Age-5: 学习理论——VC维的定义以及一些例子

    学习理论——VC维的定义以及一些例子 本文主要介绍一些学习理论上的东西.首先,我们得明确,从训练集上学习出来的分类器的最终目标是用于预测未知的样本,那么我们在训练的时候该用多少的样本才能使产生的分类器 ...

  9. VC维与DNN的Boundary

    原文链接:解读机器学习基础概念:VC维来去 作者:vincentyao 目录: 说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effecti ...

随机推荐

  1. [js高手之路]深入浅出webpack系列2-配置文件webpack.config.js详解

    接着上文,重新在webpack文件夹下面新建一个项目文件夹demo2,然后用npm init --yes初始化项目的package.json配置文件,然后安装webpack( npm install ...

  2. ASP.NET Core的身份认证框架IdentityServer4(7)- 使用客户端证书控制API访问

    前言 今天(2017-9-8,写于9.8,今天才发布)一口气连续把最后几篇IdentityServer4相关理论全部翻译完了,终于可以进入写代码的过程了,比较累.目前官方的文档和Demo以及一些相关组 ...

  3. Net分布式系统之七:日志采集系统(1)

    日志对大型应用系统或者平台尤其重要,系统日志采集.分析是系统运维.维护及用户分析的基础. 一.系统日志分类 一般系统日志可分为三大类: 1.用户行为日志:通过采集系统用户使用系统过程中,一系列的操作日 ...

  4. 前端开发【第4篇:JavaScript基础】

    JavaScript简述 上一篇文章已经聊过JavaScript的历史了这里不再复述了直接切入正题,JavaScript是一门解释型.动态类型.弱类型语言. 解释型语言和编译型语言就类似看一本书,编译 ...

  5. Java数据库连接池比较(c3p0,dbcp,proxool和BoneCP)

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp21 Java框架数据库连接池比较(c3p0,dbcp和proxool,Bo ...

  6. RAISERROR

    RAISERROR 可以抛出一个错误,并被程序捕获,在存储过程经常使用: 是否进入Catch代码执行区域,在于错误严重等级设置 RAISERROR ('无效数据', 11 , 1) 第一个参数:自定义 ...

  7. Linux修改文件permission属性

    列出文件属性 ls -al 修改文件属性为可读.可写 sudo chmod -c 777 <your file name>

  8. Java 多线程(四) 多线程访问成员变量与局部变量

    先看一个程序例子: public class HelloThreadTest { public static void main(String[] args) { HelloThread r = ne ...

  9. 第一次作业-----四则运算题目生成(基于java)

    1.题目要求 1.除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24. 2.运算符为 +, −, ×, ÷. 3.并且要求能处理用户的输入,并判断对错,打分统 ...

  10. 团队作业4——第一次项目冲刺(Alpha版本)2017.4.27

    2017.04.27 天气阴沉 小雨. 时间:上午 9:35 ---10:10分 地点:陆大314实验室 会议内容:每天充分利用好大课间的时间,今天对昨天的的细节问题进行了讨论及方法更正.时间不等人这 ...