可以把growth function m_H(N)的upper bound用N^(k-1)来限制, for N large, k>=3
Thus,

定义: VC Dimension: maximum non-break point
如果break point = k, then VC dimension = k-1
在VC Dimension上,这个Hset可以shatter某N个点,不一定是所有的N个点,但是如果N超过了VC dimension,则出现了Hset不能shatter掉的情况。
d_vc = minimun k -1

如果有另外一个N的input,可以被shatter,则d_vc>N。如果其他任何的N input都不能被shatter的话,则d_vc

1. if linear separable dataset, PLA can converge. After T(large) correction, Ein(g)=0
2. with x_n ~ P and y_n=f(x_n), the prob of (Ein(g)-Eout(g)>epislon)

Multiple feature
d-D perceptrons: d_vc = d+1
证明:
先证d_vc >= d+1 (There are some d+1 inputs that can shatter)
输入d+1个点,每个点的维度为d再加上x_0=1,也就是那个threshold,一共是d+1维。把这d+1个维度为d+1的点写成矩阵形式:

第1个点全0,第2个点在第一个维度有1的分量,其他维度为0,第3个点在第二个维度有1的分量,其他维度为0,其他以此类推。然后最左边灰色的column就是那个threshold,就是x_0。这个矩阵是(d+1)*(d+1)维的,是可逆的,invertible。
对于任何一个dichotomy, 用y=[y_1, y_2,…,y_d+1]表示的话,可以有一个w,这个w也就是一个h在每个feature上的权重,通过这个h对d+1个点的Data进行划分,得到的其中一种dichotomy。那么现在对于任何一种dichotomy,都可以找到对应的w,即

所以对于这种特定的X,发现它可以被shatter,满足条件 (There are some d+1 inputs that can shatter),因此d_vc>=d+1
现在证d_vcd+1,姑且就用d+2个点作为例子,都不能被shatter)
对于2D perceptron情况,对于输入是3个点而言,存在可以被shatter的3点input。在此基础上,加上一个点,变成了4点input。现在可否被shatter呢?假设原来三个点分别是+1,+1,-1,如果是这样的话,第4个点就无法是-1,原因是第四个点与前3个点有linear dependence,这restrict了dichotomy的种类。

因此对于2D情况,当输入的点的个数大于d+1,这里是d+2,都不可以被shatter。
对于一般的d维perceptron,每个点的维度是d+1维,现在输入d+2个点,把这些点用矩阵形式表示,

可以看到,第d+2个点x_d+2 可以由前d+1个点用线性表示,这是线代里面知识。
现在有个h,它的w满足

就是它满足对每个点x的划分的符号都与前面的a相同,那么这样产生出来的结果是正的,因此第d+2个点就不能被h划分为-1,此时说明如果有d+2个点作为input,这种情况是不可以被shatter的。因此d_vc

VC bound: 不等式右边,定义为delta,Bad发生的概率delta很小

相反,Good发生的概率,即P(|Ein(g)-Eout(g)|= 1-delta

这个不等式,Ein和Eout有很大的概率,会被限制在根号那一项内,定义为Omega,就是model(Hset) complexity。

可以看到,随着VC dimension的上升,Hset就越来越powerful,Ein就会下降,但是这伴随着Model Complexity的penalty。某个时刻,Model Complexity 德penalty上升的量超过Ein下降的量,这样会导致Eout不降反升。
Sample Complexity:N
还是对于Hoeffding中的VC Bound delta

在外面有一个N,在exp中有一个N,外面的N和里面的N对delta的贡献分别是正和负的。
E.g:

一开始N=100or1000的时候,外面的N dominant,再增大以后,exp里的N开始dominant。从理论上来说,N需要的个数是d_vcd的10000倍,但是实际上只需要10倍。
这样的差距,说明我们计算的这个VC bound还是很宽松的,来源是

1. 不需要知道P和f
2. 没有用真正的dichotomy set的大小,而是用了成长函数(max dichotomy set),确保可以使用任何的Data,而不是某一特定的Data
3. 用成长函数的上限,也就是Dichotomy set上限的上限
4. 最差情况

VC dimension and Model complexity的更多相关文章

  1. Coursera台大机器学习课程笔记6 -- The VC Dimension

    本章的思路在于揭示VC Dimension的意义,简单来说就是假设的自由度,或者假设包含的feature vector的个数(一般情况下),同时进一步说明了Dvc和,Eout,Ein以及Model C ...

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

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

  3. 【机器学习基石笔记】七、vc Dimension

    vc demension定义: breakPoint - 1 N > vc dimension, 任意的N个,就不能任意划分 N <= vc dimension,存在N个,可以任意划分 只 ...

  4. The Model Complexity Myth

    The Model Complexity Myth (or, Yes You Can Fit Models With More Parameters Than Data Points) An oft- ...

  5. VC Dimension -衡量模型与样本的复杂度

    (1)定义VC Dimension: dichotomies数量的上限是成长函数,成长函数的上限是边界函数: 所以VC Bound可以改写成: 下面我们定义VC Dimension: 对于某个备选函数 ...

  6. 【The VC Dimension】林轩田机器学习基石

    首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么E ...

  7. 理解机器为什么可以学习(四)---VC Dimension

    前面一节我们通过引入增长函数的上限的上限,一个多项式,来把Ein 和 Eout 的差Bound住,这一节引入VC Bound进一步说明这个问题. 前边我们得到,如果一个hypethesis集是有bre ...

  8. 07 The VC Dimension

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

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

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

随机推荐

  1. 在线前端 样式和js

    bootstrap+ jquery <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstra ...

  2. nodejs 备忘

    引入模块(在于你用什么模块,需要的模块可以用终端进行安装, npm,一般express,swig,body-parser,cookies,markdown) 设置模块 设置渲染 var express ...

  3. 解决虚拟机安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题

    环境说明:系统:Windows 8.1  简体中文专业版 虚拟机:VMware Workstation 11.0.0 报错:此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态.如 ...

  4. LintCode刷题指南:字符串处理(C++,Python)

    题目:两个字符串是变位词 题目难度:简单 题目描述: 写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串. 解题思路: C++:引入哈希的思维,这道题就 ...

  5. Android数据库框架-----GreenDao3的相关使用和版本升级更新

    GreenDAO是一款非要流行的Android平台上的数据库框架,性能优秀,代码简洁:是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案. GreenDAO 优势 1.一个精简的库 2 ...

  6. dva-loading使用方法

    1. 下载dva-loading npm install dva-loading --save 2. 导入并使用dva-loading import createLoading from 'dva-l ...

  7. 从工程角度看C++观察者模式中的接口是否需要提供默认的实现

    在C++中,我们会经常用到观察者模式(回调模式,Delegate模式等,意思都一样),比如当Source中的某个参数发生了变化时,我们通过观察者模式进行回调通知,下面是一个例子: class Sour ...

  8. magento: Your web server is configured incorrectly. As a result, configuration files with sensitive information are accessible from the outside 解决方案

    在linux(以UBUNTU, CENTOS为例)下安装完成magento时,在进入后台时, 有些童鞋可能会发现有如下的提示: Your web server is configured incorr ...

  9. 将封装了envi功能的IDL类导出成java类,方便java调用

    目的:     用IDL将ENVI的功能封装成为IDL的类,并使用IDL的对象导出功能把这些功能类导出为java类,方便java调用.(本来想直接通过GP工具调用的,但是没有授权文件)   操作步骤: ...

  10. 浅谈HTML中的块级元素和内联元素

    一.基本概念 1.块级元素(block element):一般都从新行开始占据一定的矩形空间,可以设置其宽.高属性来改变矩形的大小.一般情况下块级元素可以包含内联元素和其它块级元素,但也有特殊如for ...