VC维其实就是第一个break point的之前的样本容量。标准定义是:对一个假设空间,如果存在N个样本能够被假设空间中的h按所有可能的2的N次方种形式分开,则称该假设空间能够把N个样本打散;假设空间的VC维就是它能打散的最大样本数目N。若对任意N,总存在一组样本使得假设空间能将它们打散,则函数集的VC维是无穷大:

《机器学习基石》---VC维

几种假设空间的VC维如下:

《机器学习基石》---VC维

 

2 推导d维感知机的VC维

这里将证明,d维感知机的vc维是d+1。

第一步,证明 dvc >= d + 1。

要证明 dvc >= d+1,我们只需要找到一组大小是d+1数据,使它能够被d维感知机打散。

这里我们就给了这样一组数据:

《机器学习基石》---VC维

想一下,什么叫打散?就是:

《机器学习基石》---VC维

由于X是可逆的,因此对于任意的y,都能求出一个w。

因此就证明了 dvc >= d+1.

 

第二步,证明 dvc <= d + 1

要证明 dvc <= d+1,我们需要证明,d维感知机不能打散任意一组大小为d+2的数据。

我们给任意一组大小为d+2的数据:

《机器学习基石》---VC维

由于每个行向量维度是d+1,因此由线性代数的结论,他们是线性相关的,即有:

《机器学习基石》---VC维

 现在我们取一种Dicotomy,使得圈圈叉叉与前面的系数a同号:

《机器学习基石》---VC维

可以发现由于这个线性依赖,使得第d+2个数据一定是大于0的,所以我们就没办法shatter了。

因此就证明了dvc = d + 1。

 

 

3 VC维的物理意义

VC维表示的是做二分类时假设空间的自由度,是把数据集打散的能力。

我们可以用如下的方法来估计VC维:

《机器学习基石》---VC维

即这个假设空间里面可调整的参数的个数。(只是一种估计的方法,有时候可能是不对的)

 

4 折衷

我们在选择假设空间时,如果选的假设空间VC维太小,好处是能保证Ein和Eout是PAC近似的,坏处是由于假设空间自由度太低,产生的Dichotomy太少,算法可能找不到使得Ein比较小的假设函数h;如果我们的VC维选的很大,好处是假设空间自由度高,能保证算法能找到一个Ein较小的假设函数h,坏处是我们坏事情发生的概率增大了(过拟合了,Ein很小但Eout很大)。

《机器学习基石》---VC维 

 

5 模型复杂度

对VCbound进行相应的变形(过程略),我们可以得到(其中根号式Ω称为模型复杂度):

《机器学习基石》---VC维

因此我们有如下图:

《机器学习基石》---VC维

即vc维增大时,由于产生了更多的Dichotomy,因此Ein通常会下降,但是坏事发生的几率变大了;

vc维减小时,坏事发生的几率减小了,但是Dichotomy比较少,算法的选择有限,因此Ein通常不会太好。

因此最好的vc维是介于中间的。

 

6 VC-bound是宽松的

按照vcbound, 如果我们要求泛化误差ε是0.1,并且要求坏事发生的几率为0.1,我们可以推出:

《机器学习基石》---VC维

然而实际上,我们并不需要这么多数据,通常只需要:

《机器学习基石》---VC维

这是因为,VC bound是一个很宽松的上界,宽松表现为以下四点:

《机器学习基石》---VC维