之前的几节着重介绍了机器学习可行的条件并做了详细的推导解释,机器学习可行必须满足两个条件:
这两个条件对应着test和train两个过程。train的目的是使损失期望,test的目的是使将算法应用到新的样本时的损失期望也尽可能小,即。因此,引入了break point,并推导出还要break point存在,则M有上界,就一定存在。
根据之前的学习内容,我们知道如果一个hypothesis set中有break point k,那么它的成长函数是有界的,它的上界为bounding function;根据数学归纳法,bounding function也是有界的,且上界为,根据已知的B(N,k),N(k-1)比B(N,k)松弛很多。
由此,VC bound就可以转换为:
这样,不等式只与k和N相关了,一般情况下样本N足够大,所以我们只考虑k值,有如下结论:
引入一个新的名词:VC Dimension,其定义是hypothesis set能够shatter的最多inputs的个数,即最大完全正确的分类能力(注意:只要存在一种分布的inputs能够正确分类也满足)。
根据之前break point的定义(hypothesis set不能被shatter任何分布类型的inputs的最少个数)。则VC bound等于break point的个数减一。
对于之前的四种成长函数例子,它们对应的VC Dimension分别为:
所以,我们认为好的hypothesis是有限的。只要有限,那么无论选择什么样的演算法、什么样的输入资料以及目标函数,都会满足;
在2D下,如果data线性可分,则PLA算法就会停下来,在进行足够多次的update之后,会找到一条直线,这条线将所有的data分好,使得;
另外一个走向是,如果data服从某个分布和某个目标函数,则会确保和有很大可能接近(因为2D下=3),就可以说当data的数量很大的时候,,总结起来就会得到。
在多维度的perceptrons下,它对应的是多少?
已知在1D中,=2,在2D中,=3,所以我们假设在多维平面中,=d+1(d为维数);
如果要证明这个问题,需要分为两个步骤:
首先证明第一个:
证明这个不等式的话,我们只要找到一类d+1个输入能够被shatter,就会得到。因此,只要构造一个d维的矩阵X能够被shatter就行。X为d维矩阵,其中有d+1个输入inputs,每个输入input前加上第0维度的常数项1,得到矩阵X(注意:矩阵X存在逆矩阵且唯一)如下:
如果在二维平面上,则相应的矩阵资料代表的点有(0,0)(1,0)(0,1),可以很轻易看出,这三个点是可以shatter的。
下面证明在d维度下d+1个点是可以被shatter的。矩阵X可逆的意义是什么?查看X是否能被shatter,对于给定的任意一种y{+1,-1,..........},因为矩阵X可逆,可以找到一个矩阵w,使得,因此可得。
这个X能够被shatter,就可以得出。
证明,需要证明任何d+2个input都不能被shatter。在二维平面上有4个输入的数据
其中有一种情况一定不能被shatter。
那么对于任意维度d,查看d+2个输入的资料不能shatter,因此,我们使用一个矩阵X,其中列的数量为d+2,行的数量为d+1(列数大于行数),这个矩阵不是可逆的,存在一个向量(线性相关,不会全部都是0),就不能产生所有的dichotomy,所以d+2个点不能够被shatter。
如果有一组w,在d+1个输入中产生的情形刚好和的符号一致,因为可以使用其他向量表示,所以得出的结果一定是正的,即前面d+1个决定之后,第d+2就必须为正或者负(即确定的),因此无法产生所有的dichotomy,因此renhe d+2个输入不能shatter
根据之前的推导就将VC Dimesion和d+1维的perceptrons联系起来了。上节中公式里的W称为自由度,自由度如同旋钮一样可以进行调节,就可以有无限种hypothesis(每个旋钮都有无限种可能性),VC Dimesion的物理意义就是hypothesis set在二元分类中的有效自由度。
VC Dimension就是hypothesis的最大分类能力,最多能shatter的输入数量。
可以使用旋钮的数量来大概估计VC Dimension,但是并非绝对的。
现在有了VC Dimension,可以使用代替M
更深入了解VC Dimension的意义
根据VC Bound的不等式:出现bad event的概率,不会超过,使用表示。那么出现good event情况的概率最小为,其中表现了hypothesis set H的泛化能力,越小则泛化能力越大。对不等式进行推导,可以得出的表达式
因此得出泛化误差的边界,其中表示模型复杂度,则
使用图的形式来查看随着变化的关系,
根据图可以看出越大,则越小,越大(复杂);越小,则越大,越小(简单);即随着的增大,会先减小再增大。因此,为了得到最小的,要选择中间的合适的。
引入一个新的概念样本复杂度(Sample Complexity),对于确定的,样本复杂度要选择多少合适?
对于以下例子,计算得到N=29300,刚好满足的条件。N大约是的10000倍。这个数太大了,实际上往往不需要这么多的样本数量,大概只需要的10倍就够了。N的理论值之所以大是因为VC Bound过于宽松,所以得到的是一个比实际大得多的上界。
VC Bound是比较宽松的,想让它收紧并不容易,这也是机器学习的一个难题。但是VC Bound基本上对所有模型的宽松程度是基本一致,因此,不同模型之间还是可以横向比较。从而,VC Bound宽松对机器学习可行性还是没有太大影响。