前言
注意事项:
- 这个系列的文章虽然题为书本《Foundation of Machine Learning》的读书笔记,但实际我是直接对书本的部分内容进行了个人翻译,如果这个行为有不妥当的地方,敬请告知。
- 由于知识面限制,部分名词的翻译可能存在错误,部分难以翻译的名词保留英文原词。为了防止误导大家,在这里声明本文仅供参考。
- 本文基本翻译自《Foundation of Machine Learning》的 3.3 节。
正文
3.3 VC 维
这里我们将介绍一个叫 VC 维 ( Vapnik-Chervonenkis dimension ) 的概念。VC 维同样是纯粹的组合数学上的概念,但它通常比成长函数或者 Rademacher Complexity 容易计算。我们将看到,VC 维在学习中是一个关键的量,它与成长函数有直接的相关。
为了定义一个假设集
H
的 VC 维,我们首先引入 dichotomy ( 二分法 ) 和 shattering 的概念。给定一个假设集
定义 3.4 VC 维
一个假设集
H
的 VC 维就是
通过定义,如果
VCdim(H)=d
,存在一个大小为
d
的样本集能被
要说明 VC 维是
为了进一步阐述这个概念,原书还举了若干个例子,说明了在不同的假设集下,如何求他们的 VC 维。这里我只选取了其中的一个例子。
范例 超平面
考虑一个假设集,这个假设集由
d
维欧式空间中定义的超平面构成,我们用这个假设集去把
为了得到上限,要求证明没有任何 d+2 个点构成的点集能够被超平面 shatter。为了证明这一点,我们将需要用到 Radon 定理。
定义 B.4 凸包
点集
X⊆RN
的凸包
conv(X)
定义为在
RN
上包含
X
的最小的凸集,等同地如下定义:
如果 X 是二维欧式空间中的点集的话,我们可以直观地把凸包看做是刚好包围点集中所有点的一个凸多边形。
定理 3.4 Radon 定理
任何由
d+2
个属于
Rd
的点构成的集合
S
都可以被分成两个子集
证明 使
X={x1,…,xd+2}⊂Rd
。下面是关于
α1,…,αd+2
的一个有
d+1
个方程的方程组:
因为上述第一个向量等式包含了 d 个等式。未知数的个数
同时有 ∑i∈I1βiβ=∑i∈I2−βiβ=1 ,对于 i∈I1 有 βiβ>0 ,对于 i∈I2 有 −βiβ>0 。通过凸包的定义,这意味着 ∑i∈I1βiβxi 同时属于 X1 和 X2 的凸包。
PS:书本里面的证明中 I2={i∈[d+2]:βi<0} ,但是按照这个式子无法保证 X1∪X2=X 。我根据维基百科 Radon’s Theorem 这个词条把这一项改成以上的形式。
我们把
X
看做是一组有
通过类似的方法,我们能够求出很多其他假设集的 VC 维或者 VC 维上限。特别的,任意 r<∞ 维向量空间的 VC 维最大为 r 。下面介绍 Sauer 引理,这个引理阐明了成长函数和 VC 维的联系。
定理 3.5 Sauer 引理
设
证明 在证明 Sauer 引理前,我们把 (mi) 定义为
i>m 或者 i<0 时使得它的结果为 0 。这种定义使得证明更加简洁。在组合数学中,我们还能证明下面的等式成立
我们通过在 m+d 上的完全归纳法证明引理。首先我们将证明引理对于 d 任取和
对于
d
任意
由于对于 0 个点我们只能最多把它分成一种情况,所以
对
m
任意
由于 d=0 意味着假设集连只有一个点的样本集都不能 shatter,说明假设集只能把所有的样本都标成同一个标签,因此 ΠH(0)=1 。
在归纳阶段,我们设
S
为一个有
因为
A′
能把所有
H
在
最后再推导一个结果:
VCdim(A−A′)≤d−1
。因为如果
A−A′
shatter 了
d
个点的样本集,那么
在归纳法中,我们先假设当
m+d<k
时引理成立。再结合上面的结论,我们有
又因为 A−A′ 在 S′ 上实现的 dichotomy 都是唯一的,且 VCdim(A−A′)≤d−1 。那么有
那么,
证毕。
Sauer 引理的作用将会在以下的推论 3.3 中被体现出来。推论 3.3 将证明成长函数只有两种情况:当有 VCdim(H)=d<+∞ 时, ΠH(m)=O(md) ;当 VCdim(H)=+∞ 时, ΠH(m)=2m 。
推论 3.3
设
H
为一个使
证明 我们的证明从 Sauer 引理开始。
其中因为 m≥d ,第二第三个不等式成立。通过化简和二项式定理得到第五个式子。通过常用不等式 (1−x)≤e−x 可以得到最后一个不等式。
PS:二项式定理指 (a+b)n=∑nr=0(ni)arbn−r 。
我们把 3.2 节中通过 Rademacher Complexity 引出的成长函数泛化限与上述 VC 维与成长函数的关系,以及推论 3.2 结合起来,我们可以得到一个基于 VC 维的泛化界。
推论 3.4 VC 维泛化界
设
H
为一族从
因此,这种情况下的泛化界满足
它说明了 m/d 对于泛化的重要性。这个推论同样符合奥卡姆剃刀原则,在这里简单的模型指的是 VC 维很小的模型。
在 3.2 节中,除了由 Rademacher Complexity 引出的成长函数泛化限以外,我们还引出了另外一种泛化界,也就是
(3.25)
所描述的泛化限。通过结合
(3.25)
和 Sauer 引理,我们还能得到以下的 VC 泛化限
这种泛化限同样能转换成 (3.32) 的形式。在这里 log 项实际只是起到了比较小的作用,通过更详细的分析我们其实能够去除这个因子。