本文是周志华《机器学习》(西瓜书)第12章 计算学习理论(Learning Theory)的学习笔记,涵盖本章所有核心知识点,配有通俗类比与公式推导。

01. 基础知识与符号

学习理论的基本概念和数学工具

🧮 核心概念

📐 基本设置

  • X\mathcal{X}:样本空间,Y\mathcal{Y}:标记空间(如 {1,+1}\{-1,+1\}
  • D\mathcal{D}X×Y\mathcal{X} \times \mathcal{Y} 上的未知分布
  • D={(x1,y1),,(xm,ym)}D = \{(x_1,y_1),\ldots,(x_m,y_m)\}:从 D\mathcal{D} 独立同分布采样的训练集
  • h:XYh: \mathcal{X} \to \mathcal{Y}:假设(即学到的分类器)
  • H\mathcal{H}:假设空间(所有候选假设的集合)

📐 误差的定义

  • 泛化误差(真实误差)
E(h;D)=P(x,y)D[h(x)y]E(h;\mathcal{D}) = P_{(x,y)\sim\mathcal{D} }[h(x)\neq y](分布上的期望)
  • 经验误差(训练误差)
E^(h;D)=1mi=1m1[h(xi)yi]\hat{E}(h;D) = \frac{1}{m}\sum_{i=1}^m \mathbb{1}[h(x_i)\neq y_i](训练集上的频率)
  • 误差的差值E(h)E^(h)|E(h) - \hat{E}(h)| 表示泛化误差和经验误差的偏差

🍎 通俗理解

泛化误差:你去参加真实考试,答对多少题——用来评价真正的学习能力。

经验误差:你在练习题(训练集)上答对多少——可以观测到,但不等于真实能力。

计算学习理论的核心问题:我们能不能通过练习题上的表现,来保证真实考试上的表现?需要多少练习题才够?

🧮 重要的概率不等式(工具)

📐 Hoeffding 不等式

x1,,xmx_1, \ldots, x_mmm 个独立随机变量,且 xi[ai,bi]x_i \in [a_i, b_i],则:

P(1mi=1mxiE[1mi=1mxi]ϵ)exp(2m2ϵ2i(biai)2) P\left(\frac{1}{m}\sum_{i=1}^m x_i - \mathbb{E}\left[\frac{1}{m}\sum_{i=1}^m x_i\right] \ge \epsilon\right) \le \exp\left(-\frac{2m^2\epsilon^2}{\sum_i(b_i-a_i)^2}\right)

对于 xi[0,1]x_i \in [0,1] 的情况(如误差指示函数),简化为:

P(E^(h)E(h)ϵ)e2mϵ2 P\left(\hat{E}(h) - E(h) \ge \epsilon\right) \le e^{-2m\epsilon^2}

直觉:有界随机变量的均值偏离其期望超过 ϵ\epsilon 的概率随样本量 mm 指数衰减。

📐 McDiarmid 不等式

若函数 f(x1,,xm)f(x_1,\ldots,x_m) 对每个 xix_i 的变化都有上界 cic_i(有界差性质),则:

P(f(x1,,xm)E[f]ϵ)exp(2ϵ2ici2) P\left(f(x_1,\ldots,x_m) - \mathbb{E}[f] \ge \epsilon\right) \le \exp\left(-\frac{2\epsilon^2}{\sum_i c_i^2}\right)

这是 Rademacher 复杂度推导中的重要工具。

02. PAC 学习框架

什么样的问题是”可以学的”?

🎯 PAC 学习的核心思想

PAC(Probably Approximately Correct)学习——“大概近似正确”学习,由 Valiant 于1984年提出,是计算学习理论的奠基性框架。

PAC 学习不要求学到的假设完美无误,而是允许两种形式的”失败”:

✅ ε-近似(Approximately Correct)

允许学到的假设有一定的泛化误差 E(h)ϵE(h) \le \epsilon(误差不超过 ϵ\epsilon)——“大概对”

✅ δ-置信(Probably)

允许以 δ\delta 的概率学习”失败”(找不到好的假设)——“大概率成功”

🍎 通俗理解

PAC 学习的承诺:

  "只要给我足够多的训练样本({% _internal_math_placeholder 595 %} 足够大),我**大概率**(概率 {% _internal_math_placeholder 596 %})能找到一个**大概正确**的假设(误差 {% _internal_math_placeholder 597 %})。"


  就像考试一样:不要求100分,能考到 {% _internal_math_placeholder 598 %} 分以上就算通过;不要求每次都通过,只要有 {% _internal_math_placeholder 599 %} 的概率通过就行。

🎯 PAC 学习的正式定义

H\mathcal{H} 是假设空间,C\mathcal{C} 是概念类(目标概念的集合)。称 C\mathcal{C} 关于 H\mathcal{H}PAC 可学习的,若:

存在学习算法 L\mathcal{L} 和多项式函数 poly(1/ϵ,1/δ,size(x),size(c))\text{poly}(1/\epsilon, 1/\delta, \text{size}(x), \text{size}(c)),使得对任意 ϵ,δ(0,1)\epsilon, \delta \in (0,1)、任意概念 cCc \in \mathcal{C}、任意分布 D\mathcal{D},当样本数 mpoly(1/ϵ,1/δ,size(x),size(c))m \ge \text{poly}(1/\epsilon, 1/\delta, \text{size}(x), \text{size}(c)) 时,L\mathcal{L} 以至少 1δ1-\delta 的概率输出假设 hHh \in \mathcal{H} 使得 E(h)ϵE(h) \le \epsilon

🔑 三个关键要素

  • ϵ\epsilon(误差参数):控制泛化误差的大小。越小要求越高,需要更多样本。
  • δ\delta(置信度参数):失败概率的上界。越小要求越高,需要更多样本。
  • 样本复杂度(Sample Complexity):满足 PAC 学习所需的最少样本数 mm

🎯 版本空间与一致学习器

📐 版本空间

给定训练集 DD,在假设空间 H\mathcal{H} 中,所有在 DD经验误差为0的假设构成版本空间(Version Space):

VH,D={hHE^(h;D)=0} V_{\mathcal{H},D} = \{h \in \mathcal{H} \mid \hat{E}(h;D) = 0\}

一致学习器:输出经验误差为0的假设(即在版本空间中选择一个假设)。

🍎 通俗理解版本空间

所有在练习题(训练集)上全部答对的学生(假设)组成”候选群”,这就是版本空间。这群学生在真实考试(泛化)上的表现,就是学习理论要分析的对象。

03. 有限假设空间

可分与不可分情形的样本复杂度界

📐 可分情形(Consistent Case)

假设目标概念 cHc \in \mathcal{H},即存在完全正确的假设(训练集线性可分)。

H|\mathcal{H}| 有限,对任意 ϵ,δ(0,1)\epsilon, \delta \in (0,1),若样本数满足:

m1ϵ(lnH+ln1δ) m \ge \frac{1}{\epsilon}\left(\ln |\mathcal{H}| + \ln\frac{1}{\delta}\right)

则任意一致学习器 L\mathcal{L} 以至少 1δ1-\delta 的概率输出假设 hh 满足 E(h)ϵE(h) \le \epsilon

📐 推导思路(Union Bound)

我们要让版本空间中所有”坏假设”(E(h)>ϵE(h) > \epsilon 的假设)都被排除的概率足够高。

单个坏假设 hhE(h)>ϵE(h) > \epsilon)能在 mm 个样本上全部答对的概率 (1ϵ)memϵ\le (1-\epsilon)^m \le e^{-m\epsilon}

H|\mathcal{H}| 个假设都还在版本空间里的概率(Union Bound):Hemϵδ\le |\mathcal{H}| \cdot e^{-m\epsilon} \le \delta

解出 mmm1ϵ(lnH+ln1δ)m \ge \frac{1}{\epsilon}(\ln|\mathcal{H}| + \ln\frac{1}{\delta})

🍎 通俗理解

你有 H|\mathcal{H}| 个学生候选人(假设),其中有几个是”背了答案”的作弊选手(坏假设,E(h)>ϵE(h)>\epsilon)。在 mm 道题的考试中,一个作弊选手恰好全答对(没被揭穿)的概率很小。

  样本量 {% _internal_math_placeholder 641 %} 越大,坏假设被"幸存"的概率越小。当 {% _internal_math_placeholder 642 %} 时,所有坏假设都被揭穿的概率 {% _internal_math_placeholder 643 %}。

📐 不可分情形(Agnostic Case)

更现实的情况:目标概念 cc 可能不在假设空间 H\mathcal{H} 中(噪声存在),称为Agnostic PAC 学习

在此情形下,目标是找到泛化误差与”最优假设”尽量接近的假设。设最优泛化误差为 minhHE(h)\min_{h \in \mathcal{H} } E(h)

对于有限假设空间 H|\mathcal{H}|,若样本数:

m12ϵ2(lnH+ln2δ) m \ge \frac{1}{2\epsilon^2}\left(\ln|\mathcal{H}| + \ln\frac{2}{\delta}\right)

则以至少 1δ1-\delta 的概率,对所有 hHh \in \mathcal{H} 均有:

E(h)E^(h)ϵ |E(h) - \hat{E}(h)| \le \epsilon

即经验误差与泛化误差之差以高概率不超过 ϵ\epsilon(Uniform Convergence)。

🔑 一致收敛(Uniform Convergence)

不可分情形的核心结论是一致收敛:样本量足够大时,所有假设的经验误差都能一致地收敛到其泛化误差(而不仅仅是某一个假设)。

04. VC 维(Vapnik-Chervonenkis Dimension)

度量假设空间”复杂度”的核心工具

📏 增长函数与对分

对于有限假设空间,样本复杂度界含 lnH\ln|\mathcal{H}| 项。但对于无限假设空间(如线性分类器),H=|\mathcal{H}| = \infty,需要更精细的工具——VC 维。

对分(Dichotomy):假设 hh 对样本集 {x1,,xm}\{x_1,\ldots,x_m\}一种标记方式称为一个对分。

增长函数(Growth Function):假设空间 H\mathcal{H}mm 个样本最多能产生多少种不同的对分:

ΠH(m)=max{x1,,xm}X{(h(x1),,h(xm))hH} \Pi_{\mathcal{H} }(m) = \max_{\{x_1,\ldots,x_m\} \subset \mathcal{X} } \left| \{(h(x_1),\ldots,h(x_m)) \mid h \in \mathcal{H}\} \right|

🍎 通俗理解增长函数

假设空间 H\mathcal{H} 是平面上的所有直线(分类器)。给定 mm 个点,不同的直线可以给出不同的”哪些点在直线左边/右边”的标记方式,这些方式的总数就是 ΠH(m)\Pi_\mathcal{H}(m)。增长函数度量了假设空间的”表达能力”。

📏 打散与 VC 维的定义

打散(Shatter):若假设空间 H\mathcal{H} 对样本集 {x1,,xm}\{x_1,\ldots,x_m\} 的所有 2m2^m 种标记方式都能实现,则称 H\mathcal{H}打散该样本集。

VC 维(Vapnik-Chervonenkis Dimension):假设空间 H\mathcal{H} 的 VC 维是能被 H\mathcal{H} 打散的最大样本集的大小:

VC(H)=max{mΠH(m)=2m} \text{VC}(\mathcal{H}) = \max\{m \mid \Pi_\mathcal{H}(m) = 2^m\}

如果对任意 mm 都有 ΠH(m)=2m\Pi_\mathcal{H}(m) = 2^m(无限打散能力),则 VC(H)=\text{VC}(\mathcal{H}) = \infty

平面上的直线:能打散3点(VC维=3) 不能打散4点(VC维=3 < 4) 3个点 → 8种标记均可实现 VC维 ≥ 3 ✓ (直线可打散这3点) 4个点(正方形)→ 无法实现棋盘格分法 + + 这种标记(XOR)直线无法分开! VC维 = 3 < 4 ✗

📏 常见假设空间的 VC 维

假设空间 VC 维 解释
实数轴上的区间 [a,b][a,b] 22 能打散2个点,但不能打散3个点(”+-+”无法实现)
二维平面上的直线(线性分类器) 33 能打散3点,4点中必有”XOR”分法无法实现
nn 维实空间中的超平面 n+1n+1 经典结论,维度越高VC维越大
kk 个参数的神经网络 O(klogk)O(k \log k)(近似) 参数越多,表达能力越强,VC维越大
无限宽的神经网络(通用近似) \infty 可以拟合任意函数

📏 基于 VC 维的泛化误差界

Vapnik-Chervonenkis 定理:对假设空间 H\mathcal{H}VC(H)=d\text{VC}(\mathcal{H}) = d,对任意 δ(0,1)\delta \in (0,1),以至少 1δ1-\delta 的概率:

E(h)E^(h)+8dln2emd+8ln4δm E(h) \le \hat{E}(h) + \sqrt{\frac{8d\ln\frac{2em}{d} + 8\ln\frac{4}{\delta} }{m} }

等价地,满足上述界所需的样本数为:

m=O(d+ln(1/δ)ϵ2) m = O\left(\frac{d + \ln(1/\delta)}{\epsilon^2}\right)

🔑 VC 维泛化界的意义

  • VC 维 dd 越大,需要的样本量越多,泛化误差界越松(模型越复杂,越难泛化)
  • 对于 nn 维线性分类器,VC 维 = n+1n+1,样本量需 O(n/ϵ2)O(n/\epsilon^2)——维度越高需要样本越多
  • 这从理论上解释了奥卡姆剃刀原则:在同等表现下,更简单的模型(VC 维更小)泛化性能更好

📐 Sauer-Shelah 引理(增长函数的上界)

VC(H)=d\text{VC}(\mathcal{H}) = d,则增长函数有如下上界:

ΠH(m)i=0d(mi) \Pi_\mathcal{H}(m) \le \sum_{i=0}^{d} \binom{m}{i}

md+1m \ge d+1 时,进一步有 ΠH(m)(em/d)d\Pi_\mathcal{H}(m) \le (em/d)^d(多项式上界!)

关键:当 m>dm > d 时,增长函数从 2m2^m(指数)退化为多项式——这正是有限VC维保证可学性的核心原因。

05. Rademacher 复杂度

基于数据分布的假设空间复杂度度量

🎲 Rademacher 复杂度的动机

VC 维是与数据分布无关的”最坏情况”度量。Rademacher 复杂度则结合了数据的具体分布,给出更紧的泛化误差界。

σ1,,σm\sigma_1, \ldots, \sigma_m 是独立的 Rademacher 随机变量(以相等概率取 +1+11-1),则假设空间 F\mathcal{F}(值域在 [1,1][-1,1])的经验 Rademacher 复杂度为:

R^D(F)=Eσ[supfF1mi=1mσif(xi)] \hat{\mathfrak{R} }_D(\mathcal{F}) = \mathbb{E}_\sigma\left[\sup_{f \in \mathcal{F} } \frac{1}{m}\sum_{i=1}^m \sigma_i f(x_i)\right]

Rademacher 复杂度(期望):Rm(F)=ED[R^D(F)]\mathfrak{R}_m(\mathcal{F}) = \mathbb{E}_D[\hat{\mathfrak{R} }_D(\mathcal{F})]

🍎 通俗理解

Rademacher 复杂度衡量假设空间与随机噪声的”相关程度”

σi\sigma_i 是随机噪声标签(随机+1或-1),如果假设空间中存在某个假设 ff 能很好地"拟合"这些随机噪声(σif(xi)\sum \sigma_i f(x_i) 很大),说明这个假设空间的容量很大——可以拟合任意模式,包括随机噪声,泛化能力弱。

Rademacher 复杂度越大 → 假设空间越复杂 → 泛化界越松。

🎲 基于 Rademacher 复杂度的泛化界

F\mathcal{F} 是函数集(损失函数类),对任意 δ(0,1)\delta \in (0,1),以至少 1δ1-\delta 的概率,对所有 fFf \in \mathcal{F}

E[f]E^[f]+2Rm(F)+ln(1/δ)2m E[f] \le \hat{E}[f] + 2\mathfrak{R}_m(\mathcal{F}) + \sqrt{\frac{\ln(1/\delta)}{2m} }

💡 Rademacher 复杂度 vs VC 维

  • VC 维:与分布无关,适用于最坏情况分析,计算往往复杂
  • Rademacher 复杂度:与数据分布相关,给出更紧的界,可以经验估计
  • 两者关系:Rm(H)2lnΠH(m)/m2dln(em/d)/m\mathfrak{R}_m(\mathcal{H}) \le \sqrt{2\ln\Pi_\mathcal{H}(m)/m} \le \sqrt{2d\ln(em/d)/m}

06. 稳定性

从”改变一个样本影响多大”分析泛化能力

⚖️ 稳定性的直觉

稳定性(Stability)是分析泛化能力的另一种路径:如果把训练集中的一个样本换掉,学习算法输出的假设变化不大,那么这个算法是稳定的,泛化能力也往往较好。

🍎 通俗理解

一个好的学生(稳定的学习算法):无论换掉哪一道练习题,他学到的知识变化不大——他是真正理解了知识,而不是死记硬背那一道题。

  一个死记硬背的学生(不稳定算法):换掉某道题后,整个学习策略大变——说明他过度依赖了那道题(过拟合),泛化能力差。

均匀稳定性(Uniform Stability):学习算法 L\mathcal{L}β\beta-均匀稳定的,若对任意训练集 DD 和任意样本 (x,y)(x,y),对任意替换(将 DD 中第 ii 个样本替换为 (x,y)(x',y') 得到 D(i)D^{(i)}),有:

supzl(L(D),z)l(L(D(i)),z)β \sup_{z} |l(\mathcal{L}(D), z) - l(\mathcal{L}(D^{(i)}), z)| \le \beta

其中 ll 是损失函数,β\beta 表示稳定性强弱(β\beta 越小越稳定)。

⚖️ 稳定性与泛化能力

若算法 L\mathcal{L}β\beta-均匀稳定的,且损失函数有界(l[0,M]l \in [0, M]),则以至少 1δ1-\delta 的概率:

E[L(D)]E^[L(D)]+2β+(4mβ+M)ln(1/δ)2m E[\mathcal{L}(D)] \le \hat{E}[\mathcal{L}(D)] + 2\beta + (4m\beta + M)\sqrt{\frac{\ln(1/\delta)}{2m} }

🔑 稳定性的意义与应用

  • SVM(支持向量机):L2 正则化的 SVM 是 O(1/(λm))O(1/(\lambda m))-稳定的,其中 λ\lambda 是正则化参数——正则化越强,越稳定,泛化越好
  • 随机梯度下降(SGD):现代深度学习中,SGD 的稳定性分析也是重要研究方向
  • 稳定性分析提供了与假设空间无关的泛化界,对神经网络等大规模模型分析有重要意义

💡 三种泛化分析路径对比

  • VC 维路径:分析假设空间的”打散能力”,与分布无关,最坏情况
  • Rademacher 路径:分析假设空间与随机噪声的相关性,与分布相关,更紧的界
  • 稳定性路径:分析算法对单个样本的敏感程度,适合分析具体算法

07. 对比总结

第十二章 计算学习理论 PAC 学习框架 ε-近似 · δ-置信 · 样本复杂度 有限假设空间 可分/不可分 · 样本复杂度界 VC 维 打散 · 增长函数 · 泛化界 Rademacher 复杂度 分布相关 · 更紧的泛化界 稳定性 均匀稳定性 · 算法分析视角 三种泛化分析路径:VC维(空间) · Rademacher(数据) · 稳定性(算法)

🔑 核心公式汇总

工具 泛化误差界 特点
有限空间(可分) m1ϵ(lnH+ln1δ)m \ge \frac{1}{\epsilon}(\ln|\mathcal{H}|+\ln\frac{1}{\delta}) 需目标概念在 H 中
有限空间(不可分) m12ϵ2(lnH+ln2δ)m \ge \frac{1}{2\epsilon^2}(\ln|\mathcal{H}|+\ln\frac{2}{\delta}) 更一般,允许噪声
VC 维 m=O(d+ln(1/δ)ϵ2)m = O\left(\frac{d+\ln(1/\delta)}{\epsilon^2}\right) 无限空间,与分布无关
Rademacher E[f]E^[f]+2Rm+ln(1/δ)2mE[f] \le \hat{E}[f] + 2\mathfrak{R}_m + \sqrt{\frac{\ln(1/\delta)}{2m} } 与分布相关,更紧
稳定性 EE^+2β+(4mβ+M)ln(1/δ)2mE \le \hat{E} + 2\beta + (4m\beta+M)\sqrt{\frac{\ln(1/\delta)}{2m} } 分析具体算法

🔑 考试高频考点

  • 📌 PAC 学习定义:ε-近似(大概正确)+ δ-置信(大概率),理解三要素
  • 📌 可分情形样本复杂度m1ϵ(lnH+ln1δ)m \ge \frac{1}{\epsilon}(\ln|\mathcal{H}|+\ln\frac{1}{\delta}) 及其推导思路
  • 📌 VC 维的定义:能被打散的最大样本集大小,能计算常见假设空间的 VC 维
  • 📌 打散的概念H|\mathcal{H}| 能实现样本集所有 2m2^m 种标记方式
  • 📌 Sauer-Shelah 引理ΠH(m)(em/d)d\Pi_\mathcal{H}(m) \le (em/d)^d(多项式,而非指数)
  • 📌 Rademacher 复杂度的直觉:与随机噪声相关程度越大,假设空间越复杂
  • 📌 稳定性的含义:换一个训练样本,算法输出变化不大 → 泛化好