1 VC维的定义

VC维其实就是第一个break point的之前的样本容量。标准定义是:对一个假设空间,如果存在N个样本能够被假设空间中的h按所有可能的2的N次方种形式分开,则称该假设空间能够把N个样本打散;假设空间的VC维就是它能打散的最大样本数目N。若对任意N,总存在一组样本使得假设空间能将它们打散,则函数集的VC维是无穷大:

几种假设空间的VC维如下:

2 推导d维感知机的VC维

这里将证明,d维感知机的vc维是d+1。

第一步,证明 dvc >= d + 1。

要证明 dvc >= d+1,我们只需要找到一组大小是d+1数据,使它能够被d维感知机打散。

这里我们就给了这样一组数据:

想一下,什么叫打散?就是:

由于X是可逆的,因此对于任意的y,都能求出一个w。

因此就证明了 dvc >= d+1.

第二步,证明 dvc <= d + 1

要证明 dvc <= d+1,我们需要证明,d维感知机不能打散任意一组大小为d+2的数据。

我们给任意一组大小为d+2的数据:

由于每个行向量维度是d+1,因此由线性代数的结论,他们是线性相关的,即有:

现在我们取一种Dicotomy,使得圈圈叉叉与前面的系数a同号:

可以发现由于这个线性依赖,使得第d+2个数据一定是大于0的,所以我们就没办法shatter了。

因此就证明了dvc = d + 1。

3 VC维的物理意义

VC维表示的是做二分类时假设空间的自由度,是把数据集打散的能力。

我们可以用如下的方法来估计VC维:

即这个假设空间里面可调整的参数的个数。(只是一种估计的方法,有时候可能是不对的)

4 折衷

我们在选择假设空间时,如果选的假设空间VC维太小,好处是能保证Ein和Eout是PAC近似的,坏处是由于假设空间自由度太低,产生的Dichotomy太少,算法可能找不到使得Ein比较小的假设函数h;如果我们的VC维选的很大,好处是假设空间自由度高,能保证算法能找到一个Ein较小的假设函数h,坏处是我们坏事情发生的概率增大了(过拟合了,Ein很小但Eout很大)。

5 模型复杂度

对VCbound进行相应的变形(过程略),我们可以得到(其中根号式Ω称为模型复杂度):

因此我们有如下图:

即vc维增大时,由于产生了更多的Dichotomy,因此Ein通常会下降,但是坏事发生的几率变大了;

vc维减小时,坏事发生的几率减小了,但是Dichotomy比较少,算法的选择有限,因此Ein通常不会太好。

因此最好的vc维是介于中间的。

6 VC-bound是宽松的

按照vcbound, 如果我们要求泛化误差ε是0.1,并且要求坏事发生的几率为0.1,我们可以推出:

然而实际上,我们并不需要这么多数据,通常只需要:

这是因为,VC bound是一个很宽松的上界,宽松表现为以下四点:

《机器学习基石》---VC维的更多相关文章

  1. 机器学习基石7-The VC Dimension

    注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释.机器能够学习必须满 ...

  2. 机器学习基石:07 The VC Dimension

    当N大于等于2,k大于等于3时, 易得:mH(N)被Nk-1给bound住. VC维:最小断点值-1/H能shatter的最大k值. 这里的k指的是存在k个输入能被H给shatter,不是任意k个输入 ...

  3. 机器学习基石笔记:07 The VC Dimension

    当N大于等于2,k大于等于3时, 易得:mH(N)被Nk-1给bound住. VC维:最小断点值-1/H能shatter的最大k值. 这里的k指的是存在k个输入能被H给shatter,不是任意k个输入 ...

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

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

  5. 机器学习基石12-Nonlinear Transformation

    注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 上一节课介绍了分类问题的三种线性模型,可以用来解决binary classif ...

  6. 机器学习基石9-Linear Regression

    注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 上节课,主要介绍了在有noise的情况下,VC Bound理论仍然是成立的.同 ...

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

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

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

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

  9. VC维与DNN的Boundary

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

随机推荐

  1. PKIX:unable to find valid certification path to requested target

    1.Communications link failure,The last packet successfully received from the server was * **millisec ...

  2. 使用wincc vbs脚本查找进程及如何运行进程

    使用vbs代码查看某个进程是否在运行,本文要检查的进程名为 QRscan.exe,其代码如下: sub CheckProcess Dim WMI,Objs,Process,ObjSet WMI=Get ...

  3. 嗨,你真的懂this吗?

    this关键字是JavaScript中最复杂的机制之一,是一个特别的关键字,被自动定义在所有函数的作用域中,但是相信很多JvaScript开发者并不是非常清楚它究竟指向的是什么.听说你很懂this,是 ...

  4. Java用Xom生成XML文档

    这个总结源于Java编程思想第四版18.13节的案例: 完整代码地址: Java编程思想:XML 相关Api地址: Attribute Element Document Serializer 由于案例 ...

  5. Spring 动态创建并切换数据源

    公司要求后端项目可以进行动态创建并切换数据源,看了网上很多例子大多数使用的都是Spring内置的AbstractRoutingDataSource进行的,使用此方法不是不行但是有诸多缺陷,比如切换时需 ...

  6. 异常:带有 CLSID {} 的 COM 对象无效或未注册

    今天处理调试打印程序的时候,看到这个异常: 代码: try { string strApplyEmpno=""; string strApplyDeptCode="&qu ...

  7. vs断点命不中?

    用管理员权限打开vs,再打开工程即可

  8. nginx的access.log 和 error.log

    nginx 常用的配置文件有两种: access.log 和 error.log access.log 的作用是 记录用户所有的访问请求,不论状态码,包括200 ,404,500等请求,404,500 ...

  9. SpringMVC面试题:什么是Servlet?

    一.什么是servlet? servlet是一个Java编写的程序,此程序是基于http协议的,在服务器端(如Tomcat)运行的,是按照servlet规范编写的一个Java类.客户端发送请求至服务器 ...

  10. [leetcode] 21. Merge Two Sorted Lists (Easy)

    合并链表 Runtime: 4 ms, faster than 100.00% of C++ online submissions for Merge Two Sorted Lists. class ...