机器学习基石 Lecture6: Theory of Generalization
Restriction of Break Point
上一个lecture里讲到关于对于给定数量
的数据集,在上面通过对不同假设函数进行分类的类别上限可以用一个growth function
来表示。而这个函数有一个Break Point,在这个点
开始,
大于
时的结果会小于
。下面是几种不同假设空间的growth function:
那么当知道了第一个Break Point
之后对
时的情况进行推导时会发生什么呢?
比如假设当前
而对应的
,那么在计算
过程如下。首先明确,**Break Point
的意思是,对于任意的
个样本点,都不能被分成
种不同的dichotomies。**对应图示如下:
当前的3个样本点被分为了3种不同的dichotomies。而且没有哪两个样本的组合被分配成了
种dichotomies,也就是这样的分配是合理的。但是如果再添加一种成为如下形式:
那么可以看到
这两个样本点被分成了4种不同的dichotomies,这样就与break point
的假设不符合。因此新添加的这种形式应该去掉。而另换了一种第四种之后发现依然符合设定,但是接着无论如何添加第五种,都找不到一个符合条件的分类形式。也就是说
。
这样我们就有一个想法,即如果能够找到一个break point
,那么可能能够得到
maximum possible
given k
的结论。也就是期望得到growth function有一个多项式级别的上界。
Bounding Function: Basic Cases
我们继续定义一个边界函数
,表示的是当break point =
的时候,最大可能的
。它有两个特性:1.任意
个元素不能够完成
种分类组合。2.这个值与假设函数
的细节无关,因为表示的是上界。
根据我们目前已知的性质可以简单的来填一个对应的表格:
右半边表示的是
相当于没有限制,因此可以直接写出。而对角线上的部分可以根据break point的定义来填上,只要小于
即表示的是break point,而
正好表示的是上限,因此减一即可。
Bounding Function: Inductive Cases
下面我们可以计算出
,简单地编写一个对应的代码判断即可计算出结果是11。可以根据前三项有单个分类和一对表示来区分不同的类别,有一种的是紫色,有两种的是橘色:
这样就可以分成两个部分,如下图所示:
可以得到如下关系:
以此类推得到一个递推关系:
而以此得到了一个可以简单归纳法证明的不等式(不等号其实为等号):
这个不等式得到的结果显示,对于给定的
,上限函数
的上限是个多项式。因此推出
的上限是个多项式。可以进行简单的验证:
A Pictorial Proof
回到我们最初的不等式,我们想要的是希望数据集内部错误率
能够与外部错误率
相等(PAC)。想要的可能是下图上部的不等式。不过实际上得到的是下部分的不等式。
下面可以简要介绍其中多出的常数是如何出现的。
步骤1:使用另一个数据集上的错误率来替代集外错误率:
也就是利用这两个数据集上错误率相差较大的概率,来放缩作为数据集内部错误率
与外部错误率
相差的上限。
有限多种, 无限多种,因此需要替换外部错误率。(什么意思???概率上不好算???)
步骤2:将假设空间
使用类别进行展开:
这样无穷大的假设空间
就使用了有限大的dichotomies数量
来取代。而这个数的上限为
。
步骤3:使用一个不放回形式的Hoeffding不等式:
也就是对
的部分进行计算得到最终的结果。对应的结果固定了一个假设函数
,使用的是一个只有
个样例的不放回的抽样。因此得到了相对应的结果。这个结果叫做 VC bound。
好,假装这三步都很懂,本节结束。