VC维含义的个人理解
来源:互联网 发布:数据挖掘的作用 编辑:程序博客网 时间:2024/06/06 10:57
有关于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维含义的个人理解
- VC维含义的个人理解
- 【math】vc维的个人理解
- 个人理解session、application、cookie等状态管理的含义
- 关于Volatile关键字含义的一些个人理解
- 理解VC++里字符串类型的真正含义
- VC维的理解
- vc维的理解
- VC维的理解
- vc维的理解
- 事务的含义理解
- VC++各工程项目的含义
- VC++各工程项目的含义
- 关于高维空间的个人理解
- FormLayout的个人理解
- 数据仓库的个人理解
- SOA的个人理解
- cin的个人理解
- ARM架构下添加系统调用(与32位x86区别)
- 利用隐藏神经元解决异或问题的小型示例程序
- 红黑树的学习笔记
- B-树的学习笔记与C实现
- 稀疏图上的Johnson算法
- VC维含义的个人理解
- Linux下Matlab的安装和中文显示支持
- Ubuntu下OpenCV的安装和QT调用openCV库的方法
- Python遍历路径下文件并转换成UTF-8编码
- MATLAB生成正态样本以及正态矩阵、从文件读入矩阵
- 使用Xshell连接Ubuntu
- gdb调试命令
- Java Tip 27: Typesafe constants in C++ and Java
- 以root权限运行自己所编译程序的方法