前面一节我们通过引入增长函数的上限的上限,一个多项式,来把Ein 和 Eout 的差Bound住,这一节引入VC Bound进一步说明这个问题。

前边我们得到,如果一个hypethesis集是有break point的,那么最终mh会被一个多项式bound住,如果break point 为k的话,那么这个多项式为N^(k - 1)。

Bound的不等式这里系统的列一下就是:

也就是说,机器可以学习的即可条件:

要有好的假设集,也就是需要存在break point

训练数据集要足够的大

要有一点儿好运气,选到了一个小的Ein。

好了,接下来正式介绍VC Dimension

1. VC Dimension

VC Dimension是能够shatter的最大的N,也就是最小的break point - 1

那么,之前讨论过break point的几种hypethesis对应的VC Dimension就对应为:

2. VC Dimension 应用到perception learning

好了,有了VC Dimension,那么我们就可以从VC Dimension的角度来来看看我们之前的PLA,可以分为两条主线:

那么,接下来扩展到具有超过两个特征的PLA。

那么,猜想perception的VC Dimension是不是就是 d + 1 呢?实际上就是的,怎么证明呢?当然就是从dvc >= d + 1 和 dvc <= d + 1 两个方面来证明。

一方面,欲证 dvc >= d + 1,只需要找到某个训练集大小为d + 1,可以内shatter即可:

假设这些输入数据为:

其中第一列为加进去的常数项,可以X是一个可逆矩阵

得证。

另一方面,欲证dvc <= d +1,就需要证明对所有的大小为d + 2的数据都不能shatter

特别地,对于 2 perception,输入数据如下边所示,可以得到x4 = x1 + x2 - x3,那么两边同时乘以wt可知:

最后如果y4是负就不可以得到,也就是不能够shatter。

一般化,

X列为n + 1,行为d + 2,所以第d + 2一定可以被前边的d + 1行线性表示。

两边同乘w,然后右边取值与线性系数一样,这样导致右边都为正,

所以y(d + 2)为负不能够取得,也就是对所有的大小的d + 2的都不能shatter。

3. Degree of Freedom

dvc 约等于 free parameters

所以VC Bound透露的信息:

上图就更好的说明了 VC Dimension 在某种程度上代表了模型复杂度。

上图举例列举了我们需要达到某个指标时候的数据,首先理论上这些数据似乎是非常大的,

但由于我们在推导VC Bound的时候,多次进行了上界扩张,所以实际上并不需要这么大,只需要十倍的dvc就可以了。

至此,通过理解机器为什么可以学习系列文章讲清楚了这个问题。

但是之前的讨论都是基于没有误差的,接下来讨论有误差的时候是怎么一种情况。http://www.cnblogs.com/futurehau/p/6262754.html

最新文章

  1. .net连接DB2的异常SQL0666 - SQL query exceeds specified time limit or storage limit.错误处理
  2. liunx 开机流程与模块管理
  3. python 面向对象-笔记
  4. Web 服务编程,REST 与 SOAP(转)
  5. 强连通分量Tarjan模板
  6. 2015/7/6 (!长期更新!)C语言从零——张呵呵
  7. node.js里的forEach()也是异步的吗?
  8. css盒模型和块级、行内元素深入理解
  9. 项目构建之maven篇:2.HelloWorld项目构建过程
  10. Algorithms(4th)谢路云译大纲总结(附实现源码)
  11. 树状数组 &amp;&amp; 线段树
  12. 安装Vmware 以及 Vmware 中安装Ubuntu 以及其中问题?
  13. pycharm中查找一个对象在哪里被引用
  14. Unity3D AssetBundle的打包与加载
  15. SpringBoot定时任务说明
  16. 在Windows上搭建Git Server
  17. Unity shader学习之Alpha Blend
  18. S 导入公司数据
  19. 2、Dubbo-核心概念
  20. 牛客网暑期ACM多校训练营(第四场):A Ternary String(欧拉降幂)

热门文章

  1. python之__init__使用方法
  2. 【BZOJ3994】[SDOI2015] 约数个数和(莫比乌斯反演)
  3. profix使用过程中遇到的一些问题
  4. PAT (Advanced Level) Practise - 1092. To Buy or Not to Buy (20)
  5. Mac 系统 + Chrome浏览器 网页前端出现中文文字反转或顺序错乱
  6. 用@vue/cli发布npm包
  7. 问题007:JDK版本与JRE版本不同导致java.exe执行类文件错误 java.lang.UnsupportedClassVersionError错误
  8. strong和weak
  9. RSA等非对称加密为什么要用公钥加密,而用私钥解密?
  10. 四 python并发编程之协程