VC维理解

转自:https://blog.csdn.net/winper001/article/details/52863548

在机器学习里我们常常看到这样的说法:一般而言, VC  越大, 学习能力就越强,学习也越复杂;可以通过 VC  计算学习风险的上界。但进一步对VC维的介绍却不多,例如,VC维是什么?如何计算VC维?

我们认为2D线性分类器的VC维为3,而不是4。即,2D线性分类器可以打散集合大小为3的样本集合,不能打散有4个样本的集合。
1.集合大小为3的样本集合。
存在两种情况:a. 3个点不在一条直线上; b. 3个点在一条直线上。

    a.当3个点不在一条直线上时。3个点任意点被标为任意类别(o或X)都存在一条直线可以将两类打散(分开),如下图。此时满足VC维的定义,即有2^3=8种标记方式都能被打散。

b.3点一线时,有两种情况不能被打散。如下图:

2.集合大小为4的样本集合

无论4个点在一天直线上还是不在一条直线上(任意位置),都找不到一种情况能对2^4=16种标注进行打散。因为总存在类似如下的一种标注存在这16种标注中,此种标注方式是不能被2D线性分类器所打散的。所以他不能满足VC维的要求。


总结,所以从上面可以看出,集合大小为3的样本集合是存在满足VC维条件的样本(只要存在就行,不要求所有的样本集合都要满足条件,例如3点一线就不满足)。而不存在大小为4的样本集合(注意:任意4个点就是一个大小为4的样本集合。同理于大小H个样本的集合)满足条件。所以说对于2D线性分类器的VC维为3。另外  N 维 实数空间中 线性分类器 和 线性 实函数的 VC 维 是n+1。对一些特殊的函数我们也明确知道其VC维,但并不是所有的。对于任意函数目前还没有很好的指导性方法来计算其VC维。

如果某函数的VC维无穷大,也就意味着,任意多个点无论怎样标注都能将其打散。例如sin(ax)。它可以将任意多样本的任意标注情况精确分开,即在训练集上达到100%的分类正确率。


猜你喜欢

转载自blog.csdn.net/suan2014/article/details/80595609