关于VC维的理解
简介
VC维,全称为Vapnik-Chervonenkis Dimension,它反映了模型的学习能力,VC维越大,则模型的容量越大。
通俗定义
VC维的通俗定义是:对于一个指示函数集,如果存在个样本能够被函数集中的函数按所有可能的种形式分开,则称函数集能够将个样本打散,函数集的VC维就是它能够打散的最大样本数目。如果对任意数目的样本,在该函数集中都能找到函数将它们打散,则称该函数集的VC维是无穷大。
比如说,我们以二维平面中的线性分类器为例:
在按上图给定二维平面中的3个点的位置之后(并未给出标签),线性函数组成的集合能够对所有8种情形正确进行分类。值得注意的是,按照上述定义来看,只要存在3个样本能够被成功打散,并且不存在4个样本能够被打散的话, 就称这一函数集合的VC维是3。所以,我们称二维线性函数集合所表示的分类器的VC维是3。
下面我们来看另外两个例子:
例1
例2
对于例1第二幅图中给定的3个点而言,显然二维线性函数集合不能对其正确分类;对于例2第二幅图中给定的4个点而言,也不能正确分类。因此,我们说二维线性函数集合的VC维是3。
理解
我们知道,在机器学习中,常常用到“模型”的概念,实际上,模型就是假设空间中的一个函数。假设空间代表了一系列的函数,而我们的训练过程就是在这个集合中找到一个最优或近似最优的函数,来完成我们的任务。一般而言,VC维与模型容量成正相关关系。并不是与假设空间中模型个数正相关哦,比如说上面的二维线性函数集合,其中有无数个线性函数,但是其VC维仍然为3。
参考
本文只是对VC维进行了简要介绍,更加理论的部分大家可以参考博文《机器学习和数据挖掘(7):VC维》。这篇博文我怎么看,有兴趣的同学可以自己琢磨琢磨。