本文是周志华《机器学习》(西瓜书)第12章 计算学习理论(Learning Theory)的学习笔记,涵盖本章所有核心知识点,配有通俗类比与公式推导。
01. 基础知识与符号
学习理论的基本概念和数学工具
🧮 核心概念
📐 基本设置
- X:样本空间,Y:标记空间(如 {−1,+1})
- D:X×Y 上的未知分布
- D={(x1,y1),…,(xm,ym)}:从 D 独立同分布采样的训练集
- h:X→Y:假设(即学到的分类器)
- H:假设空间(所有候选假设的集合)
📐 误差的定义
E(h;D)=P(x,y)∼D[h(x)=y](分布上的期望)
E^(h;D)=m1∑i=1m1[h(xi)=yi](训练集上的频率)
- 误差的差值:∣E(h)−E^(h)∣ 表示泛化误差和经验误差的偏差
🍎 通俗理解
泛化误差:你去参加真实考试,答对多少题——用来评价真正的学习能力。
经验误差:你在练习题(训练集)上答对多少——可以观测到,但不等于真实能力。
计算学习理论的核心问题:我们能不能通过练习题上的表现,来保证真实考试上的表现?需要多少练习题才够?
🧮 重要的概率不等式(工具)
📐 Hoeffding 不等式
设 x1,…,xm 是 m 个独立随机变量,且 xi∈[ai,bi],则:
P(m1i=1∑mxi−E[m1i=1∑mxi]≥ϵ)≤exp(−∑i(bi−ai)22m2ϵ2)
对于 xi∈[0,1] 的情况(如误差指示函数),简化为:
P(E^(h)−E(h)≥ϵ)≤e−2mϵ2
直觉:有界随机变量的均值偏离其期望超过 ϵ 的概率随样本量 m 指数衰减。
📐 McDiarmid 不等式
若函数 f(x1,…,xm) 对每个 xi 的变化都有上界 ci(有界差性质),则:
P(f(x1,…,xm)−E[f]≥ϵ)≤exp(−∑ici22ϵ2)
这是 Rademacher 复杂度推导中的重要工具。
02. PAC 学习框架
什么样的问题是”可以学的”?
🎯 PAC 学习的核心思想
PAC(Probably Approximately Correct)学习——“大概近似正确”学习,由 Valiant 于1984年提出,是计算学习理论的奠基性框架。
PAC 学习不要求学到的假设完美无误,而是允许两种形式的”失败”:
✅ ε-近似(Approximately Correct)
允许学到的假设有一定的泛化误差 E(h)≤ϵ(误差不超过 ϵ)——“大概对”
✅ δ-置信(Probably)
允许以 δ 的概率学习”失败”(找不到好的假设)——“大概率成功”
🍎 通俗理解
PAC 学习的承诺:
"只要给我足够多的训练样本({% _internal_math_placeholder 595 %} 足够大),我**大概率**(概率 {% _internal_math_placeholder 596 %})能找到一个**大概正确**的假设(误差 {% _internal_math_placeholder 597 %})。"
就像考试一样:不要求100分,能考到 {% _internal_math_placeholder 598 %} 分以上就算通过;不要求每次都通过,只要有 {% _internal_math_placeholder 599 %} 的概率通过就行。
🎯 PAC 学习的正式定义
设 H 是假设空间,C 是概念类(目标概念的集合)。称 C 关于 H 是PAC 可学习的,若:
存在学习算法 L 和多项式函数 poly(1/ϵ,1/δ,size(x),size(c)),使得对任意 ϵ,δ∈(0,1)、任意概念 c∈C、任意分布 D,当样本数 m≥poly(1/ϵ,1/δ,size(x),size(c)) 时,L 以至少 1−δ 的概率输出假设 h∈H 使得 E(h)≤ϵ。
🔑 三个关键要素
- ϵ(误差参数):控制泛化误差的大小。越小要求越高,需要更多样本。
- δ(置信度参数):失败概率的上界。越小要求越高,需要更多样本。
- 样本复杂度(Sample Complexity):满足 PAC 学习所需的最少样本数 m。
🎯 版本空间与一致学习器
📐 版本空间
给定训练集 D,在假设空间 H 中,所有在 D 上经验误差为0的假设构成版本空间(Version Space):
VH,D={h∈H∣E^(h;D)=0}
一致学习器:输出经验误差为0的假设(即在版本空间中选择一个假设)。
🍎 通俗理解版本空间
所有在练习题(训练集)上全部答对的学生(假设)组成”候选群”,这就是版本空间。这群学生在真实考试(泛化)上的表现,就是学习理论要分析的对象。
03. 有限假设空间
可分与不可分情形的样本复杂度界
📐 可分情形(Consistent Case)
假设目标概念 c∈H,即存在完全正确的假设(训练集线性可分)。
若 ∣H∣ 有限,对任意 ϵ,δ∈(0,1),若样本数满足:
m≥ϵ1(ln∣H∣+lnδ1)
则任意一致学习器 L 以至少 1−δ 的概率输出假设 h 满足 E(h)≤ϵ。
📐 推导思路(Union Bound)
我们要让版本空间中所有”坏假设”(E(h)>ϵ 的假设)都被排除的概率足够高。
单个坏假设 h(E(h)>ϵ)能在 m 个样本上全部答对的概率 ≤(1−ϵ)m≤e−mϵ。
∣H∣ 个假设都还在版本空间里的概率(Union Bound):≤∣H∣⋅e−mϵ≤δ
解出 m:m≥ϵ1(ln∣H∣+lnδ1)
🍎 通俗理解
你有 ∣H∣ 个学生候选人(假设),其中有几个是”背了答案”的作弊选手(坏假设,E(h)>ϵ)。在 m 道题的考试中,一个作弊选手恰好全答对(没被揭穿)的概率很小。
样本量 {% _internal_math_placeholder 641 %} 越大,坏假设被"幸存"的概率越小。当 {% _internal_math_placeholder 642 %} 时,所有坏假设都被揭穿的概率 {% _internal_math_placeholder 643 %}。
📐 不可分情形(Agnostic Case)
更现实的情况:目标概念 c 可能不在假设空间 H 中(噪声存在),称为Agnostic PAC 学习。
在此情形下,目标是找到泛化误差与”最优假设”尽量接近的假设。设最优泛化误差为 minh∈HE(h)。
对于有限假设空间 ∣H∣,若样本数:
m≥2ϵ21(ln∣H∣+lnδ2)
则以至少 1−δ 的概率,对所有 h∈H 均有:
∣E(h)−E^(h)∣≤ϵ
即经验误差与泛化误差之差以高概率不超过 ϵ(Uniform Convergence)。
🔑 一致收敛(Uniform Convergence)
不可分情形的核心结论是一致收敛:样本量足够大时,所有假设的经验误差都能一致地收敛到其泛化误差(而不仅仅是某一个假设)。
04. VC 维(Vapnik-Chervonenkis Dimension)
度量假设空间”复杂度”的核心工具
📏 增长函数与对分
对于有限假设空间,样本复杂度界含 ln∣H∣ 项。但对于无限假设空间(如线性分类器),∣H∣=∞,需要更精细的工具——VC 维。
对分(Dichotomy):假设 h 对样本集 {x1,…,xm} 的一种标记方式称为一个对分。
增长函数(Growth Function):假设空间 H 对 m 个样本最多能产生多少种不同的对分:
ΠH(m)={x1,…,xm}⊂Xmax∣{(h(x1),…,h(xm))∣h∈H}∣
🍎 通俗理解增长函数
假设空间 H 是平面上的所有直线(分类器)。给定 m 个点,不同的直线可以给出不同的”哪些点在直线左边/右边”的标记方式,这些方式的总数就是 ΠH(m)。增长函数度量了假设空间的”表达能力”。
📏 打散与 VC 维的定义
打散(Shatter):若假设空间 H 对样本集 {x1,…,xm} 的所有 2m 种标记方式都能实现,则称 H 能打散该样本集。
VC 维(Vapnik-Chervonenkis Dimension):假设空间 H 的 VC 维是能被 H 打散的最大样本集的大小:
VC(H)=max{m∣ΠH(m)=2m}
如果对任意 m 都有 ΠH(m)=2m(无限打散能力),则 VC(H)=∞。
📏 常见假设空间的 VC 维
| 假设空间 |
VC 维 |
解释 |
| 实数轴上的区间 [a,b] |
2 |
能打散2个点,但不能打散3个点(”+-+”无法实现) |
| 二维平面上的直线(线性分类器) |
3 |
能打散3点,4点中必有”XOR”分法无法实现 |
| n 维实空间中的超平面 |
n+1 |
经典结论,维度越高VC维越大 |
| 有 k 个参数的神经网络 |
O(klogk)(近似) |
参数越多,表达能力越强,VC维越大 |
| 无限宽的神经网络(通用近似) |
∞ |
可以拟合任意函数 |
📏 基于 VC 维的泛化误差界
Vapnik-Chervonenkis 定理:对假设空间 H,VC(H)=d,对任意 δ∈(0,1),以至少 1−δ 的概率:
E(h)≤E^(h)+m8dlnd2em+8lnδ4
等价地,满足上述界所需的样本数为:
m=O(ϵ2d+ln(1/δ))
🔑 VC 维泛化界的意义
- VC 维 d 越大,需要的样本量越多,泛化误差界越松(模型越复杂,越难泛化)
- 对于 n 维线性分类器,VC 维 = n+1,样本量需 O(n/ϵ2)——维度越高需要样本越多
- 这从理论上解释了奥卡姆剃刀原则:在同等表现下,更简单的模型(VC 维更小)泛化性能更好
📐 Sauer-Shelah 引理(增长函数的上界)
若 VC(H)=d,则增长函数有如下上界:
ΠH(m)≤i=0∑d(im)
当 m≥d+1 时,进一步有 ΠH(m)≤(em/d)d(多项式上界!)
关键:当 m>d 时,增长函数从 2m(指数)退化为多项式——这正是有限VC维保证可学性的核心原因。
05. Rademacher 复杂度
基于数据分布的假设空间复杂度度量
🎲 Rademacher 复杂度的动机
VC 维是与数据分布无关的”最坏情况”度量。Rademacher 复杂度则结合了数据的具体分布,给出更紧的泛化误差界。
设 σ1,…,σm 是独立的 Rademacher 随机变量(以相等概率取 +1 或 −1),则假设空间 F(值域在 [−1,1])的经验 Rademacher 复杂度为:
R^D(F)=Eσ[f∈Fsupm1i=1∑mσif(xi)]
Rademacher 复杂度(期望):Rm(F)=ED[R^D(F)]
🍎 通俗理解
Rademacher 复杂度衡量假设空间与随机噪声的”相关程度”。
σi 是随机噪声标签(随机+1或-1),如果假设空间中存在某个假设 f 能很好地"拟合"这些随机噪声(∑σif(xi) 很大),说明这个假设空间的容量很大——可以拟合任意模式,包括随机噪声,泛化能力弱。
Rademacher 复杂度越大 → 假设空间越复杂 → 泛化界越松。
🎲 基于 Rademacher 复杂度的泛化界
设 F 是函数集(损失函数类),对任意 δ∈(0,1),以至少 1−δ 的概率,对所有 f∈F:
E[f]≤E^[f]+2Rm(F)+2mln(1/δ)
💡 Rademacher 复杂度 vs VC 维
- VC 维:与分布无关,适用于最坏情况分析,计算往往复杂
- Rademacher 复杂度:与数据分布相关,给出更紧的界,可以经验估计
- 两者关系:Rm(H)≤2lnΠH(m)/m≤2dln(em/d)/m
06. 稳定性
从”改变一个样本影响多大”分析泛化能力
⚖️ 稳定性的直觉
稳定性(Stability)是分析泛化能力的另一种路径:如果把训练集中的一个样本换掉,学习算法输出的假设变化不大,那么这个算法是稳定的,泛化能力也往往较好。
🍎 通俗理解
一个好的学生(稳定的学习算法):无论换掉哪一道练习题,他学到的知识变化不大——他是真正理解了知识,而不是死记硬背那一道题。
一个死记硬背的学生(不稳定算法):换掉某道题后,整个学习策略大变——说明他过度依赖了那道题(过拟合),泛化能力差。
均匀稳定性(Uniform Stability):学习算法 L 是 β-均匀稳定的,若对任意训练集 D 和任意样本 (x,y),对任意替换(将 D 中第 i 个样本替换为 (x′,y′) 得到 D(i)),有:
zsup∣l(L(D),z)−l(L(D(i)),z)∣≤β
其中 l 是损失函数,β 表示稳定性强弱(β 越小越稳定)。
⚖️ 稳定性与泛化能力
若算法 L 是 β-均匀稳定的,且损失函数有界(l∈[0,M]),则以至少 1−δ 的概率:
E[L(D)]≤E^[L(D)]+2β+(4mβ+M)2mln(1/δ)
🔑 稳定性的意义与应用
- SVM(支持向量机):L2 正则化的 SVM 是 O(1/(λm))-稳定的,其中 λ 是正则化参数——正则化越强,越稳定,泛化越好
- 随机梯度下降(SGD):现代深度学习中,SGD 的稳定性分析也是重要研究方向
- 稳定性分析提供了与假设空间无关的泛化界,对神经网络等大规模模型分析有重要意义
💡 三种泛化分析路径对比
- VC 维路径:分析假设空间的”打散能力”,与分布无关,最坏情况
- Rademacher 路径:分析假设空间与随机噪声的相关性,与分布相关,更紧的界
- 稳定性路径:分析算法对单个样本的敏感程度,适合分析具体算法
07. 对比总结
🔑 核心公式汇总
| 工具 |
泛化误差界 |
特点 |
| 有限空间(可分) |
m≥ϵ1(ln∣H∣+lnδ1) |
需目标概念在 H 中 |
| 有限空间(不可分) |
m≥2ϵ21(ln∣H∣+lnδ2) |
更一般,允许噪声 |
| VC 维 |
m=O(ϵ2d+ln(1/δ)) |
无限空间,与分布无关 |
| Rademacher |
E[f]≤E^[f]+2Rm+2mln(1/δ) |
与分布相关,更紧 |
| 稳定性 |
E≤E^+2β+(4mβ+M)2mln(1/δ) |
分析具体算法 |
🔑 考试高频考点
- 📌 PAC 学习定义:ε-近似(大概正确)+ δ-置信(大概率),理解三要素
- 📌 可分情形样本复杂度:m≥ϵ1(ln∣H∣+lnδ1) 及其推导思路
- 📌 VC 维的定义:能被打散的最大样本集大小,能计算常见假设空间的 VC 维
- 📌 打散的概念:∣H∣ 能实现样本集所有 2m 种标记方式
- 📌 Sauer-Shelah 引理:ΠH(m)≤(em/d)d(多项式,而非指数)
- 📌 Rademacher 复杂度的直觉:与随机噪声相关程度越大,假设空间越复杂
- 📌 稳定性的含义:换一个训练样本,算法输出变化不大 → 泛化好