VC维详细的解释:http://www.svms.org/vc-dimension/
以下给出通俗解释,后面有自己的理解,这里没详细整理,有时间再弄:
博客一的解释:
链接:http://www.cnblogs.com/wuyuegb2312/archive/2012/12/03/2799893.html
有关于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维的直观定义是:对一个指示函数集,如果存在h个样本能够被函数集中的函数按所有可能的2h(是2h吗?)种形式分开,则称函数集能够把h个样本打散,函数集的VC维就是它能打散的最大样本数目h,若对任意数目的样本都有函数能将它们打散.则函数集的VC维是无穷大。有界实函数的VC维可以通过用一定的阈值将它转化成指示函数来定义。VC维反映了函数集的学习能力,VC维越大则学习机器越复杂,所以VC维又是学习机器复杂程度的一种衡量。
换一个角度来理解,如果用函数类{f(z,a)}代表一个学习机,a 确定后就确定了一个判别函数了EF,而VC维为该学习机能学习的可以由其分类函数正确给出的所有可能二值标识的最大训练样本数。
故有这样的结论,平面内只能找到3个点能被直线打散而不找到第4点。
对于这个结论我是如下理解的:
(1)平面内只能找到3个点能被直线打散:直线只能把一堆点分成两堆,对于3个点,要分成两堆加上顺序就有23种。其中A、B、C表示3个点,+1,-1表示堆的类别, {A→-1,BC→+1}表示A分在标号为-1的那堆,B和C分在标号为+1的那堆。这就是一种分发。以此类推。则有如下8种分法:
{A→-1,BC→+1},{A→+1,BC→-1}
{B→-1,AC→+1},{B→+1,BC→-1}
{C→-1,AB→+1},{C→+1,BC→-1}
{ABC→-1},{ABC→+1}
(2)找不到4个点。假设有,则应该有24=16分法,但是把四个点分成两堆有:一堆一个点另一对三个点(1,3);两两均分(2,2);一堆四个另一堆没有(0,4)三种情况。对于第一种情况,4个点可分别做一次一个一堆的,加上顺序就有8种:
{A→-1,BCD→+1},{A→+1,BCD→-1}
{B→-1,ACD→+1},{B→+1,ACD→-1}
{C→-1,ABD→+1},{C→+1,ABD→-1}
{D→-1,ABC→+1},{D→+1,ABC→-1};
对于第二种情况有4种:
{AB→-1,CD→+1},{AB→+1,CD→-1}
{AC→-1,BD→+1},{AC→+1,BD→-1}
没有一条直线能使AD在一堆,BC在一堆,因为A、D处在对角线位置,B、C处在对角线位置。(这是我直观在图上找出来的)
对于第三种情况有2种;
{ABCD→-1}
{ABCD→+1}
所以总共加起来只有8+4+2=14种分法,不满足24=16分法,所以平面找不到4个点能被直线打散。
以上两个版本的解释中,有一点值得注意:
vc维与点的位置无关,即只要存在一种位置分布,使得pow(2,N)种标签分配方法均可被分类器H可分,且H又不能完全分割N+1个点的pow(2,N+1)种标签分配,则H的VC维为N。