在机器学习里我们常常看到这样的说法:一般而言,VC维越大, 学习能力就越强,学习也越复杂;可以通过VC维计算学习风险的上界。但进一步对VC维的介绍却不多,例如,VC维是什么?如何计算VC维?等
根据百度百科:
VC维(Vapnik-Chervonenkis Dimension)的概念是为了研究学习过程一致收敛的速度和推广性,由统计学理论定义的有关函数集学习性能的一个重要指标
目前尚无有效的通用方法来计算任意函数的VC维,本文将大致的解释一下VC维相关的例子。
正文之前首先需要看看下面这篇文章:
http://patorjk.com/software/taag/#p=display&f=Filth&t=good
上文中已经整体上解释了VC维,但在VC维在二维线性分类器上的计算示例时,解释的还不是特别明朗。所以我在这里也试着进一步的说明一下。其中的一些概念依然沿用上文中的定义。
我们认为2D线性分类器的VC维为3,而不是4。即,2D线性分类器可以打散集合大小为3的样本集合,不能打散有4个样本的集合。
- 集合大小为3的样本集合。
存在两种情况:a. 3个点不在一条直线上; b. 3个点在一条直线上。
a. 当3个点不在一条直线上时。3个点任意点被标为任意类别(o或X)都存在一条直线可以将两类打散(分开),如下图。此时满足VC维的定义,即有2^3=8种标记方式都能被打散
b. 3点一线时。有两种情况是不能被一条直线打散的,如下。
2. 集合大小为4的样本集合
无论4个点在一条直线上还是不在一条直线上(任意位置),都找不到一种情况能对2^4=16种标注进行打散。因为总存在类似如下的一种标注存在这16种标注中,此种标注方式是不能被2D线性分类器所打散的。所以在有4个样本点的情况下,不能满足VC维的要求。
总结,所以从上面可以看出,集合大小为3的样本集合是存在满足VC维条件的样本(只要存在就行,不要求所有的样本集合都要满足条件,例如3点一线就不满足)。而不存在大小为4的样本集合(注意:任意4个点就是一个大小为4的样本集合。同理于大小H个样本的集合)满足条件。所以说对于2D线性分类器的VC维为3。另外 N维实数空间中线性分类器和线性实函数的VC维是n+1。对一些特殊的函数我们也明确知道其VC维,但并不是所有的。对于任意函数目前还没有很好的指导性方法来计算其VC维。
如果某函数的VC维无穷大,也就意味着,任意多个点无论怎样标注都能将其打散。例如sin(ax)。它可以将任意多样本的任意标注情况精确分开,即在训练集上达到100%的分类正确率。