8 VC维

189 阅读2分钟

VC维这块我参考了一个博客,写得很好,一下子就理解了,这里放上出处,自己只是简要即几个要点放在这里备查。zhuanlan.zhihu.com/p/59113933

1 Machine Learning的过程是利用算法AA依据样本DD从假设空间HH中找到一个合适的函数gg,使得最接近ground truth函数ff,从而完成各种模型的功能。

2 这个过程有两个环节,一是找到gg使得在样本数据上的误差仅可能小,二是样本误差程度和真实的误差情况仅可能接近。分别对应了training和test的过程。

3 重点关注一下第二个过程,用Hoeffding界,可以写成Pr[ED(g)ETest(g)<ϵ]2e2ϵ2DPr[|E_D(g)-E_{Test}(g)|<\epsilon] \le 2e^{-2\epsilon^2 |D|}。看起来样本数量够大就可以,问题是,我们并不知道自己找到的是哪一个gg,所以如果HH空间中的数量很多,那遇到一个train集合表现好而test表现不好的函数很正常,所以要求,假设空间的所有函数存在超过ϵ\epsilon的概率有界,即Pr[ED(g1)ET(g1)>ϵ+ED(g2)ET(g2)>ϵ+...]Pr[ED(gi)ET(gi)>ϵ]Pr[|E_D(g_1)-E_T(g_1)| > \epsilon + |E_D(g_2)-E_T(g_2)| > \epsilon + ... ] \le \sum Pr[|E_D(g_i)-E_T(g_i)| > \epsilon],所以前面的Hoeffding界变成了

Pr[ED(g)ETest(g)<ϵ]2He2ϵ2D Pr[|E_D(g)-E_{Test}(g)|<\epsilon] \le 2|H|e^{-2\epsilon^2 |D|}

所以,假设空间太大,其实是不好的。但是我们发现并的界放缩太大了,假设空间很多情况可以收缩,因此并没有那么大。这样有没有办法对H|H|有一个更紧的估计?

4 对分:H中所有函数对样本可以实现的不同结果的数量。(例如在平面点二分类问题,如果H是全体直线,那3个点划分最多实现14种结果,亦或不可分)

5 增长函数mH(N)m_H(N):样本数量不同结果不同,同样数量的样本可能造成结果不一样,比如共线之类的。所以样本相同我们取最大值。然后对分数随样本数增长的函数为增长函数

6 打散:显然对于二分类问题,可能结果的上界是2N2^N,如果H的对分可以达到这个上界,则称HHDD打散了。

7 breakpoint:增长函数中,N增大样本打散难度变大,第一个使H不能打散的N为breakpoint(设为kk)。VC维的定义为能被打散的最大的样本数,因此VC(H)=k1VC(H)=k-1

8 VC bound:有了breakpoint,带来的好处是增长函数可以被多项式bound住,上界为Nk1N^{k-1}。这样,我们有了对H|H|更为有效的估计,它是从增长函数导出的,为2mH(2D)2m_H(2|D|),公式变为

Pr[ED(g)ETest(g)<ϵ]4mH(2D)eϵ2D/8 Pr[|E_D(g)-E_{Test}(g)|<\epsilon] \le 4m_H(2|D|)e^{-\epsilon^2 |D|/8}