
第1章“Introduction”详细讲解
本章是《Probabilistic Machine Learning: An Introduction》的开篇,旨在为读者建立机器学习的基本框架,定义核心概念,介绍三种主要的学习范式(监督学习、无监督学习、强化学习),并讨论数据预处理和常见数据集。本章内容为全书后续章节奠定基础,强调概率视角在机器学习中的核心地位。
1.1 什么是机器学习?
定义:一个计算机程序从经验 $E$ 中学习,针对某类任务 $T$ 和性能度量 $P$,如果它在任务 $T$ 上的性能(以 $P$ 衡量)随着经验 $E$ 而提高。(Tom Mitchell)
解释:
- 任务 $T$:系统要完成的目标(例如分类、回归)。
- 经验 $E$:训练数据或交互历史。
- 性能 $P$:衡量任务完成质量的指标(如准确率、均方误差)。
概率视角:本书将所有未知量(如未来预测、模型参数)视为随机变量,用概率分布描述其不确定性。这种视角的优势在于:
- 它是处理不确定性的最优决策框架(第5章)。
- 它是连接机器学习与统计学、信息论、控制论等其他科学领域的统一语言。
1.2 监督学习
监督学习是最常见的机器学习形式。其核心是学习一个从输入 $x \in \mathcal{X}$ 到输出 $y \in \mathcal{Y}$ 的映射 $f$,基于已知的输入-输出对训练集 $\mathcal{D} = \{(x_n, y_n)\}_{n=1}^N$。
1.2.1 分类
- 定义:输出空间是离散的、互斥的类别集合 $\mathcal{Y} = \{1,2,\ldots,C\}$。
- 二分类:$C=2$,通常记 $y \in \{0,1\}$ 或 $y \in \{-1,+1\}$。
- 多分类:$C>2$。
1.2.1.1 示例:鸢尾花分类
- 数据集:Iris数据集,150个样本,4个数值特征(萼片长度、萼片宽度、花瓣长度、花瓣宽度),3个类别(Setosa, Versicolor, Virginica)。
- 设计矩阵:$N \times D$ 矩阵,每行一个样本,每列一个特征。表1.1展示了部分数据。
1.2.1.2 探索性数据分析
- 目的:在建模前了解数据分布、发现模式、检测异常。
- 常用方法:
- 散点图矩阵(pair plot):显示特征两两之间的关系,对角线显示边缘密度,颜色编码类别(图1.3)。
- 降维可视化:对高维数据先用PCA等降维,再在2D/3D中展示。
1.2.1.3 学习一个分类器
以决策树为例(图1.4):
- 决策规则:例如,若花瓣长度 < 2.45 → Setosa,否则为Versicolor或Virginica。
- 递归划分:对误分类区域继续划分,形成树结构。
- 参数:每个内部节点包含特征索引和阈值,记为 $\theta$。
1.2.1.4 经验风险最小化
- 损失函数 $\ell(y, \hat{y})$:度量预测 $\hat{y}$ 与真实标签 $y$ 的差异。
- 0-1损失:$\ell_{01}(y,\hat{y}) = \mathbb{I}(y \neq \hat{y})$。
- 非对称损失:不同错误类型代价不同(如表1.2,将Virginica误分类为Setosa代价高)。
- 经验风险:训练集上的平均损失: $$ \mathcal{L}(\theta) = \frac{1}{N}\sum_{n=1}^N \ell(y_n, f(x_n;\theta)) $$
- 经验风险最小化(ERM):寻找使经验风险最小的参数 $\hat{\theta} = \arg\min \mathcal{L}(\theta)$。
1.2.1.5 不确定性
- 原因:
- 认知不确定性(epistemic uncertainty):由于模型知识不足(如参数不确定)。
- 随机不确定性(aleatoric uncertainty):数据内在的随机性(如噪声)。
- 概率建模:用条件概率分布 $p(y=c|x;\theta)$ 表示不确定性,满足 $0 \le p_c \le 1$ 且 $\sum_c p_c = 1$。
- Softmax函数:将实数向量(logits)映射为概率分布: $$ \mathrm{softmax}(\mathbf{a})_c = \frac{e^{a_c}}{\sum_{c'} e^{a_{c'}}} $$ 其中 $\mathbf{a} = f(x;\theta)$ 为logits。
- 逻辑回归:当 $f$ 为线性函数时,$p(y=c|x) = \mathrm{softmax}_c(\mathbf{w}^\top x + b)$。
1.2.1.6 最大似然估计
- 负对数似然(NLL): $$ \mathrm{NLL}(\theta) = -\frac{1}{N}\sum_{n=1}^N \log p(y_n|x_n;\theta) $$
- 最大似然估计(MLE):最小化NLL得到 $\hat{\theta}_{\text{mle}}$。
1.2.2 回归
- 定义:输出是连续值 $y \in \mathbb{R}$。
- 常见损失:平方损失 $\ell_2(y,\hat{y}) = (y-\hat{y})^2$。
- 均方误差(MSE):$\mathrm{MSE}(\theta) = \frac{1}{N}\sum_{n=1}^N (y_n - f(x_n;\theta))^2$。
- 概率视角:假设 $y$ 服从高斯分布 $p(y|x;\theta) = \mathcal{N}(y|f(x;\theta),\sigma^2)$,则最小化MSE等价于MLE。
1.2.2.1 线性回归
- 模型:$f(x;\theta) = \mathbf{w}^\top x + b$。
- 最小二乘解:$\hat{\theta} = \arg\min \mathrm{MSE}(\theta)$。
1.2.2.2 多项式回归
- 特征扩展:将输入 $x$ 映射到多项式特征 $\phi(x) = [1, x, x^2, \ldots, x^D]$。
- 模型:$f(x;\mathbf{w}) = \mathbf{w}^\top \phi(x)$。仍为线性参数模型,但输入非线性。
1.2.2.3 深度神经网络
- 思想:学习特征提取器,形成多层嵌套函数: $$ f(x;\theta) = f_L(f_{L-1}(\cdots f_1(x)\cdots)) $$
- 意义:自动学习有用特征,无需手工设计。
1.2.3 过拟合与泛化
- 过拟合:模型在训练集上表现很好,但在新数据上表现差(图1.7c)。
- 泛化能力:模型对未见数据的预测能力。
- 训练/测试划分:将数据分为训练集、验证集、测试集。用测试误差近似泛化误差。
- 泛化差距:测试误差与训练误差之差。
1.2.4 没有免费午餐定理
- 陈述:不存在一个模型对所有问题都最优。任何模型都有其归纳偏置(假设),适用于某些领域,不适用于其他领域。
- 启示:需根据领域知识和实验选择模型。
1.3 无监督学习
- 定义:从无标签数据 $\mathcal{D} = \{x_n\}$ 中学习,目标是发现数据内在结构。
- 概率视角:学习无条件模型 $p(x)$。
1.3.1 聚类
- 目标:将数据划分成“相似”的组(簇)。
- 示例:Iris数据(图1.8),用K-means聚类成3簇。注意簇数需权衡(模型复杂度与拟合度)。
1.3.2 发现潜在“变化因素”
- 降维:假设高维观测数据由低维潜在变量 $z$ 生成。
- 线性因子模型:例如因子分析(FA)和概率主成分分析(PPCA)。
- $p(x|z;\theta) = \mathcal{N}(x|\mathbf{W}z + \mu, \mathbf{\Sigma})$,$z \sim \mathcal{N}(0,\mathbf{I})$。
- 非线性扩展:深度神经网络作为映射,如变分自编码器(VAE)。
1.3.3 自监督学习
- 思想:从无标签数据构造代理监督任务(如预测图像的颜色、预测被遮盖的词),学习有用特征,再用于下游任务。
1.3.4 评估无监督学习
- 密度估计:用测试集上的负对数似然 $\mathcal{L}(\theta) = -\frac{1}{|\mathcal{D}|}\sum_{x\in\mathcal{D}}\log p(x|\theta)$ 衡量模型质量。
- 下游任务性能:用学到的表示作为特征,在少量标注数据上训练分类器,评估其性能。
1.4 强化学习
- 定义:智能体(agent)通过与环境交互学习最优策略 $\pi(x)$,以最大化累积奖励。
- 特点:
- 无直接监督信号,只有延迟的奖励。
- 需平衡探索(exploration)与利用(exploitation)。
- 与监督学习的关系:Yann LeCun的“蛋糕比喻”:无监督学习是蛋糕体,监督学习是 icing,强化学习是樱桃(图1.11)。
1.5 数据
1.5.1 常见图像数据集
| 数据集 | 描述 | 规模 | 用途 |
|---|---|---|---|
| MNIST | 手写数字,28×28灰度 | 60k训练,10k测试 | 入门级分类 |
| EMNIST | 扩展MNIST,含字母 | 697k训练 | 更难分类 |
| Fashion-MNIST | 服装图片 | 同上 | 替代MNIST |
| CIFAR-10/100 | 32×32彩色,10/100类 | 50k训练,10k测试 | 常见基准 |
| ImageNet | 256×256彩色,1000类 | 1.3M训练 | 大规模挑战 |
1.5.2 常见文本数据集
- IMDB电影评论:二分类情感分析,25k训练+25k测试。
- 机器翻译:如WMT英-德平行语料。
- SQuAD:问答数据集,从文本中提取答案。
- 语言建模:无监督学习文本序列分布。
1.5.3 预处理离散输入数据
1.5.3.1 One-hot编码
- 定义:将 $K$ 个取值的分类变量转换为 $K$ 维二进制向量,仅对应位置为1。
- 示例:颜色 {红,绿,蓝} → 红=(1,0,0), 绿=(0,1,0), 蓝=(0,0,1)。
1.5.3.2 特征交叉
- 目的:捕捉特征间的交互作用。
- 方法:创建新特征表示组合(如SUV且美国产)。线性模型用此可建模非线性关系。
1.5.4 预处理文本数据
1.5.4.1 Bag-of-words模型
- 步骤:分词、去停用词、词干提取,统计词频得到文档向量。
1.5.4.2 TF-IDF
- 公式:$\text{TF-IDF}_{ij} = \log(\text{TF}_{ij}+1) \times \log\frac{N}{1+\text{DF}_i}$。
- 作用:降低常见词权重,突出重要词。
1.5.4.3 词嵌入
- 思想:将 one-hot 词映射为低维稠密向量,使语义相似的词向量相近。
- 示例:$\mathbf{e}_{nt} = \mathbf{E}\mathbf{x}_{nt}$,其中 $\mathbf{E}$ 为嵌入矩阵。
1.5.4.4 处理新词
- OOV问题:用
<UNK>替换未见词,或用子词单元(如byte-pair encoding)。
1.5.5 处理缺失数据
- 缺失机制:
- MCAR(完全随机缺失):缺失与数据无关。
- MAR(随机缺失):缺失依赖于观测数据。
- NMAR(非随机缺失):缺失依赖于未观测值。
- 处理:均值填充、生成模型插补等。
1.6 讨论
1.6.1 ML与其他领域的关系
- 数据挖掘:侧重于结构化数据。
- 数据科学:结合ML、统计、可视化、领域知识。
- 统计学:与ML紧密相连,ML可视为计算统计学。
- 人工智能:ML是实现AI的关键技术。
1.6.2 本书结构
- 第一部分:基础(概率、统计、决策论、信息论、线性代数、优化)。
- 第二部分:线性模型(LDA、逻辑回归、线性回归、GLM)。
- 第三部分:深度神经网络(MLP、CNN、RNN)。
- 第四部分:非参数模型(KNN、核方法、树模型)。
- 第五部分:超越监督学习(少样本学习、降维、聚类、推荐系统、图嵌入)。
1.6.3 注意事项
- 奖励黑客:优化给定的损失函数可能未捕获真实偏好。
- 对齐问题:需确保AI系统目标与人类价值观一致。
- 增强智能:将AI视为辅助工具,保持人类在决策循环中。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 分类 | Iris数据集,用花瓣长度区分Setosa |
| 回归 | 用线性回归预测温度 |
| 过拟合 | 多项式回归次数过高导致摆动 |
| One-hot编码 | 颜色[红,绿,蓝] → (1,0,0), (0,1,0), (0,0,1) |
| TF-IDF | 降低“the”的权重,提高“COVID”的权重 |
| 词嵌入 | 词向量相加得到句子向量用于分类 |
前后章节联系
- 概率基础:本章强调概率视角,为第2-3章概率论做铺垫。
- 线性模型:逻辑回归、线性回归是后续线性模型章节的核心。
- 深度学习:本章简要介绍DNN,为第三部分深入讲解奠定基础。
- 非参数方法:KNN、核方法等将在第四部分详细展开。
- 模型评估:泛化、过拟合等概念在第四、五章反复出现。
本章核心要点
- 机器学习三范式:监督学习、无监督学习、强化学习。
- 监督学习核心:分类与回归,损失函数,经验风险最小化,最大似然估计。
- 概率视角:用概率分布量化不确定性,softmax、高斯分布等。
- 泛化问题:过拟合、欠拟合、训练/测试划分。
- 数据预处理:One-hot编码、特征交叉、词嵌入、TF-IDF、缺失数据处理。
- 常见数据集:MNIST, CIFAR, ImageNet, IMDB等。
- 重要定理:没有免费午餐定理(模型选择需考虑领域)。
常见难点
- 理解经验风险最小化与最大似然估计的关系(NLL等价于交叉熵)。
- 区分认知不确定性与随机不确定性。
- 掌握One-hot编码与特征交叉的原理。
- 理解过拟合的成因及如何通过正则化、更多数据缓解。
学习建议
- 动手实践:用Iris数据集尝试简单的分类和回归。
- 阅读后续章节时,反复回顾本章定义。
- 注意概率视角如何贯穿全书,是理解贝叶斯方法和深度学习的关键。
以上是对第1章“Introduction”的详细讲解,涵盖了所有重要概念、原理和实例,并构建了知识体系,说明了前后联系。希望对您的学习有所帮助!
第2章“Probability: Univariate Models”详细讲解
本章是全书概率论基础的开端,聚焦于单变量概率模型。概率论是机器学习的核心语言,理解本章内容对于后续学习统计推断、贝叶斯方法、各种概率模型至关重要。本章从概率的基本哲学开始,逐步引入随机变量、常见分布、数字特征、贝叶斯定理以及随机变量的变换,为读者构建起处理不确定性的数学工具。
2.1 引言
2.1.1 什么是概率?
概率有两种主要解释:
- 频率主义:概率是长期重复试验中事件发生的相对频率。例如,抛一枚公平硬币,出现正面的概率为0.5,意味着如果抛很多次,大约一半是正面。
- 贝叶斯主义:概率表示对某个命题的主观信念强度,是信息的度量,可以用于一次性事件。例如,“明天下雨的概率是30%”表达的是基于当前信息的信念。
本书采用贝叶斯视角,因为它更灵活,能够处理没有长期频率的事件,并且与决策理论自然结合(第5章)。
2.1.2 不确定性的类型
- 认知不确定性(epistemic uncertainty):由于知识缺乏导致的不确定性,可以通过收集更多数据来减少。例如,对模型参数的不确定。
- 随机不确定性(aleatoric uncertainty):数据本身固有的随机性,无法通过更多数据消除。例如,掷骰子的结果。
区分这两种不确定性对于主动学习、决策等非常重要(第19章)。
2.1.3 概率作为逻辑的延伸
概率可以视为布尔逻辑的扩展,用数值表示命题的真假程度。基本规则:
- 事件 $A$ 的概率 $0 \le \Pr(A) \le 1$。
- 对立事件 $\Pr(\overline{A}) = 1 - \Pr(A)$。
- 联合概率 $\Pr(A \land B) = \Pr(A,B)$,若独立则等于 $\Pr(A)\Pr(B)$。
- 并集概率 $\Pr(A \lor B) = \Pr(A) + \Pr(B) - \Pr(A,B)$。
- 条件概率 $\Pr(B|A) = \Pr(A,B) / \Pr(A)$($\Pr(A)>0$)。
- 独立:$\Pr(A,B)=\Pr(A)\Pr(B)$。
- 条件独立:$\Pr(A,B|C)=\Pr(A|C)\Pr(B|C)$。
2.2 随机变量
随机变量是取值不确定的量,记作 $X$,其可能取值的集合称为样本空间 $\mathcal{X}$。
2.2.1 离散随机变量
- 定义:样本空间有限或可数无限。
- 概率质量函数(PMF):$p(x) = \Pr(X=x)$,满足 $0 \le p(x) \le 1$ 且 $\sum_x p(x)=1$。
- 示例:掷一个均匀四面体骰子,$X \in \{1,2,3,4\}$,$p(x)=1/4$。图2.1展示了均匀分布和退化分布(所有质量集中于一点)。
2.2.2 连续随机变量
- 定义:取值于实数区间。
- 累积分布函数(CDF):$P(x) = \Pr(X \le x)$,单调不减,$\lim_{x\to -\infty}P(x)=0$,$\lim_{x\to\infty}P(x)=1$。
- 概率密度函数(PDF):$p(x) = \frac{d}{dx}P(x)$,满足 $p(x) \ge 0$ 且 $\int_{-\infty}^{\infty} p(x)dx = 1$。注意密度可以大于1(如 $\mathcal{N}(0|0,0.1)\approx 4$),但概率是积分值。
- 分位数:对于 $q \in [0,1]$,$P^{-1}(q)$ 是第 $q$ 分位数。中位数是 $P^{-1}(0.5)$,四分位数是 $P^{-1}(0.25)$ 和 $P^{-1}(0.75)$。
- 示例:标准正态分布 $\mathcal{N}(0,1)$ 的CDF和PDF如图2.2所示。
2.2.3 多个相关随机变量
- 联合分布:$p(x,y)$ 描述两个随机变量同时取值的概率(对离散)或密度(对连续)。
- 边缘分布:$p(x) = \sum_y p(x,y)$(离散)或 $p(x) = \int p(x,y)dy$(连续)。这是求和规则或全概率规则。
- 条件分布:$p(y|x) = p(x,y)/p(x)$。
- 链式法则:$p(x_{1:D}) = p(x_1)p(x_2|x_1)p(x_3|x_1,x_2)\cdots p(x_D|x_{1:D-1})$。
2.2.4 独立性与条件独立性
- 无条件独立:$X \perp Y$ 当且仅当 $p(X,Y)=p(X)p(Y)$。
- 条件独立:$X \perp Y \mid Z$ 当且仅当 $p(X,Y|Z)=p(X|Z)p(Y|Z)$。这是图模型的基础(第3.6节)。
2.2.5 分布的数字特征
- 期望(均值) $\mathbb{E}[X]$:对离散 $\sum x p(x)$,对连续 $\int x p(x) dx$。线性性质:$\mathbb{E}[aX+b]=a\mathbb{E}[X]+b$。
- 方差 $\mathbb{V}[X]$:度量离散程度,$\mathbb{V}[X] = \mathbb{E}[(X-\mu)^2] = \mathbb{E}[X^2] - \mu^2$。
- 标准差 $\sigma = \sqrt{\mathbb{V}[X]}$,与 $X$ 同量纲。
- 众数:使 $p(x)$ 最大的 $x$。
- 条件期望与方差:$\mathbb{E}[X] = \mathbb{E}_Y[\mathbb{E}[X|Y]]$(全期望公式),$\mathbb{V}[X] = \mathbb{E}[\mathbb{V}[X|Y]] + \mathbb{V}[\mathbb{E}[X|Y]]$(全方差公式)。图2.4用高斯混合示例说明方差分解。
2.2.6 摘要统计的局限性
- Anscombe’s quartet(图2.5):四组数据具有相同的均值、方差、相关系数,但分布形态截然不同。
- Datasaurus Dozen(图2.6、2.7):更多示例表明仅靠摘要统计会严重丢失信息,可视化(如小提琴图)很重要。
2.3 贝叶斯定理
贝叶斯定理是逆概率推理的基础:
$$ p(H|Y) = \frac{p(H)p(Y|H)}{p(Y)} $$其中:
- 先验 $p(H)$:在观测数据前对假设 $H$ 的信念。
- 似然 $p(Y|H)$:给定假设,数据出现的概率。
- 证据 $p(Y)$:数据的边缘概率,归一化常数。
- 后验 $p(H|Y)$:更新后的信念。
2.3.1 示例:COVID-19检测
- 设 $H=1$ 表示感染,$H=0$ 未感染。敏感性(TPR)0.875,特异性(TNR)0.975,先验患病率0.1。
- 阳性检测后:$p(H=1|+) \approx 0.795$;阴性后:$p(H=1|-) \approx 0.014$。
- 若患病率降为1%,阳性后仅为26%,体现了先验的影响。
2.3.2 示例:蒙提霍尔问题
- 三个门,一个奖品。你选1号,主持人打开3号(无奖品)。问是否换到2号?
- 先验 $p(H_i)=1/3$,似然取决于主持人行为。
- 计算后验:$p(H_2|3\text{ opened})=2/3$,$p(H_1|3\text{ opened})=1/3$,所以换门胜率翻倍。
2.3.3 逆问题
许多科学问题(如从2D图像推断3D形状)是不适定的,因为多个可能的 $H$ 对应同一观测。贝叶斯定理提供了一种通过先验约束可能解的框架。
2.4 伯努利与二项分布
2.4.1 定义
- 伯努利分布 $\mathrm{Ber}(\theta)$:$Y \in \{0,1\}$,$p(Y=1)=\theta$,$p(Y=0)=1-\theta$。PMF:$\mathrm{Ber}(y|\theta)=\theta^y(1-\theta)^{1-y}$。
- 二项分布 $\mathrm{Bin}(N,\theta)$:$N$ 次独立伯努利试验的成功次数 $S$,PMF:$\mathrm{Bin}(s|N,\theta)=\binom{N}{s}\theta^s(1-\theta)^{N-s}$,其中 $\binom{N}{s}$ 是二项式系数。
2.4.2 Sigmoid(logistic)函数
- Sigmoid:$\sigma(a) = \frac{1}{1+e^{-a}}$,将实数映射到 $[0,1]$,是二分类中概率的自然表示(图2.10)。
- 性质:$\sigma'(a)=\sigma(a)(1-\sigma(a))$,$1-\sigma(a)=\sigma(-a)$,$\sigma^{-1}(p)=\log\frac{p}{1-p}$(logit函数)。
- Softplus:$\mathrm{softplus}(a)=\log(1+e^a)$,导数即为sigmoid。
2.4.3 二元逻辑回归
- 模型:$p(y=1|x;\theta)=\sigma(\mathbf{w}^\top x + b)$,用于二分类。图2.11展示了Iris数据上的决策边界。
2.5 分类与多项分布
2.5.1 定义
- 分类分布 $\mathrm{Cat}(\theta)$:$K$ 个类别,$p(y=c|\theta)=\theta_c$,满足 $\sum \theta_c=1$。用 one-hot 向量 $y$ 可写为 $\mathrm{Cat}(y|\theta)=\prod_c \theta_c^{y_c}$。
- 多项分布 $\mathcal{M}(N,\theta)$:$N$ 次独立分类试验,各类出现次数 $y_c$ 的分布:$\mathcal{M}(y|N,\theta)=\binom{N}{y_1\ldots y_C}\prod_c \theta_c^{y_c}$。
2.5.2 Softmax函数
- Softmax:$\mathrm{softmax}(\mathbf{a})_c = \frac{e^{a_c}}{\sum_{c'} e^{a_{c'}}}$,将实数向量(logits)映射为概率向量。当温度 $T\to 0$ 时,趋近于 argmax(winner-take-all);$T$ 大时趋于均匀(图2.12)。
2.5.3 多类逻辑回归
- 模型:$p(y=c|x)=\mathrm{softmax}_c(\mathbf{W}x + \mathbf{b})$。对于二分类,退化为 sigmoid(差一个logit)。图2.13展示Iris数据的线性决策边界。
2.5.4 Log-Sum-Exp技巧
- 计算 softmax 时可能数值溢出。利用 $\log\sum\exp(a_c)=m+\log\sum\exp(a_c-m)$,取 $m=\max a_c$ 保证数值稳定。定义 $\mathrm{lse}(\mathbf{a})$,则 $p_c = \exp(a_c - \mathrm{lse}(\mathbf{a}))$。
2.6 单变量高斯(正态)分布
- PDF:$\mathcal{N}(y|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{1}{2\sigma^2}(y-\mu)^2}$。
- CDF:$\Phi(y;\mu,\sigma^2) = \int_{-\infty}^y \mathcal{N}(z|\mu,\sigma^2)dz$,常用误差函数 $\mathrm{erf}$ 计算。
- 分位数:95%区间约为 $\mu \pm 1.96\sigma \approx \mu \pm 2\sigma$。
- 回归中的应用:线性回归假设 $p(y|x)=\mathcal{N}(y|\mathbf{w}^\top x + b, \sigma^2)$,可扩展为异方差回归(方差依赖于输入)(图2.14)。
- 为什么常用?:
- 易于解释(均值和方差)。
- 中心极限定理保证和分布趋近高斯。
- 最大熵性质(给定均值和方差时)。
- 数学方便。
- Dirac delta函数:$\lim_{\sigma\to0}\mathcal{N}(y|\mu,\sigma^2)=\delta(y-\mu)$,是概率的极限情况。
- 截断高斯:限制在区间 $[a,b]$ 内的高斯。
2.7 其他常见单变量分布 *
2.7.1 Student-t分布
- PDF:$\mathcal{T}(y|\mu,\sigma^2,\nu) \propto \left[1+\frac{1}{\nu}\left(\frac{y-\mu}{\sigma}\right)^2\right]^{-(\nu+1)/2}$。
- 特点:厚尾,对离群点鲁棒(图2.16)。$\nu \to \infty$ 时趋近高斯。均值存在需 $\nu>1$,方差存在需 $\nu>2$。
2.7.2 Cauchy分布
- $\nu=1$ 时的特例,PDF:$\mathcal{C}(x|\mu,\gamma)=\frac{1}{\pi\gamma}\left[1+\left(\frac{x-\mu}{\gamma}\right)^2\right]^{-1}$。尾部极厚,均值方差无定义。
2.7.3 Laplace分布
- PDF:$\mathrm{Laplace}(y|\mu,b)=\frac{1}{2b}\exp\left(-\frac{|y-\mu|}{b}\right)$。比高斯厚尾,用于鲁棒回归(第11.6节)和稀疏诱导(L1正则化,第11.4节)。
2.7.4 Beta分布
- PDF:$\mathrm{Beta}(x|a,b) = \frac{1}{B(a,b)} x^{a-1}(1-x)^{b-1}$,支持域 $[0,1]$,用于伯努利参数的先验(第4.6节)。$a=b=1$ 时均匀;$a,b>1$ 时单峰;$a,b<1$ 时双峰(图2.17a)。
2.7.5 Gamma分布
- PDF:$\mathrm{Ga}(x|a,b) = \frac{b^a}{\Gamma(a)} x^{a-1}e^{-xb}$,支持域 $x>0$。特例包括指数分布($a=1$)和卡方分布($a=\nu/2,b=1/2$)。逆Gamma用于方差的先验。
2.7.6 经验分布
- 给定样本 $\{x^{(n)}\}$,经验分布 $\hat{p}_N(x)=\frac{1}{N}\sum_{n=1}^N \delta_{x^{(n)}}(x)$,CDF 为阶梯函数(图2.18)。
2.8 随机变量的变换 *
2.8.1 离散情形
- $p_Y(y) = \sum_{x:f(x)=y} p_X(x)$。
2.8.2 连续情形
- 用CDF法:$P_Y(y)=\Pr(Y\le y)=\Pr(f(X)\le y)$。
2.8.3 可逆变换(双射)
- 单变量:若 $y=f(x)$ 单调,$x=g(y)$,则 $p_Y(y)=p_X(g(y))\left|\frac{dg(y)}{dy}\right|$(图2.19a)。
- 多变量:$\mathbf{y}=\mathbf{f}(\mathbf{x})$,$\mathbf{x}=\mathbf{g}(\mathbf{y})$,则 $p_{\mathbf{y}}(\mathbf{y}) = p_{\mathbf{x}}(\mathbf{g}(\mathbf{y})) |\det \mathbf{J}_{\mathbf{g}}(\mathbf{y})|$,其中 $\mathbf{J}_{\mathbf{g}}$ 是雅可比矩阵。图2.20展示了线性变换对方块面积的影响,图2.21展示了极坐标变换。
2.8.4 线性变换的矩
- $\mathbb{E}[\mathbf{A}\mathbf{x}+\mathbf{b}] = \mathbf{A}\mathbb{E}[\mathbf{x}]+\mathbf{b}$。
- $\mathrm{Cov}[\mathbf{A}\mathbf{x}+\mathbf{b}] = \mathbf{A}\mathrm{Cov}[\mathbf{x}]\mathbf{A}^\top$。
- 特别地,$\mathbb{V}[a^\top X+b] = a^\top \mathrm{Cov}[X] a$。
2.8.5 卷积定理
- 若 $Y=X_1+X_2$ 且独立,则 $p_Y(y)=\int p_{X_1}(x_1)p_{X_2}(y-x_1)dx_1$。离散情形为求和(图2.22)。高斯分布的卷积仍是高斯:$\mathcal{N}(\mu_1,\sigma_1^2) \otimes \mathcal{N}(\mu_2,\sigma_2^2) = \mathcal{N}(\mu_1+\mu_2,\sigma_1^2+\sigma_2^2)$。
2.8.6 中心极限定理
- 独立同分布随机变量 $X_1,\ldots,X_N$,均值为 $\mu$,方差 $\sigma^2$,则标准化和 $Z_N = \frac{\sum X_n - N\mu}{\sigma\sqrt{N}}$ 的分布趋近标准正态。图2.23展示Beta分布样本均值的收敛。
2.8.7 蒙特卡洛近似
- 当解析求解困难时,可采样大量 $x^{(s)}\sim p_X(x)$,用经验分布 $\frac{1}{S}\sum_s \delta(y-f(x^{(s)}))$ 近似 $p_Y(y)$(图2.24)。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| PMF | 均匀四面体骰子,$p(x)=1/4$ |
| $\mathcal{N}(0,1)$ 在0处的密度约为0.4 | |
| CDF | 标准正态 $\Phi(1.96)\approx 0.975$ |
| 贝叶斯 | COVID检测:先验10%,阳性后约79.5% |
| 伯努利 | 抛硬币,正面概率 $\theta$ |
| Sigmoid | $\sigma(0)=0.5$ |
| 二项 | 10次抛硬币,3次正面概率 $\binom{10}{3}(0.5)^{10}$ |
| 高斯 | 身高分布,均值170cm,方差10cm² |
| Beta | 作为硬币偏好的先验,$a=2,b=2$ 弱偏好0.5 |
| 卷积 | 两枚骰子和,分布为三角形 |
| 中心极限定理 | 从Beta分布抽样本均值,近似正态 |
前后章节联系
- 第3章(多变量概率):本章单变量概念是基础,第3章推广到多变量,包括协方差、多元高斯、线性高斯系统等。
- 第4章(统计):本章介绍的贝叶斯定理、常见分布是统计推断的基石,如MLE、MAP、共轭先验。
- 第5章(决策论):不确定性量化(后验分布)用于决策。
- 第11章(线性回归):高斯分布在回归中作为噪声模型。
- 第13章(神经网络):sigmoid、softmax作为激活函数,分布假设用于损失函数。
本章核心要点
- 概率的两种解释:频率与贝叶斯,本书采用贝叶斯视角。
- 随机变量与分布:离散用PMF,连续用PDF和CDF。
- 关键操作:边缘化、条件化、独立性。
- 数字特征:期望、方差是分布的核心摘要。
- 贝叶斯定理:更新信念的核心公式,贯穿全书。
- 常见分布:伯努利/二项用于计数,高斯用于连续,Beta/Gamma用于先验,厚尾分布用于鲁棒性。
- 变换:变量替换、卷积、中心极限定理、蒙特卡洛近似是处理衍生随机变量的工具。
常见难点
- 区分概率密度与概率(密度可大于1)。
- 正确应用贝叶斯公式,理解先验、似然、后验的关系。
- 掌握变量替换公式中的雅可比行列式。
- 理解中心极限定理的适用条件和近似质量。
- 区分认知不确定性和随机不确定性。
学习建议
- 多练习手工推导简单分布的数字特征(如Beta的均值和方差)。
- 用Python实现蒙特卡洛近似,直观感受中心极限定理。
- 熟悉常见分布的PDF表达式及其形状,为后续建模打好基础。
- 结合第4章理解共轭先验的概念。
以上是第2章“概率:单变量模型”的详细讲解。希望这份材料能帮助您扎实掌握概率论基础,为后续章节的学习铺平道路。
第3章“Probability: Multivariate Models”详细讲解
本章将概率论从单变量扩展到多变量,为处理多维数据(如特征向量、时间序列、图像)奠定基础。我们引入联合分布、依赖关系的量化(协方差、相关性)、最重要的多元分布——多元高斯,以及构建复杂概率模型的两大工具:线性高斯系统、混合模型和概率图模型。本章内容是后续统计推断、线性模型、图模型等章节的数学基石。
3.1 多个随机变量的联合分布
3.1.1 协方差
- 定义:两个随机变量 $X$ 和 $Y$ 的协方差度量它们的线性相关程度: $$ \mathrm{Cov}[X,Y] = \mathbb{E}[(X-\mathbb{E}[X])(Y-\mathbb{E}[Y])] = \mathbb{E}[XY] - \mathbb{E}[X]\mathbb{E}[Y] $$
- 协方差矩阵:对于 $D$ 维随机向量 $\mathbf{x} = (X_1,\ldots,X_D)^\top$,协方差矩阵为 $$ \mathrm{Cov}[\mathbf{x}] = \mathbb{E}[(\mathbf{x}-\mathbb{E}[\mathbf{x}])(\mathbf{x}-\mathbb{E}[\mathbf{x}])^\top] = \mathbf{\Sigma} $$ 其中 $\Sigma_{ij} = \mathrm{Cov}[X_i,X_j]$,$\Sigma_{ii} = \mathbb{V}[X_i]$。协方差矩阵是对称半正定矩阵。
- 线性变换:$\mathrm{Cov}[\mathbf{A}\mathbf{x} + \mathbf{b}] = \mathbf{A}\mathrm{Cov}[\mathbf{x}]\mathbf{A}^\top$。
3.1.2 相关系数
- Pearson相关系数:归一化的协方差 $$ \rho_{XY} = \frac{\mathrm{Cov}[X,Y]}{\sqrt{\mathbb{V}[X]\mathbb{V}[Y]}} \in [-1,1] $$
- 性质:
- $\rho = \pm 1$ 当且仅当 $Y = aX + b$(线性关系)。
- $\rho = 0$ 表示不相关,但不一定独立(见3.1.3)。
- 相关矩阵:$\mathrm{corr}(\mathbf{x})$ 是 $\mathbf{\Sigma}$ 的对角归一化版本。
3.1.3 不相关 ≠ 独立
- 反例:令 $X \sim U(-1,1)$,$Y = X^2$。则 $Y$ 完全由 $X$ 决定,但 $\mathrm{Cov}[X,Y]=0$。图3.1展示更多例子,强调仅靠相关系数无法捕捉非线性依赖。
3.1.4 相关 ≠ 因果
- 示例:冰激凌销量与暴力犯罪率正相关(图3.2),但实际原因是天气(共同原因)。相关可能是虚假的,不能推断因果。
3.1.5 辛普森悖论
- 现象:分组看趋势与合并后趋势相反。例如,COVID-19死亡率:意大利各年龄组死亡率低于中国,但总体死亡率更高,因为意大利老年人口比例高(图3.3、3.4)。这警示在分析时要考虑混杂变量。
3.2 多元高斯(正态)分布(MVN)
3.2.1 定义
- 概率密度函数: $$ \mathcal{N}(\mathbf{y}|\boldsymbol{\mu},\boldsymbol{\Sigma}) = \frac{1}{(2\pi)^{D/2}|\boldsymbol{\Sigma}|^{1/2}} \exp\left[-\frac{1}{2}(\mathbf{y}-\boldsymbol{\mu})^\top\boldsymbol{\Sigma}^{-1}(\mathbf{y}-\boldsymbol{\mu})\right] $$ 其中 $\boldsymbol{\mu}\in\mathbb{R}^D$ 是均值向量,$\boldsymbol{\Sigma}$ 是协方差矩阵(对称正定)。
- 二维情形: $$ \boldsymbol{\Sigma} = \begin{pmatrix}\sigma_1^2 & \rho\sigma_1\sigma_2 \\ \rho\sigma_1\sigma_2 & \sigma_2^2\end{pmatrix} $$ 图3.5、3.6展示了不同协方差结构(全、对角、球状)的等高线。
3.2.2 马氏距离
- 定义:$\Delta^2 = (\mathbf{y}-\boldsymbol{\mu})^\top\boldsymbol{\Sigma}^{-1}(\mathbf{y}-\boldsymbol{\mu})$。
- 几何意义:通过特征分解 $\boldsymbol{\Sigma} = \mathbf{U}\boldsymbol{\Lambda}\mathbf{U}^\top$,则 $\Delta^2 = \sum_{d=1}^D \frac{z_d^2}{\lambda_d}$,其中 $\mathbf{z} = \mathbf{U}^\top(\mathbf{y}-\boldsymbol{\mu})$。因此马氏距离是旋转后尺度归一化的欧氏距离,等高线为椭球(图7.6)。
3.2.3 条件分布与边缘分布
- 分块:将 $\mathbf{y}$ 分为两部分 $\mathbf{y}_1$($D_1$ 维)和 $\mathbf{y}_2$($D_2$ 维),对应 $$ \boldsymbol{\mu} = \begin{pmatrix}\boldsymbol{\mu}_1 \\ \boldsymbol{\mu}_2\end{pmatrix},\quad \boldsymbol{\Sigma} = \begin{pmatrix}\boldsymbol{\Sigma}_{11} & \boldsymbol{\Sigma}_{12} \\ \boldsymbol{\Sigma}_{21} & \boldsymbol{\Sigma}_{22}\end{pmatrix} $$
- 边缘分布: $$ p(\mathbf{y}_1) = \mathcal{N}(\mathbf{y}_1|\boldsymbol{\mu}_1,\boldsymbol{\Sigma}_{11}),\quad p(\mathbf{y}_2) = \mathcal{N}(\mathbf{y}_2|\boldsymbol{\mu}_2,\boldsymbol{\Sigma}_{22}) $$
- 条件分布: $$ p(\mathbf{y}_1|\mathbf{y}_2) = \mathcal{N}(\mathbf{y}_1|\boldsymbol{\mu}_{1|2},\boldsymbol{\Sigma}_{1|2}) $$ 其中 $$ \boldsymbol{\mu}_{1|2} = \boldsymbol{\mu}_1 + \boldsymbol{\Sigma}_{12}\boldsymbol{\Sigma}_{22}^{-1}(\mathbf{y}_2 - \boldsymbol{\mu}_2) $$ $$ \boldsymbol{\Sigma}_{1|2} = \boldsymbol{\Sigma}_{11} - \boldsymbol{\Sigma}_{12}\boldsymbol{\Sigma}_{22}^{-1}\boldsymbol{\Sigma}_{21} $$
- 示例:2d高斯,给定 $Y_2 = y_2$,条件均值是对 $Y_1$ 的线性预测,方差减小(图3.7)。
- 应用:缺失值插补(图3.7),利用观测变量推断隐藏变量。
3.3 线性高斯系统 *
3.3.1 模型
- 假设: $$ p(\mathbf{z}) = \mathcal{N}(\mathbf{z}|\boldsymbol{\mu}_z,\boldsymbol{\Sigma}_z),\quad p(\mathbf{y}|\mathbf{z}) = \mathcal{N}(\mathbf{y}|\mathbf{W}\mathbf{z}+\mathbf{b},\boldsymbol{\Sigma}_y) $$
- 联合分布是高斯,均值和协方差由上面给出。
3.3.2 贝叶斯规则用于高斯
- 后验: $$ p(\mathbf{z}|\mathbf{y}) = \mathcal{N}(\mathbf{z}|\boldsymbol{\mu}_{z|y},\boldsymbol{\Sigma}_{z|y}) $$ 其中 $$ \boldsymbol{\Sigma}_{z|y}^{-1} = \boldsymbol{\Sigma}_z^{-1} + \mathbf{W}^\top\boldsymbol{\Sigma}_y^{-1}\mathbf{W} $$ $$ \boldsymbol{\mu}_{z|y} = \boldsymbol{\Sigma}_{z|y}\left[\mathbf{W}^\top\boldsymbol{\Sigma}_y^{-1}(\mathbf{y}-\mathbf{b}) + \boldsymbol{\Sigma}_z^{-1}\boldsymbol{\mu}_z\right] $$
- 证据(边际似然): $$ p(\mathbf{y}) = \mathcal{N}(\mathbf{y}|\mathbf{W}\boldsymbol{\mu}_z+\mathbf{b},\;\boldsymbol{\Sigma}_y + \mathbf{W}\boldsymbol{\Sigma}_z\mathbf{W}^\top) $$
3.3.3 例子:推断未知标量
- 观测 $y_i = z + \epsilon_i$,$\epsilon_i \sim \mathcal{N}(0,\sigma^2)$,先验 $z \sim \mathcal{N}(\mu_0,\tau_0^2)$。则后验均值是加权平均:$\mu_N = \frac{N/\sigma^2}{N/\sigma^2 + 1/\tau_0^2} \bar{y} + \frac{1/\tau_0^2}{N/\sigma^2 + 1/\tau_0^2} \mu_0$(图3.8)。
3.3.4 例子:推断未知向量
- 类似标量情形,后验协方差是 $\boldsymbol{\Sigma}_{z|y} = (\boldsymbol{\Sigma}_z^{-1} + N\boldsymbol{\Sigma}_y^{-1})^{-1}$,均值结合先验和观测(图3.9)。
3.3.5 例子:传感器融合
- 多个传感器观测同一未知量,每个传感器有不同噪声。后验结合所有信息,根据各传感器可靠性加权(图3.10)。
3.4 指数族 *
3.4.1 定义
- 概率分布 $p(\mathbf{y}|\boldsymbol{\eta})$ 若可写为
$$
p(\mathbf{y}|\boldsymbol{\eta}) = h(\mathbf{y})\exp\left[\boldsymbol{\eta}^\top\mathcal{T}(\mathbf{y}) - A(\boldsymbol{\eta})\right]
$$
则属于指数族。其中:
- $\boldsymbol{\eta}$:自然参数
- $\mathcal{T}(\mathbf{y})$:充分统计量
- $h(\mathbf{y})$:基测度
- $A(\boldsymbol{\eta})$:对数配分函数(凸函数)
3.4.2 示例
- 伯努利:写成指数族形式 $$ \mathrm{Ber}(y|\mu) = \exp\left[y\log\frac{\mu}{1-\mu} + \log(1-\mu)\right] $$ 此时 $\eta = \log\frac{\mu}{1-\mu}$,$\mathcal{T}(y)=y$,$A(\eta)=\log(1+e^\eta)$。
3.4.3 对数配分函数是累积量生成函数
- $\nabla A(\boldsymbol{\eta}) = \mathbb{E}[\mathcal{T}(\mathbf{y})]$,$\nabla^2 A(\boldsymbol{\eta}) = \mathrm{Cov}[\mathcal{T}(\mathbf{y})]$。因此对数似然是凹函数,MLE唯一。
3.4.4 最大熵推导
- 给定特征的期望约束,最大化熵(或最小化KL)得到指数族分布。例如,给定均值与二阶矩,得到高斯分布。
3.5 混合模型
3.5.1 高斯混合模型(GMM)
- 定义: $$ p(\mathbf{y}|\boldsymbol{\theta}) = \sum_{k=1}^K \pi_k \mathcal{N}(\mathbf{y}|\boldsymbol{\mu}_k,\boldsymbol{\Sigma}_k) $$ 其中 $\pi_k$ 是混合权重($\sum\pi_k=1$)。
- 生成过程:先选成分 $z \sim \mathrm{Cat}(\boldsymbol{\pi})$,再生成 $\mathbf{y} \sim \mathcal{N}(\boldsymbol{\mu}_z,\boldsymbol{\Sigma}_z)$。
- 聚类应用:通过后验责任度 $r_{nk}=p(z=k|\mathbf{y}_n)$ 进行软聚类或硬聚类(图3.12)。
3.5.2 伯努利混合模型(BMM)
- 用于二值数据: $$ p(\mathbf{y}|z=k) = \prod_{d=1}^D \mathrm{Ber}(y_d|\mu_{dk}) $$ 图3.13展示对MNIST二值化数据的聚类,每个成分学习一个“原型”数字。
3.6 概率图模型(PGM)*
3.6.1 表示
- 有向无环图(DAG):节点表示变量,边表示直接依赖。利用条件独立性(给定父节点,变量与所有非后代独立)将联合分布分解为 $$ p(\mathbf{y}_{1:N_G}) = \prod_{i=1}^{N_G} p(y_i|\mathbf{y}_{\mathrm{pa}(i)}) $$
- 示例1:洒水器网络(图3.14): $$ p(C,S,R,W) = p(C)p(S|C)p(R|C)p(W|S,R) $$ 展示了“解释”效应(Berkson悖论)。
- 示例2:马尔可夫链(图3.15): $$ p(y_{1:T}) = p(y_1)\prod_{t=2}^T p(y_t|y_{t-1}) $$ 是语言模型的基础。
3.6.2 推断
- 给定观测,计算其他变量的后验。例如洒水器网络中,观测到草地湿,则雨后验概率改变;再观测到洒水器开,雨后验概率降低(解释效应)。
3.6.3 学习
- 将参数视为随机变量,添加节点。图3.16展示了iid数据和参数的图模型,以及板符号(plate notation)简化表示。图3.17是GMM的图模型表示。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 协方差 | 两个随机变量的线性相关度量 |
| 相关系数 | 冰激凌销量与犯罪率虚假相关 |
| 辛普森悖论 | COVID-19各国死亡率比较 |
| 多元高斯 | 2d高斯等高线(图3.5) |
| 条件高斯 | 给定 $y_2$,$y_1$ 的均值线性依赖(公式3.31) |
| 传感器融合 | 两个噪声不同的传感器融合估计(图3.10) |
| 指数族 | 伯努利、高斯、多项分布 |
| GMM | 鸢尾花数据聚类(图3.12) |
| BMM | MNIST数字原型(图3.13) |
| PGM | 洒水器网络(图3.14) |
前后章节联系
- 第2章(单变量概率):本章是单变量到多变量的自然延伸,协方差、多元高斯都是第2章概念的推广。
- 第4章(统计):线性高斯系统是贝叶斯推断的实例,指数族为广义线性模型(第12章)和共轭先验(第4章)提供框架。
- 第9章(LDA):高斯判别分析基于多元高斯。
- 第11章(线性回归):线性高斯系统是贝叶斯线性回归的基础。
- 第13章及以后:混合模型用于聚类,图模型用于结构化预测。
本章核心要点
- 依赖度量:协方差和相关系数量化线性关系,但不相关 ≠ 独立,相关 ≠ 因果。
- 多元高斯:最常用的多元分布,具有简洁的条件和边缘公式,是许多模型的基础。
- 线性高斯系统:先验和似然均为高斯时,后验解析可求,是贝叶斯滤波、卡尔曼滤波的基石。
- 指数族:统一框架涵盖常见分布,具有凸对数似然和充分统计量性质。
- 混合模型:通过隐变量扩展简单分布,能建模复杂多模态分布。
- 概率图模型:用图表示变量间条件独立关系,提供模块化建模语言。
常见难点
- 理解多元高斯的条件分布公式及其推导(Schur补)。
- 区分相关与独立、相关与因果。
- 掌握指数族中自然参数、充分统计量、对数配分函数的关系。
- 理解混合模型中隐变量的作用及EM算法基础(第8章)。
- 理解图模型中“解释”效应(Berkson悖论)。
学习建议
- 熟练推导2d高斯的条件分布,并用Python可视化。
- 用NumPy实现一个简单的线性高斯系统(如传感器融合)。
- 学习指数族时,将伯努利、高斯、多项分布写成指数族形式并找出对应函数。
- 使用Scikit-learn的GMM进行聚类实践。
- 尝试用pgmpy库构建洒水器网络并进行推断。
以上是第3章“多元概率模型”的详细讲解。掌握本章内容将为后续所有基于概率的机器学习模型打下坚实基础。如有疑问,欢迎继续探讨!
第4章“Statistics”详细讲解
本章是全书从概率论迈向统计推断的关键桥梁。概率论(第2-3章)告诉我们如何描述不确定性,而统计学则教我们如何从数据中学习(即参数估计)以及如何量化估计的不确定性。本章将介绍多种参数估计方法,从经典的最大似然估计(MLE)到正则化的最大后验估计(MAP),再到全面的贝叶斯推断,并与频率派统计的偏差-方差权衡进行对比。这些内容是后续所有模型(线性模型、神经网络等)的基础。
4.1 引言
- 目标:从数据 $\mathcal{D}$ 中估计概率模型的参数 $\theta$。
- 一般形式:优化问题 $\hat{\theta} = \arg\min \mathcal{L}(\theta)$,其中 $\mathcal{L}(\theta)$ 是损失函数。
- 推断:除了点估计 $\hat{\theta}$,还要量化对 $\theta$ 的置信度。本章讨论贝叶斯和频率派两种推断框架。
4.2 最大似然估计(MLE)
4.2.1 定义
- MLE:选择使观测数据概率最大的参数: $$ \hat{\theta}_{\mathrm{mle}} = \arg\max_{\theta} p(\mathcal{D}|\theta) $$
- i.i.d.假设:数据独立同分布,则 $$ p(\mathcal{D}|\theta) = \prod_{n=1}^N p(\mathbf{y}_n|\mathbf{x}_n,\theta) $$ 对于无监督学习,为 $\prod p(\mathbf{y}_n|\theta)$。
- 对数似然:$\ell(\theta) = \log p(\mathcal{D}|\theta) = \sum_{n=1}^N \log p(\mathbf{y}_n|\mathbf{x}_n,\theta)$,便于计算和优化。
- 负对数似然(NLL):$\mathrm{NLL}(\theta) = -\ell(\theta)$,最小化NLL等价于最大化似然。
4.2.2 MLE的合理性
- 贝叶斯视角:若先验 $p(\theta) \propto 1$(均匀),则MAP估计(见4.5)退化为MLE。
- KL散度视角:最小化模型分布与经验分布之间的KL散度等价于最小化NLL。即: $$ D_{\mathrm{KL}}(p_{\mathcal{D}} \| p_{\theta}) = \text{const} + \mathrm{NLL}(\theta) $$ 因此MLE使模型尽可能接近经验分布。
4.2.3 示例:伯努利分布的MLE
- 数据:$N$ 次抛硬币,$N_1$ 次正面,$N_0$ 次反面。
- NLL:$-\left[N_1\log\theta + N_0\log(1-\theta)\right]$。
- 导数:$\frac{d}{d\theta}\mathrm{NLL} = -\frac{N_1}{\theta} + \frac{N_0}{1-\theta} = 0$ → $\hat{\theta}_{\mathrm{mle}} = N_1/(N_0+N_1)$。
- 解释:就是正面的经验频率。
4.2.4 示例:分类分布的MLE
- 数据:$N$ 次掷 $K$ 面骰子,$N_k$ 为第 $k$ 面出现次数。
- NLL:$-\sum_k N_k\log\theta_k$,约束 $\sum_k\theta_k=1$。
- 用拉格朗日乘子法得 $\hat{\theta}_k = N_k/N$。
4.2.5 示例:单变量高斯的MLE
- 模型:$\mathcal{N}(y|\mu,\sigma^2)$。
- NLL:$\frac{1}{2\sigma^2}\sum_n (y_n-\mu)^2 + \frac{N}{2}\log(2\pi\sigma^2)$。
- 求导得:$\hat{\mu} = \frac{1}{N}\sum_n y_n$,$\hat{\sigma}^2 = \frac{1}{N}\sum_n (y_n-\hat{\mu})^2$。
4.2.6 示例:多元高斯的MLE
- 数据矩阵 $\mathbf{Y}\in\mathbb{R}^{N\times D}$,均值向量 $\hat{\boldsymbol{\mu}} = \frac{1}{N}\sum_n \mathbf{y}_n$。
- 协方差矩阵MLE:$\hat{\boldsymbol{\Sigma}} = \frac{1}{N}\sum_n (\mathbf{y}_n-\hat{\boldsymbol{\mu}})(\mathbf{y}_n-\hat{\boldsymbol{\mu}})^\top$。
- 问题:当 $N < D$ 时,$\hat{\boldsymbol{\Sigma}}$ 奇异,且估计不稳定。
4.2.7 示例:线性回归的MLE
- 模型:$p(y|\mathbf{x}) = \mathcal{N}(y|\mathbf{w}^\top\mathbf{x},\sigma^2)$。
- NLL忽略常数后等价于残差平方和 $\mathrm{RSS}(\mathbf{w}) = \sum_n (y_n-\mathbf{w}^\top\mathbf{x}_n)^2$。
- 矩阵形式:$\mathrm{RSS}(\mathbf{w}) = \|\mathbf{X}\mathbf{w} - \mathbf{y}\|^2$。
- 解:$\hat{\mathbf{w}}_{\mathrm{mle}} = (\mathbf{X}^\top\mathbf{X})^{-1}\mathbf{X}^\top\mathbf{y}$(普通最小二乘)。
4.3 经验风险最小化(ERM)
- 推广:将负对数似然替换为任意损失函数: $$ \mathcal{L}(\theta) = \frac{1}{N}\sum_{n=1}^N \ell(y_n,\theta;\mathbf{x}_n) $$
- 示例:分类任务中用0-1损失,但0-1损失非凸且难优化,常用代理损失(surrogate loss),如铰链损失(hinge)或对数损失(log loss)(图4.2)。
4.4 其他估计方法 *
4.4.1 矩估计法(MOM)
- 思想:令理论矩(如 $\mathbb{E}[X^k]$)等于样本矩,解方程得参数。
- 优点:计算简单;缺点:统计效率低,可能得到无效估计(如均匀分布例)。
- 示例:高斯分布,一阶矩 $\mu = \bar{y}$,二阶矩 $\sigma^2 + \mu^2 = \frac{1}{N}\sum y_n^2$ → $\hat{\sigma}^2 = \frac{1}{N}\sum (y_n-\bar{y})^2$,与MLE相同。
- 均匀分布例:$U(\theta_1,\theta_2)$,矩估计可能使 $\hat{\theta}_2 < \max y_n$,不合理;MLE则取 $\hat{\theta}_1 = \min y_n$,$\hat{\theta}_2 = \max y_n$。
4.4.2 在线(递推)估计
- 递推均值:$\hat{\mu}_t = \hat{\mu}_{t-1} + \frac{1}{t}(y_t - \hat{\mu}_{t-1})$。
- 指数加权移动平均(EWMA):$\hat{\mu}_t = \beta \hat{\mu}_{t-1} + (1-\beta) y_t$,可加入偏差校正(图4.3)。
4.5 正则化
4.5.1 动机:过拟合
- MLE可能完美拟合训练数据,但泛化差。例如抛硬币3次全正面,MLE预测 $\theta=1$,未来不会再出现反面,显然不合理。
- 正则化:对复杂模型施加惩罚,优化目标: $$ \mathcal{L}(\theta;\lambda) = \frac{1}{N}\sum_{n=1}^N \ell(y_n,\theta;\mathbf{x}_n) + \lambda C(\theta) $$ 其中 $\lambda \ge 0$ 控制惩罚强度。
- 概率解释:若 $C(\theta) = -\log p(\theta)$,则正则化等价于最大后验估计(MAP): $$ \hat{\theta}_{\mathrm{map}} = \arg\max_{\theta} \left[ \log p(\mathcal{D}|\theta) + \log p(\theta) \right] $$
4.5.2 示例:伯努利的MAP(Beta先验)
- 先验 $p(\theta) = \mathrm{Beta}(\theta|a,b)$,则后验 $\propto \theta^{N_1+a-1}(1-\theta)^{N_0+b-1}$。
- MAP估计:$\hat{\theta}_{\mathrm{map}} = \frac{N_1+a-1}{N_0+N_1+a+b-2}$。
- 若 $a=b=2$,得加一平滑:$\hat{\theta} = \frac{N_1+1}{N+2}$,避免零计数问题。
4.5.3 示例:多元高斯的MAP(收缩估计)
- 对协方差矩阵使用逆Wishart先验,MAP估计为 $$ \hat{\boldsymbol{\Sigma}}_{\mathrm{map}} = \lambda \boldsymbol{\Sigma}_0 + (1-\lambda) \hat{\boldsymbol{\Sigma}}_{\mathrm{mle}} $$ 其中 $\boldsymbol{\Sigma}_0$ 可取对角矩阵。这使非对角线元素向0收缩,保证正定性(图4.4)。
4.5.4 示例:权重衰减($\ell_2$ 正则化)
- 线性回归中,使用高斯先验 $p(\mathbf{w}) = \mathcal{N}(\mathbf{w}|\mathbf{0},\tau^2\mathbf{I})$,得 $$ \hat{\mathbf{w}}_{\mathrm{map}} = \arg\min \mathrm{NLL}(\mathbf{w}) + \lambda \|\mathbf{w}\|_2^2 $$ 称为岭回归。图4.5展示多项式回归中正则化减少过拟合。
4.5.5 选择正则化参数 $\lambda$
- 验证集法:将数据分为训练集和验证集,对每个 $\lambda$ 在训练集上训练,在验证集上评估性能,选最优 $\lambda$。
- 交叉验证(CV):将训练数据分成 $K$ 折,轮流用 $K-1$ 折训练,1折验证,平均验证误差。图4.6展示5折CV。
- 一标准差规则:在CV误差曲线中,选择误差不超过最佳模型一个标准差的最简单模型。
- 示例:岭回归中 $\lambda$ 的选择,图4.7展示CV误差曲线与最优值。
4.5.6 早停
- 在迭代优化过程中,当验证集误差开始上升时停止训练,相当于隐式正则化(图4.8)。
4.5.7 使用更多数据
- 随着数据量增加,过拟合风险降低。学习曲线(图4.9)显示测试误差随 $N$ 下降,最终趋于贝叶斯误差。
4.6 贝叶斯统计 *
4.6.1 贝叶斯推断框架
- 后验:$p(\theta|\mathcal{D}) = \frac{p(\theta)p(\mathcal{D}|\theta)}{p(\mathcal{D})}$,其中 $p(\mathcal{D}) = \int p(\theta)p(\mathcal{D}|\theta)d\theta$ 是边际似然。
- 后验预测:对新数据 $\tilde{\mathbf{y}}$, $$ p(\tilde{\mathbf{y}}|\mathbf{x},\mathcal{D}) = \int p(\tilde{\mathbf{y}}|\mathbf{x},\theta)p(\theta|\mathcal{D})d\theta $$ 这相当于贝叶斯模型平均,可避免过拟合。
4.6.2 共轭先验
- 定义:先验与后验属于同一分布族。
- Beta-伯努利模型:
- 先验 $p(\theta) = \mathrm{Beta}(\theta|a,b)$,似然 $\mathrm{Ber}(y|\theta)$。
- 后验 $\mathrm{Beta}(\theta|a+N_1,b+N_0)$(图4.10)。
- 后验均值:$\mathbb{E}[\theta|\mathcal{D}] = \frac{a+N_1}{a+b+N}$,是先验均值与MLE的凸组合。
- 后验预测:$p(y=1|\mathcal{D}) = \frac{a+N_1}{a+b+N}$(即后验均值)。
- 边际似然:$p(\mathcal{D}) = \frac{B(a+N_1,b+N_0)}{B(a,b)}$(忽略组合数)。
- Dirichlet-多项模型:
- 先验 $\mathrm{Dir}(\boldsymbol{\theta}|\boldsymbol{\alpha})$,似然 $\mathrm{Cat}(y|\boldsymbol{\theta})$。
- 后验 $\mathrm{Dir}(\boldsymbol{\theta}|\boldsymbol{\alpha} + \mathbf{N})$,后验均值 $\bar{\theta}_k = \frac{\alpha_k + N_k}{\sum(\alpha_k+N_k)}$。
- 高斯-高斯模型(已知方差):
- 先验 $\mathcal{N}(\mu|m_0,\tau_0^2)$,似然 $\mathcal{N}(y|\mu,\sigma^2)$。
- 后验 $\mathcal{N}(\mu|m_N,\tau_N^2)$,其中 $$ \tau_N^{-2} = \tau_0^{-2} + N\sigma^{-2},\quad m_N = \tau_N^2\left(\frac{m_0}{\tau_0^2} + \frac{N\bar{y}}{\sigma^2}\right) $$
4.6.3 非共轭先验
- 无信息先验:如 $p(\mu)\propto 1$,但需小心(可能不是良定义)。
- 层次先验:对超参数再设先验,如 $\xi \to \theta \to \mathcal{D}$。
- 经验贝叶斯(EB):用边际似然估计超参数 $\hat{\xi} = \arg\max p(\mathcal{D}|\xi)$,然后代入计算后验 $p(\theta|\hat{\xi},\mathcal{D})$。
4.6.4 可信区间
- 定义:后验分布中覆盖 $1-\alpha$ 概率的区域。常用中心区间(等尾)或最高后验密度(HPD)区间(图4.18、4.19)。
- 与频率派置信区间区别:可信区间是对参数的概率陈述(给定数据),而置信区间是长期频率覆盖。
4.6.5 贝叶斯机器学习
- 对监督学习,后验 $p(\theta|\mathcal{D})$ 综合了先验和数据,预测时积分掉 $\theta$。
- 示例:1d逻辑回归,贝叶斯后验给出决策边界的不确定性(图4.20)。
- 示例:二元输入、标量输出(如两家快递公司),贝叶斯方法能捕捉方差不确定性,而插件估计(只用MLE)可能低估(图4.21)。
4.6.6 计算问题
- 精确后验仅对共轭模型可行,一般需近似:
- 网格近似(低维)
- 拉普拉斯近似(高斯近似于众数,图4.22)
- 变分推断
- MCMC(如HMC)
4.7 频率派统计 *
4.7.1 抽样分布
- 将数据视为随机,$\hat{\theta} = \hat{\Theta}(\mathcal{D})$ 是随机变量,其分布称为抽样分布。
- 例:多次重复采样数据集,计算MLE,观察分布。
4.7.2 MLE的渐近正态性
- 当 $N$ 大时,$\hat{\theta}_{\mathrm{mle}} \approx \mathcal{N}(\theta^*, [N\mathbf{F}(\theta^*)]^{-1})$,其中 $\mathbf{F}(\theta^*)$ 是Fisher信息矩阵(对数似然的曲率)。
4.7.3 自助法(Bootstrap)
- 对原始数据集进行有放回重采样,生成多个“自助样本”,计算估计量,用经验分布近似抽样分布(图4.23)。
- 自助法 vs 贝叶斯后验:自助法可视为“穷人贝叶斯”,两者分布相似,但自助法计算量更大。
4.7.4 置信区间
- 定义:一个随机区间 $I(\mathcal{D})$,使得 $\Pr(\theta^* \in I(\tilde{\mathcal{D}}) | \tilde{\mathcal{D}}\sim\theta^*) \ge 1-\alpha$。
- 近似:若抽样分布近似正态,则 $\hat{\theta} \pm z_{\alpha/2}\hat{\mathrm{se}}$。
- 重要区别:置信区间不是对当前数据集 $\theta$ 的概率陈述,而是对过程的覆盖频率。存在反直觉例子(如贝叶斯示例4.7.5)。
4.7.5 偏差-方差权衡
- 偏差:$\mathrm{bias}(\hat{\theta}) = \mathbb{E}[\hat{\theta}] - \theta^*$。
- 方差:$\mathbb{V}[\hat{\theta}]$。
- 均方误差(MSE):$\mathbb{E}[(\hat{\theta}-\theta^*)^2] = \mathrm{bias}^2 + \mathrm{variance}$。
- 示例:高斯均值估计,MLE无偏但方差大;MAP有偏但方差小,可能在MSE上更优(图4.24)。
- 在回归中:模型复杂度与偏差-方差关系(图4.25、4.26)。复杂模型低偏差高方差,简单模型高偏差低方差,最优是平衡。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| MLE | 抛硬币得 $\hat{\theta}=$ 正面比例 |
| 过拟合 | 多项式次数过高导致摆动(图1.7) |
| 正则化 | 岭回归(图4.5) |
| MAP | Beta(2,2)先验→加一平滑 |
| 贝叶斯后验 | Beta-伯努利更新(图4.10) |
| 后验预测 | 未来抛硬币概率 $\frac{N_1+1}{N+2}$ |
| 置信区间 | 均值估计 $\bar{y} \pm 2\sigma/\sqrt{N}$ |
| 偏差-方差 | 高斯均值估计(图4.24) |
前后章节联系
- 第2-3章:概率分布是统计的基础,本章使用它们构建似然和先验。
- 第5章:决策理论利用后验分布做最优决策,可信区间用于风险评估。
- 第8章:优化算法用于计算MLE/MAP。
- 第10、11章:逻辑回归、线性回归的MLE和MAP估计。
- 第17章:高斯过程(非参数贝叶斯)是贝叶斯方法的延伸。
- 第20章:概率PCA(PPCA)是贝叶斯因子模型。
本章核心要点
- 点估计方法:MLE(最小化NLL),MAP(加入先验正则化)。
- 过拟合与正则化:正则化是控制模型复杂度的关键,包括 $\ell_2$(权重衰减)、$\ell_1$(稀疏)、早停等。
- 贝叶斯推断:用后验分布量化不确定性,共轭先验使计算简洁,后验预测避免过拟合。
- 频率派推断:抽样分布、置信区间、偏差-方差权衡是频率派核心概念。
- 模型选择:交叉验证、边际似然、BIC等信息准则。
- 贝叶斯 vs 频率派:贝叶斯将参数视为随机变量,提供概率解释;频率派关注估计量的长期行为。
常见难点
- 理解MLE的合理性(与KL最小化等价)。
- 区分先验、似然、后验、证据。
- 理解共轭先验如何简化计算(伪计数解释)。
- 区分可信区间与置信区间。
- 理解偏差-方差分解及其实践含义(如正则化影响)。
- 掌握自助法的原理及其与贝叶斯的联系。
学习建议
- 动手实现Beta-伯努利更新,观察后验变化。
- 用线性回归实验,观察正则化强度对权重的影响。
- 模拟数据,计算MLE的抽样分布并与渐近正态比较。
- 用交叉验证选择岭回归的 $\lambda$,并与BIC选择比较。
- 阅读第5章,将统计推断与决策联系起来。
以上是第4章“统计”的详细讲解。本章内容丰富,是全书承上启下的核心章节。掌握本章内容将为后续所有概率模型的建立与评估打下坚实基础。如有疑问,欢迎继续探讨!
第5章“Decision Theory”详细讲解
决策理论是机器学习的核心,它将概率模型(第2-4章)与实际行动联系起来。第4章讨论了如何从数据中学习参数(点估计或分布),但最终我们往往需要根据这些知识做出决策。本章将介绍如何在不确定情况下选择最优行动,包括贝叶斯决策理论、模型选择、频率派决策理论以及假设检验。理解这些内容将帮助我们更好地评估模型、选择模型并做出可靠预测。
5.1 贝叶斯决策理论
5.1.1 基础
- 决策者:需要从一组可能行动 $\mathcal{A}$ 中选择一个。
- 状态:未知的真实世界状态 $H \in \mathcal{H}$(如疾病状态)。
- 损失函数 $\ell(h,a)$:采取行动 $a$ 而真实状态为 $h$ 时所付出的代价。
- 后验期望损失(风险):给定观测数据 $\mathbf{x}$,选择行动 $a$ 的期望损失: $$ \rho(a|\mathbf{x}) = \mathbb{E}_{p(h|\mathbf{x})}[\ell(h,a)] = \sum_{h\in\mathcal{H}} \ell(h,a)p(h|\mathbf{x}) $$
- 最优策略(贝叶斯决策规则): $$ \pi^*(\mathbf{x}) = \arg\min_{a\in\mathcal{A}} \rho(a|\mathbf{x}) $$
- 等价形式:定义效用函数 $U(h,a) = -\ell(h,a)$,则最优策略最大化期望效用。
实例:COVID-19治疗决策
| 状态 | 行动:不给药 | 行动:给药 |
|---|---|---|
| 年轻,无病 | 0 | 8 |
| 年轻,有病 | 60 | 8 |
| 年老,无病 | 0 | 8 |
| 年老,有病 | 10 | 8 |
根据后验概率(来自检测结果)和损失矩阵,计算每种行动的期望损失,选择最小的。表5.2展示了不同情况下的最优行动。
5.1.2 分类问题
5.1.2.1 0-1损失
- 状态为类别 $y \in \{1,\ldots,C\}$,行动也为类别。
- 0-1损失:$\ell_{01}(y,\hat{y}) = \mathbb{I}(y \neq \hat{y})$。
- 后验期望损失:$\rho(\hat{y}|\mathbf{x}) = 1 - p(\hat{y}|\mathbf{x})$。
- 最优行动:选择最大后验概率的类别(MAP决策)。
5.1.2.2 代价敏感分类
- 对于二分类,损失矩阵为 $\begin{pmatrix}\ell_{00} & \ell_{01} \\ \ell_{10} & \ell_{11}\end{pmatrix}$。若 $\ell_{00}=\ell_{11}=0$,则决策阈值为 $\frac{\ell_{01}}{\ell_{01}+\ell_{10}}$。例如,若假阴性代价是假阳性的2倍($\ell_{10}=2\ell_{01}$),则阈值取 $1/3$。
5.1.2.3 带“拒绝”选项的分类
- 增加一个“拒绝”行动(不分类),损失为 $\lambda_r$,分类错误损失为 $\lambda_e$。
- 最优策略:若最大后验概率 $p^* < 1 - \lambda_r/\lambda_e$,则拒绝;否则选择最可能类别(Chow规则,图5.1)。
5.1.3 ROC曲线
- 混淆矩阵:二分类问题中,根据阈值得到TP、FP、TN、FN。
- TPR(真阳性率) = 灵敏度 = $\frac{TP}{TP+FN}$。
- FPR(假阳性率) = $ \frac{FP}{FP+TN}$。
- ROC曲线:绘制TPR vs FPR,随阈值变化(图5.2a)。
- AUC:曲线下面积,越大越好。
- EER:等错误率,即FPR=FNR时的值。
5.1.4 精确率-召回率曲线
- 适用于不平衡数据或不确定“负类”的情形。
- 精确率 $P = \frac{TP}{TP+FP}$。
- 召回率 $R = \frac{TP}{TP+FN}$(同TPR)。
- PR曲线:精确率 vs 召回率(图5.2b)。
- 平均精度(AP):曲线下面积。
- F-score:$F_\beta = (1+\beta^2)\frac{P\cdot R}{\beta^2 P + R}$,$F_1$ 是调和平均。
5.1.5 回归问题
- L2损失(平方损失):最优估计为后验均值(MMSE估计)。
- L1损失(绝对损失):最优估计为后验中位数。
- Huber损失:结合L2(小误差)和L1(大误差),鲁棒且可导(图5.3)。
5.1.6 概率预测问题
- KL散度:衡量预测分布 $q$ 与真实分布 $p$ 的差异,最小化KL等价于最小化交叉熵。
- 对数损失:当真实分布为独热时,交叉熵退化为负对数似然。
- Brier分数:均方误差形式的评分规则,对极端概率不敏感。
5.2 选择“正确”的模型
5.2.1 贝叶斯假设检验
- 比较两个模型 $M_0$ 和 $M_1$,用贝叶斯因子: $$ B_{1,0} = \frac{p(\mathcal{D}|M_1)}{p(\mathcal{D}|M_0)} $$
- Jeffreys尺度:表5.6给出了BF大小的解释。
- 示例:硬币是否公平:$M_0:\theta=0.5$,$M_1:\theta\sim\mathrm{Beta}(\alpha,\alpha)$。图5.4显示边际似然随正面数变化。
5.2.2 贝叶斯模型选择
- 多个模型,选择后验概率最大的: $$ \hat{m} = \arg\max_m p(\mathcal{D}|m)p(m) $$
- 边际似然 $p(\mathcal{D}|m) = \int p(\theta|m)p(\mathcal{D}|\theta,m)d\theta$。
- 示例:多项式回归,图5.5-5.6显示随着数据量增加,后验倾向于更复杂的模型。
5.2.3 奥卡姆剃刀
- 复杂模型将概率质量分散到更多数据集上,因此对特定数据集分配的概率较低(图5.7)。边际似然自然惩罚复杂度。
5.2.4 交叉验证与边际似然的联系
- 边际似然可写为序贯预测乘积,近似于留一交叉验证的对数似然之和。
5.2.5 信息准则
- BIC:$-2\log p(\mathcal{D}|\hat{\theta}) + d\log N$(大样本近似边际似然)。
- AIC:$-2\log p(\mathcal{D}|\hat{\theta}) + 2d$。
- MDL:两阶段编码长度,与BIC形式相同。
- WAIC:适用于奇异模型,使用后验样本计算预期对数点预测密度和复杂度惩罚。
5.2.6 效应大小的后验推断
- 关注实际显著性,而非仅假设检验。定义实际等效区间(ROPE) $[-ϵ,ϵ]$,计算 $p(Δ∈ROPE)$、$p(Δ>ϵ)$、$p(Δ<-ϵ)$。
- 贝叶斯t检验:用于配对数据,后验为Student分布。
- 贝叶斯χ²检验:用于比较两个比例,后验通过数值积分。
5.3 频率派决策理论
5.3.1 计算估计量的风险
- 频率派风险:$R(\theta,\delta) = \mathbb{E}_{p(\mathbf{x}|\theta)}[\ell(\theta,\delta(\mathbf{x}))]$。
- 示例:估计高斯均值,比较样本均值、中位数、固定估计、后验均值(图5.8)。
- 贝叶斯风险:对 $\theta$ 取平均 $R_\pi(\delta) = \mathbb{E}_\pi[R(\theta,\delta)]$,最小化贝叶斯风险得到贝叶斯估计量。
- 最大风险:$R_{\max}(\delta) = \sup_\theta R(\theta,\delta)$,最小化最大风险得到最小最大估计量(图5.9)。
5.3.2 一致估计量
- 随着样本量增加,估计量依概率收敛到真值。MLE是一致估计。
5.3.3 可容许估计量
- 若不存在另一个估计量风险处处不大于它且至少一处严格小,则该估计量可容许。所有可容许估计量都是某种贝叶斯估计量(在某些先验下)。
5.4 经验风险最小化
5.4.1 经验风险
- 总体风险:$R(f) = \mathbb{E}_{p^*(x,y)}[\ell(y,f(x))]$。
- 经验风险:$R(f,\mathcal{D}) = \frac{1}{N}\sum_{n=1}^N \ell(y_n,f(x_n))$。
- 经验风险最小化(ERM):$\hat{f}_{\mathrm{ERM}} = \arg\min_{f\in\mathcal{H}} R(f,\mathcal{D})$。
5.4.1.1 近似误差与估计误差
- 总体最优 $f^{**}$,假设空间最优 $f^*_{\mathcal{H}}$,经验最优 $f^*_{\mathcal{D}}$。
- 期望风险分解:$ \mathbb{E}[R(f^*_{\mathcal{D}})-R(f^{**})] = [R(f^*_{\mathcal{H}})-R(f^{**})] + \mathbb{E}[R(f^*_{\mathcal{D}})-R(f^*_{\mathcal{H}})] $。
- 第一项近似误差(模型容量),第二项估计误差(过拟合)。
5.4.2 结构风险
- 正则化经验风险:$R_\lambda(f,\mathcal{D}) = R(f,\mathcal{D}) + \lambda C(f)$。
- 结构风险最小化:最小化正则化总体风险的估计,但实际用交叉验证或统计学习理论界限。
5.4.3 交叉验证
- 划分训练/验证集,评估不同超参数下的验证风险,选择最优 $\lambda$,再在整个数据集上重新训练。
5.4.4 统计学习理论 *
- Hoeffding不等式 + 并集界 → 有限假设空间下,泛化误差的界:$\Pr(\max_{h\in\mathcal{H}} |R(h)-R(h,\mathcal{D})| > \epsilon) \le 2|\mathcal{H}|e^{-2N\epsilon^2}$。
- VC维:度量无限假设空间的复杂度。
5.5 频率派假设检验 *
5.5.1 似然比检验
- 比较两个假设 $H_0$ 与 $H_1$,若似然比 $>1$ 则接受 $H_0$(在0-1损失下)。
- 复合假设:通过最大化似然比(如广义似然比检验)。
5.5.2 第一类与第二类错误
- 第一类错误(假阳性):$\alpha$,显著性水平。
- 第二类错误(假阴性):$\beta$,功效 $1-\beta$。
- Neyman-Pearson引理:似然比检验在固定 $\alpha$ 下功效最高。
5.5.3 零假设显著性检验(NHST)与p值
- p值:在零假设下,观察到当前统计量或更极端值的概率。若 $p < \alpha$,拒绝 $H_0$。
- 需要知道统计量的抽样分布,可用渐近正态或自助法。
5.5.4 p值有害论
- p值不是 $p(H_0|\mathcal{D})$,常被误解。贝叶斯后验可能远大于p值(示例:表5.8)。
- 许多统计学家呼吁放弃NHST。
5.5.5 为什么不是每个人都是贝叶斯主义者?
- 历史原因、计算复杂性、对先验的担忧。但现代计算使贝叶斯方法越来越可行。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 贝叶斯决策 | COVID-19治疗决策 |
| ROC曲线 | 分类器性能比较 |
| PR曲线 | 信息检索中的精确率-召回率 |
| 模型选择 | 多项式次数选择(图5.5-5.6) |
| BIC | 比较不同协方差结构的高斯模型 |
| 贝叶斯t检验 | 比较两个分类器的准确率差异 |
| 风险函数 | 高斯均值估计的不同估计量风险(图5.8) |
| 交叉验证 | 岭回归λ选择(图4.7) |
| p值 | 药物试验中p=0.05但后验概率仍可能高 |
前后章节联系
- 第4章:提供了后验分布(贝叶斯)和估计量(频率派)的基础。
- 第6章:信息论中的熵、KL散度用于决策中的损失函数。
- 第7-8章:优化方法用于最小化风险。
- 第10-11章:逻辑回归和线性回归的决策边界与损失函数。
- 第18章:集成方法(如随机森林)可视为经验风险最小化的变体。
本章核心要点
- 决策的核心:在不确定性下选择行动以最小化期望损失。
- 贝叶斯决策:利用后验分布计算期望损失,得到最优行动。
- 分类决策:0-1损失对应MAP,代价敏感需调整阈值,拒绝选项可减少错误。
- 回归决策:L2损失对应后验均值,L1损失对应后验中位数,Huber损失鲁棒。
- 概率预测:用对数损失或Brier分数评估分布预测。
- 模型选择:通过边际似然、BIC、交叉验证等比较模型,贝叶斯因子提供量化证据。
- 频率派决策:风险函数、最小最大估计、可容许性。
- 经验风险最小化:用训练集误差近似总体误差,但需正则化防过拟合。
- 假设检验:p值常被误解,贝叶斯方法提供更直接的概率解释。
常见难点
- 区分后验期望损失与频率派风险。
- 理解贝叶斯因子与p值的本质不同。
- 掌握ROC曲线与PR曲线的适用场景。
- 理解BIC、AIC、WAIC的推导与适用条件。
- 理解可容许估计量为何可能包含平凡估计(如常值估计)。
- 理解经验风险与结构风险的关系。
学习建议
- 手动计算简单例子的后验期望损失(如COVID-19例子)。
- 用Python绘制ROC和PR曲线,理解AUC。
- 模拟数据,比较不同模型选择准则(BIC vs 交叉验证)。
- 阅读关于p值争议的文章,加深对频率派与贝叶斯差异的理解。
- 将本章内容与后续模型(如逻辑回归、SVM)的损失函数联系起来。
以上是第5章“决策理论”的详细讲解。决策理论将概率模型与实际行动联系起来,是机器学习从“学习”到“应用”的关键桥梁。掌握本章内容将帮助您在实际问题中做出合理决策,并正确评估模型。如有疑问,欢迎继续探讨!
第6章“Information Theory”详细讲解
信息论是机器学习的重要理论基础,它提供了量化不确定性、信息和依赖关系的数学框架。本章从熵开始,逐步引入交叉熵、相对熵(KL散度)和互信息,并探讨它们在机器学习中的广泛应用——从损失函数(如交叉熵损失)到模型选择(如KL散度与MLE的联系),再到特征选择(互信息)。理解这些概念将帮助我们更深刻地把握概率模型、深度学习、自监督学习等领域的核心思想。
6.1 熵
6.1.1 离散随机变量的熵
- 定义:熵度量一个随机变量的不确定性,或信息内容。 $$ H(X) = -\sum_{k=1}^K p(X=k) \log_2 p(X=k) = -\mathbb{E}[\log p(X)] $$ 单位:比特(若用 $\log_2$)或纳特(若用 $\ln$)。
- 性质:
- 非负:$H(X) \ge 0$。
- 均匀分布时熵最大:$H(X) \le \log_2 K$,当且仅当所有 $p_k = 1/K$ 时取等。
- 确定性分布(某状态概率为1)熵为0。
- 二值熵函数: $$ H(\theta) = -\theta\log_2\theta - (1-\theta)\log_2(1-\theta) $$ 图6.1显示最大值在 $\theta=0.5$(1比特),最小值在 $\theta=0$ 或 $1$(0比特)。
实例:DNA序列标识(图6.2)
- 将多个对齐的DNA序列在每个位置上统计四种碱基的频率,得到位置权重矩阵。用熵 $H_t$ 度量该位置的不确定性,然后用 $R_t = 2 - H_t$(最大熵2比特)表示信息含量,以字母高度可视化(序列标识)。
熵的估计
- 当状态数很大(如词汇表)时,需估计分布 $p$,常用平滑技术。
6.1.2 交叉熵
- 定义: $$ H_{ce}(p,q) = -\sum_{k} p_k \log q_k $$ 解释:用分布 $q$ 编码来自 $p$ 的数据所需的平均比特数(若 $q$ 是真实分布,则最优编码比特数为熵 $H(p)$)。
6.1.3 联合熵
- 定义: $$ H(X,Y) = -\sum_{x,y} p(x,y) \log p(x,y) $$
- 性质:
- $H(X,Y) \le H(X) + H(Y)$,等号当且仅当 $X$ 与 $Y$ 独立。
- 下界:$H(X,Y) \ge \max\{H(X),H(Y)\}$。
示例:素数-偶数数字表(6.1.3)
- 给定数字1-8,定义 $X$ 为偶数指示,$Y$ 为质数指示。计算联合分布,得 $H(X,Y)=1.81 < H(X)+H(Y)=2$。
6.1.4 条件熵
- 定义:给定 $X$ 后 $Y$ 的剩余不确定性: $$ H(Y|X) = \sum_x p(x) H(Y|X=x) = -\sum_{x,y} p(x,y) \log p(y|x) $$
- 关系:$H(X,Y) = H(X) + H(Y|X)$(链式法则)。
- 性质:$H(Y|X) \le H(Y)$,等号当且仅当 $X$ 与 $Y$ 独立。
示例(续素数-偶数)
- 计算 $H(Y|X) = 0.81 < H(Y)=1$,表明观测 $X$ 减少了对 $Y$ 的不确定性。
6.1.5 困惑度
- 定义: $$ \text{perplexity}(p) = 2^{H(p)} $$ 对于语言模型,常用指数化交叉熵:$\text{perplexity}(p_{\mathcal{D}},p) = 2^{H_{ce}(p_{\mathcal{D}},p)}$,可解释为预测下一个词时的平均分支因子。
6.1.6 连续随机变量的微分熵 *
- 定义: $$ h(X) = -\int p(x) \log p(x) dx $$ 可正可负,因为密度可大于1。
- 高斯分布的微分熵: $$ h(\mathcal{N}(\mu,\sigma^2)) = \frac{1}{2}\log(2\pi e\sigma^2) $$
- 离散化:将连续变量离散化为直方图可近似计算熵。
6.2 相对熵(KL散度)*
6.2.1 定义
- 衡量两个分布 $p$ 和 $q$ 之间的差异: $$ D_{\mathrm{KL}}(p\|q) = \sum_x p(x) \log \frac{p(x)}{q(x)} \quad (\text{离散}) $$ $$ D_{\mathrm{KL}}(p\|q) = \int p(x) \log \frac{p(x)}{q(x)} dx \quad (\text{连续}) $$
- 不是对称度量,不满足三角不等式。
6.2.2 解释
- 可写为: $$ D_{\mathrm{KL}}(p\|q) = -H(p) + H_{ce}(p,q) $$ 即用 $q$ 编码来自 $p$ 的数据所需的额外比特数。
6.2.3 示例:两个高斯之间的KL
- 对多元高斯: $$ D_{\mathrm{KL}}(\mathcal{N}_1\|\mathcal{N}_2) = \frac{1}{2}\left[\mathrm{tr}(\boldsymbol{\Sigma}_2^{-1}\boldsymbol{\Sigma}_1) + (\boldsymbol{\mu}_2-\boldsymbol{\mu}_1)^\top\boldsymbol{\Sigma}_2^{-1}(\boldsymbol{\mu}_2-\boldsymbol{\mu}_1) - D + \log\frac{|\boldsymbol{\Sigma}_2|}{|\boldsymbol{\Sigma}_1|}\right] $$
6.2.4 KL的非负性
- 证明:利用Jensen不等式和$\log$的凹性,得 $D_{\mathrm{KL}}(p\|q) \ge 0$,等号当且仅当 $p=q$。
6.2.5 KL与MLE
- 当 $p$ 为经验分布 $p_{\mathcal{D}}$,$q$ 为模型分布,则最小化 $D_{\mathrm{KL}}(p_{\mathcal{D}}\|q)$ 等价于最大化对数似然(式4.15)。
6.2.6 前向KL vs 反向KL
- 前向KL $D_{\mathrm{KL}}(p\|q)$ 是“零避免”的,倾向于覆盖 $p$ 的所有支撑集(mode-covering)。
- 反向KL $D_{\mathrm{KL}}(q\|p)$ 是“零强制”的,倾向于锁定 $p$ 的某个模式(mode-seeking)。
- 图6.3展示了用单峰分布逼近双峰分布时两种KL的不同结果。
6.3 互信息 *
6.3.1 定义
- 度量两个随机变量 $X$ 和 $Y$ 之间的依赖程度: $$ I(X;Y) = D_{\mathrm{KL}}(p(x,y)\|p(x)p(y)) = \sum_{x,y} p(x,y)\log\frac{p(x,y)}{p(x)p(y)} $$
- 非负,为0当且仅当独立。
6.3.2 解释
- 用熵表示: $$ I(X;Y) = H(X) - H(X|Y) = H(Y) - H(Y|X) = H(X) + H(Y) - H(X,Y) $$ 即观测 $Y$ 后 $X$ 不确定性的减少量(图6.4信息图)。
6.3.3 示例(素数-偶数)
- 计算得 $I(X;Y) = 0.19$ 比特。
6.3.4 条件互信息
- 给定 $Z$ 后 $X$ 与 $Y$ 的互信息: $$ I(X;Y|Z) = H(X|Z) + H(Y|Z) - H(X,Y|Z) $$
- 链式法则:$I(Z,Y;X) = I(Z;X) + I(Y;X|Z)$。
6.3.5 MI作为“广义相关系数”
- 对联合高斯: $$ I(X,Y) = -\frac{1}{2}\log(1-\rho^2) $$ 当 $\rho=0$ 时MI=0;$\rho=\pm1$ 时MI=∞。
- 对于非高斯连续变量,可用离散化或基于K近邻的KSG估计器(如
sklearn.feature_selection.mutual_info_regression)。
6.3.6 归一化互信息
- 由于 $I(X;Y) \le \min(H(X),H(Y))$,可定义: $$ \mathrm{NMI}(X,Y) = \frac{I(X;Y)}{\min(H(X),H(Y))} \in [0,1] $$
6.3.7 最大信息系数(MIC)
- 通过搜索最优网格划分计算归一化MI,能捕捉各种非线性关系(图6.5-6.7)。
6.3.8 数据处理不等式
- 若 $X \to Y \to Z$ 构成马尔可夫链,则 $I(X;Y) \ge I(X;Z)$,即数据处理不会增加信息。
6.3.9 充分统计量
- 若 $I(\theta; s(\mathcal{D})) = I(\theta; \mathcal{D})$,则 $s(\mathcal{D})$ 是充分统计量。最小充分统计量能最紧凑地压缩数据而不丢失信息。
6.3.10 Fano不等式 *
- 对分类问题,误差概率 $P_e$ 与互信息有关: $$ H(Y|X) \le H(P_e) + P_e\log|\mathcal{Y}| $$ 因此最大化 $I(X;Y)$(等价于最小化 $H(Y|X)$)可降低 $P_e$ 的下界。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 熵 | 二值熵函数,DNA序列标识 |
| 交叉熵 | 机器学习中的分类损失 |
| 联合熵 | 素数-偶数表 |
| 条件熵 | 同上,观测X后Y不确定性减少 |
| 困惑度 | 语言模型的平均分支因子 |
| 微分熵 | 高斯分布熵 |
| KL散度 | 两个高斯之间的KL |
| 互信息 | 联合高斯中 $I = -\frac12\log(1-\rho^2)$ |
| MIC | 检测非线性关系(图6.7) |
| 数据处理不等式 | 特征工程不应增加信息 |
| Fano不等式 | 分类误差的下界 |
前后章节联系
- 第2章:概率基础,熵的定义依赖分布。
- 第4章:MLE最小化KL散度(与经验分布)。
- 第5章:对数损失即交叉熵,Brier分数是另一种评分规则。
- 第13章:神经网络中softmax交叉熵损失。
- 第16章:KDE用核密度估计,可视为对分布的平滑近似。
- 第17章:高斯过程与核方法,可用核函数隐式定义特征空间。
- 第19章:自监督学习中的对比损失(如InfoNCE)与互信息最大化有关。
本章核心要点
- 熵:度量不确定性,均匀分布最大,确定分布最小。
- 交叉熵:作为损失函数,衡量预测分布与真实分布的差异。
- KL散度:非对称的分布距离,与MLE直接相关,分前向(mode-covering)和反向(mode-seeking)。
- 互信息:度量变量间的依赖,可用于特征选择、降维、评估表示质量。
- 重要不等式:数据处理不等式说明信息不增;Fano不等式将互信息与分类错误率联系起来。
- 信息论与深度学习:对比损失(如InfoNCE)最大化互信息下界,自监督学习利用MI学习表示。
常见难点
- 区分熵、交叉熵、KL散度及其关系。
- 理解KL非对称性的实际含义(前向 vs 反向)。
- 掌握互信息的计算(尤其对连续变量)。
- 理解Fano不等式的推导及其在分类中的意义。
- 注意微分熵与离散熵的区别(可负,依赖坐标)。
学习建议
- 动手计算简单例子的熵和互信息(如抛硬币、掷骰子)。
- 用Python的
sklearn计算连续变量的互信息(mutual_info_regression)。 - 在神经网络中替换损失函数(如用KL散度做知识蒸馏),观察效果。
- 阅读自监督学习论文,理解对比损失如何近似互信息。
- 将信息论概念与决策理论(第5章)联系起来,如熵与不确定性、交叉熵与对数损失。
以上是第6章“信息论”的详细讲解。信息论为机器学习提供了量化信息和依赖关系的语言,是理解许多现代方法(如自监督学习、变分推断、互信息最大化)的基础。掌握本章内容将有助于您更深刻地理解模型设计、损失函数和表示学习。如有疑问,欢迎继续探讨!
第7章“Linear Algebra”详细讲解
本章由Zico Kolter合著,为全书提供线性代数的基础知识。线性代数是机器学习的语言,几乎所有算法都涉及向量、矩阵及其运算。本章从基本概念出发,逐步深入到矩阵分解、求解线性系统和矩阵微积分,为后续章节(如线性回归、PCA、神经网络等)奠定数学基础。
7.1 引言
7.1.1 符号
- 向量:列向量 $\mathbf{x} \in \mathbb{R}^n$,记为 $\mathbf{x} = [x_1, x_2, \ldots, x_n]^\top$。单位向量 $\mathbf{e}_i$(one-hot向量)。
- 矩阵:$\mathbf{A} \in \mathbb{R}^{m \times n}$,元素 $A_{ij}$。行向量 $\mathbf{A}_{i,:}$,列向量 $\mathbf{A}_{:,j}$。
- 张量:多维数组,如三维张量 $A_{ijk}$。可用
reshape操作转换维度。 - 转置:$(\mathbf{A}^\top)_{ij} = A_{ji}$。
- 对称矩阵:$\mathbf{A} = \mathbf{A}^\top$。
7.1.2 向量空间
- 线性组合:$\alpha_1 \mathbf{x}_1 + \cdots + \alpha_n \mathbf{x}_n$。
- 线性无关:没有向量可表示为其余向量的线性组合。
- 张成空间(span):所有线性组合的集合。
- 基(basis):一组线性无关且张成整个空间的向量。标准基为 $\mathbf{e}_1,\ldots,\mathbf{e}_n$。
- 线性映射:$\mathbf{y} = \mathbf{A}\mathbf{x}$,其中 $\mathbf{A}$ 是矩阵。
- 列空间(range):$\{\mathbf{A}\mathbf{x} : \mathbf{x} \in \mathbb{R}^n\}$,即所有列向量的张成空间。
- 零空间(nullspace):$\{\mathbf{x} : \mathbf{A}\mathbf{x} = \mathbf{0}\}$。
- 投影:将向量投影到某子空间,如 $\hat{\mathbf{y}} = \mathbf{A}(\mathbf{A}^\top\mathbf{A})^{-1}\mathbf{A}^\top \mathbf{y}$。
7.1.3 范数
- 向量范数:
- $p$-范数:$\|\mathbf{x}\|_p = (\sum_i |x_i|^p)^{1/p}$。
- 2-范数(欧几里得):$\|\mathbf{x}\|_2 = \sqrt{\sum_i x_i^2}$。
- 1-范数:$\|\mathbf{x}\|_1 = \sum_i |x_i|$。
- $\infty$-范数:$\|\mathbf{x}\|_\infty = \max_i |x_i|$。
- 0-范数:$\|\mathbf{x}\|_0 = \#\{i: x_i \neq 0\}$(非范数,不满足齐次性)。
- 矩阵范数:
- 诱导范数:$\|\mathbf{A}\|_p = \max_{\|\mathbf{x}\|_p=1} \|\mathbf{A}\mathbf{x}\|_p$,特别地 $\|\mathbf{A}\|_2 = \sigma_{\max}(\mathbf{A})$。
- 核范数:$\|\mathbf{A}\|_* = \sum_i \sigma_i$(迹范数)。
- Frobenius范数:$\|\mathbf{A}\|_F = \sqrt{\sum_{i,j} A_{ij}^2} = \sqrt{\mathrm{tr}(\mathbf{A}^\top\mathbf{A})}$。
7.1.4 矩阵的性质
- 迹:$\mathrm{tr}(\mathbf{A}) = \sum_i A_{ii}$,满足 $\mathrm{tr}(\mathbf{AB}) = \mathrm{tr}(\mathbf{BA})$。
- 行列式:$\det(\mathbf{A})$ 度量线性变换对体积的缩放。
- 秩:列空间(或行空间)的维数。$\mathrm{rank}(\mathbf{A}) \le \min(m,n)$。
- 条件数:$\kappa(\mathbf{A}) = \|\mathbf{A}\| \|\mathbf{A}^{-1}\|$,衡量矩阵的稳定性。大条件数表示矩阵病态。
7.1.5 特殊矩阵
- 对角矩阵:$\mathrm{diag}(d_1,\ldots,d_n)$。
- 三角矩阵:上三角/下三角。
- 正定矩阵:对称矩阵 $\mathbf{A}$ 满足 $\mathbf{x}^\top\mathbf{A}\mathbf{x} > 0$ 对所有非零 $\mathbf{x}$ 成立。正定矩阵的特征值全正。
- 正交矩阵:$\mathbf{U}^\top\mathbf{U} = \mathbf{I}$,即 $\mathbf{U}^{-1} = \mathbf{U}^\top$。正交变换保持长度和角度。
7.2 矩阵乘法
7.2.1 向量-向量积
- 内积(点积):$\mathbf{x}^\top\mathbf{y} = \sum_i x_i y_i$。
- 外积:$\mathbf{x}\mathbf{y}^\top \in \mathbb{R}^{m \times n}$,$(\mathbf{x}\mathbf{y}^\top)_{ij} = x_i y_j$。
7.2.2 矩阵-向量积
- 行视角:$\mathbf{y} = \mathbf{A}\mathbf{x}$,第 $i$ 个分量是 $\mathbf{A}_{i,:}^\top\mathbf{x}$。
- 列视角:$\mathbf{y} = \mathbf{A}\mathbf{x}$ 是 $\mathbf{A}$ 的列向量的线性组合,系数为 $\mathbf{x}$。
7.2.3 矩阵-矩阵积
- 内积视角:$(\mathbf{AB})_{ij} = \mathbf{A}_{i,:}^\top\mathbf{B}_{:,j}$。
- 外积视角:$\mathbf{AB} = \sum_i \mathbf{A}_{:,i} \mathbf{B}_{i,:}^\top$(列乘行)。
- 列视角:$\mathbf{AB}$ 的第 $j$ 列 = $\mathbf{A}$ 乘以 $\mathbf{B}$ 的第 $j$ 列。
- 行视角:$\mathbf{AB}$ 的第 $i$ 行 = $\mathbf{A}$ 的第 $i$ 行乘以 $\mathbf{B}$。
7.2.4 应用:操作数据矩阵
- 设 $\mathbf{X} \in \mathbb{R}^{N \times D}$ 为设计矩阵。
- 求和:$\mathbf{1}_N^\top \mathbf{X}$ 对各列求和;$\mathbf{X}\mathbf{1}_D$ 对各行的和。
- 缩放:左乘对角矩阵缩放行,右乘对角矩阵缩放列。
- 散度矩阵:$\mathbf{S} = \mathbf{X}_c^\top \mathbf{X}_c$,其中 $\mathbf{X}_c$ 为中心化数据。
- Gram矩阵:$\mathbf{K} = \mathbf{X}\mathbf{X}^\top$,内积矩阵。
- 距离矩阵:$\mathbf{D}_{ij} = \|\mathbf{x}_i - \mathbf{x}_j\|^2$,可用向量化公式快速计算。
7.2.5 Kronecker积
- $\mathbf{A} \otimes \mathbf{B}$ 是分块矩阵,性质:$(\mathbf{A} \otimes \mathbf{B})^{-1} = \mathbf{A}^{-1} \otimes \mathbf{B}^{-1}$,$(\mathbf{A} \otimes \mathbf{B})\mathrm{vec}(\mathbf{C}) = \mathrm{vec}(\mathbf{B}\mathbf{C}\mathbf{A}^\top)$。
7.2.6 Einstein求和
- 一种简洁的表示法,自动进行张量收缩。例如 $C_{ij} = A_{ik}B_{kj}$ 写作
ij = ik,kj。库如 NumPy 的einsum可优化计算顺序。
7.3 矩阵求逆
7.3.1 方阵的逆
- $\mathbf{A}^{-1}\mathbf{A} = \mathbf{A}\mathbf{A}^{-1} = \mathbf{I}$。存在性要求 $\det(\mathbf{A}) \neq 0$。
- 2×2 逆公式:$\begin{pmatrix}a & b \\ c & d\end{pmatrix}^{-1} = \frac{1}{ad-bc}\begin{pmatrix}d & -b \\ -c & a\end{pmatrix}$。
7.3.2 Schur补
- 对分块矩阵 $\mathbf{M} = \begin{pmatrix}\mathbf{E} & \mathbf{F} \\ \mathbf{G} & \mathbf{H}\end{pmatrix}$,定义 $\mathbf{M}/\mathbf{H} = \mathbf{E} - \mathbf{F}\mathbf{H}^{-1}\mathbf{G}$(相对于 $\mathbf{H}$ 的Schur补),$\mathbf{M}/\mathbf{E} = \mathbf{H} - \mathbf{G}\mathbf{E}^{-1}\mathbf{F}$。
- 逆可用Schur补表示(式7.109-7.110)。
7.3.3 矩阵求逆引理(Sherman-Morrison-Woodbury)
- $(\mathbf{E} - \mathbf{F}\mathbf{H}^{-1}\mathbf{G})^{-1} = \mathbf{E}^{-1} + \mathbf{E}^{-1}\mathbf{F}(\mathbf{H} - \mathbf{G}\mathbf{E}^{-1}\mathbf{F})^{-1}\mathbf{G}\mathbf{E}^{-1}$。
- 应用:高效计算低秩更新,如 $(\boldsymbol{\Sigma} + \mathbf{X}\mathbf{X}^\top)^{-1} = \boldsymbol{\Sigma}^{-1} - \boldsymbol{\Sigma}^{-1}\mathbf{X}(\mathbf{I} + \mathbf{X}^\top\boldsymbol{\Sigma}^{-1}\mathbf{X})^{-1}\mathbf{X}^\top\boldsymbol{\Sigma}^{-1}$。
7.3.4 矩阵行列式引理
- $|\mathbf{A} + \mathbf{u}\mathbf{v}^\top| = (1 + \mathbf{v}^\top\mathbf{A}^{-1}\mathbf{u})|\mathbf{A}|$。
7.3.5 应用:推导MVN的条件分布
- 利用Schur补推导 $p(\mathbf{x}_1|\mathbf{x}_2)$ 的均值和协方差(式7.144-7.145)。
7.4 特征值分解(EVD)
7.4.1 基础
- 对于方阵 $\mathbf{A}$,若 $\mathbf{A}\mathbf{u} = \lambda \mathbf{u}$,$\mathbf{u} \neq \mathbf{0}$,则 $\lambda$ 为特征值,$\mathbf{u}$ 为特征向量。
- 特征方程:$\det(\lambda \mathbf{I} - \mathbf{A}) = 0$。
- 性质:$\mathrm{tr}(\mathbf{A}) = \sum \lambda_i$,$\det(\mathbf{A}) = \prod \lambda_i$。
7.4.2 对角化
- 若 $\mathbf{A}$ 有 $n$ 个线性无关的特征向量,则 $\mathbf{A} = \mathbf{U}\boldsymbol{\Lambda}\mathbf{U}^{-1}$,$\boldsymbol{\Lambda}$ 为对角矩阵。
7.4.3 对称矩阵
- 实对称矩阵可正交对角化:$\mathbf{A} = \mathbf{U}\boldsymbol{\Lambda}\mathbf{U}^\top$,$\mathbf{U}$ 正交,$\lambda_i$ 为实数。
- 正定性判定:所有 $\lambda_i > 0$。
7.4.4 二次型的几何
- $\mathbf{x}^\top\mathbf{A}\mathbf{x} = \sum_i \lambda_i (\mathbf{u}_i^\top\mathbf{x})^2$,等高线为椭球,轴方向由特征向量决定,长度与 $\lambda_i^{-1/2}$ 有关。
7.4.5 标准化与白化
- PCA白化:$\mathbf{y} = \boldsymbol{\Lambda}^{-1/2}\mathbf{U}^\top \mathbf{x}$,使协方差变为单位阵。
- ZCA白化:$\mathbf{y} = \mathbf{U}\boldsymbol{\Lambda}^{-1/2}\mathbf{U}^\top \mathbf{x}$,保持与原始数据最接近(图7.7)。
7.4.6 幂法
- 迭代 $\mathbf{v}_{t+1} = \mathbf{A}\mathbf{v}_t / \|\mathbf{A}\mathbf{v}_t\|$,收敛到最大特征值对应的特征向量。
7.4.7 收缩(deflation)
- 减去已求出的主成分,继续求下一个特征向量:$\mathbf{A}^{(2)} = \mathbf{A} - \lambda_1 \mathbf{u}_1\mathbf{u}_1^\top$。
7.4.8 特征向量优化二次型
- 在约束 $\|\mathbf{x}\|_2 = 1$ 下,最大化 $\mathbf{x}^\top\mathbf{A}\mathbf{x}$ 的解是最大特征值对应的特征向量。
7.5 奇异值分解(SVD)
7.5.1 基础
- 任意矩阵 $\mathbf{A} \in \mathbb{R}^{m \times n}$ 可分解为 $\mathbf{A} = \mathbf{U}\mathbf{S}\mathbf{V}^\top$,其中 $\mathbf{U}$ 左奇异向量(正交),$\mathbf{V}$ 右奇异向量(正交),$\mathbf{S}$ 为对角矩阵,含奇异值 $\sigma_i \ge 0$。
- 经济型SVD:只保留非零奇异值对应的部分。
7.5.2 SVD与EVD的联系
- $\mathbf{A}^\top\mathbf{A} = \mathbf{V}\mathbf{S}^2\mathbf{V}^\top$,所以 $\mathbf{V}$ 是 $\mathbf{A}^\top\mathbf{A}$ 的特征向量,$\sigma_i^2$ 是特征值。
- $\mathbf{A}\mathbf{A}^\top = \mathbf{U}\mathbf{S}^2\mathbf{U}^\top$,所以 $\mathbf{U}$ 是 $\mathbf{A}\mathbf{A}^\top$ 的特征向量。
7.5.3 伪逆
- Moore-Penrose伪逆 $\mathbf{A}^\dagger = \mathbf{V}\mathbf{S}^{-1}\mathbf{U}^\top$。若 $\mathbf{A}$ 满秩,$\mathbf{A}^\dagger = (\mathbf{A}^\top\mathbf{A})^{-1}\mathbf{A}^\top$(左逆)或 $\mathbf{A}^\dagger = \mathbf{A}^\top(\mathbf{A}\mathbf{A}^\top)^{-1}$(右逆)。
7.5.4 SVD与列空间和零空间
- 列空间由对应非零奇异值的左奇异向量张成。
- 零空间由对应零奇异值的右奇异向量张成。
7.5.5 截断SVD
- 取前 $K$ 个奇异值和对应向量,得最佳秩 $K$ 近似 $\hat{\mathbf{A}}_K = \mathbf{U}_K\mathbf{S}_K\mathbf{V}_K^\top$,误差为 $\sum_{i=K+1}^r \sigma_i$(图7.9)。
7.6 其他矩阵分解 *
7.6.1 LU分解
- $\mathbf{A} = \mathbf{L}\mathbf{U}$,$\mathbf{L}$ 下三角,$\mathbf{U}$ 上三角。通常需选主元($\mathbf{P}\mathbf{A} = \mathbf{L}\mathbf{U}$)。
7.6.2 QR分解
- $\mathbf{A} = \mathbf{Q}\mathbf{R}$,$\mathbf{Q}$ 正交,$\mathbf{R}$ 上三角。用于解最小二乘($\mathbf{R}\mathbf{w} = \mathbf{Q}^\top\mathbf{y}$)。
7.6.3 Cholesky分解
- 对称正定矩阵 $\mathbf{A} = \mathbf{L}\mathbf{L}^\top$,$\mathbf{L}$ 下三角。用于高效求逆、采样(如从MVN采样)。
7.7 求解线性系统 *
7.7.1 方阵系统
- $\mathbf{A}\mathbf{x} = \mathbf{b}$,用LU分解,先解 $\mathbf{L}\mathbf{y} = \mathbf{P}\mathbf{b}$,再解 $\mathbf{U}\mathbf{x} = \mathbf{y}$(回代)。
7.7.2 欠定系统($m < n$)
- 最小范数解:$\mathbf{x} = \mathbf{A}^\dagger \mathbf{b} = \mathbf{A}^\top(\mathbf{A}\mathbf{A}^\top)^{-1}\mathbf{b}$。
7.7.3 超定系统($m > n$)
- 最小二乘解:$\mathbf{x} = (\mathbf{A}^\top\mathbf{A})^{-1}\mathbf{A}^\top\mathbf{b}$(正规方程)。也可用QR分解或SVD提高数值稳定性。
7.8 矩阵微积分
7.8.1 导数
- 标量函数 $f: \mathbb{R} \to \mathbb{R}$,$f'(x) = \lim_{h\to0} \frac{f(x+h)-f(x)}{h}$。
7.8.2 梯度
- 对 $f: \mathbb{R}^n \to \mathbb{R}$,梯度 $\nabla f(\mathbf{x}) = \left(\frac{\partial f}{\partial x_1}, \ldots, \frac{\partial f}{\partial x_n}\right)^\top$。
7.8.3 方向导数
- 沿方向 $\mathbf{v}$ 的变化率:$D_{\mathbf{v}} f(\mathbf{x}) = \nabla f(\mathbf{x})^\top \mathbf{v}$。
7.8.4 全导数
- 若 $f(t, \mathbf{x}(t), \mathbf{y}(t))$,则全导数 $\frac{df}{dt} = \frac{\partial f}{\partial t} + \frac{\partial f}{\partial \mathbf{x}}^\top \frac{d\mathbf{x}}{dt} + \frac{\partial f}{\partial \mathbf{y}}^\top \frac{d\mathbf{y}}{dt}$。
7.8.5 Jacobian
- 对 $\mathbf{f}: \mathbb{R}^n \to \mathbb{R}^m$,Jacobian $\mathbf{J}_{\mathbf{f}}(\mathbf{x}) \in \mathbb{R}^{m \times n}$,$(J)_{ij} = \frac{\partial f_i}{\partial x_j}$。
- Jacobian-向量积(JVP) 和 向量-Jacobian积(VJP) 在自动微分中常用。
7.8.6 Hessian
- 对标量函数,Hessian $\mathbf{H}_f(\mathbf{x}) \in \mathbb{R}^{n \times n}$,$H_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}$。
7.8.7 常用函数的梯度
- $\frac{\partial}{\partial \mathbf{x}} (\mathbf{a}^\top \mathbf{x}) = \mathbf{a}$。
- $\frac{\partial}{\partial \mathbf{x}} (\mathbf{x}^\top \mathbf{A} \mathbf{x}) = (\mathbf{A} + \mathbf{A}^\top)\mathbf{x}$。
- 矩阵函数的梯度:$\frac{\partial}{\partial \mathbf{X}} \mathrm{tr}(\mathbf{A}\mathbf{X}\mathbf{B}) = \mathbf{A}^\top\mathbf{B}^\top$,$\frac{\partial}{\partial \mathbf{X}} \log \det(\mathbf{X}) = \mathbf{X}^{-\top}$。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 向量范数 | $\|\mathbf{x}\|_2$ 欧几里得距离 |
| 矩阵范数 | $\|\mathbf{A}\|_F$ 平方和开方 |
| 正定矩阵 | $\mathbf{A} = \begin{pmatrix}2 & -1 \\ -1 & 2\end{pmatrix}$ |
| 正交矩阵 | 旋转矩阵 |
| 内积 | $\mathbf{x}^\top\mathbf{y}$ |
| 外积 | $\mathbf{x}\mathbf{y}^\top$ |
| Gram矩阵 | $\mathbf{X}\mathbf{X}^\top$ |
| 距离矩阵 | 向量化计算 |
| 特征值分解 | 协方差矩阵的特征分解(PCA) |
| SVD | 图像压缩(截断SVD) |
| 伪逆 | 解最小二乘 $\hat{\mathbf{w}} = \mathbf{X}^\dagger \mathbf{y}$ |
| 梯度 | $\nabla_{\mathbf{w}} \|\mathbf{X}\mathbf{w} - \mathbf{y}\|^2 = 2\mathbf{X}^\top(\mathbf{X}\mathbf{w} - \mathbf{y})$ |
前后章节联系
- 第2-4章:概率论和统计中用到的协方差矩阵、多元高斯的条件分布(Schur补)都依赖线性代数。
- 第8章:优化中的梯度、Hessian是矩阵微积分的直接应用。
- 第11章:线性回归的正规方程 $\mathbf{X}^\top\mathbf{X}\mathbf{w} = \mathbf{X}^\top\mathbf{y}$ 涉及矩阵运算和伪逆。
- 第20章:PCA基于协方差矩阵的特征分解或SVD。
- 第13-15章:神经网络中的前向传播(矩阵乘法)、反向传播(梯度、Jacobian)都依赖本章内容。
本章核心要点
- 基本概念:向量、矩阵、张量、范数、线性空间、特殊矩阵。
- 矩阵运算:乘法、转置、迹、行列式、秩。
- 矩阵分解:EVD、SVD、LU、QR、Cholesky,各有用途(降维、求解、稳定计算)。
- 求解线性系统:方阵、欠定、超定系统的标准解法。
- 矩阵微积分:梯度、Jacobian、Hessian是机器学习优化的基石。
- 数值注意事项:避免直接求逆,利用分解提高稳定性。
常见难点
- 理解EVD与SVD的区别与联系。
- 掌握Schur补、求逆引理的推导和应用。
- 区分矩阵的不同范数及其意义。
- 理解伪逆在不同情况下的形式(左逆 vs 右逆)。
- 掌握矩阵微积分中分子布局与分母布局的差异(本书采用分子布局)。
- 理解条件数对数值稳定性的影响。
学习建议
- 用Python(NumPy)实现本章大部分概念,如矩阵乘法、EVD、SVD、伪逆。
- 对PCA和线性回归,从矩阵角度推导并实现。
- 练习矩阵微积分,如计算简单神经网络的梯度。
- 阅读与自动微分相关的资料(如JAX、PyTorch的
autograd原理)。 - 结合后续章节(如优化、线性模型)反复运用本章知识。
以上是第7章“线性代数”的详细讲解。线性代数是机器学习的通用语言,熟练掌握本章内容将为全书的学习打下坚实基础。如有疑问,欢迎继续探讨!
第8章“Optimization”详细讲解
本章由Frederik Kunstner, Si Yi Meng, Aaron Mishkin, Sharan Vaswani, Mark Schmidt共同撰写,是机器学习的核心工具章。优化是模型拟合(第4章)的具体实现,几乎所有机器学习算法最终都归结为求解某个优化问题。本章从优化问题的基础分类开始,逐步介绍一阶方法、二阶方法、随机优化、约束优化、近端梯度以及边界优化(如EM算法),为后续各章节的模型训练打下坚实的数学基础。
8.1 引言
8.1.1 优化问题定义
目标:寻找参数 $\theta \in \Theta \subseteq \mathbb{R}^D$ 最小化损失函数 $L(\theta)$:
$$ \theta^* \in \arg\min_{\theta \in \Theta} L(\theta) $$若最大化则等价于最小化 $-L(\theta)$。我们称 $L$ 为目标函数。
局部极小值:存在邻域内所有点的函数值不小于该点。一阶必要条件:梯度 $\nabla L(\theta^*) = 0$;二阶充分条件:Hessian $\nabla^2 L(\theta^*)$ 正定(图8.1a)。
全局极小值:整个可行域内的最小值点。寻找全局最优通常困难(NP难),故常满足于局部最优。
8.1.2 约束 vs 无约束
- 无约束:$\Theta = \mathbb{R}^D$。
- 约束:$\Theta = \{\theta : g_j(\theta) \le 0, h_k(\theta) = 0\}$(图8.2)。
8.1.3 凸 vs 非凸
- 凸集:集合内任意两点的连线仍属于集合。
- 凸函数:定义在凸集上,满足 $f(\lambda x + (1-\lambda)y) \le \lambda f(x) + (1-\lambda)f(y)$。
- 凸优化:目标凸函数,可行域凸集,此时任何局部极小都是全局极小。图8.5展示了凸函数与非凸函数。
- 强凸性:存在 $m>0$ 使得 $\nabla^2 f(\theta) \succeq m\mathbf{I}$,收敛速度更快。
8.1.4 光滑 vs 非光滑
- 光滑:函数连续可微,通常要求梯度Lipschitz连续,即 $\|\nabla f(x) - \nabla f(y)\| \le L\|x-y\|$。
- 非光滑:存在不可微点,如绝对值函数、hinge损失。此时可用次梯度(subgradient): $$ \partial f(x) = \{g : f(z) \ge f(x) + g^\top(z-x) \ \forall z\} $$ 图8.9-8.10展示了次梯度的概念。
8.2 一阶方法
一阶方法仅使用梯度信息,更新形式:
$$ \theta_{t+1} = \theta_t + \eta_t \mathbf{d}_t $$其中 $\mathbf{d}_t$ 为下降方向,$\eta_t$ 为步长(学习率)。
8.2.1 下降方向
- 最速下降:取负梯度方向 $\mathbf{d}_t = -\nabla L(\theta_t)$,是局部下降最快的方向。
- 任何与负梯度夹角小于90°的方向都是下降方向(式8.18)。
8.2.2 步长选择
- 常数步长:简单但需小心,过大可能不收敛(图8.11),过小收敛慢。对二次函数,收敛要求 $\eta < 2/\lambda_{\max}(\mathbf{A})$。
- 线搜索:沿当前方向找到最优步长,如精确线搜索(二次函数有闭式解)或Armijo回溯(满足充分下降条件)。
8.2.3 收敛速度
- 线性收敛:$|L(\theta_{t+1}) - L(\theta^*)| \le \mu |L(\theta_t) - L(\theta^*)|$,其中 $\mu<1$。
- 对二次函数,收敛速度与条件数 $\kappa = \lambda_{\max}/\lambda_{\min}$ 有关:$\mu = \left(\frac{\kappa-1}{\kappa+1}\right)^2$(图8.12)。
8.2.4 动量法
- 标准动量:积累历史梯度,平滑更新方向: $$ \mathbf{m}_t = \beta \mathbf{m}_{t-1} + \eta_{t-1}\nabla L(\theta_{t-1}) $$ $$ \theta_t = \theta_{t-1} - \mathbf{m}_t $$ 相当于指数加权移动平均,$\beta=0.9$ 常见。
- Nesterov动量:先按动量“预估”下一步位置,再计算梯度(图8.13),有理论加速效果。
8.3 二阶方法
二阶方法利用曲率信息(Hessian),可更快收敛,尤其对病态问题。
8.3.1 牛顿法
- 迭代更新: $$ \theta_{t+1} = \theta_t - \eta_t \mathbf{H}_t^{-1} \mathbf{g}_t $$ 其中 $\mathbf{H}_t = \nabla^2 L(\theta_t)$。当 $\eta_t=1$ 且二次近似精确时,一步可达最小值(如线性回归)。
- 缺点:Hessian可能不正定,导致上升方向;计算和存储Hessian开销大(图8.14)。
8.3.2 拟牛顿法(BFGS)
- 迭代更新近似Hessian $\mathbf{B}_t$(或其逆 $\mathbf{C}_t$)以逼近真实Hessian,只需梯度信息。
- BFGS更新公式(式8.44)保持正定性。L-BFGS 用最近几步的梯度信息近似,内存需求 $O(MD)$,适合大规模问题。
8.3.3 信赖域方法
- 在当前点周围定义一个信赖域(通常为球),在域内优化二次模型,若模型可信则扩大区域,否则缩小。等价于添加 $\lambda \|\delta\|^2$ 的阻尼(Tikhonov正则化),保证方向下降。
8.4 随机梯度下降(SGD)
适用于目标函数为期望形式 $\mathbb{E}_z[L(\theta,z)]$ 的问题,机器学习中常见有限和问题 $L(\theta) = \frac{1}{N}\sum_n L_n(\theta)$。
8.4.1 有限和问题与小批量
- 用随机选择的子集(minibatch)近似梯度: $$ \tilde{\mathbf{g}}_t = \frac{1}{|B_t|} \sum_{n\in B_t} \nabla L_n(\theta_t) $$
- SGD每步计算快,能逃离鞍点,且有隐式正则化效果。
8.4.2 示例:线性回归的SGD(LMS算法)
- 更新 $\theta_{t+1} = \theta_t - \eta_t (\theta_t^\top \mathbf{x}_n - y_n)\mathbf{x}_n$,图8.16展示收敛过程。
8.4.3 学习率调度
- 常数学习率需调参;常用调度:分段常数、指数衰减、多项式衰减(图8.18)。需满足 Robbins-Monro 条件:$\sum \eta_t = \infty$,$\sum \eta_t^2 < \infty$。
- 学习率预热(warmup)和循环学习率(图8.19)在实践中有效。
8.4.4 迭代平均
- Polyak-Ruppert平均:$\bar{\theta}_t = \frac{1}{t}\sum_{i=1}^t \theta_i$,可降低方差,达到最优收敛速率。
- 随机权重平均(SWA):后期等权平均,提升泛化。
8.4.5 方差缩减 *
- SVRG:定期计算全梯度作为基线,用随机梯度减去基线再加全梯度(式8.66),方差随迭代减小,线性收敛。
- SAGA:维护每个样本的梯度表,更新时替换旧值,无需定期全梯度,但内存需求大。
8.4.6 预条件SGD
- 用正定矩阵 $\mathbf{M}_t$ 调整更新方向:$\theta_{t+1} = \theta_t - \eta_t \mathbf{M}_t^{-1} \tilde{\mathbf{g}}_t$。
- AdaGrad:$\mathbf{M}_t = \mathrm{diag}(\sqrt{\sum_{s=1}^t \mathbf{g}_s^2})$,对稀疏特征有效。
- RMSProp:用指数加权移动平均代替累积平方和,防止学习率过早衰减。
- Adam:结合动量(一阶矩)和RMSProp(二阶矩),加偏差校正(式8.77-8.81)。注意Adam可能不收敛,改进版如 AMSGrad、Yogi、ADOPT。
- 非对角预条件:如全矩阵AdaGrad、Shampoo,利用Kronecker结构近似。
8.5 约束优化
8.5.1 拉格朗日乘子法
- 等式约束 $h(\theta)=0$ 引入拉格朗日乘子 $\lambda$,构造 $L(\theta,\lambda) = L(\theta) + \lambda h(\theta)$,求驻点。
- 例:$\min \theta_1^2+\theta_2^2$ 满足 $\theta_1+\theta_2=1$,得解 $(\frac12,\frac12)$。
8.5.2 KKT条件
- 对不等式约束 $g(\theta) \le 0$ 和等式约束,最优解满足:可行性、梯度为零、互补松弛($\mu_i g_i(\theta)=0$)、对偶可行性 $\mu_i \ge 0$。
8.5.3 线性规划
- 目标与约束均为线性:$\min \mathbf{c}^\top \theta$ s.t. $\mathbf{A}\theta \le \mathbf{b},\ \theta \ge 0$。可行域为多面体,最优解在顶点(图8.21)。
- 单纯形法:沿边移动;内点法:多项式时间。
8.5.4 二次规划
- 目标为二次,约束线性:$\min \frac12 \theta^\top \mathbf{H}\theta + \mathbf{c}^\top \theta$ s.t. $\mathbf{A}\theta \le \mathbf{b}$。
- 例:带 $\ell_1$ 约束的最小二乘,等价于二次规划。
8.5.5 混合整数线性规划
- 变量部分为整数,用于组合优化,如神经网络验证。
8.6 近端梯度法 *
处理可分解目标 $L(\theta) = L_s(\theta) + L_r(\theta)$,其中 $L_s$ 光滑,$L_r$ 非光滑凸。
8.6.1 投影梯度下降
- 若 $L_r$ 为指示函数(如约束集),近端算子即为投影: $$ \mathrm{prox}_{\eta L_r}(\theta) = \arg\min_{z} \left( L_r(z) + \frac{1}{2\eta}\|z-\theta\|^2 \right) $$ 更新:$\theta_{t+1} = \mathrm{proj}_{\mathcal{C}}(\theta_t - \eta_t \nabla L_s(\theta_t))$(图8.22)。
8.6.2 ℓ₁正则化的近端算子
- 对 $L_r(\theta) = \lambda\|\theta\|_1$,近端算子为软阈值: $$ \mathrm{SoftThreshold}(\theta, \lambda) = \mathrm{sign}(\theta) (|\theta| - \lambda)_+ $$ 即对每个分量独立操作(图8.9)。
8.6.3 量化的近端算子
- 用于训练量化神经网络,如二值化,近端算子为到离散集的投影,可用直通估计器近似。
8.6.4 在线近端方法
- 扩展到随机/在线设置。
8.7 边界优化 *
8.7.1 MM算法
- 最大化(或最小化)时,构造一个容易优化的代理函数 $Q(\theta,\theta_t)$,满足 $Q(\theta,\theta_t) \le L(\theta)$(下界)且 $Q(\theta_t,\theta_t) = L(\theta_t)$,然后更新 $\theta_{t+1} = \arg\max Q(\theta,\theta_t)$,保证目标单调递增(图8.23)。
8.7.2 EM算法
- 处理含隐变量模型的最大似然估计。通过Jensen不等式得到ELBO(证据下界): $$ \log p(\mathcal{D}|\theta) \ge \sum_n \mathbb{E}_{q_n(z_n)}[\log p(\mathbf{y}_n,z_n|\theta)] + H(q_n) \triangleq \mathcal{L}(\theta,\{q_n\}) $$
- E步:固定 $\theta$,令 $q_n(z_n) = p(z_n|\mathbf{y}_n,\theta)$ 使下界紧。
- M步:固定 $q_n$,最大化期望完全数据对数似然,更新 $\theta$。
8.7.3 示例:GMM的EM
- E步:计算责任度 $r_{nk} = p(z_n=k|\mathbf{y}_n,\theta)$。
- M步:更新 $\pi_k$、$\mu_k$、$\Sigma_k$ 为加权平均(式8.165-8.167)。图8.25展示EM在Old Faithful数据上的收敛过程。
- MAP估计:加入先验可避免协方差奇异(图8.26)。
- 非凸性:GMM似然有多个局部最优(图8.27),初始化重要(可用K-means++)。
8.8 黑盒优化与无导数优化
- 目标函数为黑盒(如验证误差),无法求梯度。常用网格搜索、随机搜索、贝叶斯优化等(详见 [Mur23])。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 梯度下降 | 凸二次函数(图8.11) |
| 线搜索 | 沿直线最小化(二次函数有解析解) |
| 动量 | 加速沿平坦区域(图8.13) |
| 牛顿法 | 线性回归一步到位 |
| L-BFGS | 逻辑回归默认求解器(scikit-learn) |
| SGD | 线性回归的LMS算法(图8.16) |
| 学习率调度 | 分段常数、指数衰减、预热(图8.18-8.19) |
| Adam | 深度学习默认优化器 |
| 投影梯度 | 非负约束的最小二乘 |
| 软阈值 | Lasso回归(图11.9) |
| EM | 高斯混合模型(图8.25) |
前后章节联系
- 第4章:MLE、MAP、正则化都是优化问题,本章提供求解方法。
- 第7章:梯度、Hessian、矩阵分解是本章工具。
- 第10章:逻辑回归用IRLS(牛顿法)或SGD求解。
- 第11章:线性回归的闭式解(最小二乘)、Lasso用近端梯度。
- 第13-15章:神经网络训练依赖SGD及其变种(Adam等)。
- 第20章:PCA可用幂法或EM;因子分析用EM。
- 第21章:K-means是EM的特例(硬EM)。
本章核心要点
- 优化问题分类:理解局部/全局、约束/无约束、凸/非凸、光滑/非光滑的区别,对选择算法至关重要。
- 一阶方法:梯度下降是基础,动量可加速,线搜索自适应步长。
- 二阶方法:牛顿法利用曲率,收敛快但成本高;拟牛顿(L-BFGS)是实用折中。
- 随机优化:SGD是深度学习主力,学习率调度和动量是关键;方差缩减可加速凸问题。
- 预条件:自适应方法(Adam等)自动调整各参数学习率,但需注意收敛性。
- 约束优化:拉格朗日乘子、KKT条件是理论基础;线性/二次规划有成熟解法。
- 近端梯度:处理非光滑正则项(如L1)的标准工具。
- 边界优化:MM算法(含EM)通过构造下界单调提升目标,常用于概率模型。
常见难点
- 理解动量与Nesterov动量的区别。
- 掌握方差缩减方法的原理(SVRG的控制变量思想)。
- 理解Adam中偏差校正的作用(图4.3)。
- 区分对偶问题与原始问题的关系(KKT)。
- 掌握软阈值算子的推导(从次梯度出发)。
- 理解EM为何保证单调提升(ELBO下界)。
学习建议
- 用Python实现简单的梯度下降、动量、牛顿法(对二次函数)并观察收敛。
- 在简单数据集上尝试SGD与Adam,观察学习率影响。
- 实现Lasso的软阈值迭代(ISTA)并与坐标下降对比。
- 用EM实现GMM,并与K-means比较。
- 阅读优化库(如scipy.optimize、PyTorch optim)的文档,了解实际使用。
以上是第8章“优化”的详细讲解。优化是机器学习的发动机,理解各类算法的适用场景和原理,将帮助您在模型训练中做出明智选择。如有疑问,欢迎继续探讨!
第9章“Linear Discriminant Analysis”详细讲解
本章介绍生成式分类器,其核心思想是通过对每个类别的类条件密度 $p(\mathbf{x}|y=c)$ 和类先验 $p(y=c)$ 建模,然后利用贝叶斯定理得到后验概率 $p(y=c|\mathbf{x})$。本章主要关注高斯类条件密度,由此引出线性判别分析(LDA)和二次判别分析(QDA),并介绍朴素贝叶斯分类器。最后,对比生成式与判别式分类器的优缺点。
9.1 引言
- 生成式分类器:建模联合分布 $p(\mathbf{x}, y) = p(y)p(\mathbf{x}|y)$,再通过贝叶斯公式得到后验: $$ p(y=c|\mathbf{x}) = \frac{p(y=c) p(\mathbf{x}|y=c)}{\sum_{c'} p(y=c') p(\mathbf{x}|y=c')} $$
- 判别式分类器:直接建模后验 $p(y=c|\mathbf{x})$,如逻辑回归(第10章)。
- 本章重点:当类条件密度取为高斯分布时,后验形式简化,产生线性或二次决策边界。
9.2 高斯判别分析(Gaussian Discriminant Analysis, GDA)
9.2.1 模型定义
假设每个类 $c$ 的类条件密度为多元高斯:
$$ p(\mathbf{x}|y=c) = \mathcal{N}(\mathbf{x}|\boldsymbol{\mu}_c, \boldsymbol{\Sigma}_c) $$类先验为 $p(y=c) = \pi_c$(通常用MLE估计)。则后验为:
$$ p(y=c|\mathbf{x}) \propto \pi_c \mathcal{N}(\mathbf{x}|\boldsymbol{\mu}_c, \boldsymbol{\Sigma}_c) $$9.2.2 二次判别分析(QDA)
当每个类有自己的协方差矩阵 $\boldsymbol{\Sigma}_c$ 时,后验对数形式:
$$ \log p(y=c|\mathbf{x}) = \log\pi_c - \frac{1}{2}\log|\boldsymbol{\Sigma}_c| - \frac{1}{2}(\mathbf{x}-\boldsymbol{\mu}_c)^\top\boldsymbol{\Sigma}_c^{-1}(\mathbf{x}-\boldsymbol{\mu}_c) + \text{const} $$比较类 $c$ 与 $c'$ 的判别函数,得到 $\mathbf{x}$ 的二次函数 → 二次决策边界。
示例:图9.1-9.2a展示了3类2d数据,每类协方差不同,决策边界为曲线。
9.2.3 线性判别分析(LDA)
当假设所有类共享协方差矩阵 $\boldsymbol{\Sigma}_c = \boldsymbol{\Sigma}$ 时,后验对数中的二次项 $\mathbf{x}^\top\boldsymbol{\Sigma}^{-1}\mathbf{x}$ 与类无关,可消去,剩下线性项:
$$ \log p(y=c|\mathbf{x}) = \log\pi_c - \frac{1}{2}\boldsymbol{\mu}_c^\top\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_c + \mathbf{x}^\top\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_c + \text{const} $$记 $\gamma_c = \log\pi_c - \frac{1}{2}\boldsymbol{\mu}_c^\top\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_c$,$\boldsymbol{\beta}_c = \boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_c$,则
$$ \log p(y=c|\mathbf{x}) = \gamma_c + \mathbf{x}^\top\boldsymbol{\beta}_c $$决策边界为线性超平面(图9.2b)。
9.2.4 LDA与逻辑回归的联系
- LDA的类后验可写为 softmax 形式 $p(y=c|\mathbf{x}) = \frac{e^{\gamma_c + \mathbf{x}^\top\boldsymbol{\beta}_c}}{\sum_{c'}e^{\gamma_{c'} + \mathbf{x}^\top\boldsymbol{\beta}_{c'}}}$,与多类逻辑回归形式相同。
- 区别:LDA通过拟合高斯类条件密度(MLE)得到 $\boldsymbol{\mu}_c,\boldsymbol{\Sigma},\pi_c$,再导出 $\boldsymbol{\beta}_c,\gamma_c$;而逻辑回归直接最大化条件似然 $p(y|\mathbf{x})$ 估计 $\boldsymbol{\beta}_c,\gamma_c$。两者一般给出不同参数值。
对于二分类,可进一步简化:
$$ p(y=1|\mathbf{x}) = \sigma\big((\boldsymbol{\mu}_1-\boldsymbol{\mu}_0)^\top\boldsymbol{\Sigma}^{-1}\mathbf{x} + (\gamma_1-\gamma_0)\big) $$其中 $\sigma$ 为sigmoid。若先验相等 $\pi_1=\pi_0$,决策边界为 $\mathbf{x}^\top\boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu}_1-\boldsymbol{\mu}_0) = \frac{1}{2}(\boldsymbol{\mu}_1-\boldsymbol{\mu}_0)^\top\boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu}_1+\boldsymbol{\mu}_0)$,即点 $\mathbf{x}$ 投影到方向 $\boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu}_1-\boldsymbol{\mu}_0)$ 后与阈值比较(图9.3)。
9.2.5 模型拟合(MLE)
似然函数:
$$ p(\mathcal{D}|\theta) = \prod_{n=1}^N \prod_{c=1}^C \left[\pi_c \mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_c,\boldsymbol{\Sigma}_c)\right]^{\mathbb{I}(y_n=c)} $$对数似然分解为:
$$ \log p(\mathcal{D}|\theta) = \sum_{n,c} \mathbb{I}(y_n=c)\log\pi_c + \sum_c \sum_{n:y_n=c} \log\mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_c,\boldsymbol{\Sigma}_c) $$MLE估计:
- 先验:$\hat{\pi}_c = N_c/N$。
- 类均值:$\hat{\boldsymbol{\mu}}_c = \frac{1}{N_c}\sum_{n:y_n=c} \mathbf{x}_n$。
- 类协方差:$\hat{\boldsymbol{\Sigma}}_c = \frac{1}{N_c}\sum_{n:y_n=c} (\mathbf{x}_n-\hat{\boldsymbol{\mu}}_c)(\mathbf{x}_n-\hat{\boldsymbol{\mu}}_c)^\top$。
共享协方差(LDA):$\hat{\boldsymbol{\Sigma}} = \frac{1}{N}\sum_c \sum_{n:y_n=c} (\mathbf{x}_n-\hat{\boldsymbol{\mu}}_c)(\mathbf{x}_n-\hat{\boldsymbol{\mu}}_c)^\top$。
对角协方差:假设 $\boldsymbol{\Sigma}_c$ 为对角,减少参数,但忽略特征间相关性(相当于朴素贝叶斯假设)。
正则化:用MAP估计(如收缩估计)防止小样本下协方差奇异(RDA,正则化判别分析)。
9.2.6 最近质心分类器
- 若先验均匀且协方差为单位矩阵(或假设为球形),则决策规则简化为: $$ \hat{y}(\mathbf{x}) = \arg\min_c \|\mathbf{x} - \boldsymbol{\mu}_c\|_2^2 $$ 即分配 $\mathbf{x}$ 到最近的类均值(欧氏距离)。可推广到马氏距离或学习到的距离度量(如通过线性变换 $\mathbf{W}$ 后的欧氏距离,称为最近类均值度量学习)。
9.2.7 Fisher线性判别分析(FLDA)*
- 目标:寻找投影方向 $\mathbf{w}$ 使得投影后类间离散度大、类内离散度小。
- 定义:
- 类间散度矩阵 $\mathbf{S}_B = (\boldsymbol{\mu}_2 - \boldsymbol{\mu}_1)(\boldsymbol{\mu}_2 - \boldsymbol{\mu}_1)^\top$。
- 类内散度矩阵 $\mathbf{S}_W = \sum_{n:y_n=1}(\mathbf{x}_n-\boldsymbol{\mu}_1)(\mathbf{x}_n-\boldsymbol{\mu}_1)^\top + \sum_{n:y_n=2}(\mathbf{x}_n-\boldsymbol{\mu}_2)(\mathbf{x}_n-\boldsymbol{\mu}_2)^\top$。
- 优化准则: $$ J(\mathbf{w}) = \frac{\mathbf{w}^\top \mathbf{S}_B \mathbf{w}}{\mathbf{w}^\top \mathbf{S}_W \mathbf{w}} $$ 最大化 $J$ 的解为 $\mathbf{w} \propto \mathbf{S}_W^{-1}(\boldsymbol{\mu}_2 - \boldsymbol{\mu}_1)$(二分类)。对于多类,可求投影矩阵 $\mathbf{W}$,使 $\frac{|\mathbf{W}^\top\mathbf{S}_B\mathbf{W}|}{|\mathbf{W}^\top\mathbf{S}_W\mathbf{W}|}$ 最大,解为 $\mathbf{S}_W^{-1}\mathbf{S}_B$ 的最大特征值对应的特征向量(图9.4-9.5)。
- 限制:最多可找到 $C-1$ 个投影方向,因为 $\mathbf{S}_B$ 秩为 $C-1$。
9.3 朴素贝叶斯分类器(Naive Bayes Classifier, NBC)
9.3.1 朴素贝叶斯假设
- 在给定类标签下,特征之间条件独立: $$ p(\mathbf{x}|y=c) = \prod_{d=1}^D p(x_d|y=c) $$ 因此后验为: $$ p(y=c|\mathbf{x}) \propto \pi_c \prod_{d=1}^D p(x_d|y=c) $$
9.3.2 示例模型
- 二值特征:$p(x_d|y=c) = \mathrm{Ber}(x_d|\theta_{dc})$。图9.6展示了MNIST二值化数据上学习的 $\theta_{dc}$(每个类每个像素的“开启”概率)。
- 类别特征:$p(x_d|y=c) = \mathrm{Cat}(x_d|\theta_{dc})$。
- 实值特征:$p(x_d|y=c) = \mathcal{N}(x_d|\mu_{dc},\sigma_{dc}^2)$(即对角协方差高斯,等价于QDA对角版本)。
9.3.3 模型拟合
- 对数似然分解为独立项: $$ \log p(\mathcal{D}|\theta) = \sum_c \sum_{n:y_n=c} \log\pi_c + \sum_c \sum_d \sum_{n:y_n=c} \log p(x_{nd}|\theta_{dc}) $$
- MLE:
- $\hat{\pi}_c = N_c/N$。
- 对伯努利:$\hat{\theta}_{dc} = \frac{N_{dc}}{N_c}$,其中 $N_{dc}$ 是类 $c$ 中特征 $d$ 为1的次数。
- 对高斯:$\hat{\mu}_{dc} = \frac{1}{N_c}\sum_{n:y_n=c} x_{nd}$,$\hat{\sigma}_{dc}^2 = \frac{1}{N_c}\sum_{n:y_n=c} (x_{nd}-\hat{\mu}_{dc})^2$。
9.3.4 贝叶斯朴素贝叶斯
- 引入共轭先验(如Dirichlet用于类别特征,Beta用于伯努利,高斯-逆Gamma用于高斯),得到后验。预测时用后验均值参数,实现平滑(如拉普拉斯平滑 $\hat{\theta}_{dc} = \frac{1 + N_{dc}}{2 + N_c}$)。
9.3.5 与逻辑回归的联系
- 将朴素贝叶斯的后验写成 softmax 形式: $$ p(y=c|\mathbf{x}) = \frac{\exp\left(\log\pi_c + \sum_d \log p(x_d|y=c)\right)}{\sum_{c'}\exp\left(\log\pi_{c'} + \sum_d \log p(x_d|y=c')\right)} $$ 若每个 $\log p(x_d|y=c)$ 是 $x_d$ 的线性函数(如伯努利时 $\log p = x_d\log\frac{\theta_{dc}}{1-\theta_{dc}} + \log(1-\theta_{dc})$),则整体是指数族形式,与多类逻辑回归形式相同。但估计方法不同(生成式 vs 判别式)。
9.4 生成式 vs 判别式分类器
9.4.1 判别式分类器的优点
- 预测准确率更高:判别式模型直接针对分类任务,无需建模输入分布,往往在有限数据下表现更好(图9.8)。
- 灵活处理特征工程:可对输入进行任意非线性变换,不必担心特征间的复杂依赖。
- 概率校准好:逻辑回归通常给出较可靠的概率估计,而朴素贝叶斯可能因独立性假设产生极端概率。
9.4.2 生成式分类器的优点
- 拟合简单:通常只需计数和平均,无需迭代优化(如朴素贝叶斯)。
- 自然处理缺失特征:在测试时,若部分特征缺失,可在类条件密度中边缘化缺失变量(式9.63-9.65)。
- 可分开训练各类:每类的参数独立估计,添加新类无需重新训练整个模型。
- 可利用无标签数据(半监督学习):通过生成模型,未标记数据可帮助估计类条件密度。
- 对虚假特征更鲁棒:生成式模型学习数据产生机制,可能更稳健应对分布偏移。
9.4.3 处理缺失特征
- 在生成式模型中,若测试时某些特征缺失,只需对缺失特征积分: $$ p(y=c|\mathbf{x}_{\text{obs}}) \propto \pi_c \int p(\mathbf{x}_{\text{obs}},\mathbf{x}_{\text{mis}}|y=c) d\mathbf{x}_{\text{mis}} = \pi_c p(\mathbf{x}_{\text{obs}}|y=c) $$ 在朴素贝叶斯下,积分简化为只使用观测特征(因为条件独立,缺失特征可忽略)。在GDA中,可利用高斯条件分布公式计算。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| QDA | 图9.2a,不同类协方差不同,边界曲线 |
| LDA | 图9.2b,共享协方差,边界直线 |
| 最近质心 | 图9.3,投影到均值连线,用阈值分类 |
| FLDA | 图9.4-9.5,投影后类分离更好 |
| 朴素贝叶斯(伯努利) | 图9.6,MNIST二值化学习到的每个像素激活概率 |
| 朴素贝叶斯预测 | 图9.7,测试图像分类 |
| 缺失特征处理 | 测试时仅用观测特征,生成式可边缘化 |
前后章节联系
- 第2-3章:多元高斯分布、条件高斯公式用于GDA;概率图模型视角下,朴素贝叶斯可视为简单图模型。
- 第4章:MLE、MAP估计用于拟合GDA和朴素贝叶斯。
- 第10章:逻辑回归(判别式)与LDA/朴素贝叶斯对比。
- 第11章:线性回归与高斯判别分析的联系(当输出为连续时)。
- 第20章:PCA(无监督降维)与FLDA(有监督降维)对比。
本章核心要点
- 生成式分类器:通过建模 $p(\mathbf{x}|y)$ 和 $p(y)$ 得到后验。
- 高斯判别分析:
- QDA:每类不同协方差 → 二次边界。
- LDA:共享协方差 → 线性边界。
- 参数可由MLE解析估计。
- LDA与逻辑回归:形式相同但估计准则不同(联合似然 vs 条件似然)。
- 朴素贝叶斯:特征条件独立假设,极大简化模型,易于拟合,对缺失数据友好。
- Fisher LDA:寻找最佳投影方向最大化类间/类内散度比,用于降维。
- 生成式 vs 判别式:各有优缺点,选择取决于应用场景和数据特点。
常见难点
- 理解LDA与逻辑回归在形式上的相同与实质上的不同(参数估计方法)。
- 掌握共享协方差如何导致线性边界的推导(消去二次项)。
- 理解朴素贝叶斯的条件独立假设为何在特征相关时仍可能有效(概率校准可能差,但分类边界可能仍合理)。
- 理解FLDA中为什么最多只能得到 $C-1$ 个投影方向。
- 区分生成式分类器处理缺失特征与判别式分类器(判别式通常需填充或忽略)。
学习建议
- 用Python实现LDA和QDA(可用
sklearn.discriminant_analysis),观察决策边界。 - 对比LDA与逻辑回归在同一数据集上的参数差异。
- 实现朴素贝叶斯分类器(对连续特征用高斯朴素贝叶斯),观察预测效果。
- 尝试用FLDA对高维数据降维后再分类,比较与PCA的区别。
- 阅读生成式与判别式对比的经典论文(如Ng & Jordan, 2002),加深理解。
以上是第9章“线性判别分析”的详细讲解。掌握本章内容将帮助您理解生成式模型的构建及其与判别式模型的本质区别。如有疑问,欢迎继续探讨!
第10章“Logistic Regression”详细讲解
逻辑回归是机器学习中最基础、应用最广泛的分类模型。尽管名字中有“回归”,但它实际上是用于分类的判别式模型。本章从二分类开始,逐步扩展到多分类,介绍模型形式、参数估计方法(MLE、MAP)、优化算法(梯度下降、IRLS、SGD)、正则化、鲁棒扩展以及贝叶斯视角。掌握逻辑回归对理解后续神经网络(作为softmax分类器的基础)和其他广义线性模型至关重要。
10.1 引言
逻辑回归是一种判别式分类模型,直接建模后验概率 $p(y|\mathbf{x};\theta)$。输入 $\mathbf{x} \in \mathbb{R}^D$,输出 $y \in \{1,\ldots,C\}$。对于二分类($C=2$),称为二元逻辑回归;对于多分类($C>2$),称为多项逻辑回归(或softmax回归)。
10.2 二元逻辑回归
10.2.1 模型定义
二元逻辑回归假设:
$$ p(y=1|\mathbf{x};\theta) = \sigma(\mathbf{w}^\top\mathbf{x} + b) $$其中 $\sigma(a) = \frac{1}{1+e^{-a}}$ 是 sigmoid 函数(第2.4.2节),$\mathbf{w}$ 为权重向量,$b$ 为偏置(截距),$\theta = (\mathbf{w}, b)$。于是 $p(y=0|\mathbf{x}) = 1 - p(y=1|\mathbf{x})$。
若用标签 $\tilde{y} \in \{-1, +1\}$,可写为 $p(\tilde{y}|\mathbf{x}) = \sigma(\tilde{y} a)$,其中 $a = \mathbf{w}^\top\mathbf{x} + b$。
10.2.2 线性分类器
- 决策边界:当 $p(y=1|\mathbf{x}) > 0.5$ 时预测为1,等价于 $a > 0$。因此决策边界为超平面 $\mathbf{w}^\top\mathbf{x} + b = 0$(图10.1)。
- 几何意义:$\mathbf{w}$ 是法向量,$b$ 控制偏移。$\|\mathbf{w}\|$ 越大,sigmoid越陡峭,分类置信度越高(图10.2)。
10.2.3 非线性分类器
通过对输入做特征变换 $\phi(\mathbf{x})$,模型变为 $p(y=1|\mathbf{x}) = \sigma(\mathbf{w}^\top\phi(\mathbf{x}) + b)$。例如多项式特征(图10.3)可将线性不可分问题转化为线性可分。但需注意,特征过多可能导致过拟合(图10.4)。
10.2.4 最大似然估计(MLE)
- 负对数似然(NLL):假设数据集 $\mathcal{D} = \{(\mathbf{x}_n, y_n)\}_{n=1}^N$,$y_n \in \{0,1\}$,则 $$ \mathrm{NLL}(\mathbf{w}) = -\frac{1}{N}\sum_{n=1}^N \left[y_n\log\mu_n + (1-y_n)\log(1-\mu_n)\right] $$ 其中 $\mu_n = \sigma(\mathbf{w}^\top\mathbf{x}_n)$。这等价于交叉熵损失。
- 梯度: $$ \nabla_{\mathbf{w}} \mathrm{NLL} = \frac{1}{N}\sum_{n=1}^N (\mu_n - y_n) \mathbf{x}_n $$ 直观解释:误差 $(\mu_n - y_n)$ 乘以输入,再平均。
- Hessian: $$ \mathbf{H} = \frac{1}{N}\sum_{n=1}^N \mu_n(1-\mu_n) \mathbf{x}_n\mathbf{x}_n^\top = \frac{1}{N}\mathbf{X}^\top \mathbf{S} \mathbf{X} $$ 其中 $\mathbf{S} = \mathrm{diag}(\mu_n(1-\mu_n))$。Hessian正定(当 $\mu_n \in (0,1)$),因此NLL是凸函数,有唯一全局最优(图10.5)。
10.2.5 随机梯度下降(SGD)
对每个样本(或小批量)更新:
$$ \mathbf{w}_{t+1} = \mathbf{w}_t - \eta_t (\mu_n - y_n) \mathbf{x}_n $$简单且可扩展,适用于大规模数据。
10.2.6 感知机算法
感知机是逻辑回归的“硬”版本:预测 $\hat{y}_n = \mathrm{sign}(\mathbf{w}^\top\mathbf{x}_n + b)$。更新规则:
$$ \mathbf{w}_{t+1} = \mathbf{w}_t - \eta_t (\hat{y}_n - y_n) \mathbf{x}_n $$与SGD类似,但用硬标签代替概率。感知机仅在线性可分数据上收敛,而逻辑回归总能找到最优解。
10.2.7 迭代重加权最小二乘(IRLS)
牛顿法应用于逻辑回归得到IRLS。更新公式:
$$ \mathbf{w}_{t+1} = (\mathbf{X}^\top \mathbf{S}_t \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{S}_t \mathbf{z}_t $$其中 $\mathbf{z}_t = \mathbf{X}\mathbf{w}_t + \mathbf{S}_t^{-1}(\mathbf{y} - \boldsymbol{\mu}_t)$ 是“工作响应”。每次迭代解一个加权最小二乘问题,故得名。
10.2.8 MAP估计(正则化)
为避免过拟合,引入高斯先验 $p(\mathbf{w}) = \mathcal{N}(\mathbf{w}|\mathbf{0}, \lambda^{-1}\mathbf{I})$,得目标:
$$ L(\mathbf{w}) = \mathrm{NLL}(\mathbf{w}) + \lambda \|\mathbf{w}\|_2^2 $$称为 $\ell_2$ 正则化或权重衰减。梯度与Hessian只需加上 $2\lambda\mathbf{w}$ 和 $2\lambda\mathbf{I}$。图10.6展示正则化效果。
10.2.9 标准化
由于正则化对所有权重尺度一视同仁,输入特征应标准化(零均值、单位方差),否则正则化效果受特征尺度影响。
10.3 多项逻辑回归(Multinomial Logistic Regression)
10.3.1 模型定义
对于 $C$ 类分类,模型为:
$$ p(y=c|\mathbf{x}) = \frac{\exp(\mathbf{w}_c^\top\mathbf{x} + b_c)}{\sum_{j=1}^C \exp(\mathbf{w}_j^\top\mathbf{x} + b_j)} = \mathrm{softmax}_c(\mathbf{W}\mathbf{x} + \mathbf{b}) $$其中 $\mathbf{W}$ 为 $C\times D$ 权重矩阵,$\mathbf{b}$ 为 $C$ 维偏置。由于 $\sum_c p(y=c|\mathbf{x})=1$,可令最后一类参数为0(或使用对称约束),实际上有 $(C-1)D$ 个自由参数。
10.3.2 线性与非线性分类器
- 原始特征下,决策边界为线性超平面(图10.7a)。
- 通过特征变换 $\phi(\mathbf{x})$ 可得非线性边界(图10.7b),例如二次特征。
10.3.3 最大似然估计
- 负对数似然(交叉熵): $$ \mathrm{NLL}(\theta) = -\frac{1}{N}\sum_{n=1}^N \sum_{c=1}^C y_{nc} \log \mu_{nc} $$ 其中 $\mu_{nc} = p(y=c|\mathbf{x}_n)$,$y_{nc}$ 是 one-hot 标签。
- 梯度: $$ \nabla_{\mathbf{w}_c} \mathrm{NLL} = \frac{1}{N}\sum_{n=1}^N (\mu_{nc} - y_{nc}) \mathbf{x}_n $$ 与二元情况形式一致,每个类有一个梯度。
- Hessian:块结构,第 $c,c'$ 块为 $\frac{1}{N}\sum_n \mu_{nc}(\delta_{c,c'} - \mu_{nc'}) \mathbf{x}_n\mathbf{x}_n^\top$。Hessian正定,NLL凸。
10.3.4 梯度优化
- SGD:每个样本更新对应类的权重。
- 拟牛顿法(如L-BFGS)常用于中小规模数据。
10.3.5 边界优化(MM算法)
- 构造一个与数据无关的二次下界,如 $- \frac{1}{2} \mathbf{I} \otimes (\mathbf{X}^\top\mathbf{X})$,可得闭式更新,避免每次迭代求解线性系统。
10.3.6 MAP估计
- 加入 $\ell_2$ 正则化 $\lambda \sum_c \|\mathbf{w}_c\|_2^2$,梯度与Hessian相应修改。有趣的是,当不约束某类为0时,正则化会使所有类的权重和自动为零,从而唯一标识(式10.89)。
10.3.7 最大熵分类器
- 更一般的模型:$p(y=c|\mathbf{x}) \propto \exp(\mathbf{w}^\top \phi(\mathbf{x},c))$,其中特征 $\phi(\mathbf{x},c)$ 可依赖于类 $c$。多项逻辑回归是其特例(取 $\phi(\mathbf{x},c)$ 为在位置 $c$ 嵌入 $\mathbf{x}$ 的向量)。
10.3.8 层次分类
- 当类别有层次结构时,可训练多标签分类器,并对每个节点做二分类(如用 soft 约束或树结构)。层次softmax 将输出组织成树,预测时沿路径计算概率,复杂度 $O(\log C)$(图10.9)。
10.3.9 处理大量类别
- 长尾分布:类别极多时,多数类样本少。可采用类别平衡采样(先均匀选类,再选样本)、对数几率调整(先验偏移)、或最近类均值分类器(用学到的特征,计算与各类均值的距离)。
10.4 鲁棒逻辑回归 *
10.4.1 混合模型似然
- 假设部分标签可能错误(标签噪声)。将似然改为: $$ p(y|\mathbf{x}) = \pi \cdot \frac{1}{C} + (1-\pi) \cdot \mathrm{Cat}(y|\mathrm{softmax}(\mathbf{W}\mathbf{x})) $$ 即概率 $\pi$ 下标签随机均匀,否则由模型决定。这样可减少异常值影响(图10.10)。
10.4.2 双温度损失
- 问题:标准交叉熵对远离边界的误标签敏感,且 softmax 指数增长导致梯度受异常点主导。
- 解决方案:
- 使用温度交叉熵($t_1<1$)使损失有界(图10.11左)。
- 使用温度 softmax($t_2>1$)使尾部更厚(图10.11右),减少对远离点的影响。
- 结合两者得双温度逻辑回归,对近边界和远边界噪声均鲁棒(图10.12)。
10.5 贝叶斯逻辑回归 *
10.5.1 拉普拉斯近似
- 精确后验 $p(\mathbf{w}|\mathcal{D})$ 无法解析计算。用拉普拉斯近似:后验近似为高斯,均值为MAP估计 $\hat{\mathbf{w}}_{\mathrm{map}}$,协方差为 Hessian 的逆 $\mathbf{H}^{-1}$(图10.13)。这捕捉了参数的不确定性。
10.5.2 近似后验预测
- 蒙特卡洛近似:从高斯后验采样多个 $\mathbf{w}^{(s)}$,预测平均: $$ p(y=1|\mathbf{x},\mathcal{D}) \approx \frac{1}{S}\sum_{s=1}^S \sigma(\mathbf{w}^{(s)\top}\mathbf{x}) $$ 图10.14b展示采样得到的决策边界变化。
- probit近似:利用 $\sigma(a) \approx \Phi(\lambda a)$,可得解析近似: $$ p(y=1|\mathbf{x},\mathcal{D}) \approx \sigma\left(\kappa(v) \cdot \mathbf{x}^\top \hat{\mathbf{w}}_{\mathrm{map}}\right) $$ 其中 $\kappa(v) = (1 + \pi v/8)^{-1/2}$,$v = \mathbf{x}^\top \mathbf{H}^{-1} \mathbf{x}$。该近似比插件估计更保守(图10.14d)。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 二元逻辑回归 | Iris数据二分类(Setosa vs Versicolor),图10.1b |
| 决策边界几何 | 图10.2,不同法向量对应的sigmoid曲面 |
| 非线性特征 | 图10.3,用二次特征实现圆分类 |
| 过拟合 | 图10.4,多项式次数越高越过拟合 |
| 正则化 | 图10.6,增大正则化使边界平滑 |
| 多项逻辑回归 | 图10.7,线性与二次边界对比 |
| 贝叶斯逻辑回归 | 图10.14,采样决策边界展示不确定性 |
| 鲁棒逻辑回归 | 图10.10,混合模型抵抗离群点 |
前后章节联系
- 第2章:sigmoid、softmax、交叉熵。
- 第4章:MLE、MAP、正则化、标准化。
- 第8章:优化方法(SGD、牛顿法、L-BFGS、边界优化)。
- 第9章:生成式分类器(LDA/朴素贝叶斯)与判别式对比。
- 第11章:线性回归(类似线性模型但输出连续)。
- 第13章:神经网络中的softmax层、交叉熵损失。
- 第17章:核逻辑回归(通过特征映射)。
本章核心要点
- 逻辑回归是线性分类器,通过sigmoid或softmax输出概率。
- MLE等价于最小化交叉熵,目标函数凸,有唯一最优。
- 优化方法:SGD适合大数据,IRLS(牛顿法)适合小数据,L-BFGS是常用折中。
- 正则化(MAP) 可防止过拟合,标准化特征是前提。
- 多项逻辑回归 是二元的自然推广,可用层次softmax加速大量类别预测。
- 鲁棒扩展 通过混合似然或双温度损失应对标签噪声。
- 贝叶斯视角 提供参数不确定性,通过拉普拉斯近似获得后验预测,对风险敏感任务重要。
常见难点
- 理解sigmoid输出与log-odds的关系。
- 区分多类逻辑回归中参数冗余与正则化如何自动解决。
- 掌握IRLS的推导(牛顿法应用于指数族)。
- 理解贝叶斯后验预测与插件估计的区别(不确定性传递)。
- 理解双温度损失中两个温度参数的作用。
学习建议
- 用Python实现二元逻辑回归的梯度下降和IRLS,对比收敛速度。
- 用
sklearn.linear_model.LogisticRegression练习正则化参数选择。 - 尝试将逻辑回归扩展到多项式特征,观察过拟合与正则化。
- 用PyMC或NumPyro实现贝叶斯逻辑回归,观察后验分布。
- 阅读关于逻辑回归的经典教材章节,加深理解。
以上是第10章“逻辑回归”的详细讲解。逻辑回归是通向更复杂模型的基石,掌握它将为后续学习神经网络、广义线性模型等打下坚实基础。如有疑问,欢迎继续探讨!
第11章“Linear Regression”详细讲解
线性回归是机器学习中最基础、最经典的回归模型。本章从最简单的普通最小二乘(OLS)开始,逐步引入正则化方法(岭回归、Lasso)、非线性扩展(基函数、样条)、鲁棒回归以及贝叶斯视角。掌握线性回归对理解更复杂的模型(如广义线性模型、神经网络)至关重要。
11.1 引言
线性回归用于预测连续值输出 $y \in \mathbb{R}$,给定输入向量 $\mathbf{x} \in \mathbb{R}^D$。核心假设是输出与输入之间存在线性关系:
$$ p(y|\mathbf{x},\theta) = \mathcal{N}(y|w_0 + \mathbf{w}^\top\mathbf{x},\sigma^2) $$其中 $\theta = (w_0,\mathbf{w},\sigma^2)$。本章重点在于估计权重 $\mathbf{w}$(包括截距 $w_0$)以及量化不确定性。
11.2 最小二乘线性回归
11.2.1 术语
- 权重(或回归系数)$\mathbf{w}$:每个输入特征的系数,解释为特征变化对输出的影响。
- 截距(偏置)$w_0$:当所有输入为0时的输出期望。
- 简单线性回归:$D=1$,模型 $y = w_1 x + w_0$。
- 多元线性回归:$D>1$。
- 多输出线性回归:输出为向量 $\mathbf{y} \in \mathbb{R}^J$,每个输出维度有自己的权重。
通过特征变换 $\phi(\mathbf{x})$,可处理非线性关系(如多项式回归,图11.1):
$$ p(y|\mathbf{x}) = \mathcal{N}(y|\mathbf{w}^\top\phi(\mathbf{x}), \sigma^2) $$这仍是关于参数 $\mathbf{w}$ 线性的,因此称为线性模型。
11.2.2 最小二乘估计(OLS)
11.2.2.1 正规方程
目标是最小化残差平方和(RSS):
$$ \mathrm{RSS}(\mathbf{w}) = \sum_{n=1}^N (y_n - \mathbf{w}^\top\mathbf{x}_n)^2 = \|\mathbf{X}\mathbf{w} - \mathbf{y}\|_2^2 $$其中 $\mathbf{X}$ 为 $N\times D$ 设计矩阵(每行一个样本)。梯度为零得正规方程:
$$ \mathbf{X}^\top\mathbf{X}\mathbf{w} = \mathbf{X}^\top\mathbf{y} $$解为:
$$ \hat{\mathbf{w}} = (\mathbf{X}^\top\mathbf{X})^{-1}\mathbf{X}^\top\mathbf{y} = \mathbf{X}^\dagger \mathbf{y} $$其中 $\mathbf{X}^\dagger$ 是伪逆。当 $\mathbf{X}^\top\mathbf{X}$ 可逆时,解唯一(图11.2)。
11.2.2.2 几何解释
- 预测值 $\hat{\mathbf{y}} = \mathbf{X}\hat{\mathbf{w}}$ 是 $\mathbf{y}$ 在 $\mathbf{X}$ 列空间上的正交投影(图11.3)。投影矩阵 $\mathbf{H} = \mathbf{X}(\mathbf{X}^\top\mathbf{X})^{-1}\mathbf{X}^\top$ 称为帽子矩阵。
11.2.2.3 算法注意事项
- 避免直接求逆,应使用QR分解或SVD求解 $\hat{\mathbf{w}}$,提高数值稳定性。
- 通常需对特征进行标准化(零均值、单位方差),使各特征尺度一致。
11.2.2.4 加权最小二乘
当观测噪声方差随样本变化(异方差)时,可用权重矩阵 $\mathbf{\Lambda}$:
$$ \hat{\mathbf{w}} = (\mathbf{X}^\top\mathbf{\Lambda}\mathbf{X})^{-1}\mathbf{X}^\top\mathbf{\Lambda}\mathbf{y} $$11.2.3 其他MLE计算方式
- 分开求解截距与斜率:先中心化数据,求斜率,再得截距(式11.25-11.26)。
- 简单线性回归(1d):斜率 $\hat{w}_1 = \frac{\sum (x_n - \bar{x})(y_n - \bar{y})}{\sum (x_n - \bar{x})^2}$,截距 $\hat{w}_0 = \bar{y} - \hat{w}_1\bar{x}$。
- 递推MLE:数据流式到达时,可在线更新均值和协方差(式11.33-11.40),图11.4展示系数随时间的演变。
- 生成式视角:若联合建模 $p(\mathbf{x},y)$ 为多元高斯,则条件期望与线性回归MLE一致(式11.46-11.48)。
11.2.4 度量拟合优度
- 残差图:检查残差是否随机分布(图11.5)。
- 预测 vs 真实图:理想情况下点应在对角线附近(图11.6)。
- 决定系数 $R^2$: $$ R^2 = 1 - \frac{\mathrm{RSS}}{\mathrm{TSS}},\quad \mathrm{TSS} = \sum_n (y_n - \bar{y})^2 $$ 度量模型解释的方差比例。
11.3 岭回归(Ridge Regression)
11.3.1 MAP估计与 $\ell_2$ 正则化
- 引入高斯先验 $p(\mathbf{w}) = \mathcal{N}(\mathbf{w}|\mathbf{0},\tau^2\mathbf{I})$,得目标: $$ J(\mathbf{w}) = \|\mathbf{X}\mathbf{w} - \mathbf{y}\|_2^2 + \lambda \|\mathbf{w}\|_2^2,\quad \lambda = \frac{\sigma^2}{\tau^2} $$
- 解析解: $$ \hat{\mathbf{w}}_{\mathrm{ridge}} = (\mathbf{X}^\top\mathbf{X} + \lambda\mathbf{I})^{-1}\mathbf{X}^\top\mathbf{y} $$
11.3.2 计算方式
- QR分解:将数据扩展为 $\tilde{\mathbf{X}} = \begin{bmatrix}\mathbf{X}/\sigma \\ \sqrt{\lambda}\mathbf{I}\end{bmatrix}$,$\tilde{\mathbf{y}} = \begin{bmatrix}\mathbf{y}/\sigma \\ \mathbf{0}\end{bmatrix}$,则岭回归等价于普通最小二乘于扩展数据(式11.58-11.63)。
- SVD:当 $D > N$ 时,用SVD可降为 $N\times N$ 系统(式11.65),时间复杂度 $O(DN^2)$。
11.3.3 与PCA的联系
- 岭回归沿每个PCA方向收缩系数,收缩因子为 $\frac{\sigma_j^2}{\sigma_j^2 + \lambda}$(式11.69)。小奇异值方向被强烈收缩,相当于软降维(图11.7)。定义有效自由度 $\mathrm{dof}(\lambda) = \sum_j \frac{\sigma_j^2}{\sigma_j^2 + \lambda}$。
11.3.4 选择正则化强度
- 交叉验证:对一系列 $\lambda$ 值进行交叉验证,选择使验证误差最小的 $\lambda$(图4.7)。
- 正则化路径:可顺序计算不同 $\lambda$ 下的解,用上一解作为下一解的初始值(图11.10a)。
- 经验贝叶斯:最大化边际似然 $p(\mathbf{y}|\lambda)$,同样可用梯度优化。
11.4 Lasso回归
11.4.1 MAP估计与 $\ell_1$ 正则化
- 引入拉普拉斯先验 $p(w_d) \propto e^{-\lambda|w_d|}$,得目标: $$ J(\mathbf{w}) = \|\mathbf{X}\mathbf{w} - \mathbf{y}\|_2^2 + \lambda \|\mathbf{w}\|_1 $$ 称为Lasso(Least Absolute Shrinkage and Selection Operator)。
11.4.2 为什么 $\ell_1$ 正则化产生稀疏解?
- 从约束形式看:$\|\mathbf{w}\|_1 \le B$。$\ell_1$ 球的“尖角”更易与等高线相交于坐标轴(图11.8),从而某些系数为零。
11.4.3 软阈值
- 对正交设计,Lasso解为软阈值(图11.9a): $$ \hat{w}_d = \mathrm{sign}(\hat{w}_d^{\mathrm{OLS}}) (|\hat{w}_d^{\mathrm{OLS}}| - \lambda)_+ $$ 而硬阈值(子集选择)为(图11.9b): $$ \hat{w}_d = \hat{w}_d^{\mathrm{OLS}} \cdot \mathbb{I}(|\hat{w}_d^{\mathrm{OLS}}| > \lambda) $$
- 软阈值同时收缩和选择,因此Lasso是有偏估计。可后续用去偏(用选中的变量再做OLS)恢复无偏性(图11.13)。
11.4.4 正则化路径
- 随着 $\lambda$ 减小,越来越多的变量进入模型。路径是分段线性的(图11.10b)。$\lambda_{\max} = \|\mathbf{X}^\top\mathbf{y}\|_\infty$ 时所有系数为零。
11.4.5 方法比较(正交设计)
- OLS:$\hat{w}_d^{\mathrm{OLS}}$。
- 岭回归:$\hat{w}_d^{\mathrm{ridge}} = \frac{\hat{w}_d^{\mathrm{OLS}}}{1+\lambda}$。
- Lasso:软阈值。
- 子集选择:硬阈值。
图11.11、11.12展示前列腺癌数据集上各方法的系数和测试误差。
11.4.6 变量选择一致性
- 若数据由稀疏模型生成,Lasso在适当 $\lambda$ 下可恢复正确支持集,但需满足一定条件(如不可表示性条件)。交叉验证选择的 $\lambda$ 通常偏向预测,不一定得到正确支持集。
11.4.7 组Lasso
- 当变量自然成组(如分类变量的one-hot编码),希望对整组同时选择或排除。组Lasso使用 $\|\mathbf{w}_g\|_2$ 惩罚(式11.97)。图11.14、11.15对比了Lasso与组Lasso。
11.4.8 弹性网(Elastic Net)
- 结合 $\ell_1$ 和 $\ell_2$ 惩罚: $$ J(\mathbf{w}) = \|\mathbf{X}\mathbf{w} - \mathbf{y}\|_2^2 + \lambda_2 \|\mathbf{w}\|_2^2 + \lambda_1 \|\mathbf{w}\|_1 $$ 具有分组效应(相关变量系数相近),且可选取多于 $N$ 个变量。
11.4.9 优化算法
- 坐标下降:每次更新一个坐标,软阈值形式(算法11.1)。
- 投影梯度:将Lasso转化为二次规划用投影梯度求解。
- 近端梯度(ISTA/FISTA):对光滑部分做梯度,再用软阈值近端操作(式11.105)。
- LARS:可高效计算整个正则化路径。
11.5 回归样条 *
11.5.1 B样条基函数
- 用分段多项式(样条)拟合1d数据,基函数局部支撑,使模型灵活。图11.16展示不同阶数的B样条基函数及其加权和。
- 通过指定节点数控制复杂度,节点位置通常按分位数放置。
11.5.2 用样条基拟合线性模型
- 构造基函数矩阵 $\mathbf{B}$,然后应用(正则化)最小二乘。图11.18展示樱花开放日期数据的样条拟合。
11.5.3 平滑样条
- 使用 $N$ 个节点(每个数据点一个),并通过 $\ell_2$ 正则化控制平滑度,相当于高斯过程回归。
11.5.4 广义加性模型(GAM)
- 对多维输入,假设 $f(\mathbf{x}) = \alpha + \sum_d f_d(x_d)$,每个 $f_d$ 为样条。可交替拟合(回修)。
11.6 鲁棒线性回归 *
11.6.1 拉普拉斯似然
- 用拉普拉斯分布代替高斯,相当于 $\ell_1$ 损失,对离群点鲁棒(图11.19a)。MLE可通过线性规划求解(式11.110-11.115)。
11.6.2 Student-t似然
- 厚尾分布,对离群点更鲁棒,可用EM或梯度优化。
11.6.3 Huber损失
- 结合 $\ell_2$(小误差)和 $\ell_1$(大误差),处处可导(图11.19b),优化方便。
11.6.4 RANSAC
- 随机采样小部分数据拟合模型,识别内点,迭代直至稳定。常用于计算机视觉。
11.7 贝叶斯线性回归 *
11.7.1 先验
- 假设高斯先验 $p(\mathbf{w}) = \mathcal{N}(\mathbf{w}|\mathbf{m}_0,\mathbf{V}_0)$。为简单,常用零均值对角先验。
11.7.2 后验
- 似然 $p(\mathbf{y}|\mathbf{X},\mathbf{w},\sigma^2) = \mathcal{N}(\mathbf{y}|\mathbf{X}\mathbf{w},\sigma^2\mathbf{I})$,结合先验得后验(式11.120-11.122): $$ p(\mathbf{w}|\mathbf{X},\mathbf{y}) = \mathcal{N}(\mathbf{w}|\hat{\mathbf{w}},\hat{\mathbf{V}}) $$ 其中 $\hat{\mathbf{V}}^{-1} = \mathbf{V}_0^{-1} + \frac{1}{\sigma^2}\mathbf{X}^\top\mathbf{X}$,$\hat{\mathbf{w}} = \hat{\mathbf{V}}\left(\mathbf{V}_0^{-1}\mathbf{m}_0 + \frac{1}{\sigma^2}\mathbf{X}^\top\mathbf{y}\right)$。
11.7.3 示例
- 图11.20展示随着数据量增加,后验从先验收缩到真值的过程。
11.7.4 后验预测
- 对测试点 $\mathbf{x}_*$,预测分布: $$ p(y_*|\mathbf{x}_*,\mathcal{D}) = \mathcal{N}(y_*|\hat{\mathbf{w}}^\top\mathbf{x}_*,\ \sigma^2 + \mathbf{x}_*^\top\hat{\mathbf{V}}\mathbf{x}_*) $$ 方差包含观测噪声和参数不确定性,离训练数据越远,方差越大(图11.21b),而插件估计(用 $\hat{\mathbf{w}}$)方差恒定(图11.21a)。
11.7.5 中心化的好处
- 将输入中心化可减少后验中截距与斜率的相关性,使推断更稳定(图11.22)。
11.7.6 多重共线性
- 当特征高度相关时,参数后验强相关,单个系数解释性差,但它们的和(如左右腿长度)可能估计准确(图11.23-11.24)。这提醒我们注意参数的可识别性。
11.7.7 自动相关性确定(ARD)*
- 对每个特征赋予不同先验方差,用经验贝叶斯估计这些方差(通过最大化边际似然)。结果会使不重要特征的方差趋于零,从而自动选择特征(稀疏贝叶斯学习)。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 多项式回归 | 图1.7,次数过高导致过拟合 |
| 岭回归 | 图4.5-4.7,正则化减少过拟合 |
| Lasso路径 | 图11.10b,系数随λ变化 |
| 软阈值 vs 硬阈值 | 图11.9 |
| 组Lasso | 图11.14-11.15,恢复块稀疏结构 |
| 样条 | 图11.18,樱花开放日期拟合 |
| 鲁棒回归 | 图11.19,对离群点鲁棒 |
| 贝叶斯线性回归 | 图11.20-11.21,后验与预测不确定性 |
前后章节联系
- 第4章:MLE、MAP、正则化、贝叶斯推断、经验贝叶斯(ARD)。
- 第7章:矩阵运算(正规方程)、SVD、伪逆、QR分解。
- 第8章:优化算法(坐标下降、近端梯度、LARS)。
- 第10章:逻辑回归(类似线性模型,但输出为类别)。
- 第12章:广义线性模型(将线性回归推广到其他分布)。
- 第17章:高斯过程(可视为贝叶斯线性回归的核化版本)。
- 第20章:PCA与岭回归的联系。
本章核心要点
- 最小二乘是线性回归的基础,有闭式解,但需注意过拟合。
- 岭回归通过 $\ell_2$ 正则化控制方差,使估计更稳定。
- Lasso通过 $\ell_1$ 正则化实现特征选择,产生稀疏解。
- 弹性网结合两者优势,处理相关特征。
- 非线性扩展通过基函数(多项式、样条)实现,但仍保持参数线性。
- 鲁棒回归用厚尾分布或特殊损失抵抗离群点。
- 贝叶斯线性回归提供参数不确定性和预测区间,对风险敏感任务重要。
常见难点
- 理解Lasso稀疏性的几何解释。
- 掌握Lasso的正则化路径为什么是分段线性的。
- 区分软阈值与硬阈值的不同。
- 理解贝叶斯后验预测方差为何随测试点远离训练数据而增大。
- 理解多重共线性对参数解释的影响。
- 掌握ARD如何自动确定特征相关性。
学习建议
- 用Python实现OLS、岭回归、Lasso(可用
sklearn.linear_model),观察正则化影响。 - 对Lasso,尝试用坐标下降手写实现,理解软阈值操作。
- 用多项式回归产生过拟合,再用岭回归观察改善。
- 用贝叶斯线性回归(如PyMC)拟合数据,观察后验分布和预测区间。
- 阅读关于Lasso理论的经典文献,加深理解。
以上是第11章“线性回归”的详细讲解。线性回归是理解更复杂模型的基础,掌握本章内容将为后续学习打下坚实基础。如有疑问,欢迎继续探讨!
第12章“Generalized Linear Models”详细讲解
广义线性模型(Generalized Linear Models, GLMs)是线性回归和逻辑回归的统一框架,它将线性模型的适用范围从高斯分布扩展到指数族分布(第3.4节)。本章介绍GLM的基本形式、常见实例、参数估计方法以及实际应用。掌握GLM有助于理解更复杂的模型(如神经网络中的softmax层、计数数据建模等)。
12.1 引言
线性回归假设响应变量 $y$ 服从高斯分布,且均值是输入的线性函数:$\mathbb{E}[y|\mathbf{x}] = \mathbf{w}^\top\mathbf{x}$。逻辑回归假设 $y$ 服从伯努利分布,且 log-odds 是输入的线性函数:$\log\frac{p(y=1|\mathbf{x})}{p(y=0|\mathbf{x})} = \mathbf{w}^\top\mathbf{x}$。这两个模型都是GLM的特例。
GLM的核心思想:响应变量 $y$ 的分布属于指数族,其均值 $\mu = \mathbb{E}[y|\mathbf{x}]$ 通过一个链接函数 $g$ 与线性预测器 $\eta = \mathbf{w}^\top\mathbf{x}$ 相联系:
$$ g(\mu) = \eta = \mathbf{w}^\top\mathbf{x} $$等价地,$\mu = g^{-1}(\eta)$,其中 $g^{-1}$ 称为均值函数。
12.2 GLM的形式化定义
GLM由三个部分组成:
随机成分:$y$ 服从指数族分布(给定 $\mathbf{x}$):
$$ p(y|\eta, \phi) = \exp\left(\frac{y\eta - A(\eta)}{\phi} + c(y,\phi)\right) $$其中 $\eta$ 是自然参数,$\phi$ 是离散参数(常视为已知),$A(\eta)$ 是对数配分函数。对于指数族,$\mathbb{E}[y] = A'(\eta) = \mu$,$\mathbb{V}[y] = \phi A''(\eta)$。
系统成分:线性预测器 $\eta = \mathbf{w}^\top\mathbf{x}$(可包含截距)。
链接函数:将均值 $\mu$ 与线性预测器连接:
$$ g(\mu) = \eta $$常用的链接函数有:
- 恒等链接:$g(\mu) = \mu$,用于高斯分布(线性回归)。
- logit链接:$g(\mu) = \log\frac{\mu}{1-\mu}$,用于伯努利/二项分布(逻辑回归)。
- 对数链接:$g(\mu) = \log\mu$,用于泊松分布。
- probit链接:$g(\mu) = \Phi^{-1}(\mu)$,$\Phi$ 为标准正态CDF。
- 互补对数-对数链接:$g(\mu) = \log(-\log(1-\mu))$。
若 $g$ 使得 $\eta = \theta$(自然参数),则称为典则链接。此时 $\mu = A'(\eta)$,且梯度形式最简洁。
12.3 常见GLM实例
12.3.1 线性回归(高斯分布)
- 分布:$y \sim \mathcal{N}(\mu, \sigma^2)$,指数族形式(式12.6)中自然参数 $\eta = \mu$,$A(\eta) = \eta^2/2$,$\phi = \sigma^2$。
- 典则链接:恒等链接 $g(\mu) = \mu$。
- 均值函数:$\mu = \eta = \mathbf{w}^\top\mathbf{x}$。
12.3.2 二项回归(包括逻辑回归)
- 分布:$y \sim \mathrm{Bin}(N, \mu)$,其中 $\mu$ 为成功概率。若 $N=1$ 则为伯努利。
- 指数族形式(式12.13)中自然参数 $\eta = \log\frac{\mu}{1-\mu}$,$A(\eta) = N\log(1+e^\eta)$。
- 典则链接:logit链接 $g(\mu) = \log\frac{\mu}{1-\mu}$。
- 均值函数:$\mu = \frac{e^\eta}{1+e^\eta} = \sigma(\eta)$。
12.3.3 泊松回归
- 分布:$y \sim \mathrm{Poi}(\mu)$,常用于计数数据。
- 指数族形式(式12.20)中自然参数 $\eta = \log\mu$,$A(\eta) = e^\eta$。
- 典则链接:对数链接 $g(\mu) = \log\mu$。
- 均值函数:$\mu = e^\eta$。
12.4 非典则链接函数
有时为了模型解释或数据特性,可能使用非典则链接。例如:
- probit链接:$\eta = \Phi^{-1}(\mu)$,常用于生物统计中剂量-反应模型。
- 互补对数-对数链接:$\eta = \log(-\log(1-\mu))$,用于罕见事件建模(如保险索赔)。
使用非典则链接时,梯度形式稍复杂,但GLM框架仍然适用。
12.5 最大似然估计
对于GLM,负对数似然为:
$$ \mathrm{NLL}(\mathbf{w}) = -\sum_{n=1}^N \log p(y_n|\eta_n) = -\sum_{n=1}^N \left( \frac{y_n\eta_n - A(\eta_n)}{\phi} + \text{const} \right) $$其中 $\eta_n = \mathbf{w}^\top\mathbf{x}_n$。
梯度(对每个样本):
$$ \frac{\partial \mathrm{NLL}_n}{\partial \mathbf{w}} = -\frac{1}{\phi}(y_n - \mu_n) \frac{\partial \eta_n}{\partial \mu_n} \mathbf{x}_n $$对于典则链接,$\frac{\partial \eta_n}{\partial \mu_n} = A''(\eta_n)^{-1}$,但更常用的是用链式法则:
$$ \nabla_{\mathbf{w}} \mathrm{NLL} = -\frac{1}{\phi}\sum_n (y_n - \mu_n) \mathbf{x}_n \quad (\text{仅当典则链接}) $$对于一般链接,梯度为 $\frac{1}{\phi}\sum_n \frac{y_n - \mu_n}{V(\mu_n)} \frac{\partial \mu_n}{\partial \eta_n} \mathbf{x}_n$,其中 $V(\mu_n)$ 为方差函数。
Hessian(Fisher信息矩阵):
$$ \mathbf{H} = \frac{1}{\phi}\sum_n \frac{1}{V(\mu_n)} \left(\frac{\partial \mu_n}{\partial \eta_n}\right)^2 \mathbf{x}_n\mathbf{x}_n^\top $$对于典则链接,$\frac{\partial \mu_n}{\partial \eta_n} = V(\mu_n)$,则 Hessian 简化为 $\frac{1}{\phi}\sum_n V(\mu_n) \mathbf{x}_n\mathbf{x}_n^\top$。
由于 Hessian 正定,NLL 是凸函数,MLE 唯一(假设模型可识别)。
优化:可用牛顿法(迭代重加权最小二乘,IRLS)或拟牛顿法(L-BFGS)。IRLS 的更新公式为:
$$ \mathbf{w}_{t+1} = (\mathbf{X}^\top \mathbf{W}_t \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{W}_t \mathbf{z}_t $$其中 $\mathbf{W}_t = \mathrm{diag}\left(\frac{(\partial \mu_n/\partial \eta_n)^2}{V(\mu_n)}\right)$,$\mathbf{z}_t = \eta_t + (y_n - \mu_n)\frac{\partial \eta_n}{\partial \mu_n}$(工作响应)。
12.6 实例:预测保险索赔
问题:预测汽车保险索赔频率(次数/年)。数据包含 678k 个样本,9 个特征(驾驶员年龄、车龄、车辆功率等)。响应变量 $y$ 为索赔次数,常为0,且有长尾。
- 基线模型:常数预测(平均索赔率 0.1)。
- 线性回归(岭回归):预测可正可负,无法保证非负,且低估长尾(图12.1c)。
- 泊松回归:用对数链接,保证 $\mu \ge 0$,且能更好捕捉长尾(图12.1d)。
评估指标:
- MSE:泊松回归与岭回归相近,但MSE不是计数数据的最佳指标。
- Deviance:对于泊松,定义为 $D = 2\sum [y\log\frac{y}{\hat{\mu}} - (y - \hat{\mu})]$(饱和模型与当前模型的对数似然差的两倍)。泊松回归的偏差最小(表12.1)。
- 校准图:将预测值分箱,计算箱内实际平均索赔率。理想情况下点应落在对角线上。泊松回归校准更好(图12.2),而岭回归在低索赔率区域低估。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 线性回归(高斯) | 常规连续值预测 |
| 逻辑回归(伯努利) | 二分类,如垃圾邮件检测 |
| 泊松回归 | 保险索赔计数(图12.1-12.2) |
| probit链接 | 生物测定中剂量-反应关系 |
| cloglog链接 | 罕见事件建模 |
| 偏差 | 比较不同模型拟合优度 |
前后章节联系
- 第3章:指数族分布的定义与性质。
- 第4章:MLE、IRLS(第10章已有)。
- 第10章:逻辑回归是GLM的特例,本章将其推广。
- 第11章:线性回归是GLM的另一特例。
- 第8章:优化算法(牛顿法、L-BFGS)用于GLM拟合。
- 第13章:神经网络中的softmax层可视为多项逻辑回归,也是GLM的扩展。
本章核心要点
- GLM统一框架:将线性回归、逻辑回归、泊松回归等纳入同一体系,通过链接函数将均值与线性预测器相连。
- 指数族分布:响应变量属于指数族,其均值和方差由对数配分函数决定。
- 链接函数:典则链接使梯度形式简单,非典则链接提供灵活性。
- MLE凸性:GLM的负对数似然是凸函数,MLE唯一。
- 优化:IRLS(牛顿法)是标准方法,也可用拟牛顿法。
- 模型评估:对于非高斯响应,MSE可能不适用,应用偏差、校准图等专用指标。
- 实例:泊松回归在计数数据中优于线性回归。
常见难点
- 理解指数族分布中自然参数与均值的关系($ \mu = A'(\eta) $)。
- 掌握典则链接下梯度的简洁形式。
- 区分偏差(deviance)与MSE的不同适用场景。
- 理解IRLS中工作响应 $\mathbf{z}_t$ 的构造(来自一阶泰勒展开)。
- 掌握非典则链接下的梯度推导。
学习建议
- 用Python的
statsmodels或sklearn实现泊松回归,与线性回归对比。 - 手动推导伯努利GLM(逻辑回归)的IRLS更新。
- 阅读关于GLM的经典教材(如McCullagh & Nelder, 1989)加深理解。
- 尝试用GLM分析自己的计数数据(如网站点击次数、交通事故数)。
以上是第12章“广义线性模型”的详细讲解。GLM是连接线性模型与更复杂模型的桥梁,掌握它将为后续学习混合模型、广义加性模型等打下基础。如有疑问,欢迎继续探讨!
第13章“Neural Networks for Tabular Data”详细讲解
本章聚焦于处理表格数据(即固定维度的特征向量)的神经网络——多层感知机(MLP)。MLP是深度学习的基石,通过堆叠多个全连接层和非线性激活函数,可以学习输入到输出的复杂映射。本章从感知机的局限性开始,引出MLP的结构,详细推导反向传播算法,讨论训练中的挑战(梯度消失/爆炸、过拟合)及应对策略(激活函数选择、初始化、正则化、优化技巧),并介绍一些变体(如RBF网络、混合专家)。掌握本章内容对理解后续CNN、RNN等更复杂网络至关重要。
13.1 引言
- 表格数据:每个样本由固定数量的特征组成(如年龄、收入等),通常存储在 $N \times D$ 的设计矩阵中。
- **线性模型(第10-12章)**的局限:只能学习输入特征的线性组合,表达能力有限。
- 深度神经网络(DNN):通过堆叠多个非线性变换层,自动学习特征表示,实现高度非线性映射。本章介绍的MLP是最简单的DNN形式。
13.2 多层感知机(MLP)
13.2.1 感知机的局限性
- 感知机:$f(\mathbf{x}) = \mathbb{I}(\mathbf{w}^\top\mathbf{x} + b > 0)$,即线性阈值函数。
- XOR问题(图13.1a):感知机无法解决异或问题,因为数据不是线性可分的。
- 多层感知机:通过堆叠多个感知机(引入隐藏层)可表示任意布尔函数(图13.1b)。但原版感知机使用不可微的阶跃函数,难以训练。
13.2.2 可微MLP
用可微的激活函数 $\phi$ 代替阶跃函数,构成可微分的多层网络。第 $l$ 层计算:
$$ \mathbf{z}_l = \phi_l(\mathbf{b}_l + \mathbf{W}_l \mathbf{z}_{l-1}) $$其中 $\mathbf{z}_0 = \mathbf{x}$,$\mathbf{z}_L$ 为输出。整个网络是参数 $\theta = \{\mathbf{W}_l,\mathbf{b}_l\}$ 的复合函数:
$$ f(\mathbf{x};\theta) = f_L(f_{L-1}(\cdots f_1(\mathbf{x})\cdots)) $$13.2.3 激活函数
- Sigmoid:$\sigma(a) = 1/(1+e^{-a})$,输出范围(0,1),但易饱和导致梯度消失(图13.2a)。
- Tanh:$\tanh(a) = 2\sigma(2a)-1$,输出范围(-1,1),同样有饱和问题。
- ReLU:$\max(0,a)$,非饱和、计算简单,是深度网络默认选择。但可能导致“死ReLU”(梯度为零)。
- Leaky ReLU/ELU:改进ReLU在负半轴的梯度,避免死亡。
- Swish/GELU:近年提出的平滑函数,性能更优(图13.2b、13.14)。
- Sin激活:用于神经隐式表示,捕捉高频细节。
13.2.4 示例模型
13.2.4.1 2d分类(图13.3)
- 输入 $\mathbf{x} \in \mathbb{R}^2$,两个隐藏层(4→2),输出为sigmoid(二分类)。每个隐藏单元学习局部决策边界,组合形成复杂边界。
13.2.4.2 图像分类(MNIST)
- 输入784维(28×28展平),两个隐藏层各128个ReLU单元,输出10维softmax。表13.2展示网络结构。图13.4显示训练2轮后的预测(准确率97%)。
13.2.4.3 文本分类(IMDB)
- 先通过词嵌入层将one-hot词向量映射为稠密向量(16维),再对序列取平均,后接隐藏层(16维)和sigmoid输出(表13.3)。准确率约86%。
13.2.4.4 异方差回归(图13.5)
- 共享主干网络,两个输出头分别预测均值 $\mu(\mathbf{x})$ 和方差 $\sigma^2(\mathbf{x})$(用softplus保证正性)。图13.6展示处理方差随输入变化的数据。
13.2.5 深度的重要性
- 通用近似定理:单隐层MLP可以任意精度逼近任何连续函数,但可能需要极多神经元。
- 深度网络:通过层次化特征提取,可以用更少参数表示更复杂的函数(图13.7),且更具组合性和可解释性。
13.2.6 深度学习革命
- 三大推动力:GPU硬件加速、大规模数据集(如ImageNet)、开源软件(TensorFlow、PyTorch)。
- 2012年AlexNet在ImageNet上的突破性成果引发了深度学习的爆发。
13.2.7 与生物学的联系
- 人工神经元(McCulloch-Pitts)受生物神经元启发,但现代ANN与真实大脑差异巨大(无反向传播、无反馈连接、简化模型)。图13.9展示ANN规模与生物大脑的对比。
13.3 反向传播(Backpropagation)
13.3.1 前向与反向模式微分
考虑复合函数 $f = f_4 \circ f_3 \circ f_2 \circ f_1$。Jacobian计算:
- 前向模式:从输入向输出传播,每次得到一列,适合 $m \ge n$。
- 反向模式:从输出向输入传播,每次得到一行,适合 $m \le n$(标量输出时最优)。
13.3.2 MLP的反向传播
对MLP,损失 $L$ 是标量,用反向模式(即反向传播)高效计算所有参数梯度。算法13.3给出通用流程:
- 前向传播:逐层计算激活值并存储。
- 反向传播:从输出层开始,反向传播误差信号 $\mathbf{u}_l = \frac{\partial L}{\partial \mathbf{a}_l}$($\mathbf{a}_l$ 为层预激活),通过链式法则得到各层参数梯度。
13.3.3 常见层的向量-Jacobian积(VJP)
- 交叉熵层:对logits的梯度 $\frac{\partial L}{\partial \mathbf{a}} = \mathbf{p} - \mathbf{y}$(式13.39)。
- 逐元素非线性:如ReLU,梯度为对角阵 $\mathrm{diag}(\phi'(\mathbf{a}))$。
- 线性层:$\frac{\partial L}{\partial \mathbf{x}} = \mathbf{W}^\top \frac{\partial L}{\partial \mathbf{z}}$,$\frac{\partial L}{\partial \mathbf{W}} = \frac{\partial L}{\partial \mathbf{z}} \mathbf{x}^\top$。
13.3.4 计算图
现代框架(如TensorFlow、PyTorch)将网络表示为有向无环图(DAG),每个节点是基本操作。反向传播沿图反向传播梯度,自动处理分支和合并(图13.11-13.13)。
13.4 训练神经网络
13.4.1 学习率调整
- 学习率是关键超参数:过小收敛慢,过大可能振荡(图8.17)。常用调度:分段常数衰减、指数衰减、多项式衰减(图8.18)。
- 预热:先小学习率再增大,可提高稳定性(图8.19a)。
- 循环学习率:周期性调整,帮助逃离局部极小(图8.19b)。
13.4.2 梯度消失与爆炸
- 深层网络中,梯度经过多层传播可能指数级衰减(消失)或增长(爆炸)。这源于Jacobian矩阵的谱半径。
- 梯度裁剪:将梯度模长限制在阈值内,防止爆炸。
13.4.3 非饱和激活函数
- ReLU 在正区间梯度为1,缓解消失,但负区间梯度0导致死亡。
- Leaky ReLU、ELU、Swish、GELU 在负区间保留小梯度,避免死亡(图13.14)。
13.4.4 残差连接(ResNet)
- 将输入直接加到输出上:$\mathbf{z}_{l+1} = \phi(\mathbf{z}_l + F_l(\mathbf{z}_l))$。梯度可直接跳过若干层传播,缓解消失(图13.15)。
13.4.5 参数初始化
- Xavier/Glorot初始化:根据输入输出维度设置方差,使前向/反向信号稳定:$\mathrm{Var}[w] = \frac{2}{n_{\text{in}} + n_{\text{out}}}$。
- He初始化:针对ReLU,$\mathrm{Var}[w] = \frac{2}{n_{\text{in}}}$。
- 数据驱动初始化:如LSUV,先用正交矩阵初始化,再调整激活方差。
13.4.6 并行训练
- 数据并行:各设备有完整模型副本,处理不同小批量,梯度聚合后更新(图13.16)。
- 模型并行:模型分片到不同设备,适合超大模型。
- 异步训练(如Hogwild!):各设备独立更新,可能不一致但可加速。
13.5 正则化
13.5.1 早停
- 监控验证集损失,当验证损失开始上升时停止训练,防止过拟合(图4.8)。
13.5.2 权重衰减
- 在目标函数中加入 $\ell_2$ 惩罚 $\lambda \|\mathbf{w}\|_2^2$,等价于高斯先验下的MAP估计(第11.3节)。
13.5.3 稀疏DNN
- 用 $\ell_1$ 正则化或ARD(第11.7.7节)使权重稀疏,实现模型压缩。图13.17展示稀疏网络结构。
13.5.4 Dropout
- 训练时随机丢弃神经元(输出置0),测试时使用全部但缩放权重(乘以保留概率)。防止神经元共适应,相当于集成学习(图13.18)。
- Monte Carlo dropout:测试时仍使用dropout,多次前向平均,近似贝叶斯推断。
13.5.5 贝叶斯神经网络
- 对权重施加先验,推断后验分布,给出预测不确定性(第4.6节)。
13.5.6 (随机)梯度下降的正则化效应
- SGD倾向于找到平坦极小值(图13.19),泛化更好。梯度噪声有助于逃离尖锐极小。分析表明SGD等价于带隐式正则化的梯度流(式13.98-13.100)。
13.5.7 过参数化模型
- 当参数数量远大于样本量时,模型可完美拟合训练数据,但仍能泛化(双下降现象)。解释:插值解中,最小范数解是平滑的。
13.6 其他前馈网络 *
13.6.1 径向基函数网络(RBF网络)
- 隐藏层使用RBF核作为激活:$\phi_k(\mathbf{x}) = \exp(-\frac{1}{2\sigma^2}\|\mathbf{x} - \boldsymbol{\mu}_k\|^2)$。输出为线性组合。
- 可用K-means确定中心,再解线性权重。图13.21展示RBF解决XOR问题。
- 回归示例(图13.22):带宽影响平滑度。
13.6.2 混合专家(Mixture of Experts, MoE)
- 用于一对多映射(图13.23a)。模型由多个“专家”和一个“门控网络”组成: $$ p(y|\mathbf{x}) = \sum_{k=1}^K g_k(\mathbf{x}) p(y|\mathbf{x},k) $$ 其中 $g_k(\mathbf{x})$ 是门控(softmax输出),$p(y|\mathbf{x},k)$ 是第 $k$ 个专家(如线性回归)。图13.23b-d展示门控划分输入空间,专家各自预测。
- 深度混合专家(图13.24)将门控和专家都设为神经网络。
- 层次混合专家(图13.25)形成树状结构,实现条件计算。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| XOR问题 | 图13.1,单层无法解决,两层可解 |
| 激活函数 | 图13.2,sigmoid、tanh、ReLU对比 |
| 分类MLP | 图13.3,TensorFlow playground |
| MNIST分类 | 表13.2,图13.4,准确率97% |
| 文本分类 | 表13.3,IMDB情感分析86% |
| 异方差回归 | 图13.5-13.6,预测均值和方差 |
| 残差连接 | 图13.15,梯度直通 |
| Dropout | 图13.18,随机丢弃神经元 |
| RBF网络 | 图13.21-13.22,解决XOR与回归 |
| 混合专家 | 图13.23,一对多映射 |
前后章节联系
- 第2-4章:概率论、统计基础用于损失函数(交叉熵)和正则化(MAP)。
- 第7-8章:矩阵运算、梯度、优化算法。
- 第10-11章:线性模型作为MLP的特例(无隐藏层)。
- 第14-15章:CNN和RNN是MLP在结构数据上的扩展(卷积层、循环层)。
- 第16章:RBF网络与核方法相关。
- 第19章:迁移学习、自监督学习常用MLP作为基础编码器。
本章核心要点
- MLP:通过堆叠全连接层和非线性激活,可逼近任意函数。
- 反向传播:基于链式法则的梯度计算方法,是训练神经网络的核心。
- 训练挑战:梯度消失/爆炸、过拟合、优化困难,需通过激活函数、初始化、正则化、残差连接等解决。
- 激活函数:ReLU及其变体是现代网络首选,非饱和特性关键。
- 正则化:早停、权重衰减、Dropout是常用手段,SGD本身也有隐式正则化。
- 初始化:Xavier/He初始化使信号稳定。
- 变体:RBF网络和混合专家提供额外灵活性。
常见难点
- 理解反向传播中梯度的递推关系(特别是向量形式)。
- 区分梯度消失/爆炸的原因与解决方法。
- 理解Dropout在训练与测试时的差异。
- 掌握不同激活函数的优缺点。
- 理解残差连接为何能缓解梯度消失(恒等映射)。
学习建议
- 用PyTorch/TensorFlow实现一个简单MLP(如MNIST分类),手动调试反向传播(可用自动微分验证)。
- 实验不同激活函数、初始化、学习率调度,观察训练曲线。
- 实现Dropout并验证训练/测试行为。
- 阅读反向传播原始论文和相关博客,加深理解。
- 尝试用混合专家模型处理多模态数据。
以上是第13章“神经网络(用于表格数据)”的详细讲解。MLP是深度学习的基石,掌握它将为后续学习CNN、RNN等复杂模型铺平道路。如有疑问,欢迎继续探讨!
第14章“Neural Networks for Images”详细讲解
本章专注于处理图像数据的神经网络——卷积神经网络(CNN)。图像具有二维空间结构,而MLP(第13章)将图像展平为一维向量,会丢失空间信息且参数过多。CNN通过卷积操作利用局部相关性、参数共享和平移等变性,大幅减少参数数量,成为计算机视觉的核心模型。本章从基本组件(卷积层、池化层、归一化层)出发,逐步介绍经典CNN架构,扩展到各种视觉任务(分类、检测、分割),并探讨如何通过“反演”CNN来理解其内部表示和生成图像(特征可视化、DeepDream、风格迁移)。
14.1 引言
- 为什么MLP不适合图像?
- 参数爆炸:若图像为 $224\times224\times3$,第一层全连接1000个神经元,需 $224\times224\times3\times1000 \approx 150M$ 参数。
- 无空间不变性:MLP对每个像素分配独立权重,无法识别平移后的相同模式(图14.1)。
- CNN解决方案:
- 局部连接:每个神经元只连接输入的小区域(感受野)。
- 参数共享:同一卷积核在整个图像上滑动,检测相同特征。
- 平移等变性:特征的位置随输入平移而平移。
14.2 常见层
14.2.1 卷积层
14.2.1.1 1d卷积
- 定义:离散卷积(实际常用互相关): $$ (w * x)[i] = \sum_{u} w_u x_{i+u} $$ 即卷积核 $w$ 与输入 $x$ 的局部加权和(图14.4)。注意深度学习框架通常实现互相关(不翻转核),但习惯上仍称为卷积。
14.2.1.2 2d卷积
- 输入 $\mathbf{X} \in \mathbb{R}^{H\times W}$,卷积核 $\mathbf{W} \in \mathbb{R}^{h\times w}$,输出 $\mathbf{Y} \in \mathbb{R}^{(H-h+1)\times (W-w+1)}$: $$ Y_{i,j} = \sum_{u=0}^{h-1}\sum_{v=0}^{w-1} W_{u,v} X_{i+u,j+v} $$ 图14.5展示2d卷积过程。
14.2.1.3 作为模板匹配
- 卷积核可视为模板,输出大的位置表示该区域与模板相似(图14.6)。多个卷积核可检测多种特征(如边缘、纹理)。
14.2.1.4 填充与步长
- 有效卷积(valid):不填充,输出尺寸缩小。
- 相同卷积(same):填充零使输出尺寸与输入相同(通常 $p = (f-1)/2$)(图14.7)。
- 步长(stride):卷积核滑动间隔,大于1可降低分辨率(图14.8b)。输出尺寸公式: $$ H_{\text{out}} = \left\lfloor \frac{H_{\text{in}} + 2p_h - h}{s_h} + 1 \right\rfloor,\quad W_{\text{out}} \text{类似} $$
14.2.1.5 多通道输入与输出
- 输入有 $C_{\text{in}}$ 个通道,卷积核为 $h\times w\times C_{\text{in}}$,每个输出通道对应一个这样的核(图14.9)。输出形状为 $H_{\text{out}}\times W_{\text{out}}\times C_{\text{out}}$。
- 用 $\mathbf{W} \in \mathbb{R}^{h\times w\times C_{\text{in}}\times C_{\text{out}}}$ 表示所有核。
14.2.1.6 1×1卷积(点卷积)
- 核尺寸 $1\times1$,仅混合通道信息,不改变空间尺寸(图14.11)。用于改变通道数或实现跨通道的非线性组合。
14.2.2 池化层
- 作用:降低空间分辨率,增加感受野,提供小平移不变性。
- 最大池化:取局部窗口最大值(图14.12)。
- 平均池化:取平均值。
- 全局平均池化:对整个特征图求平均,将 $H\times W\times C$ 转化为 $1\times1\times C$,常用于分类前(替代全连接层)。
14.2.3 整体架构
经典CNN模式:卷积层(+激活) → 池化层 → … → 全局平均池化 → 全连接层(图14.13)。这种设计受Hubel-Wiesel的简单细胞-复杂细胞模型启发。
14.2.4 归一化层
14.2.4.1 批归一化(Batch Normalization, BN)
- 动机:训练中内部协变量偏移导致梯度不稳定。
- 操作:对小批量内每个通道,标准化激活值(减均值除方差),再学习缩放 $\gamma$ 和平移 $\beta$: $$ \hat{x} = \frac{x - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}},\quad y = \gamma\hat{x} + \beta $$
- 测试时:使用训练集统计的全局均值方差。
- 优点:加速收敛、允许更高学习率、有轻微正则化效果。
14.2.4.2 其他归一化
- 层归一化:对每个样本的所有通道归一化(图14.14),适用于RNN和小批量。
- 实例归一化:对每个样本的每个通道单独归一化,用于风格迁移。
- 组归一化:介于层归一化与实例归一化之间,将通道分组归一化。
14.2.4.3 无归一化网络
- 近年研究(如NFNet)通过自适应梯度裁剪等方法,可在无归一化层下训练极深网络,速度更快。
14.3 常见图像分类架构
14.3.1 LeNet(1998)
- 最早CNN之一,用于手写数字识别(MNIST)。结构:卷积→池化→卷积→池化→全连接(图14.15-14.16a)。
14.3.2 AlexNet(2012)
- 在ImageNet上大幅降低错误率,引爆深度学习。特点:
- 更深(8层)、使用ReLU、Dropout、数据增强。
- 在两块GPU上并行训练(图14.16b)。
14.3.3 GoogLeNet(Inception,2014)
- Inception模块:并行使用不同尺寸卷积核($1\times1,3\times3,5\times5$)和池化,输出拼接(图14.18)。$1\times1$卷积先降维,减少计算。
- 整体由多个Inception模块堆叠,最后用全局平均池化(图14.19)。
14.3.4 ResNet(2015)
- 残差块:$ \mathbf{x}_{l+1} = \phi(\mathbf{x}_l + F_l(\mathbf{x}_l))$(图14.20)。学习残差 $F_l$ 比直接学习映射更容易。
- 好处:梯度可直接通过恒等映射传播,缓解梯度消失,可训练超深网络(如152层)。图14.21为ResNet-18架构。
14.3.5 DenseNet(2017)
- 密集连接:每层输入来自之前所有层的输出(拼接),增强特征复用(图14.22)。虽参数效率高,但计算量稍大。
14.3.6 神经架构搜索(NAS)
- 自动搜索最佳网络结构(如层数、卷积核大小),通过强化学习或进化算法优化验证集性能。代表性工作:EfficientNet。
14.4 其他卷积形式 *
14.4.1 空洞卷积(Dilated Convolution)
- 在卷积核元素间插入空洞(rate $r$),扩大感受野而不增加参数(图14.23)。用于语义分割等需大感受野的任务。
14.4.2 转置卷积(Transposed Convolution)
- 用于上采样(如分割网络中的解码器)。可理解为普通卷积的逆过程(图14.24),将输入像素乘核后叠加到输出。注意与反卷积(deconvolution)的区别(图14.25)。
14.4.3 深度可分离卷积(Depthwise Separable Convolution)
- 分解为两步:逐通道卷积(depthwise)和逐点卷积(pointwise,$1\times1$)(图14.26)。大幅减少参数和计算,用于移动端网络(如MobileNet)。
14.5 解决其他视觉任务 *
14.5.1 图像标注(Image Tagging)
- 多标签分类,输出多个sigmoid而非softmax。常用于社交媒体图片标签预测。
14.5.2 目标检测(Object Detection)
- 需定位多个物体并分类。常用方法:
- 两阶段:如R-CNN系列,先生成候选框,再分类。
- 单阶段:如YOLO、SSD,直接在图像上回归边界框和类别(图14.27a)。使用锚框(anchor boxes)作为先验框(图14.27b)。
14.5.3 实例分割(Instance Segmentation)
- 检测每个物体并生成像素级掩膜。Mask R-CNN在目标检测基础上添加分割分支(图14.28)。
14.5.4 语义分割(Semantic Segmentation)
- 对每个像素分类,不区分实例。常用编码器-解码器结构(图14.29),编码器下采样提取特征,解码器上采样恢复分辨率,跳跃连接保留细节(U-Net,图14.30)。
14.5.5 人体姿态估计(Human Pose Estimation)
- 预测人体关键点(如关节)位置。可用热力图回归(OpenPose,图14.32)。
14.6 通过反演CNN生成图像 *
14.6.1 将训练好的分类器转为生成模型
- 固定类别 $c$,在图像空间优化 $p(\mathbf{x}|c) \propto p(\mathbf{x})p(c|\mathbf{x})$。用朗之万动力学采样(式14.28),其中先验 $p(\mathbf{x})$ 约束图像真实性。
14.6.2 图像先验
- 高斯先验:$\log p(\mathbf{x}) \propto -\|\mathbf{x}\|_2^2$,鼓励像素值接近零(图14.33)。
- 总变差先验(TV):惩罚相邻像素差异,平滑图像(图14.34)。用于生成类激活最大化图像(图14.35)。
14.6.3 可视化CNN学到的特征
- 激活最大化:寻找使某神经元激活最大的输入图像(图14.36)。低层检测边缘/纹理,高层检测物体部件/物体。
14.6.4 DeepDream
- 放大网络中某层的激活,使图像逐渐呈现幻觉般的模式(图14.37)。本质是梯度上升优化输入图像。
14.6.5 神经风格迁移
- 将一张图像的内容与另一张图像的风格结合(图14.38-14.39)。损失函数:
$$
L = \lambda_{\text{TV}}L_{\text{TV}} + \lambda_c L_{\text{content}} + \lambda_s L_{\text{style}}
$$
- 内容损失:特征图欧氏距离(式14.34)。
- 风格损失:Gram矩阵(特征图通道间协方差)的欧氏距离(式14.36-14.37)。
- 快速风格迁移:训练一个网络直接输出风格化图像(如AdaIN,式14.38-14.39)。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 卷积 | 图14.5-14.6,边缘检测 |
| 池化 | 图14.12,最大池化 |
| 批归一化 | 加速训练,允许大学习率 |
| LeNet | MNIST手写识别(图14.15) |
| AlexNet | ImageNet分类突破 |
| ResNet | 152层网络训练成功 |
| 空洞卷积 | 语义分割扩大感受野 |
| 转置卷积 | U-Net上采样 |
| 深度可分离 | MobileNet |
| YOLO | 实时目标检测 |
| U-Net | 医学图像分割 |
| DeepDream | 生成幻觉图像(图14.37) |
| 风格迁移 | 图14.38-14.39 |
前后章节联系
- 第13章:MLP是CNN的基础,CNN的卷积层可视为全连接层加上局部连接和参数共享约束。
- 第7章:卷积可用矩阵乘法表示(Toeplitz矩阵),与线性代数相关。
- 第8章:优化算法(SGD、Adam)用于训练CNN。
- 第15章:RNN处理序列,而CNN也可用于1d序列(因果卷积、WaveNet)。
- 第16章:核方法(如RBF核)与CNN的局部感受野有相似之处。
- 第19章:迁移学习常用预训练CNN(如ImageNet)进行微调。
本章核心要点
- 卷积层:通过局部连接、参数共享、平移等变性,高效提取空间特征。
- 池化层:降采样,增加感受野和不变性。
- 归一化层:稳定训练,加速收敛。
- 经典架构演进:从LeNet到ResNet,深度不断增加,设计越来越精巧(残差连接、Inception模块)。
- 特殊卷积:空洞卷积、转置卷积、深度可分离卷积针对不同需求(大感受野、上采样、轻量)。
- 视觉任务:CNN可扩展到检测、分割、姿态估计等,通过添加特定输出头和损失函数实现。
- 反演与生成:通过优化输入可理解CNN学到的特征,也可生成艺术图像(DeepDream、风格迁移)。
常见难点
- 理解卷积层输出尺寸计算(考虑填充、步长)。
- 区分转置卷积与反卷积的概念。
- 掌握残差连接为何能训练极深网络(梯度直通)。
- 理解空洞卷积如何扩大感受野而不增加参数。
- 理解Gram矩阵如何捕捉风格(特征图通道间相关性)。
- 区分实例分割与语义分割。
学习建议
- 用PyTorch/TensorFlow实现一个简单CNN(如LeNet)并在MNIST上训练。
- 尝试修改ResNet代码,观察不同深度的影响。
- 用预训练CNN做特征提取,再用SVM分类(迁移学习)。
- 实现风格迁移,调整内容/风格权重,观察效果。
- 阅读经典论文(AlexNet, ResNet, U-Net)加深理解。
以上是第14章“图像神经网络”的详细讲解。CNN是计算机视觉的基石,掌握其原理和架构对后续学习高级视觉模型至关重要。如有疑问,欢迎继续探讨!
第15章“Neural Networks for Sequences”详细讲解
序列数据无处不在,如文本、语音、时间序列、视频帧等。本章介绍处理序列的神经网络,包括循环神经网络(RNN)、一维卷积神经网络(1d CNN)、注意力机制和Transformer,以及它们在语言建模、机器翻译等任务中的应用。理解这些模型对掌握现代自然语言处理(NLP)和序列建模至关重要。
15.1 引言
- 序列数据特点:长度可变,元素间存在顺序依赖。
- 本章目标:学习从输入序列到输出序列(或向量)的映射,建模条件概率 $p(\mathbf{y}|\mathbf{x})$ 或联合概率 $p(\mathbf{x})$。
15.2 循环神经网络(RNN)
RNN通过隐状态 $\mathbf{h}_t$ 捕捉历史信息,更新公式:
$$ \mathbf{h}_t = f(\mathbf{h}_{t-1}, \mathbf{x}_t) $$其中 $f$ 为参数化函数(如 $\tanh(\mathbf{W}\mathbf{h}_{t-1} + \mathbf{U}\mathbf{x}_t + \mathbf{b})$)。
15.2.1 向量到序列(生成)
- 模型:给定固定长度输入 $\mathbf{x}$,生成变长输出序列 $\mathbf{y}_{1:T}$(图15.1)。
- 条件概率: $$ p(\mathbf{y}_{1:T}|\mathbf{x}) = \prod_{t=1}^T p(\mathbf{y}_t|\mathbf{h}_t),\quad \mathbf{h}_t = f(\mathbf{h}_{t-1}, \mathbf{y}_{t-1}, \mathbf{x}) $$
- 应用:语言模型(无条件生成)、图像描述(以图像编码为 $\mathbf{x}$,生成描述文本)。
示例:图15.2展示用RNN生成的《时间机器》续写文本,虽不通顺但语法大致正确。
15.2.2 序列到向量(分类)
- 模型:输入序列 $\mathbf{x}_{1:T}$,输出固定大小向量(如类别标签)。通常取最后时刻隐状态 $\mathbf{h}_T$ 或对所有时刻平均池化(图15.4a)。
- 双向RNN:分别从前向后和从后向前处理,拼接每时刻隐状态,再平均池化(图15.4b),可捕捉上下文信息。
15.2.3 序列到序列(翻译)
- 编码器-解码器结构(图15.7):
- 编码器:将输入序列编码为上下文向量 $\mathbf{c}$(通常取最后隐状态或平均池化)。
- 解码器:以 $\mathbf{c}$ 为初始状态,自回归生成输出序列。
- 应用:机器翻译(图15.8a)、摘要生成。
15.2.4 教师强制(Teacher Forcing)
- 训练时,解码器输入使用真实的前缀标签(而非模型生成的上一个词),使训练更稳定、收敛更快。但测试时模型需自回归,可能导致误差累积。计划采样(scheduled sampling)逐步混合真实与生成输入以缓解此问题。
15.2.5 通过时间的反向传播(BPTT)
- 将RNN按时间展开为计算图(图15.9),应用标准反向传播。梯度随时间反向传播,计算复杂度 $O(T)$。
- 截断BPTT:限制反向传播的时间步数,减少计算。
15.2.6 梯度消失与爆炸
- RNN中梯度可能指数级衰减(消失)或增长(爆炸),源于反复乘以权重矩阵 $\mathbf{W}_{hh}$。
- 梯度裁剪:将梯度模长限制在阈值内,防止爆炸。
- 门控机制(LSTM/GRU)通过加法更新隐状态,缓解消失。
15.2.7 门控与长时记忆
15.2.7.1 门控循环单元(GRU)
- 重置门 $\mathbf{r}_t$:控制忽略前一时刻状态的程度。
- 更新门 $\mathbf{z}_t$:控制从候选状态复制多少信息。
- 更新公式(图15.10): $$ \mathbf{r}_t = \sigma(\mathbf{W}_{xr}\mathbf{x}_t + \mathbf{W}_{hr}\mathbf{h}_{t-1} + \mathbf{b}_r) $$ $$ \mathbf{z}_t = \sigma(\mathbf{W}_{xz}\mathbf{x}_t + \mathbf{W}_{hz}\mathbf{h}_{t-1} + \mathbf{b}_z) $$ $$ \tilde{\mathbf{h}}_t = \tanh(\mathbf{W}_{xh}\mathbf{x}_t + \mathbf{W}_{hh}(\mathbf{r}_t \odot \mathbf{h}_{t-1}) + \mathbf{b}_h) $$ $$ \mathbf{h}_t = \mathbf{z}_t \odot \mathbf{h}_{t-1} + (1-\mathbf{z}_t) \odot \tilde{\mathbf{h}}_t $$
15.2.7.2 长短期记忆网络(LSTM)
- 引入记忆单元 $\mathbf{c}_t$,由遗忘门 $\mathbf{f}_t$、输入门 $\mathbf{i}_t$、输出门 $\mathbf{o}_t$ 控制信息流动(图15.11)。
- 更新公式: $$ \mathbf{f}_t = \sigma(\mathbf{W}_{xf}\mathbf{x}_t + \mathbf{W}_{hf}\mathbf{h}_{t-1} + \mathbf{b}_f) $$ $$ \mathbf{i}_t = \sigma(\mathbf{W}_{xi}\mathbf{x}_t + \mathbf{W}_{hi}\mathbf{h}_{t-1} + \mathbf{b}_i) $$ $$ \tilde{\mathbf{c}}_t = \tanh(\mathbf{W}_{xc}\mathbf{x}_t + \mathbf{W}_{hc}\mathbf{h}_{t-1} + \mathbf{b}_c) $$ $$ \mathbf{c}_t = \mathbf{f}_t \odot \mathbf{c}_{t-1} + \mathbf{i}_t \odot \tilde{\mathbf{c}}_t $$ $$ \mathbf{o}_t = \sigma(\mathbf{W}_{xo}\mathbf{x}_t + \mathbf{W}_{ho}\mathbf{h}_{t-1} + \mathbf{b}_o) $$ $$ \mathbf{h}_t = \mathbf{o}_t \odot \tanh(\mathbf{c}_t) $$
15.2.8 束搜索(Beam Search)
- 解码时,贪心选择每步最可能词可能错过全局最优。束搜索保留 $K$ 个当前最可能的部分序列,扩展后保留前 $K$ 个(图15.13),找到近似最优序列。
15.3 一维CNN
15.3.1 用于序列分类(TextCNN)
- 对序列进行1d卷积,不同尺寸卷积核提取n-gram特征,再经最大池化得到固定长度向量,最后分类(图15.14)。简单高效,常用于文本分类。
15.3.2 因果卷积与序列生成
- 因果卷积:保证输出只依赖过去输入,用于生成模型(如WaveNet)。通过空洞卷积(dilated convolution)扩大感受野(图15.15)。
15.4 注意力机制
15.4.1 作为软字典查找
- 给定查询 $\mathbf{q}$、一组键 $\mathbf{k}_i$ 和值 $\mathbf{v}_i$,输出为值的加权和: $$ \text{Attention}(\mathbf{q}, \{\mathbf{k}_i,\mathbf{v}_i\}) = \sum_i \alpha_i \mathbf{v}_i $$ 其中权重 $\alpha_i = \mathrm{softmax}_i(a(\mathbf{q},\mathbf{k}_i))$,$a$ 为评分函数(图15.16)。
15.4.2 核回归作为非参数注意力
- 用高斯核计算相似度:$a(\mathbf{q},\mathbf{k}_i) = -\frac{1}{2}\|\mathbf{q}-\mathbf{k}_i\|^2$,即得到Nadaraya-Watson核回归(图15.17)。
15.4.3 参数化注意力评分函数
- 加性注意力:$a(\mathbf{q},\mathbf{k}) = \mathbf{v}^\top \tanh(\mathbf{W}_q\mathbf{q} + \mathbf{W}_k\mathbf{k})$。
- 缩放点积注意力(最常用):$a(\mathbf{q},\mathbf{k}) = \frac{\mathbf{q}^\top\mathbf{k}}{\sqrt{d_k}}$。矩阵形式: $$ \text{Attention}(\mathbf{Q},\mathbf{K},\mathbf{V}) = \mathrm{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_k}}\right)\mathbf{V} $$
15.4.4 Seq2Seq with Attention
- 解码时,上下文向量 $\mathbf{c}_t$ 为编码器各时刻隐状态的加权和,权重由当前解码器隐状态与各编码器隐状态计算(图15.18)。解决固定上下文向量的信息瓶颈问题。
- 图15.19展示翻译时的注意力热图。
15.4.5 Seq2Vec with Attention(文本分类)
- 对序列分类,可用注意力对输入词加权,突出重要词(图15.20)。
15.4.6 Seq+Seq2Vec with Attention(句子对分类)
- 用于自然语言推理(NLI),如SNLI数据集。模型分别计算前提与假设的注意力,比较后分类(图15.21)。
15.4.7 软注意力 vs 硬注意力
- 软注意力:可微,对所有位置加权。
- 硬注意力:只选一个位置,不可微,需强化学习训练。
15.5 Transformer
15.5.1 自注意力(Self-Attention)
- 对输入序列 $\mathbf{X} \in \mathbb{R}^{n\times d}$,计算查询、键、值: $$ \mathbf{Q} = \mathbf{X}\mathbf{W}^Q,\ \mathbf{K} = \mathbf{X}\mathbf{W}^K,\ \mathbf{V} = \mathbf{X}\mathbf{W}^V $$ 输出 $\mathbf{Z} = \text{Attention}(\mathbf{Q},\mathbf{K},\mathbf{V})$。自注意力让每个位置关注所有位置,捕捉长程依赖(图15.23)。
15.5.2 多头注意力
- 并行多个注意力头,拼接后线性变换: $$ \text{MultiHead}(\mathbf{Q},\mathbf{K},\mathbf{V}) = \mathrm{Concat}(\text{head}_1,\ldots,\text{head}_h)\mathbf{W}^O $$ 每个头有不同参数,捕捉不同关系(图15.24)。
15.5.3 位置编码
- 自注意力是置换等变的,需注入位置信息。常用正弦/余弦编码: $$ PE_{(pos,2i)} = \sin(pos/10000^{2i/d}),\quad PE_{(pos,2i+1)} = \cos(pos/10000^{2i/d}) $$ 加在输入嵌入上(图15.25)。
15.5.4 整体结构
- 编码器:多层,每层含多头注意力和前馈网络,均接残差连接和层归一化(图15.26左)。
- 解码器:类似,但第一层用掩码自注意力(防止看到未来),第二层对编码器输出做交叉注意力(图15.26右)。
15.5.5 与CNN、RNN对比
| 层类型 | 复杂度 | 序列操作 | 最大路径长度 |
|---|---|---|---|
| 自注意力 | $O(n^2d)$ | $O(1)$ | $O(1)$ |
| RNN | $O(nd^2)$ | $O(n)$ | $O(n)$ |
| CNN | $O(knd^2)$ | $O(1)$ | $O(\log_k n)$ |
自注意力可并行,但长序列计算量大。
15.5.6 图像Transformer(ViT)
- 将图像切为固定大小块,展平后加位置编码,送入Transformer编码器,用 [CLS] 标记分类(图15.28)。需大规模数据预训练,但在ImageNet上可超越CNN。
15.5.7 其他变体
- GShard:用混合专家(MoE)扩展参数。
- Conformer:结合卷积层改进语音识别。
15.6 高效Transformer *
- 固定局部模式:如分块注意力(图15.29)。
- 可学习稀疏模式:通过哈希(Reformer)或聚类(Routing Transformer)选择参与计算的键。
- 记忆与循环:如Transformer-XL,引入循环连接处理超长序列。
- 低秩与核方法:如Linformer(低秩投影)、Performer(随机特征近似),将复杂度降至 $O(n)$。
15.7 语言模型与无监督表示学习
15.7.1 非生成式语言模型
15.7.1.1 ELMo
- 训练双向LSTM语言模型,拼接各层隐状态作为上下文词嵌入(图15.32)。下游任务学习加权组合。
15.7.1.2 BERT
- 掩码语言模型(MLM):随机遮盖部分词,预测被遮词(图15.33a)。下一句预测(NSP):判断两句是否连续。
- 输入由词嵌入、段嵌入、位置嵌入相加(图15.34)。预训练后,微调可用于多种NLP任务(图15.35)。
15.7.1.3 其他
- RoBERTa:优化BERT训练。
- ALBERT:参数共享减少内存。
15.7.2 生成式(因果)大语言模型(LLM)
15.7.2.1 GPT
- 单向Transformer解码器,训练语言模型(图15.33b)。GPT-2/3/4规模不断扩大,通过提示工程(prompt engineering)执行零样本任务。
15.7.2.2 应用
- 文本生成、摘要、代码生成、聊天机器人(ChatGPT)。
15.7.2.3 T5
- 将各种NLP任务统一为“文本到文本”格式,用编码器-解码器Transformer训练(图15.36)。预训练任务为去噪(类似MLM)。
15.7.2.4 讨论
- LLM展现强大能力,但也引发关于理解、偏见、安全性的讨论。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| RNN语言模型 | 图15.2,生成《时间机器》文本 |
| Seq2Seq | 图15.8a,英-法翻译 |
| 注意力 | 图15.19,翻译注意力热图 |
| Transformer | 图15.26,标准结构 |
| BERT | 图15.35,微调用于分类、问答等 |
| GPT | 零样本任务(如摘要、翻译) |
| T5 | 图15.36,多任务统一文本格式 |
前后章节联系
- 第13章:MLP是基础,RNN可视为带循环连接的MLP。
- 第14章:CNN用于图像,本章的1d CNN是其在序列上的应用。
- 第7章:矩阵乘法、注意力中的点积。
- 第8章:优化算法(Adam)用于训练。
- 第16章:核回归与注意力联系(非参数注意力)。
- 第19章:预训练语言模型(BERT、GPT)是迁移学习的典范。
本章核心要点
- RNN:通过循环状态处理变长序列,但存在梯度问题。LSTM/GRU通过门控缓解。
- 1d CNN:并行处理,适合分类和生成(因果卷积)。
- 注意力:让模型动态关注输入的不同部分,极大提升Seq2Seq性能。
- Transformer:完全基于注意力的架构,并行高效,成为NLP主流。
- 高效Transformer:解决长序列计算瓶颈。
- 预训练语言模型:ELMo(双向LSTM)、BERT(MLM)、GPT(因果)学习通用表示,微调后统治NLP。
常见难点
- 理解BPTT中梯度传播路径及截断。
- 区分LSTM各门的作用。
- 理解自注意力与交叉注意力的区别。
- 掌握Transformer中位置编码的必要性。
- 理解BERT的MLM预训练目标与GPT的因果语言模型差异。
- 理解高效Transformer的近似思想(如随机特征)。
学习建议
- 用PyTorch实现简单RNN(字符级语言模型),观察生成效果。
- 用
nn.Transformer搭建一个翻译模型(小数据集)。 - 使用预训练BERT(
transformers库)微调文本分类任务。 - 阅读《Attention Is All You Need》原文,理解Transformer设计。
- 尝试用Performer或Linformer处理长序列,观察速度提升。
以上是第15章“序列神经网络”的详细讲解。掌握本章内容将为您深入理解自然语言处理、语音识别等前沿领域打下坚实基础。如有疑问,欢迎继续探讨!
第16章“Exemplar-based Methods”详细讲解
本章介绍一类非参数模型——基于样本的方法(又称实例-based学习或记忆-based学习)。这类模型在训练阶段不学习固定的参数向量,而是保留所有训练样本,在预测时通过与训练样本的相似性进行推断。典型方法包括K近邻(KNN)、核密度估计(KDE)以及核回归。本章还将讨论如何学习距离度量,以提高基于样本方法的性能。
16.1 引言
- 参数模型:如线性回归、神经网络,训练后将数据压缩为固定大小的参数 $\theta$,预测时不再需要原始数据。
- 非参数模型:模型复杂度随训练数据量增长,预测时需访问所有(或部分)训练样本。本章的方法都基于样本之间的相似度(或距离),因此称为“基于样本的方法”。
16.2 K近邻分类(KNN)
16.2.1 算法
- 输入:训练集 $\mathcal{D} = \{(\mathbf{x}_n, y_n)\}_{n=1}^N$,新样本 $\mathbf{x}$。
- 步骤:
- 找到与 $\mathbf{x}$ 距离最近的 $K$ 个训练样本 $\mathcal{N}_K(\mathbf{x}, \mathcal{D})$。
- 用它们的标签投票决定 $\mathbf{x}$ 的类别(或输出分布): $$ p(y=c|\mathbf{x}, \mathcal{D}) = \frac{1}{K} \sum_{n \in \mathcal{N}_K(\mathbf{x},\mathcal{D})} \mathbb{I}(y_n = c) $$
- 决策边界:当 $K=1$ 时,形成Voronoi图(图16.1b);$K>1$ 时边界更平滑(图16.2)。
16.2.2 距离度量
- 常用马氏距离: $$ d_{\mathbf{M}}(\mathbf{x},\mathbf{x}') = \sqrt{(\mathbf{x}-\mathbf{x}')^\top \mathbf{M} (\mathbf{x}-\mathbf{x}')} $$ 其中 $\mathbf{M}$ 为半正定矩阵。$\mathbf{M}=\mathbf{I}$ 时退化为欧氏距离。
- 距离度量可学习(见16.3节)。
16.2.3 选择 $K$
- $K$ 是超参数:$K$ 小则模型复杂(可能过拟合),$K$ 大则平滑(可能欠拟合)。图16.2d展示训练与测试误差随 $K$ 的变化(U形曲线)。
- 可通过交叉验证选择 $K$。
16.2.4 维度灾难
- 高维空间中,样本稀疏,最近邻可能很远,导致预测不可靠。例如,在单位超立方体中,要覆盖 $p$ 的数据,所需边长 $e_D(p) = p^{1/D}$ 随 $D$ 指数增长(图16.3)。因此KNN在高维时需大量样本。
16.2.5 加速技巧
- 空间划分:KD树、球树,将搜索复杂度降至 $O(\log N)$(低维有效)。
- 哈希:局部敏感哈希(LSH)近似最近邻。
- 库:FAISS(Facebook AI Similarity Search)提供高效GPU加速的KNN和聚类。
16.2.6 开放集识别
- 开放世界假设:测试时可能出现训练中未见过的类别。KNN可通过设定距离阈值来判断是否为已知类,否则拒绝或标记为“未知”。
- 增量学习:新类别出现时,只需添加样本到记忆库,无需重新训练整个模型。这对于人脸识别、实体链接等任务非常有用。
16.3 距离度量学习
16.3.1 线性与凸方法
16.3.1.1 大间隔最近邻(LMNN)
- 目标:学习马氏距离矩阵 $\mathbf{M} = \mathbf{W}^\top\mathbf{W}$,使同类样本靠近,异类样本远离且保持一定间隔。
- 损失:
- 拉近目标邻居:$L_{\text{pull}} = \sum_{i,j \in \mathcal{N}_i} \|\mathbf{W}\mathbf{x}_i - \mathbf{W}\mathbf{x}_j\|^2$
- 推开入侵者:$L_{\text{push}} = \sum_{i,j \in \mathcal{N}_i, l: y_l \neq y_i} [1 + \|\mathbf{W}\mathbf{x}_i - \mathbf{W}\mathbf{x}_j\|^2 - \|\mathbf{W}\mathbf{x}_i - \mathbf{W}\mathbf{x}_l\|^2]_+$ 总损失为凸组合,可用半定规划求解。
16.3.1.2 邻域成分分析(NCA)
- 定义概率 $p_{ij} = \frac{\exp(-\|\mathbf{W}\mathbf{x}_i - \mathbf{W}\mathbf{x}_j\|^2)}{\sum_{k \neq i} \exp(-\|\mathbf{W}\mathbf{x}_i - \mathbf{W}\mathbf{x}_k\|^2)}$,表示 $i$ 选择 $j$ 作为邻居的概率。优化目标:最大化同类样本被选中的期望对数概率: $$ J(\mathbf{W}) = \sum_i \sum_{j: y_j=y_i} p_{ij} $$ 可用梯度优化。
16.3.1.3 潜变量重合分析(LCA)
- 生成式模型:假设每个样本 $\mathbf{x}$ 由潜变量 $\mathbf{z}$ 生成,且相似样本的潜变量接近。通过EM算法学习线性映射 $\mathbf{W}$(图16.4)。
16.3.2 深度度量学习(DML)
当输入为高维数据(如图像),先用神经网络 $\mathbf{e}=f_\theta(\mathbf{x})$ 映射到嵌入空间,再在嵌入空间计算距离。常用 $\ell_2$ 归一化使嵌入落在单位超球面上,用余弦相似度或欧氏距离。
16.3.2.1 分类损失
- 直接用类别标签训练分类器(如softmax),取倒数第二层作为嵌入。简单有效,但可能未显式优化样本间距离。
16.3.2.2 排序损失
- 对比损失(Siamese网络,图16.5a): $$ L = \mathbb{I}(y_i=y_j) d_{ij}^2 + \mathbb{I}(y_i \neq y_j) [m - d_{ij}]_+^2 $$ 其中 $d_{ij} = \|f_\theta(\mathbf{x}_i) - f_\theta(\mathbf{x}_j)\|$。
- 三元组损失(图16.5b): $$ L = [d(\mathbf{x}_a, \mathbf{x}_p)^2 - d(\mathbf{x}_a, \mathbf{x}_n)^2 + m]_+ $$ 需选择困难负样本(硬挖掘)。
- N-pairs损失:将一组负样本同时考虑,用softmax形式: $$ L = -\log \frac{\exp(f_\theta(\mathbf{x})^\top f_\theta(\mathbf{x}^+))}{\exp(f_\theta(\mathbf{x})^\top f_\theta(\mathbf{x}^+)) + \sum_{k=1}^{N-1} \exp(f_\theta(\mathbf{x})^\top f_\theta(\mathbf{x}_k^-))} $$ 与InfoNCE相同。
16.3.2.3 加速优化
- 硬负样本挖掘:只对违反边界的负样本计算梯度(图16.6a)。
- 代理方法:为每个类学习一个代理向量,用代理与样本的距离替代所有样本对,复杂度从 $O(N^2)$ 降至 $O(NC)$(图16.6b)。
- 上界优化:利用三角不等式构造三元组损失的上界,可高效计算(式16.20-16.22)。
16.3.2.4 训练技巧
- 批次构建:确保每个批次包含多个类,每类多个样本。
- 预训练+微调:先用分类任务(如ImageNet)预训练,再用度量损失微调。
- 数据增强:增加样本多样性。
- 球形嵌入约束(SEC):正则化嵌入范数,使训练稳定(图16.7)。
16.4 核密度估计(KDE)
16.4.1 密度核
- 定义:非负、积分为1、对称的函数 $K(u)$。例如高斯核、Epanechnikov核、均匀核(表16.1,图16.8)。
- 带宽 $h$ 控制平滑度:$K_h(u) = \frac{1}{h} K(u/h)$。
16.4.2 Parzen窗密度估计
- 对每个样本放置一个核,叠加后归一化: $$ \hat{p}(\mathbf{x}) = \frac{1}{N} \sum_{n=1}^N K_h(\mathbf{x} - \mathbf{x}_n) $$ 图16.9展示不同核和带宽下的密度估计。
16.4.3 带宽选择
- 带宽 $h$ 影响偏差-方差平衡。过大则过度平滑,过小则过拟合。
- 经验法则(对高斯核):$h = \hat{\sigma} \left(\frac{4}{3N}\right)^{1/5}$,其中 $\hat{\sigma}$ 为样本标准差。
16.4.4 从KDE到KNN分类
- 用KDE估计类条件密度 $p(\mathbf{x}|y=c)$,结合先验,得后验: $$ p(y=c|\mathbf{x}) = \frac{\pi_c \hat{p}_c(\mathbf{x})}{\sum_{c'} \pi_{c'} \hat{p}_{c'}(\mathbf{x})} $$ 若对每个 $\mathbf{x}$ 自适应调整带宽(使体积内包含 $K$ 个点),则后验简化为KNN形式(式16.35)。
16.4.5 核回归(Nadaraya-Watson)
- 对回归问题,预测值为输出的加权平均: $$ \hat{y}(\mathbf{x}) = \frac{\sum_{n=1}^N K_h(\mathbf{x} - \mathbf{x}_n) y_n}{\sum_{n=1}^N K_h(\mathbf{x} - \mathbf{x}_n)} = \sum_{n=1}^N w_n(\mathbf{x}) y_n $$ 图16.10展示1d示例。
- 预测方差也可类似估计(式16.45)。
- 局部加权回归(LOWESS):在每个点附近拟合局部线性模型(式16.47),提高边界表现。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| KNN分类 | 图16.1-16.2,不同K的决策边界 |
| 维度灾难 | 图16.3,高维下邻域边长剧增 |
| LMNN | 学习马氏距离使同类更近 |
| NCA | 概率视角的度量学习 |
| 三元组损失 | FaceNet人脸识别 |
| KDE | 图16.9,不同带宽的密度估计 |
| 核回归 | 图16.10,1d拟合 |
| 局部加权回归 | 散点图局部趋势线 |
前后章节联系
- 第2章:概率密度函数、核函数概念。
- 第4章:非参数密度估计(KDE)可视为贝叶斯方法的替代。
- 第13章:MLP与深度度量学习结合,用于人脸识别等。
- 第14章:CNN可作为深度度量学习中的特征提取器。
- 第15章:注意力机制中的核回归类比。
- 第17章:核方法与KDE共享核的概念,但核方法(如SVM)侧重分类。
- 第19章:少样本学习常基于度量学习(如匹配网络)。
本章核心要点
- 基于样本的方法:不学习参数,直接利用训练样本进行预测。
- KNN:简单但需合理选择K和距离度量;高维时需加速和注意维度灾难。
- 度量学习:学习适合任务的距离度量,可线性或深度,大幅提升KNN及相似性任务的性能。
- 核密度估计:非参数密度估计,带宽是关键超参数,与KNN有内在联系。
- 核回归:非参数回归,可扩展为局部线性回归提高精度。
- 开放集识别:KNN天然适合开放世界场景,通过阈值处理未知类别。
常见难点
- 理解KNN决策边界与Voronoi图的关系。
- 掌握不同度量学习损失的动机(对比、三元组、N-pairs)。
- 理解硬负样本挖掘的重要性。
- 区分核密度估计中的核与核方法中的核(前者是密度核,后者是正定核)。
- 理解KDE与KNN分类的等价推导(式16.34-16.35)。
学习建议
- 用
sklearn.neighbors实现KNN分类和回归,观察K的影响。 - 尝试用度量学习库(如
pytorch-metric-learning)训练人脸识别模型。 - 用
sklearn.neighbors.KernelDensity估计数据分布,调整带宽观察结果。 - 阅读LMNN、NCA原论文,理解凸优化在度量学习中的应用。
- 结合第19章,理解匹配网络如何利用度量学习进行少样本学习。
以上是第16章“基于样本的方法”的详细讲解。基于样本的方法直观且强大,尤其在数据规模适中且需要处理开放类别时非常有效。掌握本章内容将为后续学习核方法、少样本学习打下基础。如有疑问,欢迎继续探讨!
第17章“Kernel Methods”详细讲解
核方法(Kernel Methods)是一类强大的非参数技术,通过核函数将数据隐式映射到高维(甚至无限维)特征空间,从而在高维空间中应用线性模型。本章涵盖三个核心主题:Mercer核(核函数理论)、高斯过程(概率视角的核方法)和支持向量机(判别式核方法),以及稀疏化扩展(如RVM)。掌握核方法对理解非线性建模、贝叶斯推断和现代机器学习至关重要。
17.1 引言
- 核方法的基本思想:将输入 $\mathbf{x}$ 通过非线性映射 $\phi(\cdot)$ 变换到特征空间,然后在特征空间中应用线性模型(如线性回归、线性分类器)。但我们不需要显式计算 $\phi(\mathbf{x})$,只需计算特征空间中的内积 $\langle \phi(\mathbf{x}), \phi(\mathbf{x}')\rangle$,这由核函数 $K(\mathbf{x},\mathbf{x}')$ 直接给出。
- 优点:
- 可处理无限维特征空间(如RBF核)。
- 模型仍为线性,便于理论分析。
- 核函数可直接定义在结构化数据(如字符串、图)上。
17.2 Mercer核
17.2.1 正定核的定义
一个对称函数 $K: \mathcal{X} \times \mathcal{X} \to \mathbb{R}$ 称为Mercer核(或正定核),如果对任意 $N$ 和任意点集 $\{\mathbf{x}_1,\ldots,\mathbf{x}_N\}$,其Gram矩阵 $\mathbf{K}_{ij} = K(\mathbf{x}_i,\mathbf{x}_j)$ 是半正定的(对所有 $\mathbf{c} \in \mathbb{R}^N$ 有 $\mathbf{c}^\top\mathbf{K}\mathbf{c} \ge 0$)。
Mercer定理:若 $K$ 是连续对称正定核,则存在特征函数 $\{\psi_i\}$ 和特征值 $\lambda_i \ge 0$,使得
$$ K(\mathbf{x},\mathbf{x}') = \sum_{i=1}^\infty \lambda_i \psi_i(\mathbf{x})\psi_i(\mathbf{x}') $$这意味着我们可以定义特征映射 $\phi(\mathbf{x}) = (\sqrt{\lambda_1}\psi_1(\mathbf{x}), \sqrt{\lambda_2}\psi_2(\mathbf{x}), \ldots)$,则 $K(\mathbf{x},\mathbf{x}') = \langle \phi(\mathbf{x}), \phi(\mathbf{x}')\rangle$。因此,核函数隐式定义了特征空间中的内积。
17.2.2 常见Mercer核
17.2.2.1 线性核
$$ K(\mathbf{x},\mathbf{x}') = \mathbf{x}^\top\mathbf{x}' $$对应恒等映射 $\phi(\mathbf{x}) = \mathbf{x}$。
17.2.2.2 多项式核
$$ K(\mathbf{x},\mathbf{x}') = (\mathbf{x}^\top\mathbf{x}' + c)^M $$对应所有次数 $\le M$ 的单项式特征。例如 $M=2, D=2$ 时,$\phi(\mathbf{x}) = (1, \sqrt{2}x_1, \sqrt{2}x_2, x_1^2, x_2^2, \sqrt{2}x_1x_2)$。
17.2.2.3 高斯核(RBF核)
$$ K(\mathbf{x},\mathbf{x}') = \exp\left(-\frac{\|\mathbf{x}-\mathbf{x}'\|^2}{2\ell^2}\right) $$对应无限维特征空间(可展开为泰勒级数)。参数 $\ell$ 称为长度尺度,控制函数的平滑度。
17.2.2.4 ARD核
$$ K(\mathbf{x},\mathbf{x}') = \sigma^2 \exp\left(-\frac{1}{2}\sum_{d=1}^D \frac{(x_d - x_d')^2}{\ell_d^2}\right) $$每个维度有自己的长度尺度 $\ell_d$,可自动推断特征相关性(自动相关性确定,ARD)。图17.1展示不同 $\ell_d$ 下从高斯过程采样的函数。
17.2.2.5 Matern核
$$ K(r) = \frac{2^{1-\nu}}{\Gamma(\nu)}\left(\frac{\sqrt{2\nu}r}{\ell}\right)^\nu K_\nu\left(\frac{\sqrt{2\nu}r}{\ell}\right),\quad r = \|\mathbf{x}-\mathbf{x}'\| $$$\nu$ 控制函数的光滑性($\nu=p+1/2$ 时对应 $p$ 次可微)。当 $\nu \to \infty$ 时趋近高斯核。图17.2比较 $\nu=1/2$(非常粗糙)和 $\nu=5/2$(较光滑)。
17.2.2.6 周期核
$$ K(\mathbf{x},\mathbf{x}') = \exp\left(-\frac{2}{\ell^2}\sin^2\left(\frac{\pi\|\mathbf{x}-\mathbf{x}'\|}{p}\right)\right) $$用于建模周期模式(图17.3)。
17.2.3 核的构造
给定有效核 $K_1, K_2$,以下运算仍得到有效核:
- 数乘:$c K_1$($c>0$)
- 乘积:$K_1 \times K_2$
- 求和:$K_1 + K_2$
- 多项式函数:$q(K_1)$($q$ 为系数非负的多项式)
- 指数:$\exp(K_1)$
- 通过函数变换:$f(\mathbf{x})K_1(\mathbf{x},\mathbf{x}')f(\mathbf{x}')$
例:高斯核可写为 $\exp(-\|\mathbf{x}-\mathbf{x}'\|^2/(2\sigma^2)) = \exp(-\|\mathbf{x}\|^2/(2\sigma^2)) \exp(\mathbf{x}^\top\mathbf{x}'/\sigma^2) \exp(-\|\mathbf{x}'\|^2/(2\sigma^2))$,因此是有效核。
17.2.4 结构化数据上的核
- 字符串核:基于公共子串计数。
- 图核:如随机游走核,比较两图随机游走路径的相似性。
17.3 高斯过程(GP)
高斯过程是函数空间中的贝叶斯方法:它定义一个函数 $f(\mathbf{x})$ 的先验分布,使得任意有限点集上的函数值服从多元高斯分布。
17.3.1 先验
- 均值函数 $m(\mathbf{x}) = \mathbb{E}[f(\mathbf{x})]$(通常取0)。
- 协方差函数(核)$K(\mathbf{x},\mathbf{x}') = \mathrm{Cov}[f(\mathbf{x}), f(\mathbf{x}')]$。
对于任意 $N$ 个输入 $\mathbf{X} = \{\mathbf{x}_1,\ldots,\mathbf{x}_N\}$,对应的函数值 $\mathbf{f} = [f(\mathbf{x}_1),\ldots,f(\mathbf{x}_N)]^\top$ 服从:
$$ \mathbf{f} \sim \mathcal{N}(\mathbf{m}, \mathbf{K}_{\mathbf{X}\mathbf{X}}) $$其中 $\mathbf{K}_{\mathbf{X}\mathbf{X}}$ 是 Gram 矩阵。
图17.7a展示从高斯过程先验(RBF核)采样的函数。
17.3.2 无噪声观测的预测
给定训练集 $\mathcal{D} = \{(\mathbf{x}_n, y_n)\}_{n=1}^N$,其中 $y_n = f(\mathbf{x}_n)$ 无噪声。对于测试点 $\mathbf{X}_*$,联合分布为:
$$ \begin{pmatrix}\mathbf{f}\\\mathbf{f}_*\end{pmatrix} \sim \mathcal{N}\left( \begin{pmatrix}\mathbf{m}\\\mathbf{m}_*\end{pmatrix}, \begin{pmatrix}\mathbf{K}_{\mathbf{X}\mathbf{X}} & \mathbf{K}_{\mathbf{X}\mathbf{X}_*} \\ \mathbf{K}_{\mathbf{X}_*\mathbf{X}} & \mathbf{K}_{\mathbf{X}_*\mathbf{X}_*}\end{pmatrix} \right) $$由高斯条件分布公式得后验:
$$ \mathbf{f}_* | \mathbf{X}_*, \mathcal{D} \sim \mathcal{N}\left(\mathbf{m}_* + \mathbf{K}_{\mathbf{X}_*\mathbf{X}}\mathbf{K}_{\mathbf{X}\mathbf{X}}^{-1}(\mathbf{y}-\mathbf{m}),\; \mathbf{K}_{\mathbf{X}_*\mathbf{X}_*} - \mathbf{K}_{\mathbf{X}_*\mathbf{X}}\mathbf{K}_{\mathbf{X}\mathbf{X}}^{-1}\mathbf{K}_{\mathbf{X}\mathbf{X}_*}\right) $$图17.7b-d展示后验均值和置信区间随数据点增加的变化。
17.3.3 含噪声观测的预测
若观测含噪声 $y_n = f(\mathbf{x}_n) + \epsilon_n$,$\epsilon_n \sim \mathcal{N}(0,\sigma_y^2)$,则协方差变为 $\mathbf{K}_{\mathbf{X}\mathbf{X}} + \sigma_y^2\mathbf{I}$。预测公式相同,只需将 $\mathbf{K}_{\mathbf{X}\mathbf{X}}$ 替换为 $\mathbf{K}_{\mathbf{X}\mathbf{X}} + \sigma_y^2\mathbf{I}$。
17.3.4 与核回归的联系
GP预测均值可写为:
$$ \mathbb{E}[f_*|\mathbf{X}_*,\mathcal{D}] = \sum_{n=1}^N \alpha_n K(\mathbf{x}_*,\mathbf{x}_n) $$其中 $\boldsymbol{\alpha} = (\mathbf{K}_{\mathbf{X}\mathbf{X}} + \sigma_y^2\mathbf{I})^{-1}\mathbf{y}$。这与核回归(Nadaraya-Watson)形式相似,但系数由数据决定,且GP给出完整的概率预测(均值和方差)。图17.21对比了GP与核回归。
17.3.5 权重空间 vs 函数空间
- 权重空间:将 $f(\mathbf{x}) = \mathbf{w}^\top\phi(\mathbf{x})$ 视为线性模型,对 $\mathbf{w}$ 施加高斯先验,则后验预测与GP一致,但GP可处理无限维特征空间。
- 函数空间:直接定义在函数上的先验,更直观。
17.3.6 数值实现
- 直接计算 $\mathbf{K}_{\mathbf{X}\mathbf{X}}^{-1}$ 需 $O(N^3)$。通常用Cholesky分解 $\mathbf{L}\mathbf{L}^\top = \mathbf{K}_{\mathbf{X}\mathbf{X}} + \sigma_y^2\mathbf{I}$,然后求解线性系统。
- 对数边际似然用于学习超参数: $$ \log p(\mathbf{y}|\mathbf{X}) = -\frac{1}{2}\mathbf{y}^\top\mathbf{K}^{-1}\mathbf{y} - \frac{1}{2}\log|\mathbf{K}| - \frac{N}{2}\log2\pi $$ 通过梯度优化核参数(如长度尺度、噪声方差)。图17.8展示不同超参数下的拟合;图17.9展示边际似然表面可能存在多个局部最优。
17.3.7 GP用于分类
- 用高斯过程定义潜函数 $f(\mathbf{x})$,通过sigmoid或probit链接得到类别概率 $p(y=1|\mathbf{x}) = \sigma(f(\mathbf{x}))$。后验无法解析求解,需近似(如拉普拉斯近似、期望传播或MCMC)。
- 示例:图17.10用GP对Iris数据分类,与逻辑回归对比,GP在远离数据区域更保守(趋近0.5)。图17.11用GP处理非线性分类问题。
17.3.8 与深度学习的联系
- 无限宽神经网络等价于高斯过程,核为神经正切核(NTK)。这解释了某些深度学习现象的泛化特性。
17.3.9 大规模GP的扩展
- 稀疏GP:引入 $M \ll N$ 个诱导点,将复杂度降至 $O(NM^2)$。
- Krylov方法:利用共轭梯度迭代求解,结合矩阵向量乘(可并行)。
- 随机特征近似:用随机傅里叶特征(RFF)或正随机特征近似核函数,将GP转化为线性模型(如Fastfood),复杂度 $O(NM + M^3)$。
17.4 支持向量机(SVM)
SVM是一种大间隔分类器,通过最大化分类间隔得到唯一解,并可用核技巧实现非线性分类。
17.4.1 大间隔分类器(硬间隔)
对于线性可分数据,希望找到超平面 $\mathbf{w}^\top\mathbf{x} + b = 0$,使得所有点满足 $y_n(\mathbf{w}^\top\mathbf{x}_n + b) \ge 1$(通过缩放使支持向量满足等式)。目标是最小化 $\frac{1}{2}\|\mathbf{w}\|^2$(等价于最大化间隔 $1/\|\mathbf{w}\|$)(图17.12)。这是凸二次规划问题。
17.4.2 对偶问题
引入拉格朗日乘子 $\alpha_n \ge 0$,得对偶问题:
$$ \max_{\boldsymbol{\alpha}} \sum_{n=1}^N \alpha_n - \frac{1}{2}\sum_{i,j} \alpha_i \alpha_j y_i y_j \mathbf{x}_i^\top\mathbf{x}_j $$约束 $\sum \alpha_n y_n = 0,\ \alpha_n \ge 0$。解满足KKT条件:$\alpha_n = 0$ 或 $y_n(\mathbf{w}^\top\mathbf{x}_n + b) = 1$。对应 $\alpha_n > 0$ 的点称为支持向量(图17.13b)。
预测函数:
$$ f(\mathbf{x}) = \sum_{n\in SV} \alpha_n y_n \mathbf{x}_n^\top\mathbf{x} + b $$17.4.3 软间隔(C-SVM)
当数据线性不可分时,引入松弛变量 $\xi_n \ge 0$,允许部分点违反间隔,目标为:
$$ \min_{\mathbf{w},b,\boldsymbol{\xi}} \frac{1}{2}\|\mathbf{w}\|^2 + C\sum_{n=1}^N \xi_n $$约束 $y_n(\mathbf{w}^\top\mathbf{x}_n + b) \ge 1 - \xi_n$。对偶问题与硬间隔相同,但约束变为 $0 \le \alpha_n \le C$。参数 $C$ 控制对错误点的惩罚。
17.4.4 核技巧
将对偶问题中的内积 $\mathbf{x}_i^\top\mathbf{x}_j$ 替换为核函数 $K(\mathbf{x}_i,\mathbf{x}_j)$,即可在高维特征空间中学习线性分类器,对应原始空间中的非线性分类:
$$ f(\mathbf{x}) = \sum_{n\in SV} \alpha_n y_n K(\mathbf{x}_n,\mathbf{x}) + b $$17.4.5 输出概率化
SVM输出不是概率。可用Platt缩放:在分离数据上训练一个逻辑回归模型 $p(y=1|\mathbf{x}) = \sigma(A f(\mathbf{x}) + B)$,参数 $A,B$ 通过验证集估计。但所得概率未必校准(图17.15)。
17.4.6 与逻辑回归的联系
SVM使用铰链损失 $\ell_{\text{hinge}}(y,f) = \max(0, 1 - y f(\mathbf{x}))$,而逻辑回归使用对数损失(图4.2)。两者都是凸上界,但铰链损失产生稀疏解(支持向量)。
17.4.7 多类SVM
- 一对多:训练 $C$ 个二类SVM,取分数最高者。但可能产生不可分类区域(图17.16a)。
- 一对一:训练 $C(C-1)/2$ 个分类器,投票决定。但可能存在平局(图17.16b)。
- 也可设计联合多类目标函数,但复杂度高。
17.4.8 参数选择
- 核参数(如RBF的 $\gamma = 1/(2\sigma^2)$)和正则化参数 $C$ 需通过交叉验证选择。图17.17展示不同 $(\gamma, C)$ 下的决策边界;图17.18是CV误差曲面,可用网格搜索。
17.4.9 核岭回归
将岭回归用核函数表示:$\hat{y}(\mathbf{x}) = \sum_{n=1}^N \alpha_n K(\mathbf{x},\mathbf{x}_n)$,其中 $\boldsymbol{\alpha} = (\mathbf{K} + \lambda\mathbf{I})^{-1}\mathbf{y}$。与GP均值公式一致(当 $\sigma_y^2 = \lambda$)。
17.4.10 SVM回归($\epsilon$-SVR)
引入 $\epsilon$-不敏感损失(图17.19a),允许预测值与真实值误差小于 $\epsilon$ 时不惩罚。引入松弛变量 $\xi^+,\xi^-$,得到二次规划问题。解为:
$$ f(\mathbf{x}) = \sum_{n\in SV} (\alpha_n^+ - \alpha_n^-) K(\mathbf{x},\mathbf{x}_n) + b $$图17.20展示不同 $C,\epsilon$ 下的拟合。
17.5 稀疏向量机
尽管SVM产生稀疏解(支持向量),但其数量仍可能很大。此外,SVM不提供概率输出。相关向量机(RVM) 通过在贝叶斯框架下引入ARD先验,得到更稀疏的解。
17.5.1 相关向量机(RVM)
- 模型:$f(\mathbf{x}) = \sum_{n=1}^N w_n K(\mathbf{x},\mathbf{x}_n) + w_0$,对权重施加高斯先验 $w_n \sim \mathcal{N}(0,\alpha_n^{-1})$,超参数 $\alpha_n$ 由数据估计(经验贝叶斯)。
- 训练通过最大化边际似然,迭代更新 $\alpha_n$,最终大部分 $\alpha_n \to \infty$,对应权重为零,实现稀疏性。
- 输出为概率(逻辑斯蒂链接用于分类),预测时给出均值与方差。
图17.21-17.23对比了L2VM(岭回归)、L1VM(Lasso)、RVM和SVM在分类和回归上的表现。RVM通常最稀疏,预测性能与SVM相当。
17.5.2 方法对比
| 方法 | 优化凸性 | 核参数调优 | 稀疏 | 概率输出 | 多类自然 | 非Mercer核 |
|---|---|---|---|---|---|---|
| SVM | 凸 | CV | 是 | 否(需后处理) | 间接 | 否 |
| L2VM | 凸 | 经验贝叶斯 | 否 | 是 | 是 | 是 |
| L1VM | 凸 | CV | 是 | 是 | 是 | 是 |
| RVM | 非凸 | 经验贝叶斯 | 是 | 是 | 是 | 是 |
| GP | N/A | 经验贝叶斯 | 否 | 是 | 是 | 否 |
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 高斯核 | 图17.1-17.2,函数样本 |
| GP回归 | 图17.7-17.8,拟合与置信区间 |
| GP分类 | 图17.10-17.11,非线性分类 |
| SVM | 图17.12-17.13,大间隔与支持向量 |
| 核SVM | 图17.17,RBF核不同参数 |
| SVM回归 | 图17.20,不同 $C,\epsilon$ |
| RVM | 图17.21-17.23,稀疏性与性能对比 |
前后章节联系
- 第2-3章:概率论与多元高斯,是GP的基础。
- 第4章:经验贝叶斯用于GP超参数估计;MAP估计与SVM联系。
- 第7章:矩阵分解(Cholesky)用于GP计算。
- 第8章:优化(如SMO)用于SVM训练。
- 第11章:线性回归与核岭回归。
- 第13章:神经网络与无限宽网络联系(NTK)。
- 第16章:核密度估计与核方法共享“核”一词,但意义不同。
- 第19章:稀疏方法(RVM)与自动相关性确定(ARD)联系。
本章核心要点
- 核函数 隐式定义高维特征空间,使线性模型能处理非线性问题。
- 高斯过程 提供完整的贝叶斯非参数框架,给出预测均值与方差,核函数编码先验假设。
- 支持向量机 通过最大化间隔得到稀疏解,核技巧使其成为非线性分类器。
- 核学习:通过边际似然(GP)或交叉验证(SVM)选择核参数。
- 稀疏向量机(如RVM)在保持良好预测性能的同时得到更稀疏的表示,并提供概率输出。
- 计算挑战:$O(N^3)$ 复杂度驱动了大量近似方法(稀疏GP、随机特征)。
常见难点
- 理解Mercer定理如何保证核函数对应特征空间内积。
- 区分高斯过程回归与核岭回归的异同(概率视角 vs 惩罚视角)。
- 掌握SVM对偶推导及KKT条件。
- 理解核技巧如何将内积替换为核函数。
- 理解RVM的稀疏性来源(ARD先验与边际似然优化)。
- 区分密度核(KDE)与正定核(Mercer核)。
学习建议
- 用
sklearn.gaussian_process实现GP回归,观察不同核的影响。 - 用
sklearn.svm.SVC实验RBF核参数(C, gamma),观察决策边界。 - 用
sklearn.kernel_ridge实现核岭回归,并与GP对比。 - 用
sklearn.kernel_approximation(如RBFSampler)体验随机特征加速。 - 阅读RVM原论文(Tipping, 2001),理解贝叶斯稀疏学习。
以上是第17章“核方法”的详细讲解。核方法是机器学习理论的重要组成部分,连接了线性模型、贝叶斯方法和非参数统计。掌握本章内容将为您理解现代非线性建模打下坚实基础。如有疑问,欢迎继续探讨!
第18章“Trees, Forests, Bagging, and Boosting”详细讲解
本章介绍一类强大的非参数模型——基于树的模型及其集成方法。决策树本身简单、可解释,但容易过拟合且不稳定。通过集成学习(如Bagging、随机森林、Boosting)组合多个树,可以显著提升预测性能,成为许多机器学习竞赛和实际问题中的利器。本章从单棵决策树出发,逐步深入到各种集成策略,并讨论如何解释树集成模型。
18.1 分类与回归树(CART)
18.1.1 模型定义
分类与回归树(CART) 是一种通过递归二分输入空间来构建预测模型的方法。
回归树:假设输入空间被划分为 $J$ 个互不相交的区域 $R_1,\ldots,R_J$,每个区域对应一个常数值输出 $w_j$。对于新输入 $\mathbf{x}$,预测值为它所在区域的 $w_j$:
$$ f(\mathbf{x}) = \sum_{j=1}^J w_j \mathbb{I}(\mathbf{x} \in R_j) $$区域由一系列轴平行分割定义,每个分割涉及一个特征和阈值。图18.1a展示了一棵回归树的结构,图18.1b是对应的分段常数曲面。
分类树:叶子节点存储一个类别分布(而不是常数)。预测时,取该叶子中多数类(或输出概率分布)。图18.2展示了一个简单的分类树示例。
18.1.2 模型拟合
CART采用贪心递归分裂的方式构建树,目标是使划分后的节点纯度尽可能高。
- 选择最佳分裂:对当前节点,遍历每个特征 $d$ 和每个可能的阈值 $t$(或类别值),计算分裂后的加权不纯度,选择不纯度下降最大的 $(d,t)$。不纯度度量可以是:
- 回归:均方误差(MSE) $$ \text{cost}(D) = \frac{1}{|D|}\sum_{n\in D} (y_n - \bar{y})^2 $$
- 分类:基尼指数 $G = \sum_c \hat{\pi}_c(1-\hat{\pi}_c) = 1 - \sum_c \hat{\pi}_c^2$ 或熵 $H = -\sum_c \hat{\pi}_c \log \hat{\pi}_c$。
- 递归分裂:对左右子节点重复上述过程,直至满足停止条件(如节点样本数过少、达到最大深度等)。
- 剪枝:为防止过拟合,可先让树充分生长,再自底向上合并对验证集误差贡献不大的节点。
18.1.3 处理缺失特征
- 代理分裂:对每个节点,除了最佳分裂特征,还记录几个相关性强的“代理”特征,当主特征缺失时用代理特征代替。
- 简单方法:将缺失值单独作为一个类别,或进行均值/众数填充。
18.1.4 优缺点
优点:
- 可解释性强(可转化为规则集)。
- 能处理混合类型数据(连续/离散)。
- 对输入缩放不敏感。
- 自动进行特征选择。
- 对离群点鲁棒。
- 可处理缺失值(通过代理分裂)。
缺点:
- 预测精度通常低于集成模型。
- 不稳定:数据微小变化可能导致树结构剧变(图18.3b-c)。
- 贪婪分裂可能导致局部最优。
- 决策边界是轴平行的,对某些问题效率低。
18.2 集成学习
集成学习通过组合多个基模型(如决策树)来获得更好的泛化性能。
18.2.1 平均法与投票法
- 回归:取各模型预测的算术平均。
- 分类:取多数投票(硬投票)或平均概率(软投票)。若基模型误差独立,投票可大幅降低错误率(式18.11)。
18.2.2 堆叠(Stacking)
用另一个模型(元学习器)来学习如何组合基模型的输出。元学习器在验证集上训练,防止过拟合。
18.2.3 集成 vs 贝叶斯模型平均
- 集成是等权或学习权重组合,而贝叶斯模型平均的权重是后验概率 $p(m|\mathcal{D})$,会随数据量增加而集中到一个模型,因此集成更灵活。
18.3 Bagging(自助聚集)
Bagging通过自助采样(bootstrap sampling)生成多个不同的训练集,分别训练基模型,再平均或投票。
- 自助采样:从原始数据集有放回地抽取 $N$ 个样本,得到一个新数据集。平均每个自助集包含约 63% 的唯一样本。
- 未抽中样本(袋外样本,OOB) 可用于评估模型,替代交叉验证。
- Bagging能降低模型的方差,尤其对不稳定模型(如决策树)效果显著。图18.4b-c展示了Bagging对决策树决策边界的平滑效果。
18.4 随机森林
随机森林在Bagging的基础上,进一步在节点分裂时随机选择特征子集,增加基模型的多样性。
- 对每个节点,从全部 $D$ 个特征中随机选取 $m \le D$ 个候选特征(通常 $m \approx \sqrt{D}$),再从中选择最优分裂特征。
- 这种“特征采样”使树之间的相关性降低,从而进一步减小方差。
- 随机森林通常比Bagging性能更好,尤其当特征中有大量无关变量时(图18.5)。
18.5 Boosting
Boosting是一种序贯集成方法,每个新模型尝试纠正前面模型的错误。与Bagging不同,Boosting主要降低偏差。
18.5.1 前向分步加性建模
假设最终模型为 $f(\mathbf{x}) = \sum_{m=1}^M \beta_m F_m(\mathbf{x};\theta_m)$,其中 $F_m$ 为弱学习器(如小树)。通过贪心方式逐次添加新模型:
$$ (\beta_m,\theta_m) = \arg\min_{\beta,\theta} \sum_{n=1}^N \ell\left(y_n, f_{m-1}(\mathbf{x}_n) + \beta F(\mathbf{x}_n;\theta)\right) $$18.5.2 最小二乘提升(L2Boosting)
当损失为平方损失时,每一步拟合当前残差 $r_{in} = y_n - f_{m-1}(\mathbf{x}_n)$,取 $\beta=1$。图18.6展示一个1d示例,每棵新树拟合残差。
18.5.3 AdaBoost(指数损失)
用于二分类($y \in \{-1,+1\}$),损失为指数损失 $\ell(y,f) = \exp(-y f(\mathbf{x}))$。推导得:
- 弱分类器 $F_m$ 拟合带权样本(权重为 $\omega_{n,m} = \exp(-y_n f_{m-1}(\mathbf{x}_n))$)。
- 权重更新:$\omega_{n,m+1} = \omega_{n,m} \exp(\alpha_m \mathbb{I}(y_n \neq F_m(\mathbf{x}_n)))$,其中 $\alpha_m = \frac{1}{2}\log\frac{1-\text{err}_m}{\text{err}_m}$。
- 最终预测:$f(\mathbf{x}) = \mathrm{sign}\left(\sum_{m=1}^M \alpha_m F_m(\mathbf{x})\right)$。
AdaBoost对离群点敏感,因为指数损失对错误样本惩罚极大(图18.7)。
18.5.4 LogitBoost(对数损失)
用对数损失代替指数损失,得到概率输出。每一步拟合一个加权最小二乘问题,其中目标为“工作响应” $z_i = \frac{y_i^* - \pi_i}{\pi_i(1-\pi_i)}$($y_i^* \in \{0,1\}$,$\pi_i$ 为当前预测概率)。算法18.2给出流程。
18.5.5 梯度提升(Gradient Boosting)
梯度提升将Boosting解释为函数空间中的梯度下降。每一步,计算损失关于当前预测 $f_{m-1}(\mathbf{x}_n)$ 的负梯度 $-g_{in}$,然后用基学习器拟合该梯度(回归)。常见损失及其梯度见表18.1。
- 梯度提升树(GBDT):基学习器为回归树。
- XGBoost:增加正则化(树复杂度惩罚)、二阶梯度近似、列采样等,成为高效实现。
- LightGBM、CatBoost:进一步优化速度和类别特征处理。
18.6 解释树集成
集成模型虽好,但失去了单棵树的解释性。可用以下工具分析:
18.6.1 特征重要性
对单棵树,特征 $k$ 的重要性为所有使用该特征分裂节点的不纯度减少量之和。对集成,取所有树的平均。图18.8展示MNIST分类中重要像素;图18.9展示垃圾邮件分类中重要词。
18.6.2 部分依赖图(PDP)
显示特征 $k$ 对预测的平均边际效应:
$$ \bar{f}_k(x_k) = \frac{1}{N}\sum_{n=1}^N f(\mathbf{x}_{n,-k}, x_k) $$图18.10a展示4个特征的部分依赖;图18.10b展示两特征的联合部分依赖,可捕捉交互。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 回归树 | 图18.1,两个特征的回归树 |
| 分类树 | 图18.2,动物分类树 |
| 决策树不稳定性 | 图18.3,单点变化导致树结构改变 |
| Bagging | 图18.4b-c,决策边界平滑 |
| 随机森林 | 图18.4d,特征采样进一步提高性能 |
| AdaBoost | 图18.7,指数损失 |
| 梯度提升 | 图18.6,逐步拟合残差 |
| 特征重要性 | 图18.8-18.9,MNIST和垃圾邮件 |
| 部分依赖图 | 图18.10,垃圾邮件特征 |
前后章节联系
- 第4章:偏差-方差分解解释Bagging和Boosting的不同效果。
- 第8章:梯度提升中的优化思想(梯度下降)。
- 第13章:神经网络与树集成对比,集成常用于表格数据。
- 第16章:KNN与决策树都是非参数方法,但决策树可解释性更强。
- 第19章:少样本学习中可用树集成作为基模型。
本章核心要点
- 决策树:可解释但易过拟合、不稳定。
- Bagging:通过自助采样降低方差,对不稳定模型有效。
- 随机森林:在Bagging基础上增加特征采样,进一步提升性能。
- Boosting:序贯拟合残差,降低偏差,常用损失有指数损失(AdaBoost)和对数损失(LogitBoost)。
- 梯度提升:通用框架,可适用于任意可微损失,XGBoost等工具高效实现。
- 解释:特征重要性和部分依赖图帮助理解黑箱集成模型。
常见难点
- 理解Bagging和Boosting在偏差-方差上的不同作用。
- 掌握AdaBoost中样本权重更新与弱分类器权重 $\alpha_m$ 的推导。
- 理解梯度提升中的负梯度与残差的关系(平方损失时即为残差)。
- 区分不同不纯度度量(基尼、熵)的实际效果。
- 理解随机森林中特征采样的作用(降低相关性)。
学习建议
- 用
sklearn.tree实现决策树,观察剪枝效果。 - 用
sklearn.ensemble中的RandomForestClassifier、AdaBoostClassifier、GradientBoostingClassifier在数据集上实验,比较性能。 - 阅读XGBoost原论文,理解其优化技巧。
- 用
eli5或sklearn.inspection绘制特征重要性和部分依赖图。 - 尝试用梯度提升处理回归问题,观察学习曲线。
以上是第18章“树、森林、Bagging和Boosting”的详细讲解。树集成方法在实践中非常强大,理解其原理对构建高性能模型至关重要。如有疑问,欢迎继续探讨!
第19章“Learning with Fewer Labeled Examples”详细讲解
在实际应用中,获取大量高质量标注数据往往成本高昂甚至不可行。本章介绍一系列技术,旨在利用有限的标注数据和(通常丰富的)未标注数据,或通过迁移已有知识,来训练高性能模型。这些方法包括数据增强、迁移学习、半监督学习、主动学习、元学习、少样本学习和弱监督学习。掌握这些技术对应对数据稀缺场景至关重要。
19.1 引言
- 问题:许多现代模型(尤其是深度神经网络)需要大量标注数据才能发挥性能,否则容易过拟合。
- 解决方案:
- 从数据本身入手:数据增强(生成更多样本)。
- 从外部知识入手:迁移学习(利用其他任务的数据)。
- 从未标注数据入手:半监督学习(利用未标注数据)。
- 从数据获取策略入手:主动学习(智能选择标注样本)。
- 从学习机制入手:元学习(学会快速适应新任务)。
- 从监督信号形式入手:弱监督学习(利用不完全、不精确的标签)。
19.2 数据增强
19.2.1 概念
数据增强指通过对原始训练样本施加一系列保持语义不变的变换,生成新的训练样本,从而扩大数据集规模。
- 图像:随机裁剪、水平翻转、旋转、色彩抖动、添加噪声等(图19.1)。
- 文本:同义词替换、随机插入/删除、回译等。
- 语音:添加背景噪声、变速、音调变换。
19.2.2 理论依据
- 从经验风险最小化(ERM)角度看,数据增强相当于用邻域风险最小化(Vicinal Risk Minimization)替代ERM: $$ \tilde{p}_{\mathcal{D}}(\mathbf{x},y|\mathcal{A}) = \frac{1}{N}\sum_{n=1}^N p(\mathbf{x}|\mathbf{x}_n,\mathcal{A})\delta(y-y_n) $$ 其中 $p(\mathbf{x}|\mathbf{x}_n,\mathcal{A})$ 是由增强策略定义的分布。这等价于在训练点附近施加平滑性先验。
19.3 迁移学习
迁移学习将从一个源任务学到的知识应用到另一个目标任务上,通常源任务数据丰富,目标任务数据稀缺。
19.3.1 微调
- 预训练:在大型源数据集(如ImageNet)上训练一个模型(如CNN),得到参数 $\theta_p$。
- 模型修改:保留除最后输出层外的所有层,替换为适应目标任务的新输出层(随机初始化)。
- 微调:用目标数据集继续训练整个模型(或仅新层),通常使用较小学习率以防破坏已学特征。图19.2展示这一过程。
19.3.2 适配器
- 问题:微调需更新所有参数,每个任务需存储完整模型。
- 适配器:在预训练模型的各层之间插入少量可训练模块(如瓶颈MLP),训练时只更新这些模块和输出层,主体参数冻结(图19.3)。这样每个任务只需存储少量参数,便于多任务部署。
19.3.3 有监督预训练
- 典型例子:ImageNet预训练的分类器作为通用特征提取器,用于下游视觉任务(目标检测、分割等)。
19.3.4 无监督预训练(自监督学习)
- 思想:从无标签数据中构造代理任务(pretext task),通过解决代理任务学习有用的表示。
- 常见代理任务:
- 填补空白(图19.4a):如图像修复(Context Encoder)、BERT的掩码语言模型。
- 预测变换(图19.4b):如预测旋转角度、拼图排列顺序。
- 对比学习:拉近同一图像不同增强视图的表示,推远不同图像视图的表示(SimCLR、MoCo、CLIP)。
19.3.4.1 SimCLR
- 对每个图像 $\mathbf{x}$,随机应用两种数据增强得到 $\tilde{\mathbf{x}}_i, \tilde{\mathbf{x}}_j$,作为正对。
- 用编码器 $f$ 得到表示 $\mathbf{h}_i = f(\tilde{\mathbf{x}}_i)$,再经投影头 $g$ 得到 $\mathbf{z}_i = g(\mathbf{h}_i)$。
- 对比损失(NT-Xent): $$ \ell_{i,j} = -\log \frac{\exp(\mathrm{sim}(\mathbf{z}_i,\mathbf{z}_j)/\tau)}{\sum_{k=1}^{2N} \mathbb{I}_{[k\neq i]}\exp(\mathrm{sim}(\mathbf{z}_i,\mathbf{z}_k)/\tau)} $$ 其中 $\mathrm{sim}$ 为余弦相似度。该损失最大化正对相似性,最小化与其他所有负例的相似性(图19.5-19.6)。
19.3.4.2 CLIP
- 对图像-文本对,分别用图像编码器和文本编码器得到归一化嵌入 $\mathbf{I}_i, \mathbf{T}_i$。
- 目标:使 $N$ 个正对的余弦相似度 $\mathbf{I}_i^\top\mathbf{T}_i$ 尽可能大,而与其他 $N-1$ 个负对的相似度尽可能小(对称交叉熵损失,式19.12)。图19.7展示训练和零样本预测过程。
19.3.5 领域自适应
- 问题:源域与目标域分布不同(如合成图像 vs 真实图像),但任务相同(如图像分类)。
- 方法:对抗域自适应,训练特征提取器使域分类器无法区分样本来自源域还是目标域,同时保持任务性能(式19.15)。
19.4 半监督学习
半监督学习利用大量未标注数据辅助少量标注数据训练。
19.4.1 自训练与伪标签
- 步骤:
- 用标注数据训练初始模型。
- 用模型对未标注数据预测,得到伪标签。
- 将高置信度的伪标签样本加入训练集,重新训练。
- 重复迭代。
- 问题:可能强化错误(确认偏差)。可通过选择度量(如置信度阈值)筛选可靠伪标签。
19.4.2 熵最小化
- 对未标注数据,鼓励模型输出低熵(即高置信度)预测。损失为: $$ L_{\text{ent}} = -\sum_{c} p(y=c|\mathbf{x}) \log p(y=c|\mathbf{x}) $$
- 结合簇假设:决策边界应位于数据稀疏区域(图19.10)。熵最小化迫使模型远离低密度区域。
19.4.3 协同训练
- 假设数据有两个独立且充分的视图(如网页的文本和链接)。分别在每个视图上训练模型,用高置信度预测为另一视图生成伪标签,交替迭代。
- 三体训练:用三个不同初始化的模型,当两个模型对某样本预测一致时,作为第三个模型的伪标签。
19.4.4 图上的标签传播
- 构建图,节点为所有样本(标注+未标注),边权重表示相似度(如RBF核)。通过迭代传播标签(图拉普拉斯正则化),使相邻节点标签相近(算法19.1)。这是一种直推式学习,但可得到标签后训练归纳式模型。
19.4.5 一致性正则化
- 思想:对输入施加微小扰动,模型输出应保持一致。对未标注数据,最小化: $$ \|p_{\theta}(y|\mathbf{x}) - p_{\theta}(y|\tilde{\mathbf{x}})\|^2 $$ 其中 $\tilde{\mathbf{x}}$ 为 $\mathbf{x}$ 的增强版本。梯度只传向其中一个分支(图19.11)。
- 虚拟对抗训练(VAT):寻找使模型输出变化最大的扰动方向,加强鲁棒性。
19.4.6 深度生成模型 *
- 变分自编码器(VAE):对标注数据,最大化 $p(\mathbf{x},y)$ 的ELBO;对未标注数据,最大化 $p(\mathbf{x})$ 的ELBO,其中隐变量包括 $y$ 和连续潜变量 $\mathbf{z}$。同时可加分类损失(式19.38)。
- 生成对抗网络(GAN):判别器同时输出类别和真假(图19.12)。
- 标准化流:将数据映射到高斯混合潜空间,通过似然分类(式19.44)。
19.4.7 结合自监督与半监督
- 先用自监督学习(如SimCLR)在未标注数据上预训练,再在少量标注数据上微调,最后用微调模型为未标注数据生成伪标签,蒸馏到新模型(图19.13)。
19.5 主动学习
主动学习旨在选择最有价值的样本请求标注,以最小化标注成本。
19.5.1 决策理论方法
- 选择使未来期望损失减少最大的样本(式19.46)。计算复杂,需枚举所有可能标注结果。
19.5.2 信息理论方法
- BALD(贝叶斯主动学习分歧):选择能使模型参数不确定性降低最多的样本: $$ U(\mathbf{x}) = H[p(\theta|\mathcal{D})] - \mathbb{E}_{p(y|\mathbf{x},\mathcal{D})}[H[p(\theta|\mathcal{D},\mathbf{x},y)]] $$ 等价于互信息 $I(\theta,y|\mathbf{x},\mathcal{D})$。可重写为预测熵与期望条件熵之差(式19.51),避免计算参数后验。
19.5.3 批处理主动学习
- 选择一批样本,最大化信息增益。由于组合优化困难,常用贪心策略,结合子模性可保证近似最优(如BatchBALD)。
19.6 元学习
元学习(学习如何学习)旨在通过多个相关任务的学习,使模型能快速适应新任务。
19.6.1 模型无关元学习(MAML)
- 思想:学习一组初始参数 $\phi$,使得在任意新任务上,通过少量梯度更新就能达到良好性能。
- 训练过程:
- 采样任务 $T_j$,从该任务的支持集计算损失,对 $\phi$ 进行一次或几步梯度更新得到 $\theta_j'$。
- 用 $\theta_j'$ 在该任务的查询集上计算损失,反向传播更新 $\phi$(元更新)。
- 可解释为在层次贝叶斯框架中学习先验(图19.14)。
19.7 少样本学习
少样本学习指从每个类仅有少量(如1-5个)标注样本的任务中学习。
19.7.1 匹配网络
- 模型:给定支持集 $S$(含 $K$ 个类别,每类 $N$ 个样本),对新样本 $\mathbf{x}$ 预测: $$ p(y|\mathbf{x},S) = \sum_{(\mathbf{x}_n,y_n)\in S} a(\mathbf{x},\mathbf{x}_n) y_n $$ 其中 $a$ 为注意力权重(如基于余弦相似度的softmax),$y_n$ 为 one-hot 标签。
- 训练:从基类中采样多个“情节”(episode),每个情节模拟一个少样本任务,通过元学习训练 $a$ 中的特征提取器(图19.16)。
19.8 弱监督学习
- 标签平滑:将硬标签替换为软标签(如90%原类,其余均匀分布),防止过拟合。
- 多实例学习(MIL):训练样本以包形式给出,包标签为正当且仅当包内至少有一个正实例。需推断哪些实例为正。
- 远程监督:利用知识库自动标注文本,但标签可能含噪。需设计鲁棒模型(如第10.4节)。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 数据增强 | 图19.1,随机裁剪缩放图像 |
| 微调 | 图19.2,ImageNet预训练模型用于新分类任务 |
| 适配器 | 图19.3,Transformer中插入适配层 |
| SimCLR | 图19.5-19.6,对比学习图像表示 |
| CLIP | 图19.7,图文匹配零样本分类 |
| 熵最小化 | 图19.10,决策边界移向低密度区 |
| 一致性正则化 | 图19.11,平方误差与KL对比 |
| 半监督GAN | 图19.12,判别器输出类别+真假 |
| BALD | 主动学习选择最不确定样本 |
| MAML | 图19.14,元学习框架 |
| 匹配网络 | 图19.16,注意力机制实现少样本分类 |
前后章节联系
- 第4章:正则化与贝叶斯推断(用于半监督生成模型)。
- 第5章:决策理论(用于主动学习)。
- 第8章:优化(MAML中的双层优化)。
- 第13-15章:神经网络(作为所有方法的基础模型)。
- 第16章:度量学习(少样本学习中的距离度量)。
- 第17章:高斯过程(可用于主动学习中的不确定性估计)。
- 第18章:集成方法(可结合自训练)。
本章核心要点
- 数据增强:低成本扩增数据,通过邻域风险最小化隐式施加先验。
- 迁移学习:利用源任务知识,微调或适配器可大幅减少目标任务所需数据。
- 自监督学习:从无标签数据中通过代理任务学习表示,对比学习成为主流。
- 半监督学习:利用未标注数据提升模型,包括伪标签、熵最小化、一致性正则化、生成模型等。
- 主动学习:智能选择样本标注,最大化信息增益。
- 元学习:学习适应新任务的能力,MAML是代表。
- 少样本学习:基于度量或元学习,从极少量样本中学习新类别。
- 弱监督学习:处理不完美标签,包括平滑、MIL、远程监督。
常见难点
- 理解对比损失(InfoNCE)与互信息的关系。
- 区分半监督学习中的一致性正则化与数据增强的不同。
- 掌握MAML中双层优化的梯度计算(通过计算图)。
- 理解匹配网络中注意力机制与度量学习的关系。
- 区分主动学习中的BALD与熵采样(前者考虑参数不确定性)。
学习建议
- 用
torchvision.transforms实现图像数据增强,观察效果。 - 用预训练模型(如ResNet)微调自己的小数据集。
- 用
transformers库微调BERT进行文本分类。 - 用
sklearn的主动学习模块(如ModAL)实验BALD。 - 用
learn2learn库实现MAML进行少样本学习。 - 阅读SimCLR、CLIP、BERT原论文,深入理解自监督学习。
以上是第19章“少标签学习”的详细讲解。这些技术是现代机器学习应对数据稀缺场景的核心工具,掌握它们对解决实际问题至关重要。如有疑问,欢迎继续探讨!
第20章“Dimensionality Reduction”详细讲解
本章讨论降维——将高维数据映射到低维空间的技术。降维可用于数据可视化、压缩、去噪以及作为后续任务的预处理。我们从最经典的线性方法(PCA)开始,逐步引入概率视角(因子分析、PPCA)、非线性神经网络方法(自编码器)以及各种非线性流形学习技术,最后介绍词嵌入这一特殊应用。
20.1 引言
- 高维数据的挑战:维度灾难、计算开销大、可视化困难。
- 降维目标:找到数据的低维表示,尽可能保留原始信息(通常是某种距离或拓扑结构)。
- 分类:
- 线性 vs 非线性
- 参数化(学习映射函数) vs 非参数化(仅学习嵌入)
20.2 主成分分析(PCA)
PCA是最常用的线性降维方法,寻找数据最大方差方向的正交投影。
20.2.1 基本思想
- 给定中心化数据 $\{\mathbf{x}_n\}_{n=1}^N$,PCA寻找一组正交基 $\mathbf{w}_1,\ldots,\mathbf{w}_L$,使得投影后的方差最大(或重构误差最小)。
- 重构误差视角:令 $\hat{\mathbf{x}}_n = \sum_{k=1}^L z_{nk}\mathbf{w}_k$,其中 $z_{nk} = \mathbf{w}_k^\top\mathbf{x}_n$。最小化: $$ J = \frac{1}{N}\sum_{n=1}^N \|\mathbf{x}_n - \hat{\mathbf{x}}_n\|^2 $$ 约束 $\mathbf{w}_k$ 正交且单位长度。
20.2.2 推导与解
- 第一个主成分 $\mathbf{w}_1$ 最大化 $\mathbf{w}_1^\top\mathbf{S}\mathbf{w}_1$,其中 $\mathbf{S} = \frac{1}{N}\sum_n \mathbf{x}_n\mathbf{x}_n^\top$(协方差矩阵)。由瑞利商知,解为 $\mathbf{S}$ 的最大特征值对应的特征向量。
- 后续主成分为剩余最大特征值对应的特征向量,且与前面正交。
20.2.3 计算
- 对协方差矩阵进行特征分解,或对数据矩阵进行奇异值分解(SVD):设 $\mathbf{X}$ 为中心化数据矩阵($N\times D$),则 $\mathbf{X} = \mathbf{U}\mathbf{\Sigma}\mathbf{V}^\top$,主成分方向为 $\mathbf{V}$ 的前 $L$ 列,得分矩阵为 $\mathbf{U}\mathbf{\Sigma}$ 的前 $L$ 列(图20.1-20.2)。
- 应用:图20.2展示MNIST数字投影到2d,第一主成分对应倾斜度,第二主成分对应笔画粗细。图20.3展示人脸图像的“特征脸”(eigenfaces)。
20.2.4 选择维数 $L$
- 重构误差随 $L$ 增加单调递减(图20.6a),无法用验证集选择。
- 碎石图(scree plot):特征值 $\lambda_j$ 按降序排列,寻找“肘部”(图20.7)。
- 轮廓似然法:将特征值分为两组(信号 vs 噪声),通过最大轮廓似然确定 $L$(图20.8)。
20.2.5 概率PCA(PPCA)
- 将PCA扩展为概率模型: $$ \mathbf{z} \sim \mathcal{N}(\mathbf{0},\mathbf{I}),\quad \mathbf{x}|\mathbf{z} \sim \mathcal{N}(\mathbf{W}\mathbf{z}+\boldsymbol{\mu},\sigma^2\mathbf{I}) $$
- 边际分布 $p(\mathbf{x}) = \mathcal{N}(\boldsymbol{\mu},\mathbf{W}\mathbf{W}^\top + \sigma^2\mathbf{I})$。MLE解 $\hat{\mathbf{W}}$ 张成与PCA相同的子空间(式20.45)。
- 优势:可用EM算法处理缺失数据;可扩展为混合模型。
20.3 因子分析(FA)
20.3.1 生成式模型
因子分析假设观测变量由少量潜在因子线性组合再加噪声生成:
$$ \mathbf{z} \sim \mathcal{N}(\mathbf{0},\mathbf{I}),\quad \mathbf{x}|\mathbf{z} \sim \mathcal{N}(\mathbf{W}\mathbf{z}+\boldsymbol{\mu},\boldsymbol{\Psi}) $$其中 $\boldsymbol{\Psi}$ 为对角矩阵(各维独立噪声)。这允许每个维度有自己的噪声方差,比PPCA更灵活。
- 边际分布:$\mathbf{x} \sim \mathcal{N}(\boldsymbol{\mu},\mathbf{W}\mathbf{W}^\top + \boldsymbol{\Psi})$。
20.3.2 EM算法
E步计算后验 $p(\mathbf{z}|\mathbf{x})$(高斯),M步更新 $\mathbf{W}$ 和 $\boldsymbol{\Psi}$(式20.54-20.60)。EM可处理缺失数据。
20.3.3 与PCA的关系
- 当 $\boldsymbol{\Psi} = \sigma^2\mathbf{I}$ 且 $\mathbf{W}$ 列正交时,FA退化为PPCA。
- 当 $\sigma^2 \to 0$ 时,PPCA趋于标准PCA。
20.3.4 扩展
- 混合因子分析(MFA):多个FA模型的混合,适用于非高斯分布数据(图20.12)。
- 指数族FA:将输出分布扩展为指数族(如伯努利用于二值数据),得到二值PCA(图20.13)或分类PCA。
20.4 自编码器(Autoencoder)
自编码器是用神经网络实现的非线性降维方法。
20.4.1 基本结构
- 编码器 $f_e: \mathbb{R}^D \to \mathbb{R}^L$,将输入映射到低维表示。
- 解码器 $f_d: \mathbb{R}^L \to \mathbb{R}^D$,从表示重构输入。
- 训练目标:最小化重构误差 $\|\mathbf{x} - f_d(f_e(\mathbf{x}))\|^2$。
20.4.2 线性自编码器
若编码器和解码器均为线性(且无偏置),则学到的表示等价于PCA(张成相同子空间)。
20.4.3 非线性自编码器
使用非线性激活函数(如ReLU)可学习更丰富的表示。图20.17展示在Fashion MNIST上的重构结果,图20.18展示学到的2d嵌入(经t-SNE可视化)。
20.4.4 正则化自编码器
为防止过拟合和恒等映射,引入各种约束:
- 欠完备自编码器:$L < D$,强制信息压缩。
- 去噪自编码器(DAE):输入加噪声,学习重构干净版本,等价于学习数据分布的梯度(图20.20)。
- 稀疏自编码器:对隐层激活施加 $\ell_1$ 惩罚或KL散度惩罚,使大部分神经元“关闭”(图20.21)。
- 收缩自编码器(CAE):惩罚编码器Jacobian的Frobenius范数,使表示对输入微小变化不敏感。
20.4.5 变分自编码器(VAE)
- 概率生成模型:假设数据由潜变量 $\mathbf{z}$ 生成,$\mathbf{z} \sim \mathcal{N}(\mathbf{0},\mathbf{I})$,$\mathbf{x}|\mathbf{z} \sim \mathcal{N}(f_d(\mathbf{z}),\sigma^2\mathbf{I})$(或伯努利)。
- 推断网络 $q_\phi(\mathbf{z}|\mathbf{x}) = \mathcal{N}(\mathbf{z}|\boldsymbol{\mu}_\phi(\mathbf{x}),\boldsymbol{\sigma}_\phi^2(\mathbf{x}))$ 近似后验。
- 证据下界(ELBO): $$ \mathcal{L}(\theta,\phi;\mathbf{x}) = \mathbb{E}_{q_\phi(\mathbf{z}|\mathbf{x})}[\log p_\theta(\mathbf{x}|\mathbf{z})] - D_{\mathrm{KL}}(q_\phi(\mathbf{z}|\mathbf{x})\|p(\mathbf{z})) $$
- 重参数化技巧:$\mathbf{z} = \boldsymbol{\mu} + \boldsymbol{\sigma}\odot\boldsymbol{\epsilon},\ \boldsymbol{\epsilon}\sim\mathcal{N}(\mathbf{0},\mathbf{I})$,使梯度可反向传播。
- VAE能生成新样本,且潜空间光滑,可进行插值(图20.24-20.27)。
20.5 流形学习
流形学习假设高维数据位于低维光滑流形上,旨在恢复其内在几何结构。
20.5.1 多维缩放(MDS)
- 经典MDS:给定距离矩阵 $\mathbf{D}$,通过双中心化得到内积矩阵,再特征分解得到嵌入,等价于PCA(当用欧氏距离时)。
- 度量MDS:直接最小化 $\sum_{i
- 非度量MDS:只保持距离的顺序。
20.5.2 Isomap
- 用图最短路径近似测地距离,再应用MDS(图20.32-20.33)。对噪声敏感(图20.34)。
20.5.3 核PCA
- 用核函数隐式映射到高维特征空间,再进行PCA。需中心化核矩阵(式7.89)。图20.35展示核PCA的前几个主成分,图20.36对比Isomap。
20.5.4 最大方差展开(MVU)
- 保持邻域距离,同时最大化非邻域点距离,通过半定规划求解(式20.116)。
20.5.5 局部线性嵌入(LLE)
- 假设每个点可由其邻居线性重构,保持重构权重不变,求低维嵌入(式20.117-20.120)。图20.37展示结果。
20.5.6 拉普拉斯特征映射
- 最小化加权距离 $\sum_{i,j} W_{ij}\|\mathbf{z}_i-\mathbf{z}_j\|^2$,其中 $W_{ij}$ 为邻域相似度。解为拉普拉斯矩阵的特征向量(图20.38)。
20.5.7 t-SNE
- 将高维相似度(高斯核)与低维相似度(t分布)的KL散度最小化,有效解决“拥挤问题”。图20.41-20.42展示t-SNE在瑞士卷和MNIST上的效果,注意困惑度参数的影响。
- UMAP:改进t-SNE,速度更快,更好地保留全局结构。
20.6 词嵌入
词嵌入是将离散词符号映射到连续向量空间的技术,使语义相似的词向量相近。
20.6.1 潜在语义分析(LSA)
- 对词-文档共现矩阵(或词-词共现矩阵)进行SVD,取左奇异向量作为词向量。常用点互信息(PMI) 加权。
20.6.2 Word2vec
- CBOW:用上下文词预测中心词。
- Skip-gram:用中心词预测上下文词(图20.44)。
- 负采样(NEG):用二分类替代softmax,大幅加速。
20.6.3 GloVe
- 直接对词共现计数矩阵进行加权对数双线性回归(式20.156),结合全局统计与局部上下文。
20.6.4 词类比
- 词向量空间中的线性关系:$\mathbf{v}_{\text{king}} - \mathbf{v}_{\text{man}} + \mathbf{v}_{\text{woman}} \approx \mathbf{v}_{\text{queen}}$(图20.45)。
20.6.5 RAND-WALK模型
- 用随机游走生成文本的理论模型,推导出PMI矩阵的近似低秩分解,为词嵌入提供理论解释。
20.6.6 上下文词嵌入
- ELMo、BERT等根据上下文动态生成词向量(详见第15章)。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| PCA | 图20.2,MNIST数字投影;图20.3,特征脸 |
| PPCA | 图20.10,EM算法演示 |
| 因子分析 | 图20.13,二值PCA复原 |
| 自编码器 | 图20.17-20.18,Fashion MNIST重构与嵌入 |
| VAE | 图20.24-20.27,生成与插值 |
| Isomap | 图20.33,瑞士卷展开 |
| t-SNE | 图20.41-20.42,MNIST和瑞士卷 |
| Word2vec | 图20.45,词类比 |
前后章节联系
- 第7章:SVD、特征分解、矩阵运算是PCA、SVD的基础。
- 第8章:EM算法用于因子分析和PPCA。
- 第11章:线性回归与PCA的投影思想相通。
- 第13-14章:自编码器是神经网络在降维中的应用。
- 第15章:词嵌入与语言模型结合(BERT等)。
- 第16章:度量学习与t-SNE的相似性。
- 第17章:核PCA与核方法。
本章核心要点
- PCA:线性降维的基石,通过最大方差方向投影,可用SVD高效计算。
- 概率视角(FA/PPCA):将降维视为生成模型,可用EM处理缺失值,并扩展为混合模型。
- 自编码器:神经网络实现非线性降维,VAE将自编码器与概率生成模型结合。
- 流形学习:假设数据位于低维流形上,通过保持局部几何结构(如Isomap、LLE、t-SNE)恢复嵌入,主要用于可视化。
- 词嵌入:将离散词映射到连续空间,基于共现统计(LSA、GloVe)或预测(Word2vec),是现代NLP的基础。
常见难点
- 理解PCA的最大方差与最小重构误差的等价性。
- 掌握PPCA与标准PCA的关系($\sigma^2 \to 0$ 时)。
- 区分自编码器的不同正则化形式(稀疏、去噪、收缩)及其动机。
- 理解VAE中重参数化技巧的作用。
- 掌握t-SNE的梯度公式及“拥挤问题”的解决。
- 理解词嵌入中负采样加速的原理。
学习建议
- 用
sklearn.decomposition.PCA对图像数据降维并可视化。 - 用
sklearn.manifold中的Isomap、t-SNE等对比效果。 - 用PyTorch实现简单自编码器,观察重构结果。
- 用
transformers库获取BERT上下文嵌入,比较与静态词向量的差异。 - 阅读Word2vec、GloVe原论文,理解其损失函数推导。
以上是第20章“降维”的详细讲解。降维技术是理解数据结构和预处理的重要工具,掌握它们将为后续分析和建模打下坚实基础。如有疑问,欢迎继续探讨!
第21章“Clustering”详细讲解
聚类(Clustering)是无监督学习的核心任务之一,旨在将数据划分为若干簇(cluster),使得同一簇内的样本相似度高,不同簇的样本相似度低。本章系统介绍三类主要的聚类方法:层次聚类、划分式聚类(K-means)、基于模型的聚类(混合模型),以及谱聚类和双聚类等进阶主题。理解聚类对数据探索、模式发现、数据预处理等具有重要意义。
21.1 引言
- 问题定义:给定数据集 $\mathcal{D} = \{\mathbf{x}_1,\ldots,\mathbf{x}_N\}$($\mathbf{x}_n \in \mathbb{R}^D$)或一个 $N\times N$ 的相异度矩阵 $\mathbf{D}$,目标是将其划分为 $K$ 个簇,使簇内相似度高、簇间相似度低。
- 聚类 vs 分类:聚类是无监督的,没有标签指导;分类是有监督的。
21.1.1 聚类评估
由于无监督,评估聚类质量较为困难,常分为两类指标:
内部指标(internal indices)
仅使用数据本身的属性,如簇内平方和(WCSS):
$$ \text{WCSS} = \sum_{k=1}^K \sum_{\mathbf{x}\in C_k} \|\mathbf{x} - \boldsymbol{\mu}_k\|^2 $$WCSS随 $K$ 增大而单调递减,因此不能直接用于选 $K$。
外部指标(external indices)
当有真实标签(或参考聚类)可用时,比较聚类结果与真实标签的吻合度。
纯度(purity):
$$ \text{purity} = \frac{1}{N}\sum_{k=1}^K \max_{j} |C_k \cap L_j| $$其中 $L_j$ 是真实类别 $j$ 的样本集。纯度易受簇数影响(单点簇可得纯度1)。
Rand指数(Rand index):
$$ R = \frac{TP + TN}{TP + FP + FN + TN} $$其中 TP(真阳性)指同一簇且同一类的点对,TN(真阴性)指不同簇且不同类的点对,FP(假阳性)指同一簇但不同类,FN(假阴性)指不同簇但同类。Rand指数取值 $[0,1]$,但期望值随簇数变化,故常用调整Rand指数(ARI),校正了随机划分的期望值。
互信息(mutual information):
$$ I(U,V) = \sum_{i=1}^R\sum_{j=1}^C \frac{|U_i\cap V_j|}{N} \log \frac{N|U_i\cap V_j|}{|U_i||V_j|} $$可用归一化互信息(NMI) 调整量纲。
21.2 层次凝聚聚类(HAC)
层次聚类构建一个嵌套的簇树(树状图,dendrogram),无需预先指定簇数。
21.2.1 算法
HAC自底向上合并簇:
- 初始化:每个样本为一个簇。
- 重复:找到距离最近的两个簇,合并之,直到只剩一个簇。
21.2.2 簇间距离度量
- 单链接(single linkage):两个簇间最近样本的距离 $d_{\min}(C_i,C_j) = \min_{\mathbf{x}\in C_i,\mathbf{y}\in C_j} d(\mathbf{x},\mathbf{y})$。易产生链状簇(图21.3a)。
- 全链接(complete linkage):两个簇间最远样本的距离 $d_{\max}(C_i,C_j) = \max_{\mathbf{x}\in C_i,\mathbf{y}\in C_j} d(\mathbf{x},\mathbf{y})$。倾向于生成紧凑的球形簇(图21.3b)。
- 平均链接(average linkage):两个簇间所有样本对距离的平均 $d_{\text{avg}}(C_i,C_j) = \frac{1}{|C_i||C_j|}\sum_{\mathbf{x}\in C_i}\sum_{\mathbf{y}\in C_j} d(\mathbf{x},\mathbf{y})$。平衡前两者(图21.3c)。
21.2.3 示例
图21.2展示了五个点的单链接聚类过程及树状图。图21.4对比了三种链接在酵母基因表达数据上的聚类结果。图21.5-21.6展示了对时间序列数据的聚类。
21.3 K-means聚类
K-means是最常用的划分式聚类算法,通过迭代优化簇内平方和(WCSS)得到 $K$ 个簇。
21.3.1 算法
- 初始化 $K$ 个簇中心 $\boldsymbol{\mu}_1,\ldots,\boldsymbol{\mu}_K$。
- 重复直到收敛:
- 分配步骤:将每个样本分配到最近的中心: $$ z_n = \arg\min_{k} \|\mathbf{x}_n - \boldsymbol{\mu}_k\|^2 $$
- 更新步骤:重新计算每个簇的中心: $$ \boldsymbol{\mu}_k = \frac{1}{N_k}\sum_{n:z_n=k} \mathbf{x}_n $$
该算法保证收敛到局部最优(图21.7)。
21.3.2 初始化
K-means对初始中心敏感,常用:
- 随机选取 $K$ 个样本。
- K-means++:以概率 $ \frac{D(\mathbf{x})^2}{\sum_{\mathbf{x}'} D(\mathbf{x}')^2} $ 选取新中心,其中 $D(\mathbf{x})$ 是 $\mathbf{x}$ 到已选最近中心的距离。这能显著改善聚类质量。
21.3.3 选择 $K$
- 肘部法:绘制WCSS随 $K$ 的变化,找“肘点”(图21.11a)。但肘点可能不明显。
- 轮廓系数(silhouette coefficient): $$ s(i) = \frac{b(i)-a(i)}{\max\{a(i),b(i)\}} $$ 其中 $a(i)$ 为样本 $i$ 到同簇其他点的平均距离,$b(i)$ 为到最近其他簇的平均距离。$s(i)$ 范围 $[-1,1]$,越大越好。平均轮廓系数可用于选 $K$(图21.11c, 21.12-21.13)。
- 信息准则:对概率模型(如GMM)可用BIC(图21.11b)。
21.3.4 K-medoids
- 与K-means类似,但簇中心必须是样本点(medoid),适用于非欧氏距离或数据非向量形式。
- PAM(Partitioning Around Medoids) 算法:迭代交换medoid与非medoid以降低总距离。
- 快速K-medoids:用Voronoi迭代(算法21.2)。
21.3.5 加速
- 使用三角不等式减少距离计算(Elkan算法)。
- 小批量K-means(Mini-batch K-means)每次只用部分样本更新中心,适合大规模数据(图21.10)。
21.4 基于混合模型的聚类
混合模型将数据视为多个概率分布的混合,每个分布对应一个簇。
21.4.1 高斯混合模型(GMM)
- 模型: $$ p(\mathbf{x}) = \sum_{k=1}^K \pi_k \mathcal{N}(\mathbf{x}|\boldsymbol{\mu}_k,\boldsymbol{\Sigma}_k) $$ 其中 $\pi_k$ 为混合系数,$\sum\pi_k=1$。
- 软聚类:样本 $\mathbf{x}_n$ 属于簇 $k$ 的责任度(responsibility)为后验概率: $$ r_{nk} = \frac{\pi_k \mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_k,\boldsymbol{\Sigma}_k)}{\sum_{j}\pi_j \mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_j,\boldsymbol{\Sigma}_j)} $$
- 硬聚类:取 $\arg\max_k r_{nk}$。
21.4.2 EM算法估计GMM
- E步:计算责任度 $r_{nk}$。
- M步:更新参数: $$ \pi_k^{\text{new}} = \frac{1}{N}\sum_n r_{nk},\quad \boldsymbol{\mu}_k^{\text{new}} = \frac{\sum_n r_{nk}\mathbf{x}_n}{\sum_n r_{nk}},\quad \boldsymbol{\Sigma}_k^{\text{new}} = \frac{\sum_n r_{nk}(\mathbf{x}_n-\boldsymbol{\mu}_k)(\mathbf{x}_n-\boldsymbol{\mu}_k)^\top}{\sum_n r_{nk}} $$
- 图21.14展示不同协方差结构(全、共享、对角、球状)对聚类的影响。
21.4.3 标签切换问题
- 混合模型似然对簇的排列不变,导致后验多峰(图21.15-21.16a)。可施加约束(如 $\mu_1<\mu_2$)或通过后处理排序来解决(图21.16b)。
21.4.4 选择 $K$
- 用WAIC(广泛适用信息准则)或交叉验证选择 $K$。图21.17-21.18展示对老忠实泉数据用不同 $K$ 的GMM拟合及WAIC比较。
21.4.5 伯努利混合模型
- 用于二值数据,如二值化图像(图21.6展示的MNIST原型)。
21.5 谱聚类
谱聚类基于图论,将数据点视为图的节点,通过图拉普拉斯矩阵的特征向量进行聚类。
21.5.1 归一化割(Normalized Cut)
- 构建相似图 $\mathbf{W}$(如k近邻图或全连接RBF图)。
- 割(cut):跨簇边权重和。归一化割加入体积归一化: $$ \text{Ncut}(S_1,\ldots,S_K) = \frac{1}{2}\sum_{k=1}^K \frac{\text{cut}(S_k,\bar{S}_k)}{\text{vol}(S_k)} $$ 其中 $\text{vol}(S_k) = \sum_{i\in S_k} d_i$,$d_i$ 为节点度。
- 最小化Ncut是NP难的,但可松弛为求解广义特征值问题。
21.5.2 拉普拉斯矩阵
- 度矩阵 $\mathbf{D} = \mathrm{diag}(d_i)$,邻接矩阵 $\mathbf{W}$。
- 非归一化拉普拉斯 $\mathbf{L} = \mathbf{D} - \mathbf{W}$。
- 归一化拉普拉斯 $\mathbf{L}_{\text{sym}} = \mathbf{D}^{-1/2}\mathbf{L}\mathbf{D}^{-1/2}$。
性质:$\mathbf{L}$ 的最小特征值为0,对应特征向量为全1向量。若有 $K$ 个连通分量,则0特征值重数 $K$,对应特征向量为分量指示向量。
21.5.3 算法
- 构建相似矩阵 $\mathbf{W}$。
- 计算前 $K$ 个最小特征值对应的特征向量 $\mathbf{u}_1,\ldots,\mathbf{u}_K$,组成矩阵 $\mathbf{U} \in \mathbb{R}^{N\times K}$。
- 将 $\mathbf{U}$ 的每一行(对应一个点)作为新的特征向量,进行K-means聚类。
图21.19展示谱聚类对非凸数据的效果优于K-means。
21.5.4 与其他方法联系
- 与核PCA相似,但核PCA用最大特征值,谱聚类用最小特征值。
- 与随机游走联系:归一化拉普拉斯的特征向量对应随机游走的慢变模式。
21.6 双聚类
双聚类(biclustering)同时对数据矩阵的行和列进行聚类,常用于基因表达数据分析。
21.6.1 基本双聚类
- 模型:假设行(样本)和列(特征)各有潜在分组,观测值 $X_{ij}$ 由行组 $u_i$ 和列组 $v_j$ 决定: $$ p(X_{ij}|\theta_{u_i,v_j}) $$ 图21.20展示对动物-特征矩阵的双聚类结果,行组对应动物类别,列组对应特征类别。
21.6.2 嵌套划分模型(Crosscat)
- 更灵活的模型:每个样本可属于不同行组,取决于所考虑的列子集。图21.21-21.22展示多视角聚类,动物可同时按解剖特征和行为特征分组。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| HAC | 图21.2,5点聚类;图21.4,酵母基因数据 |
| K-means | 图21.7,2d数据不同初始化;图21.8,酵母数据 |
| 选择K | 图21.11,肘部、轮廓、BIC对比 |
| GMM | 图21.14,不同协方差结构;图21.17,老忠实泉数据 |
| 谱聚类 | 图21.19,处理非凸数据 |
| 双聚类 | 图21.20-21.22,动物-特征数据 |
前后章节联系
- 第3章:混合模型(GMM)的基础。
- 第4章:EM算法、模型选择(BIC、WAIC)。
- 第7章:特征值分解用于谱聚类。
- 第8章:EM算法优化。
- 第11章:K-means与矢量量化(VQ)联系。
- 第16章:距离度量在聚类中的作用。
- 第20章:降维(如PCA)可作聚类预处理。
本章核心要点
- 聚类目标:无监督地将数据分组,组内相似度高,组间相似度低。
- 层次聚类:通过树状图展示嵌套结构,不需预设簇数,但计算复杂度高。
- K-means:简单高效,但需预设 $K$,对初始化和非凸形状敏感。
- 基于模型的聚类(GMM):概率框架,提供软聚类,EM算法估计,可处理不同形状簇。
- 谱聚类:基于图论,能处理任意形状簇,需构建相似图。
- 双聚类:同时对行和列聚类,揭示行与列的联合模式。
- 评估:外部指标(有标签时)和内部指标(无标签时)结合使用。
常见难点
- 理解HAC不同链接方式的几何意义。
- 掌握K-means算法收敛性及K-means++初始化原理。
- 理解GMM的EM推导(责任度与参数更新)。
- 区分标签切换问题及其解决方法。
- 理解谱聚类中拉普拉斯特征向量的作用。
- 掌握轮廓系数的计算及解释。
学习建议
- 用
sklearn.cluster实现K-means、GMM、谱聚类,在简单数据集上比较。 - 对真实数据集(如鸢尾花)尝试不同聚类方法,并用外部指标评估。
- 实现GMM的EM算法(可借助
scipy.stats),观察责任度变化。 - 阅读谱聚类经典教程(如Luxburg, 2007)加深理解。
- 尝试双聚类库(如
sklearn.cluster.bicluster)分析基因数据。
以上是第21章“聚类”的详细讲解。聚类是无监督学习的核心,掌握各类方法及其适用场景对数据探索至关重要。如有疑问,欢迎继续探讨!
第22章“Recommender Systems”详细讲解
推荐系统是机器学习在商业中应用最广泛的领域之一,旨在根据用户的历史行为预测其可能喜欢的物品,并推荐给用户。本章系统介绍从经典的协同过滤到现代基于矩阵分解和深度学习的方法,涵盖显式反馈(如评分)和隐式反馈(如点击),以及冷启动、探索-利用等实际问题。
22.1 引言
- 问题定义:给定用户集合 $U$ 和物品集合 $I$,我们观测到部分用户-物品对的反馈 $y_{ui}$。目标是预测未观测对的反馈,并推荐给用户。
- 反馈类型:
- 显式反馈:用户明确给出评分,如1-5星,数值明确,但稀疏。
- 隐式反馈:用户行为(点击、购买、浏览)反映偏好,通常只有正样本(有交互),缺少负样本,且信号强度不确定。
- 数据表示:用户-物品矩阵 $\mathbf{Y} \in \mathbb{R}^{M\times N}$,其中 $M$ 为用户数,$N$ 为物品数,大量缺失值。
22.2 显式反馈
22.2.1 协同过滤
- 基于用户的协同过滤:对目标用户 $u$,找到与其评分相似的用户集合,用这些用户对物品 $i$ 的评分加权平均预测: $$ \hat{y}_{ui} = \frac{\sum_{v \in \text{neighbors}(u)} \text{sim}(u,v) y_{vi}}{\sum_{v} \text{sim}(u,v)} $$ 相似度可用皮尔逊相关系数或余弦相似度。
- 基于物品的协同过滤:计算物品间的相似度,用用户历史评分物品的相似物品预测。
- 缺点:稀疏时效果差,无法泛化到新用户/物品。
22.2.2 矩阵分解
- 思想:假设用户和物品的交互由低维隐因子决定。将评分矩阵分解为两个低秩矩阵的乘积: $$ \hat{y}_{ui} = \mathbf{u}_u^\top \mathbf{v}_i $$ 其中 $\mathbf{u}_u \in \mathbb{R}^K$ 为用户 $u$ 的隐因子向量,$\mathbf{v}_i \in \mathbb{R}^K$ 为物品 $i$ 的隐因子向量。
- 目标函数:最小化观测评分的平方误差: $$ \min_{\mathbf{U},\mathbf{V}} \sum_{(u,i)\in \mathcal{O}} (y_{ui} - \mathbf{u}_u^\top \mathbf{v}_i)^2 + \lambda(\|\mathbf{U}\|_F^2 + \|\mathbf{V}\|_F^2) $$ 可用交替最小二乘(ALS) 或随机梯度下降(SGD) 求解。
- 加入偏置:考虑用户和物品的全局偏置: $$ \hat{y}_{ui} = \mu + b_u + b_i + \mathbf{u}_u^\top \mathbf{v}_i $$ 其中 $\mu$ 为全局平均,$b_u$ 为用户偏置,$b_i$ 为物品偏置。
22.2.3 概率矩阵分解(PMF)
- 概率模型:假设观测评分服从高斯分布,隐因子服从高斯先验: $$ y_{ui} | \mathbf{u}_u,\mathbf{v}_i,\sigma^2 \sim \mathcal{N}(\mathbf{u}_u^\top\mathbf{v}_i,\sigma^2) $$ $$ \mathbf{u}_u \sim \mathcal{N}(\mathbf{0},\sigma_U^2\mathbf{I}),\quad \mathbf{v}_i \sim \mathcal{N}(\mathbf{0},\sigma_V^2\mathbf{I}) $$
- 最大化后验等价于最小化带正则化的平方误差。贝叶斯PMF可进一步用MCMC或变分推断。
22.2.4 自编码器(AutoRec)
- 将每个用户(或物品)的评分向量作为输入,通过自编码器重构,用中间层作为低维表示。图22.3展示基于物品的AutoRec结构。
- 损失只计算观测项。AutoRec能学习非线性交互,优于普通矩阵分解。
22.3 隐式反馈
隐式反馈只有正样本,且缺失可能意味着不喜欢或未曝光,需特殊处理。
22.3.1 贝叶斯个性化排序(BPR)
- 思想:对每个用户 $u$,观测到的物品 $i$ 应比未观测的物品 $j$ 排序更高。定义三元组 $(u,i,j)$ 表示用户 $u$ 偏好 $i$ 胜过 $j$。
- 目标:最大化后验概率 $p(\Theta | \mathcal{D})$,其中似然为: $$ p(i >_u j | \Theta) = \sigma(\hat{y}_{ui} - \hat{y}_{uj}) $$ 其中 $\sigma$ 为sigmoid函数,$\hat{y}_{ui}$ 为预测分数(如 $\mathbf{u}_u^\top \mathbf{v}_i$)。
- 优化:采用随机梯度上升,每次采样一个三元组更新参数。
22.3.2 因子分解机(FM)
- FM是一种通用模型,可处理任意实值特征向量。对每个样本,特征 $\mathbf{x} \in \mathbb{R}^D$(如用户ID、物品ID、时间、上下文等),预测为: $$ \hat{y}(\mathbf{x}) = w_0 + \sum_{d=1}^D w_d x_d + \sum_{d=1}^D \sum_{d'>d} \langle \mathbf{v}_d, \mathbf{v}_{d'} \rangle x_d x_{d'} $$ 其中 $\mathbf{v}_d \in \mathbb{R}^K$ 为特征 $d$ 的隐因子向量。
- 在推荐中,特征常为 one-hot 编码的用户ID和物品ID,此时FM退化为带偏置的矩阵分解。但FM能轻易加入更多特征(如用户年龄、物品类别),解决冷启动。
- 计算可通过重写为 $O(KD)$,利用稀疏性加速。
22.3.3 神经矩阵分解(Neural MF)
- 结合广义矩阵分解(GMF)和MLP:
- GMF:$\phi^{GMF} = \mathbf{p}_u \odot \mathbf{q}_i$(逐元素乘)。
- MLP:$\phi^{MLP} = \text{MLP}([\mathbf{p}_u, \mathbf{q}_i])$。
- 最终预测:$\hat{y}_{ui} = \sigma(\mathbf{h}^\top[\phi^{GMF}, \phi^{MLP}])$。
- 可学习非线性交互,性能优于纯线性模型(图22.5)。
22.4 利用辅助信息(冷启动)
- 冷启动问题:新用户或新物品没有交互历史,无法学习其隐因子。
- 解决方案:利用用户属性(年龄、性别)、物品内容(标题、图像、类别)等辅助信息。
- 因子分解机 可直接将属性作为特征,学习属性与隐因子的关联。
- 深度学习模型 可融合多模态信息,如使用CNN提取物品图像特征,与用户因子拼接。
22.5 探索与利用
- 问题:推荐系统根据历史数据推荐,但用户可能喜欢未推荐过的物品。为获取新数据,需探索未知,但又不能损害用户体验。
- 形式化:可建模为多臂老虎机或强化学习问题,平衡短期点击率(利用)和长期收益(探索)。
- 方法:
- $\epsilon$-贪心:以概率 $\epsilon$ 随机推荐,否则推荐当前最优。
- 汤普森采样:对每个物品维护后验评分分布,采样后推荐。
- 上置信界(UCB):选择置信区间上限高的物品。
- 强化学习可建模状态(用户历史)和动作(推荐列表),优化长期回报。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| 矩阵分解 | Netflix Prize 冠军方案(图22.2),MovieLens示例(图22.3-22.4) |
| 概率矩阵分解 | 对Netflix评分建模 |
| AutoRec | 图22.3,物品自编码器 |
| BPR | 隐式反馈,如购买数据 |
| FM | 预测评分时可加入时间、上下文 |
| 神经矩阵分解 | 图22.5,结合GMF和MLP |
| 冷启动 | 新电影推荐基于其类型和导演 |
前后章节联系
- 第7章:矩阵分解中的SVD、伪逆。
- 第8章:优化算法(SGD、ALS)。
- 第10章:逻辑回归与FM的联系。
- 第11章:线性回归与矩阵分解的偏置项。
- 第13章:自编码器(AutoRec)和神经网络的构建。
- 第20章:降维与矩阵分解的潜因子解释。
本章核心要点
- 矩阵分解 是推荐系统的基石,通过隐因子捕捉用户和物品的交互。
- 概率视角(PMF) 提供贝叶斯框架,可处理不确定性。
- 隐式反馈 需特殊处理,BPR通过成对排序有效利用正样本。
- 因子分解机(FM) 是通用模型,能融合多种特征解决冷启动。
- 深度学习(AutoRec、神经MF)可学习非线性关系,提升表现。
- 探索与利用 是交互式推荐的关键,需平衡短期与长期收益。
常见难点
- 理解隐式反馈中“负样本”的采样策略(如BPR中随机采样未观测项)。
- 掌握FM的线性时间计算技巧(式22.20)。
- 区分矩阵分解中SGD与ALS的不同。
- 理解冷启动问题与辅助信息的结合方式。
- 探索与利用算法(汤普森采样、UCB)的概率基础。
学习建议
- 用
surprise或implicit库实现矩阵分解和BPR,在MovieLens上实验。 - 尝试用
libfm或xlearn实现FM,加入时间特征观察效果。 - 阅读神经矩阵分解(Neural Collaborative Filtering)论文并复现。
- 模拟多臂老虎机问题,比较$\epsilon$-贪心、UCB、汤普森采样的表现。
- 思考推荐系统中的反馈循环及其对模型的影响。
以上是第22章“推荐系统”的详细讲解。推荐系统是机器学习的重要应用场景,掌握这些方法对理解用户行为建模和个性化服务至关重要。如有疑问,欢迎继续探讨!
第23章“Graph Embeddings”详细讲解
本章由Bryan Perozzi, Sami Abu-El-Haija, Ines Chami共同撰写,专注于图嵌入——将图结构数据(节点、边及其属性)映射到低维连续向量空间的技术。图嵌入使传统机器学习方法能够应用于图数据,广泛应用于社交网络分析、推荐系统、知识图谱、生物化学等領域。本章系统介绍从经典的浅层方法(如DeepWalk、node2vec)到现代的图神经网络(GNNs)的演变,并构建统一的编码器-解码器框架帮助理解各类方法。
23.1 引言
- 图数据:由节点(vertex)集合 $V$ 和边(edge)集合 $E$ 组成,通常用邻接矩阵 $\mathbf{A} \in \{0,1\}^{N\times N}$ 表示,也可有权重 $\mathbf{W} \in \mathbb{R}^{N\times N}$。节点可能带有特征矩阵 $\mathbf{X} \in \mathbb{R}^{N\times D}$。
- 挑战:图结构不规则,每个节点的邻域结构不同,无法直接应用卷积等操作(图23.1)。
- 目标:学习节点(或图)的向量表示 $\mathbf{Z} \in \mathbb{R}^{N\times L}$,使得向量能保留图的拓扑结构、节点属性等信息,便于下游任务(分类、链接预测等)。
23.2 图嵌入的编码器-解码器框架(GraphEDM)
Chami等人提出的统一框架将图嵌入模型分解为三个组件:
- 编码器 $ \mathrm{ENC}_{\Theta_E} $:将输入(图结构 $\mathbf{W}$ 和节点特征 $\mathbf{X}$)映射为节点嵌入矩阵 $\mathbf{Z} \in \mathbb{R}^{N\times L}$: $$ \mathbf{Z} = \mathrm{ENC}(\mathbf{W},\mathbf{X};\Theta_E) $$
- 图解码器 $ \mathrm{DEC}_{\Theta_D} $:从嵌入 $\mathbf{Z}$ 重构图结构(如邻接矩阵): $$ \hat{\mathbf{W}} = \mathrm{DEC}(\mathbf{Z};\Theta_D) $$
- 任务解码器 $ \mathrm{DEC}_{\Theta_S} $:用于有监督任务,从嵌入预测节点/边/图的标签 $\hat{\mathbf{y}}_S$。
总损失可结合监督损失、图重构损失和正则项:
$$ \mathcal{L} = \alpha \mathcal{L}_{\text{SUP}} + \beta \mathcal{L}_{\text{GRECON}} + \gamma \mathcal{L}_{\text{REG}} $$该框架能统一浅层方法和图神经网络。
23.3 浅层图嵌入
浅层方法将每个节点直接关联一个可学习的嵌入向量,编码器为查找表 $\mathbf{Z} = \boldsymbol{\Theta}_E$(图23.3)。训练时仅通过图重构损失优化嵌入。
23.3.1 基于距离的方法
- MDS(多维缩放):给定节点间距离矩阵 $\mathbf{D}$,寻找嵌入使 $\|\mathbf{z}_i - \mathbf{z}_j\| \approx D_{ij}$。
- 拉普拉斯特征映射(Laplacian Eigenmaps):最小化 $$ \sum_{i,j} W_{ij} \|\mathbf{z}_i - \mathbf{z}_j\|^2 $$ 其中 $\mathbf{W}$ 为相似度矩阵(如K近邻图)。解为拉普拉斯矩阵 $\mathbf{L} = \mathbf{D} - \mathbf{W}$ 的最小特征值对应的特征向量(除去零特征值)。
23.3.2 基于矩阵分解的方法
- 图分解(Graph Factorization):直接最小化 $\sum_{(i,j)\in E} (W_{ij} - \mathbf{z}_i^\top\mathbf{z}_j)^2$。
- GraRep:考虑不同阶邻接矩阵($\mathbf{A}^k$)的分解,捕捉多跳邻居信息。
23.3.3 基于随机游走的方法
- DeepWalk:在图上进行随机游走,将节点序列视为句子,用Skip-gram模型学习嵌入(最大化共现概率)。目标等价于隐式矩阵分解。
- node2vec:在DeepWalk基础上引入有偏随机游走,平衡广度优先(BFS)和深度优先(DFS),灵活捕捉同质性和结构等价性。
23.3.4 非欧几里得嵌入
- 双曲嵌入(Poincaré / Lorentz):将节点嵌入到双曲空间,能更好表示树状层次结构,距离公式为双曲距离(式23.11)。优化需使用黎曼梯度。
23.4 图神经网络(GNNs)
GNNs通过聚合邻居信息更新节点表示,可同时利用图结构和节点特征。
23.4.1 消息传递框架(MPNN)
- 第 $l$ 层,每个节点聚合邻居消息,更新自身表示: $$ \mathbf{m}_i^{l+1} = \sum_{j\in\mathcal{N}(i)} \text{MSG}^l(\mathbf{h}_i^l,\mathbf{h}_j^l),\quad \mathbf{h}_i^{l+1} = \text{UPDATE}^l(\mathbf{h}_i^l,\mathbf{m}_i^{l+1}) $$ 初始 $\mathbf{h}_i^0 = \mathbf{x}_i$(或可选的独热编码)。
23.4.2 谱方法
- 图卷积网络(GCN):基于谱图理论的一阶近似,传播规则: $$ \mathbf{H}^{l+1} = \sigma\left(\tilde{\mathbf{D}}^{-1/2}\tilde{\mathbf{A}}\tilde{\mathbf{D}}^{-1/2}\mathbf{H}^l\mathbf{W}^l\right) $$ 其中 $\tilde{\mathbf{A}} = \mathbf{A} + \mathbf{I}$ 加入自环,$\tilde{\mathbf{D}}$ 为度矩阵。GCN是频域滤波的空域实现。
23.4.3 空域方法
- GraphSAGE:对邻居采样固定数量,聚合后与自身拼接,更新: $$ \mathbf{h}_i^{l+1} = \sigma\left(\mathbf{W}^l\cdot\text{CONCAT}(\mathbf{h}_i^l, \text{AGG}(\{\mathbf{h}_j^l, j\in\mathcal{N}(i)\}))\right) $$ 聚合函数可为均值、池化、LSTM等。适用于大规模归纳学习(图23.5)。
- 图注意力网络(GAT):引入注意力机制,为不同邻居分配权重: $$ \alpha_{ij} = \frac{\exp\left(\text{LeakyReLU}(\mathbf{a}^\top[\mathbf{W}\mathbf{h}_i\|\mathbf{W}\mathbf{h}_j])\right)}{\sum_{k\in\mathcal{N}(i)}\exp(\cdots)},\quad \mathbf{h}_i' = \sigma\left(\sum_{j\in\mathcal{N}(i)}\alpha_{ij}\mathbf{W}\mathbf{h}_j\right) $$ 多头注意力进一步提升表达力。
23.4.4 几何方法
- MoNet:在节点上定义伪坐标(如相对位置),用可学习核函数(如高斯核)计算权重,适用于流形或点云。
23.4.5 非欧几里得GNN
- HGCN(Hyperbolic GCN):将图卷积扩展到双曲空间,利用切空间映射实现运算,适合处理层次结构(图23.6)。
23.5 深度图嵌入
指将GNN与无监督或半监督损失结合的方法。
23.5.1 无监督嵌入
- 图自编码器(GAE):用GCN编码,点积解码重构邻接矩阵,损失为交叉熵(式23.31)。
- 变分图自编码器(VGAE):引入隐变量 $\mathbf{z}_i \sim \mathcal{N}(\boldsymbol{\mu}_i,\boldsymbol{\sigma}_i^2)$,优化ELBO(式23.33)。
- Graphite:迭代解码过程,提高重构质量。
- 深度图信息最大化(DGI):通过对比节点表示与全局图表示,最大化互信息,训练判别器区分正负样本(式23.34)。
23.5.2 半监督嵌入
- SemiEmb:在MLP基础上加入图拉普拉斯正则化(式23.19)。
- Planetoid:结合节点特征和随机游走上下文,同时优化分类损失和图邻接预测损失。
23.6 应用
23.6.1 无监督应用
- 图重构:评估嵌入还原邻接矩阵的能力。
- 链接预测:预测缺失边,常用边得分 $\mathbf{z}_u^\top\mathbf{z}_v$。
- 聚类:对嵌入做K-means,发现社区。
- 可视化:对嵌入用t-SNE降维展示(图20.41)。
23.6.2 有监督应用
- 节点分类:用学到的嵌入训练分类器,常见半监督场景(仅少量标签)。图23.7展示GCN在引文网络上的效果。
- 图分类:需将节点嵌入聚合成图表示,可用全局池化或可微池化(如DiffPool)。应用于分子性质预测(图23.9)。
概念关系图
实例汇总
| 概念 | 实例 |
|---|---|
| DeepWalk | 在社交网络节点分类任务中表现优异 |
| node2vec | 灵活控制游走策略,捕捉不同角色 |
| GCN | 在Cora、PubMed等引文网络上的半监督分类 |
| GAT | 通过注意力机制强调重要邻居 |
| GAE | 在Cora上链接预测AUC达90%+ |
| DGI | 无监督学习节点表示,媲美有监督GCN |
| 双曲嵌入 | 对树状数据(如WordNet)层次结构更准确 |
前后章节联系
- 第7章:特征值、SVD用于谱聚类和拉普拉斯特征映射。
- 第15章:注意力机制(Transformer)用于GAT。
- 第16章:度量学习与双曲嵌入的联系。
- 第20章:降维(如t-SNE)用于图嵌入可视化。
- 第21章:谱聚类与图拉普拉斯的关系。
本章核心要点
- 图嵌入目标:将图节点(或图)映射到低维向量,保留结构和属性信息。
- 浅层方法:仅学习嵌入,不利用节点特征,依赖随机游走或矩阵分解,适合无特征图。
- 图神经网络:通过消息传递聚合邻居信息,可同时利用图结构和节点特征,实现端到端学习。
- 编码器-解码器框架:统一理解不同方法,监督/半监督/无监督均可纳入。
- 深度图嵌入:将GNN与自编码器或对比学习结合,提升无监督表示质量。
- 应用:节点分类、链接预测、聚类、可视化、图分类是主要下游任务。
常见难点
- 理解谱图理论中拉普拉斯矩阵与卷积的关系。
- 区分空域与频域GNN的实现差异。
- 掌握随机游走采样策略(DeepWalk vs node2vec)。
- 理解双曲几何中的运算(如指数映射、对数映射)。
- 区分图自编码器与变分图自编码器的不同。
学习建议
- 用
networkx生成小型图,尝试DeepWalk(可用gensim)观察嵌入。 - 用
PyTorch Geometric或DGL实现GCN、GAT,在Cora数据集上实验。 - 阅读GCN、GraphSAGE、GAT原论文,理解公式推导。
- 尝试用
scikit-learn对嵌入做节点分类,评估效果。 - 思考图嵌入在推荐系统(如社交推荐)中的潜在应用。
以上是第23章“图嵌入”的详细讲解。图嵌入是处理关系数据的关键技术,掌握它将为学习复杂网络分析、知识图谱等前沿领域打下基础。如有疑问,欢迎继续探讨!