前言
注意事项:
- 这个系列的文章虽然题为书本《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 的概念。给定一个假设集 H,样本集 S 的一个 dichotomy 指的是,H 中的假设为 S 所有的样本各标定一个标签,得到的不同标签组合中的一种。如果假设集 H 能在一个有 m>0 个点的样本集 S 上实现所有 S 上可能存在的 dichotomy,称 S 能被 H shatter,这种情况在 ΠH(m)=2m 时会出现。
定义 3.4 VC 维
一个假设集 H 的 VC 维就是 H 能够 shatter 的最大的样本集的样本数:
VCdim(H)=max{m:Πm(m)=2m}.(3.26)
通过定义,如果 VCdim(H)=d,存在一个大小为 d 的样本集能被 H shatter。但这不意味着所有数据量小于或等于 d 的样本集都能被shatter,事实上,它们通常都是不能的。
要说明 VC 维是 d,我们通常要证明 VC 维的上限和下限与 d 符合相应的关系。首先要证明 d 是 VCdim(H) 的一个下限 ( VCdim≥d ),也就是一个基数为 d 的样本集能被 H shatter。然后要证明 d+1 是 VCdim(H) 的一个上限 ( VCdim≤d+1 ),也就是没有任何一个基数为 d+1 的样本集 S 能够被 H shatter。通常来说,后者更加难。
为了进一步阐述这个概念,原书还举了若干个例子,说明了在不同的假设集下,如何求他们的 VC 维。这里我只选取了其中的一个例子。
范例 超平面
考虑一个假设集,这个假设集由 d 维欧式空间中定义的超平面构成,我们用这个假设集去把 Rd 中定义的点分成两类。为了求它的 VC 维,我们首先证明 d+1 为它的一个下限。我们定义一个有 d+1 个点的点集,我们设点 x0 是在原点上的点,对于 i∈{1,…,d},设点 xi 仅在第 i 个轴上坐标为 1,其它轴坐标都为 0。使 y0,y1,…,yd∈{−1,+1} 为 x0,x1,…,xd 的一组随机的标签。定义 ω 为一个第 i 个元素值等于 yi 的向量。那么超平面 ω⋅x+y02=0 定义的分类器能够 shatter 样本集 x0,x1,…,xd,因为对于任意的 i∈[0,d],有
sgn(ω⋅xi+y02)=sgn(yi+y02)=yi.(3.27)
为了得到上限,要求证明没有任何 d+2 个点构成的点集能够被超平面 shatter。为了证明这一点,我们将需要用到 Radon 定理。
定义 B.4 凸包
点集 X⊆RN 的凸包 conv(X) 定义为在 RN 上包含 X 的最小的凸集,等同地如下定义:
conv(X)={∑i=1mαixi:m≥1,∀i∈[1,m],xi∈X,αi≥0,∑i=1mαi=1}.(B.1)
如果
X 是二维欧式空间中的点集的话,我们可以直观地把凸包看做是刚好包围点集中所有点的一个凸多边形。
定理 3.4 Radon 定理
任何由 d+2 个属于 Rd 的点构成的集合 S 都可以被分成两个子集 X1 和 X2,使得 X1 和 X2 的凸包相交。
证明 使 X={x1,…,xd+2}⊂Rd。下面是关于 α1,…,αd+2 的一个有 d+1 个方程的方程组:
∑i=1d+2αixi=0and∑i=1d+2αi=0,(3.28)
因为上述第一个向量等式包含了
d 个等式。未知数的个数
d+2 大于等式的数目
d+1,因此这个方程组存在非零解
β1,…,βd+2。由于
∑d+2i=1βi=0,
I1={i∈[1,d+2]:βi>0} 和
I2={i∈[d+2]:βi≤0} 都是非空集合,
X1={xi:i∈I1} 和
X2={xi:i∈I2} 是
X 的一种分割方法。通过
(3.28) 中的第二个不等式,有
∑i∈I1βi=−∑i∈I2βi。使
β=∑i∈I1βi。那么
(3.28) 的第一部分意味着
∑i∈I1βiβxi=∑i∈I2−βiβxi,
同时有
∑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 看做是一组有 d+2 个点的点集,通过 Radon 定理,这个点集可以被分成两个凸包有交集的子集 X1 和 X2。注意到,当我们使用一个超平面去划分这两个点集的时候,他们的凸包同样会被这个超平面分隔。因此, X1 和 X2 不能被超平面分隔,X 也不能被超平面 shatter ( 注意联想凸包的形状,如果超平面把凸包分割了,那么它肯定不能同时把所有 X1 和 X2 的点分割在两边 )。也就是说无论这 d+2 个点是怎么分布的,我们总能找到一种分类情况是超平面无法实现的,联系前面说到的 VC 维的上限值和下限值,我们能够证明 VCdim(hyperplanes in Rd)=d+1。
通过类似的方法,我们能够求出很多其他假设集的 VC 维或者 VC 维上限。特别的,任意 r<∞ 维向量空间的 VC 维最大为 r。下面介绍 Sauer 引理,这个引理阐明了成长函数和 VC 维的联系。
定理 3.5 Sauer 引理
设 H 为一个满足 VCdim(H)=d 的假设集。那么对于所有的 m∈N,下列不等式成立:
ΠH(m)≤∑i=0d(mi).(3.29)
证明 在证明 Sauer 引理前,我们把
(mi) 定义为
(mi)={m!(m−i)!i!0if 0≤i≤motherwise.
i>m 或者
i<0 时使得它的结果为
0。这种定义使得证明更加简洁。在组合数学中,我们还能证明下面的等式成立
(mi)=(m−1i)+(m−1i−1).
我们通过在
m+d 上的完全归纳法证明引理。首先我们将证明引理对于
d 任取和
m=0 的情况下成立,以及在
m 任取和
d=0 的情况下成立。在归纳阶段中,设
k 是一个常数,并且假设引理在
m+d<k 的情况下都成立,我们将证明引理对于满足
m+d=k 的任意
m 和
d 都成立。
对于 d 任意 m=0 的情况
∑i=0d(0i)=1
由于对于
0 个点我们只能最多把它分成一种情况,所以
ΠH(0)≤1 。
对 m 任意 d=0 的情况
∑i=00(mi)=1
由于
d=0 意味着假设集连只有一个点的样本集都不能 shatter,说明假设集只能把所有的样本都标成同一个标签,因此
ΠH(0)=1。
在归纳阶段,我们设 S 为一个有 m 个点的样本集,我们从假设集中选择 ΠH(m) 个能够把 S 标成 ΠH(m) 种 dichotomy 的假设,用这些假设构成一个集合 A。可以知道,集合 A 中的每个假设都对应着不同的 dichotomy。我们从 S 中抽取前 m−1 个点,又构成一个新的样本集 S′=S−{xm}。与 A 和 S 的关系一样,我们从 A 中抽取 ΠH(m−1) 个假设构成集合 A′,使得 A′ 中每一个假设都对应着 S′ 上的一种 dichotomy。A 中是一定包含这些假设的,因为如果 H 所有在 S′ 上的 dichotomy 中有一个使 A 无法实现,我们给 S′ 增加一个元素 x′,无论这个元素的标签是什么,H 在 S′∪{x′} 总能实现一种 A 无法实现的 dichotomy。那么我们能把 A 分成两个子集合,使 A=A′∪(A−A′)。
因为 A′ 能把所有 H 在 S′ 上实现的 dichotomy 都实现,又有 A−A′⊂H,所以 A−A′ 在 S′ 上实现的每一个 dichotomy A′ 也能实现。我们再推导另一个结果:A−A′ 在 S′ 上实现的每一个 dichotomy 都是唯一的。这个结论可以使用反证法证明。如果存在 h1,h2∈A−A′ 使 S′ 得到相同的 dichotomy,那么又有 h3∈A′ 能在 S′ 上实现相同的 dichotomy。把这三个假设用在 S′∪x′ 中,由于这里讨论的是二分类问题,它们最多只能得到两个不同的 dichotomy,这将使得 |A|>ΠH(m)。
最后再推导一个结果: VCdim(A−A′)≤d−1。因为如果 A−A′ shatter 了 d 个点的样本集,那么 A′ 同样也能 shatter 这个样本集,又由于 A−A′∩A′=∅ ,所以 A 将能 shatter d+1 个点的样本集。
在归纳法中,我们先假设当 m+d<k 时引理成立。再结合上面的结论,我们有
|A′|=ΠH(m−1)=ΠA′(m−1)≤∑i=0d(m−1i).
又因为
A−A′ 在
S′ 上实现的 dichotomy 都是唯一的,且
VCdim(A−A′)≤d−1。那么有
|A−A′|≤ΠA−A′(m−1)≤∑i=0d−1(m−1i).
那么,
ΠH(m)=|A|=|A′|+|A+A′|≤∑i=1d(m−1i)+∑i=0d−1(m−1i)=∑i=0d(m−1i)+∑i=0d(m−1i−1)=∑i=0d(mi).
证毕。
Sauer 引理的作用将会在以下的推论 3.3 中被体现出来。推论 3.3 将证明成长函数只有两种情况:当有 VCdim(H)=d<+∞ 时,ΠH(m)=O(md);当 VCdim(H)=+∞ 时,ΠH(m)=2m。
推论 3.3
设 H 为一个使 VCdim(H)=d 成立的假设集。那么对于任意 m≥d 有
ΠH(m)≤(emd)d=O(md).(3.30)
证明 我们的证明从 Sauer 引理开始。
ΠH(m)≤∑i=0d(mi)≤∑i=0d(mi)(md)d−i≤∑i=0m(mi)(md)d−i=(md)d∑i=0m(mi)(dm)i=(md)d(1+dm)m≤(md)ded.
其中因为
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 为一族从 {−1,+1} 中取值且 VC 维等于 d 的函数。那么,对于任意的 δ>0,下面的不等式至少有 1−δ 的概率对假设 h∈H 成立:
R(h)≤R^(h)+2dlogemmm−−−−−−−−√+log1δ2m−−−−−√.(3.31)
因此,这种情况下的泛化界满足
R(h)≤R^(h)+O(log(m/d)m/d−−−−−−−−√),(3.32)
它说明了
m/d 对于泛化的重要性。这个推论同样符合奥卡姆剃刀原则,在这里简单的模型指的是 VC 维很小的模型。
在 3.2 节中,除了由 Rademacher Complexity 引出的成长函数泛化限以外,我们还引出了另外一种泛化界,也就是 (3.25) 所描述的泛化限。通过结合 (3.25) 和 Sauer 引理,我们还能得到以下的 VC 泛化限
R(h)≤R^(h)+8dlog2emd+8log4δm−−−−−−−−−−−−−−−−√,
这种泛化限同样能转换成
(3.32) 的形式。在这里 log 项实际只是起到了比较小的作用,通过更详细的分析我们其实能够去除这个因子。