统计学习理论之VC维究竟是什么

一、说明

学习机器学习不可避免的会接触到VC维,它在机器学习领域是一个很基础但很重要的概念,它给机器学习提供了坚实的理论基础。但直到在我写这篇博客之前,我对VC的理解还只停留在它能刻画假设空间的复杂度这样浅显的层次。本文就来理一理VC维(Vapnik--Chervonenkis dimension)的来龙去脉,搞清楚其本质。

二. 可学习的条件

既然说VC维给机器学习提供了坚实的理论基础,那么就有必要来看看机器学习算法可学习的条件是什么。

2.1 学习的过程

一个基本的机器学习过程如图1.1所示(本文图片若无特别说明即来自于台大机器学习基石课程课件,Coursera课程地址)。解释一下下图中的一些概念:表示学习算法, 表示学习的目标假设(可以是一个函数,也可以是一个分布), 表示假设空间, 表示我们求解的用来预测的假设, 是属于 的。
机器学习的过程就是:通过算法 ,在假设空间 中,根据训练样本集 ,选择最好的假设作为 使近似于
图1.1

图1.1中的 是两个重要的概念:

  • ,学到的假设 g 在除了训练样本外的其他所有样本(out-of-sample)上的损失,称为期望误差,也称泛化误差。
  • Ein(g),学到的假设 g在训练样本(in-of-sample)上的损失,称为经验误差。

我们的目标是选择最好的假设作为 g 使 g 近似于 f,而 Eout(f)=0,也即我们的目标是使 。但我们是没法获得训练样本外的其他所有样本的,那也就没法计算 了,这该怎么办呢?

2.2 Hoeffding不等式

在回答1.1最后的问题之前,先来看看Hoeffding不等式。
来看图1.2所述的问题: 设瓶子里的橙色球占比为 μ ,从瓶子中随机抽取出N个样本,这N个样本中橙色球占比是 ν 。我们可以将 μ 看作1.1节中的Eout(g) ,将 ν 看作是 Ein(g) ,我们现在并不知道 μ 和 Eout(g) ,只知道 ν 和 Ein(g) ,我们可以从 ν 推断出关于 μ 的什么吗?

可以将 ν 看作是样本期望,μ 则是总体期望。

图1.2

直觉上,如果我们有更多的样本(抽出很多的球),则 ν 应该越来越接近总体期望 μ 。事实上,这里可以用hoeffding不等式表示如下:
P\|ν−μ\|\>ϵ≤2exp(−2ϵ2N)(1.2.1)

从hoeffding不等式可以看出,当N越来越大时,ν 和 μ 之差大于 ϵ 的概率的上界越来越接近0,所以样本期望 ν 越来越接近总体期望 μ ,即 ν 和 μ 概率近似相等(probably approximately correct, PAC)了。

2.3 可学习的条件

有了1.2节的铺垫,我们就可以来回答1.1节的问题了。

对于任意固定的假设 h ,当训练样本量N足够大,类比于1.2节的例子,可以通过样本集上的经验误差 Ein(h) 推测总体的期望误差 Eout(h) 。基于hoeffding不等式,我们得到下面式子:
P\|Ein(h)−Eout(h)\|\>ϵ≤2exp(−2ϵ2N)(1.3.1)

根据上面不等式,我们可以推断,当N足够大时,Ein(h) 和 Eout(h) 将非常接近。

注意在上面推导中,我们是针对某一个特定的假设 hℎ。在我们的假设空间 H 中,往往有很多个假设(甚至于无穷多个)。那么对于假设空间 H 中的任意的假设 hℎ,Ein(h) 和 Eout(h) 之差大于 ϵ 的概率的上界会是什么呢?

发生概率很小的事件在很多次实验中发生概率就会变得很大。例如连续丢5次硬币,事件"五次都是正面朝上"的概率是 132132。但是如果100个人做这个实验,事件"五次都是正面朝上"的发生的概率就是 1−(3132)100>0.951−(3132)100>0.95。所以对于特定的假设 hℎ,Ein(h) 和 Eout(h) 很接近,但是对于 H 中任意的假设这就不一定了。

这里假定 H 中有 M 个假设 h1,h2,...hMℎ1,ℎ2,...ℎ ,则有如下推导:
PE(h1)\>ϵ∪E(h2)\>ϵ ...∪E(hM)\>ϵ≤PE(h1)\>ϵ+PE(h2)\>ϵ ...+PE(hM)\>ϵ≤2Mexp(−2ϵ2N)(1.3.2)

其中 E(hi)=|Ein(hi)−Eout(hi)| 。

根据式 (1.3.2) 知
∀g∈H,P\|Ein(g)−Eout(g)\|\>ϵ≤2Mexp(−2ϵ2N)(1.3.3)

上面式子的含义就是:在假设空间 H 中,对于任意一个假设 g ,Ein(g) 和 Eout(g) 之差大于 ϵ 的概率的上界是 2Mexp(−2ϵ2N) 。注意这个上界与训练样本数 N 和假设空间假设数 M 密切相关。

本文的所有讨论都是围绕式(1.3.3)进行的!!!

所以,根据式 (1.3.3)(1.3.3),我们就知道了可学习的两个核心条件是:

  1. 学习算法 A 能够从 H 选出的假设 g 满足 Ein(g)≈0 。再结合条件2即达到了 Eout(g)≈0 的目标。
  2. 假设空间 H 中假设数 M 是有限的且训练样本数 N 足够大。此时可保证式(1.3.3)右边上界趋于0,即学习算法 A 从 H 选出的任意假设 g 都满足 Ein(g)≈Eout(g) 。

上面这两个核心条件,也正好对应着train和test这两个过程:

  1. train过程希望经验误差Ein(g) 尽可能小;
  2. test过程希望在真实环境中的期望误差Eout(g) 也尽可能小,即Eout(g) )接近于Ein(g) 。

所以我们不应该只关心如何利用学习算法找到使 Ein(g) 很小的 g 。因为如果想让学习可行,也要保证Eout(g) 接近于Ein(g) 。

来分析一下 M 的大小对于两个条件的满足情况:

  • 当 M 较小时,由式(1.3.3)(1.3.3)知条件2很容易满足,但是由于可选的 g 的数目 M 较小,所以条件1不容易满足;
  • 当 M 较大时,由于可选的 g 的数目 M 较大,所以条件1很容易满足,但是条件2不容易满足。

由此可见,假设数 M 在这两个核心条件中有着重要作用,应该合理选取。但是往往一个假设空间(如二维平面的所有直线)的假设数是很大的甚至是无穷的,此时式(1.3.3) 中的上界就成了无穷大没有任何约束意义,也即不满足条件2,学习变得不可行,这该怎么办呢?

三. VC维

3.1 有效假设数

在式(1.3.2)(1.3.2)的推导中,我们用到了这样一个概率不等式:
P(A1∪A2 ...∪AM)≤∑i=1MP(Ai)(2.1.1)

我们知道,当 Ai 相互独立时上式取等号。但事实上,假设空间里的 hi 之间并不是完全独立的,它们是有很大的重叠的,也就是在 M 个假设中,有很多假设都可以归为同一类。

下面用二维假设空间为例解释一下上述重叠性。我们知道二维假设空间的所有假设数(即直线条数)为 ∞∞,但是如图2.1所示,可以将这些假设分为两类,一类是把x1判断为正例,另一类是把x1判断为负例。

图2.1

那如果在平面上有两个不同的数据点x1,x2,这样的话,假设空间 H 中的无数条直线可以分为4类。那依次类推,3个数据点情况下,H 中最多有8类(当三个点在同一直线上时只有6类)。4个数据点时,H 中最多有14类(注意不是16类),如下图所示。

图2.2

从上面的分析可知,虽然假设空间假设数 M 一般非常大(甚至无穷),但在特定的样本集上,有效的假设数目是有限的,也即式(1.3.3)(1.3.3)中的 M 是有限的,所以可以重写式(1.3.3)(1.3.3)如下:
∀g∈H,P\|Ein(g)−Eout(g)\|\>ϵ≤2⋅effective(M)exp(−2ϵ2N)(2.1.2)

3.2 对分和增长函数

为了探究式(2.1.2)中的 effective(M) ,先引入对分(dichotomy) 的概念:

对于假设空间 H={h:X→{+1,−1}} ,我们称
h(X1,X2,...,XN)=(h(X1),h(X2),...,h(Xn))∈{+1,−1}

为一个对分,即一个对分表示样本的一种标记结果,H(X1,X2,...,XN) 表示假设空间 H 在训练集 D 上的所有对分。

例如,若 N=4 且数据为二维时,参见图2.2,有如下表格:

假设空间 H H(X1,X2,X3,X4)
所有元素 平面上的所有直线 {+1,+1,+1,+1}, {+1,+1,+1,-1}...
元素个数 最大为14 (不会超过 2N )

我们知道, H(X1,X2,...,XN) 的元素个数(即 |H(X1,X2,...,XN)| 是取决于具体的数据集 D 的,例如当 N=3 时且三个点不在一条直线时对分数为8,而在一条直线时对分数是6。为了去掉对具体 D 的依赖性,我们引入 增长函数(growth function):

假设空间 H 的增长函数 mH(N) 为
mH(N)=maxX1,X2,...,XN∈X|H(X1,X2,...,XN)|

增长函数 mH(N) 表示假设空间 H 对个任意 N 个样本所能赋予标记的的最大可能结果数,其上界为 2N 。

显然,mH(N) 越大,H 的表示能力越强。因此,增长函数描述了假设空间 H 的表示能力,由此反映出假设空间的复杂度。既然如此,那我们可不可以用 mH(N) 直接替换掉式(2.1.2) 中的 effective(M) 呢,即
∀g∈H,P\|Ein(g)−Eout(g)\|\>ϵ≤?2mH(N)exp(−2ϵ2N)(2.2.1)

我们将在在2.3节回答这个问题。

3.3 VC界

3.3.1 打散(shatter)

在介绍VC维界(VC bound)之前,先引入打散(shatter)的概念,

当假设空间 H 作用于大小为 N 的样本集 D 时,产生的对分数量等于 2N 即 mH(N)=2N 时,就称 D 被 H 打散了。

shatter的原意是打碎,在此指 N 个点的所有(碎片般的)可能情形都被 H 产生了。

图2.3

如上图所示,二维空间上的的三个点(不在一条直线上)可以被平面上所有直线这个假设空间打碎,此时 mH(3)=8=23 。但如下图所示的四个点就不能被这个假设空间打碎了,可知此时 mH(4)=14≠24 。

图2.4

3.3.2 break point

尽管增长函数把假设数从无穷缩小到 2N ,但是这个量级还是太大了,很难保证式(1.3.3)(1.3.3)右边这个上界趋于0,所以能不能把量级再缩小一点?

为了回答这个问题,先给出break point的定义:

对于假设空间 H 的增长函数 mH(N) ,从 N=1 出发逐渐增大,当增大到 k 时,出现 mH(N)<2N 的情形,则我们说 k 是该假设空间的break point。换句话说,对于任何大小为 N(N≥k) 的数据集, H 都没有办法打碎它。

举例来讲,由2.3.1节知,当假设空间 H 定义为平面上所有直线时,其break point就为4。

有了break point的概念,再经过一系列归纳证明(详见台大机器学习课程lecture6),我们有这样一个结论:

设break point存在且为 k 的假设空间的增长函数上界为 B(N,k) ,则 B(N,k) 满足
mH(N)≤B(N,k)≤∑i=0k−1(Ni)≤Nk−1

注: 上式的证明可见这个知乎回答,另外最后一个不等号仅在 N≥2 且 k≥2 时成立。
即break point存在时增长函数上界是一个多项式,多项式的最高幂次项为 Nk--1 。

所以我们得到结论:如果break point存在,则增长函数 mH(N) 是多项式的。多项式的量级就比 2N 小多了,这就很容易保证式(1.3.3) 右边这个上界很小,学习就可行了!

3.3.3 VC界

上一小节提到如果break point存在,学习是可行的。既然如此,我们来回答一下2.2节最后提出的问题: 可不可以用 mH(N) 直接替换掉式(2.1.2)(2.1.2) 中的 effective(M) 呢,即式(2.2.1) 是否成立。

答案是不能直接替换,正确的不等式是
∀g∈H,P\|Ein(g)−Eout(g)\|\>ϵ≤4mH(2N)exp(−18ϵ2N)(2.3.1)

上式其实和式 (2.2.1) 差不多,其证明略显复杂我们暂不去探究,可参考此处

式(2.3.1)(2.3.1)就是VC界,这个公式的意义在于:如果假设空间 H 存在有限的break point k ,即 mH(2N) 会被最高幂次为 k--1 的多项式上界给约束住,那么,随着 N 的逐渐增大,指数式 exp(⋅) 的下降会比多项式 mH(2N) 的增长速度更快,所以此时可以推断出VC界是有界的。更进一步,当 N 足够大时,对于 H 中的任意一个假设 g ,Ein(g) 都将接近于 Eout(g) ,即学习是可行的。

3.4 VC维

现在,我们终于可以定义VC维了:

假设空间 H 的VC维是能被 H 打散的最大数据集的大小,即
VC(H)=max{N:mH(N)=2N}

根据此定义,有 VC(H)=k−1 ,其中 k 是 H 的break point。

VC(H)=d 表明存在大小为 d 的数据集能被假设空间 H 打散,需要注意的是这并不意味着所有大小为 d 的数据集都能被 H 打散,例如二维平面上的所有直线构成的假设空间 H 的VC维为3,但是它并不能打散位于同一条直线上的三个点。事实上,VC维的定义与数据具体分布是无关的。

因为 VC(H)=k−1 ,所以由2.3.2节可知当 N≥2 且 k≥2 时,有
mH(N)≤NVC(H)(2.4.1)

将上式代入(2.3.1) 的右边VC界有
∀g∈H,P\|Ein(g)−Eout(g)\|\>ϵ≤4(2N)VC(H)exp(−18ϵ2N)(2.4.2)

所以,1.3节的可学习的两个核心条件等价于:

  1. 学习算法 A 能够从 H 选出的假设 g 满足 Ein(g)≈0 。再结合条件2即达到了 Eout(g)≈0 的目标。
  2. 假设空间 H 的VC维 VC(H) 是有限的且训练样本数 N 足够大。此时可保证式(2.4.2)右边上界趋于0,即学习算法 A 从 H 选出的任意假设 g 都满足 Ein(g)≈Eout(g) 。

VC维反映了函数集的学习能力,VC维越大,能学到的模型越复杂。根据前面的推导,我们知道VC维的大小与学习算法无关,与数据集的具体分布无关,与我们求解的目标函数也无关,只与模型和假设空间有关。另外,实践中有这样一个规律:一般情况下,假设空间的VC维约等于假设自由变量的数目。

3.5 Ein(g) 与 Eout(g) 的关系

令式(2.4.2) 右边的 4(2N)VC(H)exp(−18ϵ2N)=δ ,即坏事发生的概率
P\|Ein(g)−Eout(g)\|\>ϵ≤δ(2.5.1)(2.5.1)

则可反解出
ϵ=8Nln(4(2N)VC(H)δ)−−−−−−−−−−−−−−−−√(2.5.2)

由(2.5.1)可得出,有 1−δ 的概率好事情会发生,好事情即
Ein(g)−8Nln(4(2N)VC(H)δ)−−−−−−−−−−−−−−−−√≤Eout(g)≤Ein(g)+8Nln(4(2N)VC(H)δ)−−−−−−−−−−−−−−−−√(2.5.3)

上式就是 Ein(g) 与 Eout(g) 的关系。其中,根号部分也可以看做模型的复杂度 ΩΩ,模型越复杂,Ein(g) 与 Eout(g) 离得越远。如图2.5所示,当固定样本数 N 时,随着VC维的上升,Ein(g) 会不断降低,而复杂度 ΩΩ 会不断上升,其上升与下降的速度在每个阶段都有所不同,因此我们要寻找一个二者兼顾的比较合适的VC维使 Eout(g) 最小。

图2.5

此外,由上面的分析易知,样本数 N 也会影响 Eout(g) 。例如,当前有一个 VC(H)=3 的假设空间,要使 ϵ=0.1 且 δ=0.1 ,则要想满足式(2.5.2) ,可计算出理论上样本数 N 需要达到 10000VC(H) 这个量级,但实际应用中我们发现 N 达到 10VC(H) 就够了。这是因为,VC界是一个及其宽松的上界,因为它需要对任何学习算法,对任何数据分布,对任何目标函数都要成立,所以实际应用中的上界要比VC界小很多。

四、总结

总结一下本文的行文思路,

  1. 先用Hoeffding不等式说明了可学习的两个条件:
    (1) 学习算法 A 能够从 H 选出的假设 g 满足 Ein(g)≈0 。
    (2) 假设空间 H 中假设数 M 是有限的且训练样本数 N 足够大。
  2. 但假设空间 H 中假设数 M 往往是无穷大的。幸运的是,在推导出条件(2)时,我们要求假设空间的所有假设都是独立的,而假设空间 H 中独立假设数 effective(M) 却是有限的,增长函数告诉我们 effective(M) 的上界为 2N 。
  3. 2N 这个上界还是太大了,学习还是很难可行。所以我们又引入了break point的概念,使 2N 的量级降为 Nk−1 , 由此得到了VC界。
  4. 然后我们给出了VC维的定义,可学习的两个条件转变为:
    (1) 学习算法 A 能够从 H 选出的假设 g 满足 Ein(g)≈0 。
    (2) 假设空间 H 的VC维 VC(H) 是有限的且训练样本数 N 足够大。
  5. 最后我们讨论了 Ein(g) 与 Eout(g) 的关系,发现为了使学习器更好(Eout(g) 更小),要选择合适的VC维,不能太大也不能太小。

因笔者自身水平实在有限,如果文章有任何的不妥,还请读者告之。此外,VC维可以说是机器学习中的一大核心,并非一篇博客就可以讲解透彻,所以本文也省略了一些复杂的证明,如果想深入理解可以去查阅相关书籍或论文。

参考

统计学习理论之VC维究竟是什么 | TangShusen

相关推荐
江畔柳前堤3 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术3 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客3 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术4 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO4 小时前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术4 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架5 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab5 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI5 小时前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算
冬奇Lab5 小时前
【无标题】
人工智能·开源