我们mH(N)得到了一个上限是多项式的保证:
所以只要我们有足够大的data,然后又有露出一线曙光的break point,我们的演算法可以自由自在的做选择,而无需担心Ein和Eout会差的很远:
学习是可能的:
现在来定义VC dimension:min(break point)-1,即max(non-break point),
也写作dvc,是H能shatter的最大data量
注意,当N<= dvc时,我们说H能shatter some N inputs,而不是一定能shatter N个input,有可能对某些input无法shatter,回忆一下,在我们二维平面里,给你三个点,只要这三个点排成一条线,那么我们无法shatter所有情形,这个例子里,这种input无法shatter。
我们就把k换成了dvc,当dvc有限时,mH(N)<=N^dvc
我们解决了2维的pcl问题,证明learning的可行,接下来看d维的情况:
我们得到猜测,接下来需要证明:
对于dvc>=d+1,我们只需证明下图选项1;对于dvc<=d+1,我们只需证明下图选项4
首先证明dvc>=d+1,我们想要shatter一些d+1个input,找了如下图d+1个d维向量作为input,并加上一列threshold组成输入X:
对于这d+1个input,要能shatter,则任意的y都要得到,即sign(Xw)=y,更一般地:Xw=y。我们想要找到这样一个w,因为X是可逆的,所以对任何y,我们都能有一个w来成立,我们就证明了这个input X可以被shatter。
接下来证明dvc<=d+1,首先对于二维的情况,四个点再加上threshold组成的矩阵是线性相关的,x4=x2+x3-x1,所以wx4=wx2+wx3-wx1,如果wx2和wx3是圈,wx1是叉,则wx4等于正数加正数减去负数,最后大于0,说明wx4是圈,也只能是圈。
当然这只是选择了一个特定的input,证明了二维平面里,there are some 4 inputs we can not shatter,而没有证明我们想要的所有4 inputs都不能shatter。
接下来我们将用任意的input来证明:
不失一般性,我们用任意d+2 inputs来组成input矩阵X,X也是线性相关的,必然存在,接着我们假设y向量就是(sign(a1),sign(a2),…,sign(ad+1),sign(ad+2)),我们若要shatter这个input,就必须有w向量使得sign(Xw)等于y,假设我们找到了前d+1个w,使得wxi与ai符号相同,但和二维中情形一样,
,wxd+2一定是正的,即xd+2只能是圈,所以无论如何,一定有一种情形导致我们不能shatter。
在本例中
注意到input X已经是一般化情况了,这意味着任何input都不能shatter,也就证明了
我们最终证明了dvc=d+1。
vc dimension代表了H的自由度,dvc越大,能shatter的input越多,H的power越大
可以看到,dvc代替了M,选择拥有正确的dvc的H对我们learning重要,也可以说我们需要注意H的自由度。
最后我们定义一个model complexity的概念,从一开始的vc bound经过一系列转化推导
最后我们得到,有很大的概率,Eout会小于Ein加上model complexity
从这个式子,我们可以得到一个很经典的图:
最后,vc bound是很宽松的,假如用式子来算,一般需要10000倍的dvc才能得到好的演算法,但实际上只需要10倍dvc就能得到好的演算法,造成这样的原因是我们在算vc bound时用了很多个上限。但vc bound还是有用的,它对所有model都一样地宽松,我们就能用它来选择model。