假设我有一个超平面集合 H,其对应有很过的H(x1,x2,…,xn)。令他们最小的break point k=2。
那么,当数据集的个数N=1时,every mH(N)=2
当N=2时,every mH(N)最大为3,即都小于4

当N=3时,我们想知道此时mH(N)可取的最大值。

首先由于2最小的break point,则3也是break point。那么N=3时,有mH(N)<23,那最大为多少呢?

假设 三个点的mH(N)为1,就形如

python泛化 泛化问题_python泛化

,很显然任意两个点都不可能的mH(N)=4,所以三个点的mH(N)为1满足条件。

同理假设 三个点的mH(N)为2,就形如

python泛化 泛化问题_python泛化_02

,很显然任意两个点都不可能的mH(N)=4,所以三个点的mH(N)为2满足条件。假设 三个点的mH(N)为3,就形如

python泛化 泛化问题_数据集_03

,很显然任意两个点都不可能的mH(N)=4,所以三个点的mH(N)为3满足条件。假设 三个点的mH(N)为4,就形如

python泛化 泛化问题_数据集_04

,很显然当取x2,x3时,该两点的的mH(N)=4,不满足最小break point 为2,所以这种情况不满足条件。但是,当 三个点的mH(N)为4,且形如

python泛化 泛化问题_数据集_05

,很显然任意两个点都不可能的mH(N)=4,所以三个点的mH(N)为4满足条件。当 三个点的mH(N)为5,且形如

python泛化 泛化问题_python泛化_06


或者

python泛化 泛化问题_数据集_07


或者

python泛化 泛化问题_数据集_08

,很显然加深颜色的两个点的mH(N)=4,所以三个点的mH(N)为5满足条件。

终上所述,当N=3时,我们想知道此时mH(N)可取的最大值为4,才能满足最小的break point 为2

python泛化 泛化问题_python泛化_09

发现,对于最小break point 为2 时,
N=1时,every mH(N)=21
N=2时,everymH(N)最大为3,接近22
N=3时,every mH(N) 最大为4,远小于23
那么是否说明,当N增大,mH(N)增加的速度远小于2N

不用注意 H的表达方式

我们定义bounding function B(N,K),表示当break point =k时,mH(N)的最大可能取值。其实上面讨论的就是B(1,2),B(2,2),B(3,2)的值。

我们发现B(N,K)的值与H的细节,函数形式无关,如下图

python泛化 泛化问题_python泛化_10

现在,我们来探讨关于B(N,K)的值

python泛化 泛化问题_python泛化_11

斜对角线上,由于N 小于k,则填的值一定为2N

当k=1时,则mH(N)<21,则填的值一定为1

对角线上的值填为2N−1,这我不是很清楚为什么。。。

那剩下的那部分的值为多少呢???

假设我们要求B(4,3)的值

python泛化 泛化问题_数据集_12


我们来看看,B(4,3)的与B(3, ×)的值有什么关系。

我们用上面同样的方法求出B(4,3)具体的形式为

python泛化 泛化问题_python泛化_13


则B(4,3)的值为11

我们将上面的图形适当的移一下位置,为

python泛化 泛化问题_python泛化_14


橘色的表示“成双成对”,即他们x1,x2,x3两两相同,只是x4正好相反。而紫色的部分表示“形单影只”,完全不一样

则可把上图标记为

python泛化 泛化问题_python泛化_15


则有

python泛化 泛化问题_python泛化_16

对于B(4,3)表示N=4,k=3

我们就把x4去掉,看看满不满足k最小为3

python泛化 泛化问题_数据集_17


要想k最小值为3,及要求

python泛化 泛化问题_数据集_18

.


python泛化 泛化问题_数据集_19

然而对于仅有α

python泛化 泛化问题_python泛化_20


如果x1,x2,x3有任意两个可以“shatter”2 input,假设是x2,x3。那么x2,x3,x4就一定能够”shatter” 3 input。因为对于橘色部分,x4可以正好相反。然而要求B(4,3)不能”shatter” 3 input。所以为了让不能shatter 3 input ,那么就不能让 α shatter 2 input .

python泛化 泛化问题_python泛化_21


所以有

python泛化 泛化问题_python泛化_22

终上所述,可以总结为

python泛化 泛化问题_数据集_23

把上面的公式进行推广

python泛化 泛化问题_python泛化_24

即我们求出了B(N,K)的上限,也就是mk(N)上限的上限

python泛化 泛化问题_python泛化_25


我们根据数学归纳法可以得到结论为

python泛化 泛化问题_数据集_26


表达式的最高次幂为NK+1我们的原始目的是想证明 机器学习是否可行。上上一次笔记讲解了机器学习再H是有限且数据很大的情况下是可行的

python泛化 泛化问题_python泛化_27

,而上一次和这一次笔记就是用来证明H再无限的情况下是可行的。那么这的思想就是我们能否用有限的值(mH(N))来代替。而这一次笔记的前面就是讲解 mH(N)的上限的上限。

下面就要证明 mH(N)是可替换的。

证明得到的最终结果为

python泛化 泛化问题_python泛化_28


(这好像是VC维公式)

只要我们有一个break point,那么就可以怎么再N足够大的情况下,满足Ein约等于Eout