
《模式识别与机器学习》(PRML)第1章“引言”教学讲解
1. 本章概述与学习目标
第1章是全书的总纲,作者 Christopher M. Bishop 在这一章中系统地介绍了模式识别和机器学习的核心思想、数学工具以及基本框架。本章不涉及复杂的技术细节,而是为后续各章奠定概念基础和提供统一的视角。学习本章后,你应该能够:
- 理解模式识别的基本问题:从数据中自动发现规律并用于预测或决策。
- 掌握概率论在不确定性建模中的核心作用。
- 区分不同学习类型(监督学习、无监督学习、强化学习)。
- 通过多项式曲线拟合的例子,理解模型复杂度、过拟合与泛化、正则化等关键概念。
- 了解贝叶斯方法的基本思想及其与最大似然估计的区别。
- 掌握决策理论的基本框架(风险最小化、推断与决策分离)。
- 理解信息论中的熵、相对熵(KL散度)和互信息,并知道它们与最大似然的关系。
- 初步了解维度灾难及其对高维数据建模的影响。
本章的内容是后续所有章节的基础,特别是概率论、决策理论和信息论的工具将在全书反复使用。
2. 由浅入深:从模式识别问题到核心概念
2.1 什么是模式识别?
定义:模式识别是使用计算机算法自动发现数据中的规律,并利用这些规律执行分类、回归等任务的过程。
例子:识别手写数字(如图1.1所示)。每个数字图像是一个28×28像素的向量 $\mathbf{x}$,我们希望通过学习一组带标签的样本(训练集)构建一个函数 $y(\mathbf{x})$,使其能够对新图像预测正确的数字类别0-9。
关键术语:
- 输入变量:$\mathbf{x}$,通常是一个向量(特征)。
- 目标变量:$t$,可以是离散的类别标签(分类问题)或连续的实数值(回归问题)。
- 训练集:$\{\mathbf{x}_n, t_n\}_{n=1}^N$,用于训练模型的数据。
- 测试集:独立于训练集的数据,用于评估模型的泛化能力。
- 泛化:模型对未见过的数据正确预测的能力。
- 监督学习:训练数据包含输入和对应的目标值。
- 分类:目标变量为离散类别。
- 回归:目标变量为连续值。
- 无监督学习:训练数据只有输入 $\mathbf{x}_n$,没有目标值,任务包括聚类、密度估计、可视化等。
- 强化学习:通过与环境交互学习最优动作序列,以最大化累积奖励。
概念关系图(Mermaid):
2.2 多项式曲线拟合:一个贯穿全章的实例
为了直观地理解机器学习中的核心问题,作者引入了一个简单但极具启发性的例子——多项式曲线拟合。
2.2.1 问题设定
- 输入变量 $x$ 在 $[0,1]$ 区间均匀采样。
- 目标变量 $t$ 由函数 $\sin(2\pi x)$ 加上高斯噪声生成(如附录A所述)。
- 训练集包含 $N=10$ 个点 $(x_n, t_n)$。
目标是对于新的输入 $\hat{x}$ 预测 $\hat{t}$。
2.2.2 多项式模型
采用 $M$ 阶多项式拟合数据:
$$ y(x,\mathbf{w}) = w_0 + w_1 x + w_2 x^2 + \dots + w_M x^M = \sum_{j=0}^{M} w_j x^j $$其中 $\mathbf{w}$ 是系数向量。
2.2.3 误差函数
为了衡量拟合的好坏,定义平方和误差函数:
$$ E(\mathbf{w}) = \frac{1}{2} \sum_{n=1}^{N} \{ y(x_n, \mathbf{w}) - t_n \}^2 $$因子 $1/2$ 是为了后续求导方便。最小化 $E(\mathbf{w})$ 可以得到参数 $\mathbf{w}^\star$。由于误差函数是 $\mathbf{w}$ 的二次函数,有唯一闭式解(称为最小二乘法)。
2.2.4 模型复杂度与过拟合
- 当 $M$ 较小时(如 $M=0,1$),多项式无法捕捉数据的波动,拟合效果差(欠拟合)。
- 当 $M=3$ 时,多项式较好地拟合了 $\sin(2\pi x)$ 的趋势。
- 当 $M=9$ 时,多项式能够精确穿过所有训练点($E=0$),但在训练点之间剧烈震荡,对新数据预测很差——这就是过拟合。
观察:
- 随着 $M$ 增大,模型复杂度增加,训练误差持续下降,但测试误差先降后升。
- 过拟合的模型系数变得很大(正负交替,相互抵消)。
- 增加训练数据量可以缓解过拟合(见图1.6)。
2.2.5 正则化
为了控制过拟合,可以在误差函数中添加正则化项,惩罚过大的系数:
$$ \widetilde{E}(\mathbf{w}) = \frac{1}{2} \sum_{n=1}^{N} \{ y(x_n,\mathbf{w}) - t_n \}^2 + \frac{\lambda}{2} \|\mathbf{w}\|^2 $$其中 $\|\mathbf{w}\|^2 = \sum w_j^2$,$\lambda$ 是正则化系数。这称为岭回归(统计学)或权重衰减(神经网络)。合适的 $\lambda$ 可以使模型在欠拟合和过拟合之间取得平衡。
2.2.6 从最大似然到贝叶斯
- 最大似然估计:假设目标变量服从高斯分布 $t = y(x,\mathbf{w}) + \epsilon$,$\epsilon \sim \mathcal{N}(0,\beta^{-1})$。那么最小化平方和误差等价于最大化似然函数 $p(\mathbf{t}|\mathbf{x},\mathbf{w},\beta)$。
- 最大后验(MAP)估计:引入高斯先验 $p(\mathbf{w}|\alpha) = \mathcal{N}(\mathbf{w}|0,\alpha^{-1}I)$,最大化后验等价于最小化带正则项的平方和误差,其中 $\lambda = \alpha/\beta$。
- 完全贝叶斯:通过积分掉参数 $\mathbf{w}$,得到预测分布 $p(t|x,\mathbf{x},\mathbf{t})$,它不仅给出预测均值,还给出预测方差(不确定性)。
2.3 概率论基础
2.3.1 为什么要引入概率?
数据往往含有噪声,且训练集有限,因此不确定性普遍存在。概率论提供了一套严格的数学框架来量化和管理不确定性。
2.3.2 基本概念
- 随机变量:可取不同值的变量,如箱子的颜色 $B$ 或水果种类 $F$。
- 概率:事件发生的频率的极限(频率学派)或不确定性的度量(贝叶斯学派)。
2.3.3 两个基本规则
- 加和规则(Sum Rule):$p(X) = \sum_Y p(X, Y)$,其中 $p(X,Y)$ 是联合概率。
- 乘积规则(Product Rule):$p(X, Y) = p(Y|X) p(X)$,其中 $p(Y|X)$ 是条件概率。
从这两个规则可以推导出贝叶斯定理:
$$ p(Y|X) = \frac{p(X|Y) p(Y)}{p(X)}, \quad p(X) = \sum_Y p(X|Y) p(Y) $$例子:两个箱子(红、蓝)包含苹果和橙子。已知选择红箱的概率为 $p(B=r)=4/10$,蓝箱为 $6/10$。红箱中苹果比例为 $1/4$,橙子 $3/4$;蓝箱中苹果 $3/4$,橙子 $1/4$。如果随机选一个水果发现是橙子,问它来自红箱的概率是多少?应用贝叶斯定理:
$$ p(B=r|F=o) = \frac{p(F=o|B=r)p(B=r)}{p(F=o)} = \frac{(3/4)\times(4/10)}{(3/4\times4/10 + 1/4\times6/10)} = \frac{12/40}{12/40+6/40} = \frac{2}{3} $$这个例子展示了如何利用观察数据更新先验概率得到后验概率。
2.3.4 概率密度
对于连续变量,概率密度 $p(x)$ 定义为 $p(x)\delta x$ 是 $x$ 落在小区间 $(x, x+\delta x)$ 的概率。满足归一化:$\int p(x) dx = 1$。
2.3.5 期望与协方差
- 期望 $\mathbb{E}[f] = \sum_x p(x) f(x)$(离散)或 $\int p(x) f(x) dx$(连续)。
- 条件期望 $\mathbb{E}[f|y] = \sum_x p(x|y) f(x)$。
- 方差 $\text{var}[f] = \mathbb{E}[(f - \mathbb{E}[f])^2] = \mathbb{E}[f^2] - \mathbb{E}[f]^2$。
- 协方差 $\text{cov}[x,y] = \mathbb{E}[(x - \mathbb{E}[x])(y - \mathbb{E}[y])]$。
2.3.6 贝叶斯概率
- 贝叶斯观点将概率视为不确定性的度量,可以用于参数估计。
- 先验概率 $p(\mathbf{w})$:在观察数据之前对参数的信念。
- 似然函数 $p(\mathcal{D}|\mathbf{w})$:给定参数下观察到数据的概率。
- 后验概率 $p(\mathbf{w}|\mathcal{D}) \propto p(\mathcal{D}|\mathbf{w}) p(\mathbf{w})$,综合了先验和数据信息。
- 贝叶斯定理将先验转化为后验。
联系多项式拟合:在1.2.5和1.2.6中,我们重新审视了曲线拟合问题:
- 假设目标变量服从高斯分布 $p(t|x,\mathbf{w},\beta) = \mathcal{N}(t|y(x,\mathbf{w}), \beta^{-1})$,则似然函数为 $\prod_n \mathcal{N}(t_n|y(x_n,\mathbf{w}), \beta^{-1})$。
- 最大化对数似然等价于最小化平方和误差。
- 引入高斯先验 $p(\mathbf{w}|\alpha) = \mathcal{N}(\mathbf{w}|0,\alpha^{-1}I)$,最大化后验等价于最小化带正则项的平方和误差。
- 完全贝叶斯则通过对 $\mathbf{w}$ 积分得到预测分布,该分布是高斯分布,其均值和方差均依赖于 $x$,体现了预测的不确定性。
2.3.7 高斯分布
- 一元高斯:$\mathcal{N}(x|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left\{ -\frac{(x-\mu)^2}{2\sigma^2} \right\}$。
- 多元高斯:$\mathcal{N}(\mathbf{x}|\boldsymbol{\mu},\boldsymbol{\Sigma}) = \frac{1}{(2\pi)^{D/2}|\boldsymbol{\Sigma}|^{1/2}} \exp\left\{ -\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu})^T\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu}) \right\}$。
- 最大似然估计:给定数据 $\{x_n\}$,得到 $\mu_{\text{ML}} = \frac{1}{N}\sum x_n$,$\sigma^2_{\text{ML}} = \frac{1}{N}\sum (x_n - \mu_{\text{ML}})^2$。但这是有偏的(方差被低估),贝叶斯方法可以纠正。
2.4 模型选择
问题:如何选择模型的复杂度(例如多项式的阶数 $M$ 或正则化系数 $\lambda$)? 方法:
- 验证集:将数据分为训练集、验证集和测试集,用验证集选择最优模型复杂度。缺点是浪费数据。
- 交叉验证:将数据分成 $S$ 份,轮流用 $S-1$ 份训练,1份验证,平均性能评估。计算量大。
- 信息准则:
- AIC(赤池信息准则):$\ln p(\mathcal{D}|\mathbf{w}_{\text{ML}}) - M$,其中 $M$ 是参数个数。
- BIC(贝叶斯信息准则):$\ln p(\mathcal{D}|\mathbf{w}_{\text{ML}}) - \frac{1}{2}M\ln N$。 但这类准则在实践中可能偏向简单模型。
- 贝叶斯模型比较:通过计算模型证据(边缘似然)$p(\mathcal{D}|\mathcal{M}_i)$ 自动实现复杂度惩罚,这是第3章的重点。
概念关系图(Mermaid):
2.5 维度灾难
现象:随着输入空间维度 $D$ 增加,需要指数级增长的数据量才能获得可靠的估计。高维空间中的数据极其稀疏,大多数点远离彼此。
例子:
- 将空间划分成网格,网格数随 $D$ 指数增长。
- 高阶多项式展开的项数随 $D$ 呈 $D^M$ 增长(但并非指数,仍很大)。
- 球体体积集中在表面(半径为1的球体,体积分数为 $1-(1-\epsilon)^D$,当 $D$ 大时即使 $\epsilon$ 很小也接近1)。
- 高斯分布在半径方向上的概率质量集中在薄球壳内(见图1.23)。
启示:
- 高维数据通常具有较低的有效维度(位于低维流形上)。
- 数据往往有局部光滑性,可以利用邻近点进行插值。
2.6 决策理论
2.6.1 为什么需要决策理论?
有了后验概率 $p(\mathcal{C}_k|\mathbf{x})$,我们需要做出具体决策(如给病人下诊断)。决策理论帮助我们根据概率和损失函数选择最优行动。
2.6.2 最小化误分类率
对于两分类,误分类概率为:
$$ p(\text{mistake}) = \int_{\mathcal{R}_1} p(\mathbf{x},\mathcal{C}_2) d\mathbf{x} + \int_{\mathcal{R}_2} p(\mathbf{x},\mathcal{C}_1) d\mathbf{x} $$要最小化它,应将 $\mathbf{x}$ 分配给后验概率较大的类。即决策规则:如果 $p(\mathcal{C}_1|\mathbf{x}) > p(\mathcal{C}_2|\mathbf{x})$,则选择 $\mathcal{C}_1$。
2.6.3 最小化期望损失
引入损失矩阵 $L_{kj}$,表示将真实类别 $\mathcal{C}_k$ 误判为 $\mathcal{C}_j$ 的代价。期望损失为:
$$ \mathbb{E}[L] = \sum_k \sum_j \int_{\mathcal{R}_j} L_{kj} p(\mathbf{x},\mathcal{C}_k) d\mathbf{x} $$最优决策为:对于每个 $\mathbf{x}$,选择使 $\sum_k L_{kj} p(\mathcal{C}_k|\mathbf{x})$ 最小的类 $j$。
例子:癌症诊断,将健康人误诊为癌症损失1,将癌症患者误诊为健康损失1000。损失矩阵为:
$$ L = \begin{bmatrix} 0 & 1 \\ 1000 & 0 \end{bmatrix} $$2.6.4 拒绝选项
当后验概率的最大值低于阈值 $\theta$ 时,我们拒绝自动分类,交由人工处理,以降低错误率。
2.6.5 推断与决策分离
- 生成式方法:先建模联合分布 $p(\mathbf{x},\mathcal{C}_k)$,再得到后验 $p(\mathcal{C}_k|\mathbf{x})$。优点是可以处理缺失数据、生成新样本,但计算复杂。
- 判别式方法:直接建模后验 $p(\mathcal{C}_k|\mathbf{x})$。参数较少,通常分类性能更好。
- 判别函数:直接学习从 $\mathbf{x}$ 到类别的映射,不涉及概率。简单但缺乏不确定性信息。
为什么需要后验概率:
- 可以根据损失矩阵灵活调整决策阈值。
- 可以设置拒绝选项。
- 可以补偿类先验的偏移(如数据不平衡时通过重采样调整)。
- 可以组合多个模型(如朴素贝叶斯假设)。
2.6.6 回归问题的损失函数
对于回归,常用平方损失:$L(t,y(\mathbf{x})) = (y(\mathbf{x}) - t)^2$。期望损失最小化的解是条件期望 $y(\mathbf{x}) = \mathbb{E}[t|\mathbf{x}]$(回归函数)。将误差分解为:
$$ \mathbb{E}[L] = \int \{ y(\mathbf{x}) - \mathbb{E}[t|\mathbf{x}] \}^2 p(\mathbf{x}) d\mathbf{x} + \int \{\mathbb{E}[t|\mathbf{x}] - t\}^2 p(\mathbf{x},t) d\mathbf{x} dt $$第一项是可减少的(取决于模型),第二项是固有噪声(不可减少)。
其他损失:Minkowski损失 $L_q = |y-t|^q$,其中 $q=2$ 为平方损失,$q=1$ 为中位数,$q\to 0$ 为众数。
2.7 信息论基础
2.7.1 熵
信息量:事件 $x$ 的信息量定义为 $h(x) = -\log_2 p(x)$(以2为底单位比特,以 $e$ 为底单位奈特)。 熵:平均信息量:
$$ H[x] = -\sum_x p(x) \log_2 p(x) $$熵度量了随机变量的不确定性。均匀分布熵最大。
微分熵:对连续变量:
$$ H[\mathbf{x}] = -\int p(\mathbf{x}) \ln p(\mathbf{x}) d\mathbf{x} $$在给定均值和方差的条件下,高斯分布具有最大微分熵。
2.7.2 相对熵(KL散度)
用于度量两个分布 $p$ 和 $q$ 之间的差异:
$$ \text{KL}(p\|q) = -\int p(\mathbf{x}) \ln \frac{q(\mathbf{x})}{p(\mathbf{x})} d\mathbf{x} $$性质:$\text{KL}(p\|q) \ge 0$,等号当且仅当 $p=q$。它不对称。
与最大似然的关系:当用 $q(\mathbf{x}|\boldsymbol{\theta})$ 逼近真实分布 $p(\mathbf{x})$ 时,最小化 KL 散度等价于最大化似然函数(基于经验分布)。
2.7.3 互信息
度量两个随机变量之间的依赖程度:
$$ I[\mathbf{x},\mathbf{y}] = \text{KL}(p(\mathbf{x},\mathbf{y}) \| p(\mathbf{x})p(\mathbf{y})) = \iint p(\mathbf{x},\mathbf{y}) \ln \frac{p(\mathbf{x},\mathbf{y})}{p(\mathbf{x})p(\mathbf{y})} d\mathbf{x} d\mathbf{y} $$当 $\mathbf{x}$ 和 $\mathbf{y}$ 独立时互信息为0。互信息也可用熵表示:
$$ I[\mathbf{x},\mathbf{y}] = H[\mathbf{x}] - H[\mathbf{x}|\mathbf{y}] = H[\mathbf{y}] - H[\mathbf{y}|\mathbf{x}] $$3. 概念关系总览
4. 本章与前后章节的联系
- 第1章为全书提供了概念基础和数学工具:
- 概率论(第2章将深入介绍各种概率分布,第8章介绍图模型)。
- 线性回归(第3章详细讨论线性回归的贝叶斯处理)。
- 分类(第4章介绍分类的线性模型)。
- 模型复杂度与正则化(第3、5、7章继续讨论)。
- 决策理论(后续分类和回归问题中反复应用)。
- 信息论(第2章介绍指数族分布时用到,第10章变分推断中用到)。
- 维度灾难(第12章流形学习、第6章核方法等都与其相关)。
因此,第1章既是起点,也是贯穿全书的纲领。
5. 核心要点总结与学习建议
核心要点
- 模式识别三大任务:分类、回归、无监督学习。
- 模型复杂度与泛化:过拟合是复杂模型在有限数据上的通病,可通过正则化、贝叶斯方法或模型选择控制。
- 概率论三要素:加和规则、乘积规则、贝叶斯定理。
- 贝叶斯视角:先验+似然→后验,积分掉参数得到预测分布,自然包含不确定性。
- 决策理论:后验概率 + 损失函数 → 最优决策。
- 信息论:熵衡量不确定性,KL散度衡量分布差异,互信息衡量变量依赖。
- 维度灾难:高维空间数据稀疏,需借助低维结构或局部光滑性。
常见难点
- 最大似然与贝叶斯的区别:前者点估计,后者分布估计,贝叶斯能自动控制复杂度。
- 过拟合与正则化的直观理解:可以通过多项式系数的大小和震荡来理解。
- 推断与决策分离的好处:尤其体现在可以灵活改变损失矩阵或处理不平衡数据。
- 熵与KL散度的直观意义:熵是编码所需的最小平均比特数,KL散度是使用错误分布带来的额外编码代价。
学习建议
- 动手实现:尝试用Python(NumPy)实现多项式曲线拟合,观察不同 $M$ 和 $\lambda$ 的效果,绘制训练/测试误差曲线。
- 理解公式:不要死记,要理解每个符号的含义和推导逻辑。例如,贝叶斯定理的推导来自乘法和加和规则。
- 联系实际:思考你在实际中遇到的问题是分类还是回归?数据是否可能存在维度灾难?是否需要不确定性估计?
- 反复阅读:第1章内容贯穿全书,后续遇到困难时可以回看本章对应的概念部分。
希望这份讲解能帮助你建立起对PRML第1章的系统理解,为后续学习打下坚实基础。如果你有任何疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第2章“概率分布”教学讲解
1. 本章概述与学习目标
第2章是概率分布的专题研究,它在第1章引入的概率论基础上,深入探讨了在模式识别中常用的一些重要概率分布及其性质。本章不仅介绍了具体分布(伯努利、二项式、Beta、多项、狄利克雷、高斯、Student-t、周期分布、混合高斯),还系统讲解了贝叶斯推断中的共轭先验、指数族分布的统一框架以及非参数密度估计方法。学习本章后,你应该能够:
- 掌握伯努利、二项式、Beta分布及其关系,理解共轭先验的概念和意义。
- 将二元变量推广到多元,掌握多项分布和狄利克雷分布。
- 深入理解高斯分布的各种重要性质(条件分布、边缘分布、贝叶斯推断、Student-t分布、周期高斯、混合高斯)。
- 理解指数族分布的一般形式及其性质(充分统计量、共轭先验)。
- 了解非参数密度估计(核密度估计、K近邻)的基本思想及其与参数方法的区别。
本章是后续章节(特别是第3章线性回归、第4章分类、第9章混合模型、第13章序列数据等)的重要基础,许多模型都建立在概率分布的基础上。
2. 由浅入深:从离散分布到连续分布,从参数方法到非参数方法
2.1 二元变量(Binary Variables)
2.1.1 伯努利分布(Bernoulli Distribution)
- 定义:描述一次随机试验的结果,随机变量 $x \in \{0,1\}$,概率质量函数为: $$ \mathrm{Bern}(x|\mu) = \mu^x (1-\mu)^{1-x}, \quad \mu \in [0,1] $$ 其中 $\mu = p(x=1)$。
- 性质: $$ \mathbb{E}[x] = \mu,\quad \mathrm{var}[x] = \mu(1-\mu) $$
- 例子:抛一枚硬币,正面朝上概率 $\mu$,记录一次抛掷结果。
2.1.2 二项分布(Binomial Distribution)
- 定义:重复 $N$ 次独立伯努利试验,$x=1$ 出现的次数 $m = \sum_{n=1}^N x_n$ 服从二项分布: $$ \mathrm{Bin}(m|N,\mu) = \binom{N}{m} \mu^m (1-\mu)^{N-m} $$
- 性质: $$ \mathbb{E}[m] = N\mu,\quad \mathrm{var}[m] = N\mu(1-\mu) $$
- 例子:抛10次硬币,出现3次正面的概率。
2.1.3 Beta分布(Beta Distribution)——共轭先验
- 动机:对伯努利分布的参数 $\mu$ 进行贝叶斯推断,需要选择一个先验分布,使得后验分布与先验具有相同函数形式(共轭性)。
- 定义: $$ \mathrm{Beta}(\mu|a,b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \mu^{a-1} (1-\mu)^{b-1}, \quad a>0,b>0 $$ 其中 $\Gamma(\cdot)$ 是Gamma函数。
- 性质: $$ \mathbb{E}[\mu] = \frac{a}{a+b},\quad \mathrm{var}[\mu] = \frac{ab}{(a+b)^2(a+b+1)} $$
- 共轭性:给定观测数据 $m$ 次成功,$l = N-m$ 次失败,后验分布为: $$ p(\mu|m,l,a,b) \propto \mu^{m+a-1} (1-\mu)^{l+b-1} = \mathrm{Beta}(\mu|m+a, l+b) $$ 因此 Beta 分布是伯努利似然的共轭先验。
- 例子:假设先验参数 $a=2,b=2$(相当于先验观测到1次成功、1次失败),然后观察到10次抛掷中有3次正面,则后验为 $\mathrm{Beta}(5,9)$,后验均值 $\frac{5}{14} \approx 0.357$,介于先验均值0.5和最大似然估计0.3之间。
- 顺序学习:贝叶斯更新是顺序的,每次观测可以逐步更新后验。
概念关系图(Mermaid):
2.2 多元变量(Multinomial Variables)
2.2.1 多项分布(Multinomial Distribution)
- 1-of-K表示:用 $K$ 维向量 $\mathbf{x}$ 表示类别,其中只有一个元素为1,其余为0。例如 $K=6$,类别3表示为 $\mathbf{x} = (0,0,1,0,0,0)^T$。
- 概率质量函数: $$ p(\mathbf{x}|\boldsymbol{\mu}) = \prod_{k=1}^K \mu_k^{x_k}, \quad \boldsymbol{\mu} = (\mu_1,\dots,\mu_K)^T, \quad \sum \mu_k = 1 $$
- 对 $N$ 次独立观测:设 $\mathbf{x}_1,\dots,\mathbf{x}_N$,计数 $m_k = \sum_n x_{nk}$,似然函数为: $$ p(\mathcal{D}|\boldsymbol{\mu}) = \prod_{k=1}^K \mu_k^{m_k} $$
- 多项分布:$\mathbf{m} = (m_1,\dots,m_K)$ 的分布为: $$ \mathrm{Mult}(m_1,\dots,m_K|\boldsymbol{\mu},N) = \frac{N!}{m_1! \cdots m_K!} \prod_{k=1}^K \mu_k^{m_k} $$
2.2.2 狄利克雷分布(Dirichlet Distribution)——共轭先验
- 定义: $$ \mathrm{Dir}(\boldsymbol{\mu}|\boldsymbol{\alpha}) = \frac{\Gamma(\alpha_0)}{\Gamma(\alpha_1)\cdots\Gamma(\alpha_K)} \prod_{k=1}^K \mu_k^{\alpha_k -1}, \quad \alpha_0 = \sum_{k=1}^K \alpha_k $$ 其中 $\boldsymbol{\alpha} = (\alpha_1,\dots,\alpha_K)^T$,$\alpha_k > 0$。
- 共轭性:多项分布的似然为 $\prod \mu_k^{m_k}$,乘以狄利克雷先验 $\prod \mu_k^{\alpha_k-1}$ 得到后验: $$ p(\boldsymbol{\mu}|\mathcal{D},\boldsymbol{\alpha}) = \mathrm{Dir}(\boldsymbol{\mu}|\boldsymbol{\alpha} + \mathbf{m}) $$ 即后验也是狄利克雷分布,参数更新为 $\alpha_k + m_k$。
- 解释:$\alpha_k$ 可以视为先验中观测到的“伪计数”。
- 例子:文本分类中,单词频次可用多项分布建模,狄利克雷先验可平滑概率估计,避免零概率。
2.3 高斯分布(Gaussian Distribution)
高斯分布是本章最重要的内容,占据大量篇幅。我们将其分解为多个子主题。
2.3.1 一元高斯
- 概率密度函数: $$ \mathcal{N}(x|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left\{ -\frac{(x-\mu)^2}{2\sigma^2} \right\} $$ 其中 $\mu$ 是均值,$\sigma^2$ 是方差,精度 $\beta = 1/\sigma^2$。
- 中心极限定理:大量独立同分布随机变量的和趋于高斯分布,解释了高斯在许多自然现象中的出现。
- 最大似然估计:$\mu_{\text{ML}} = \frac{1}{N}\sum x_n$,$\sigma^2_{\text{ML}} = \frac{1}{N}\sum (x_n - \mu_{\text{ML}})^2$,但方差估计是有偏的($\mathbb{E}[\sigma^2_{\text{ML}}] = \frac{N-1}{N}\sigma^2$)。
2.3.2 多元高斯
- 概率密度函数: $$ \mathcal{N}(\mathbf{x}|\boldsymbol{\mu},\boldsymbol{\Sigma}) = \frac{1}{(2\pi)^{D/2} |\boldsymbol{\Sigma}|^{1/2}} \exp\left\{ -\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu})^T \boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu}) \right\} $$ 其中 $\boldsymbol{\mu}$ 是均值向量,$\boldsymbol{\Sigma}$ 是协方差矩阵(正定对称)。
- 几何意义:通过特征分解 $\boldsymbol{\Sigma} = \sum \lambda_i \mathbf{u}_i \mathbf{u}_i^T$,马氏距离 $(\mathbf{x}-\boldsymbol{\mu})^T\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu})$ 表示在主轴缩放后的距离。等高线是椭球。
- 条件分布与边缘分布(重要!):将 $\mathbf{x}$ 分成两部分 $\mathbf{x}_a, \mathbf{x}_b$,则
- 条件分布 $p(\mathbf{x}_a|\mathbf{x}_b)$ 也是高斯,其均值和协方差可用分块精度矩阵或协方差矩阵表示。
- 边缘分布 $p(\mathbf{x}_a)$ 是高斯,均值为 $\boldsymbol{\mu}_a$,协方差为 $\boldsymbol{\Sigma}_{aa}$。
- 例子:二维高斯,给定 $x_2$ 时 $x_1$ 的条件分布是高斯,均值与 $x_2$ 线性相关。
2.3.3 贝叶斯推断
- 已知方差,推断均值:使用高斯先验 $p(\mu) = \mathcal{N}(\mu|\mu_0,\sigma_0^2)$,后验也是高斯,均值是先验均值和样本均值的加权平均,精度相加。
- 已知均值,推断精度:使用Gamma先验(共轭于高斯精度),后验也是Gamma。
- 均值和精度均未知:使用正态-Gamma先验(高斯-伽马分布),后验也是正态-Gamma。
- 多元情况:类似,使用正态-Wishart先验。
2.3.4 Student-t分布
- 定义:由高斯分布与Gamma分布混合(积分掉精度)得到: $$ \mathrm{St}(x|\mu,\lambda,\nu) = \frac{\Gamma(\nu/2+1/2)}{\Gamma(\nu/2)} \left( \frac{\lambda}{\pi\nu} \right)^{1/2} \left[ 1 + \frac{\lambda(x-\mu)^2}{\nu} \right]^{-(\nu+1)/2} $$ 其中 $\nu$ 是自由度。
- 性质:比高斯有更厚的尾部,对异常值更鲁棒。当 $\nu \to \infty$ 时趋于高斯。
- 例子:图2.16展示了t分布对离群点不敏感。
2.3.5 周期变量(Periodic Variables)
- 问题:角度、方向等周期变量不能用普通高斯建模。
- 表示:将角度映射到单位圆上的点 $(\cos\theta, \sin\theta)$。
- von Mises分布: $$ p(\theta|\theta_0,m) = \frac{1}{2\pi I_0(m)} \exp\{ m \cos(\theta-\theta_0) \} $$ 其中 $\theta_0$ 是均值方向,$m$ 是集中参数,$I_0$ 是修正贝塞尔函数。它是圆上的“高斯”,当 $m$ 大时近似高斯。
- 最大似然估计:均值方向 $\theta_0^{\text{ML}}$ 由样本向量和的反正切给出,集中参数 $m$ 满足 $A(m) = \bar{r}$,其中 $\bar{r}$ 是样本平均向量的长度。
2.3.6 高斯混合(Mixtures of Gaussians)
- 定义:多个高斯分布的凸组合: $$ p(\mathbf{x}) = \sum_{k=1}^K \pi_k \mathcal{N}(\mathbf{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k), \quad \sum \pi_k = 1,\ \pi_k \ge 0 $$
- 解释:$\pi_k$ 是混合系数,可以看作选择第 $k$ 个分量的先验概率。后验概率(责任): $$ \gamma_k(\mathbf{x}) = \frac{\pi_k \mathcal{N}(\mathbf{x}|\boldsymbol{\mu}_k,\boldsymbol{\Sigma}_k)}{\sum_l \pi_l \mathcal{N}(\mathbf{x}|\boldsymbol{\mu}_l,\boldsymbol{\Sigma}_l)} $$
- 能力:可以拟合任意复杂的密度(只要有足够多的分量)。参数估计通常使用EM算法(第9章)。
2.4 指数族分布(Exponential Family)
2.4.1 定义
指数族分布的统一形式:
$$ p(\mathbf{x}|\boldsymbol{\eta}) = h(\mathbf{x}) g(\boldsymbol{\eta}) \exp\{ \boldsymbol{\eta}^T \mathbf{u}(\mathbf{x}) \} $$其中 $\boldsymbol{\eta}$ 是自然参数,$\mathbf{u}(\mathbf{x})$ 是充分统计量,$g(\boldsymbol{\eta})$ 是归一化因子。
2.4.2 举例
- 伯努利:$\eta = \ln \frac{\mu}{1-\mu}$,$\mathbf{u}(x)=x$,$g(\eta) = (1+e^\eta)^{-1}$。
- 多项:$\eta_k = \ln \mu_k$,$\mathbf{u}(\mathbf{x}) = \mathbf{x}$,$g(\boldsymbol{\eta}) = 1$(但需注意约束)。
- 高斯:$\boldsymbol{\eta} = (\mu/\sigma^2,\ -1/(2\sigma^2))^T$,$\mathbf{u}(x) = (x,x^2)^T$,$h(x) = (2\pi)^{-1/2}$。
2.4.3 性质
- 充分统计量:$\sum_n \mathbf{u}(\mathbf{x}_n)$ 包含数据所有信息,用于参数估计。
- 共轭先验:对指数族分布,存在自然共轭先验: $$ p(\boldsymbol{\eta}|\boldsymbol{\chi},\nu) \propto g(\boldsymbol{\eta})^\nu \exp\{ \nu \boldsymbol{\eta}^T \boldsymbol{\chi} \} $$ 其中 $\nu$ 是伪观测数,$\boldsymbol{\chi}$ 是伪观测的充分统计量。
- 无信息先验:当无先验知识时,可选用无信息先验,如位置参数的平移不变先验(常数)、尺度参数的 $1/\sigma$ 先验。
2.5 非参数方法(Nonparametric Methods)
2.5.1 动机
参数方法假设数据服从某个已知形式的分布(如高斯),但若假设错误,性能会受影响。非参数方法不对分布形式做强假设,而让数据自身决定密度。
2.5.2 直方图方法
- 将空间划分为网格,统计每个网格内数据点个数,再除以总体本数和网格体积得到密度估计。
- 缺点:不连续;维度灾难;bin宽度选择影响大。
2.5.3 核密度估计(Kernel Density Estimation)
- 思想:在每一个数据点处放置一个核函数(如高斯核),然后叠加平均: $$ p(\mathbf{x}) = \frac{1}{N} \sum_{n=1}^N \frac{1}{h^D} k\left( \frac{\mathbf{x}-\mathbf{x}_n}{h} \right) $$ 其中 $k(\cdot)$ 是核函数,满足非负且积分为1,$h$ 是带宽(平滑参数)。
- 例子:使用高斯核:$p(\mathbf{x}) = \frac{1}{N} \sum_n \frac{1}{(2\pi h^2)^{D/2}} \exp\left( -\frac{\|\mathbf{x}-\mathbf{x}_n\|^2}{2h^2} \right)$。
- 带宽选择:$h$ 小则过拟合,大则过度平滑,需要交叉验证选择。
2.5.4 K近邻密度估计
- 固定 $K$,根据包含 $K$ 个点的最小球体体积 $V$ 估计密度:$p(\mathbf{x}) = \frac{K}{NV}$。
- K近邻分类:对于分类,可用每个类的K近邻计数得到后验概率: $$ p(\mathcal{C}_k|\mathbf{x}) = \frac{K_k}{K} $$ 其中 $K_k$ 是K个近邻中属于类 $\mathcal{C}_k$ 的个数。
- 性质:K近邻分类器在极限情况下误差率不超过最优贝叶斯分类器的两倍。
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- Beta-Binomial:广告点击率估计。先验 $\mathrm{Beta}(a,b)$ 表示对点击率的初始信念,观察到点击次数 $m$ 后,后验均值 $\frac{a+m}{a+b+N}$ 是先验均值和观测频率的折衷。
- 狄利克雷-多项:文档主题建模。文档中单词分布可用多项分布建模,狄利克雷先验平滑概率,避免零概率问题。
- 高斯条件分布:预测问题中,给定某些特征的值,目标变量的条件分布是高斯,均值与输入线性相关,方差与输入有关。
- 混合高斯:对“旧忠实泉”喷发数据(图2.21),单一高斯无法拟合两个团簇,而混合两个高斯则能很好描述。
- K近邻分类:在手写数字识别中,对于新图像,找出训练集中最相似的K张图像,多数表决决定类别。
5. 与前后的联系
- 前续第1章:概率论基础、贝叶斯定理、高斯分布初步。
- 后续第3章(线性回归):使用高斯分布建模噪声,引入先验进行贝叶斯回归,使用高斯-伽马先验。
- 后续第4章(分类):使用伯努利/多项分布建模类别,利用指数族性质推导后验。
- 后续第9章(混合模型):详细讨论高斯混合的EM算法。
- 后续第13章(序列数据):使用高斯分布建模线性动态系统。
- 后续第2章内容本身:为全书提供概率分布的数学工具。
6. 核心要点总结与学习建议
核心要点
- 离散分布:伯努利、二项、多项及其共轭先验 Beta、狄利克雷。理解共轭先验的作用:简化贝叶斯更新。
- 高斯分布:掌握条件/边缘公式、贝叶斯推断、Student-t分布(鲁棒性)、周期高斯、混合高斯。
- 指数族:统一形式、充分统计量、自然参数、共轭先验的通用构造。
- 非参数方法:核密度估计、K近邻,理解平滑参数的作用和维度灾难的影响。
常见难点
- 共轭先验的推导:需要熟悉指数族形式,多做练习。
- 高斯条件/边缘公式的推导:涉及分块矩阵求逆,建议手推一遍,理解其结构。
- Student-t分布与离群点的关系:尾部越厚,对离群点容忍度越高。
- 混合高斯与EM算法:虽然本章只介绍概念,但理解责任、混合系数是关键。
学习建议
- 推导关键公式:亲自推导高斯条件/边缘、Beta后验、Dirichlet后验,加深理解。
- 编程实践:实现一元高斯的最大似然估计、贝叶斯更新;实现高斯混合的EM算法(第9章后再做);实现核密度估计和K近邻分类,观察参数影响。
- 结合例子思考:思考实际数据适合哪种分布,为什么选择共轭先验。
- 联系后续内容:阅读第3、4章时回顾本章相关分布,建立联系。
希望这份讲解能帮助你系统地掌握第2章的核心内容,并为后续学习打下坚实基础。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第3章“线性回归模型”教学讲解
1. 本章概述与学习目标
第3章系统介绍线性回归模型,这是监督学习中最基础也是最重要的模型之一。尽管线性模型在实际应用中可能受限于其表达能力,但它具有优雅的数学性质,是理解更复杂模型(如神经网络、核方法)的基石。本章从经典最小二乘法出发,逐步引入正则化、偏差-方差分解、贝叶斯方法以及证据近似,最终指出固定基函数模型的局限性。
学习本章后,你应该能够:
- 理解线性基函数模型的结构及其与线性回归的关系。
- 掌握最大似然估计与最小二乘法的等价性,以及噪声精度的估计。
- 理解最小二乘解的几何意义(正交投影)。
- 掌握顺序学习(LMS算法)的基本思想。
- 理解正则化(特别是权重衰减)如何控制过拟合,并熟悉岭回归解。
- 掌握偏差-方差分解,理解模型复杂度与泛化误差之间的权衡。
- 深入理解贝叶斯线性回归:先验、后验、预测分布、等效核。
- 了解贝叶斯模型比较的基本原理。
- 掌握证据近似(经验贝叶斯)的方法,理解如何从数据中自动确定正则化参数。
- 认识到固定基函数模型的局限性,为后续引入更灵活模型(如神经网络、高斯过程)做铺垫。
本章内容与第1章的概率论、第2章的分布以及第4章的线性分类紧密相连,也为后续章节(如第5章神经网络、第6章核方法)提供理论基础。
2. 由浅入深:从线性回归到贝叶斯视角
2.1 线性基函数模型
2.1.1 基本形式
最简单的线性回归模型是输入变量的线性组合:
$$ y(\mathbf{x},\mathbf{w}) = w_0 + w_1 x_1 + \dots + w_D x_D $$为了增强模型的表达能力,我们引入一组固定的非线性基函数 $\phi_j(\mathbf{x})$,将输入变换到特征空间:
$$ y(\mathbf{x},\mathbf{w}) = \sum_{j=0}^{M-1} w_j \phi_j(\mathbf{x}) = \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}) $$其中通常包含常数项 $\phi_0(\mathbf{x})=1$ 作为偏置(bias)。这个模型对参数 $\mathbf{w}$ 是线性的,故称线性模型,但对输入 $\mathbf{x}$ 可以是非线性的。
常见的基函数:
- 多项式基:$\phi_j(x) = x^j$
- 高斯基:$\phi_j(x) = \exp\left\{ -\frac{(x-\mu_j)^2}{2s^2} \right\}$
- sigmoidal基:$\phi_j(x) = \sigma\left( \frac{x-\mu_j}{s} \right)$,其中 $\sigma$ 是 logistic sigmoid 函数
基函数的选择决定了模型的先验结构,但参数学习方式相同。
2.1.2 最大似然与最小二乘
假设目标变量 $t$ 由确定性函数 $y(\mathbf{x},\mathbf{w})$ 加上高斯噪声产生:
$$ t = y(\mathbf{x},\mathbf{w}) + \epsilon, \quad \epsilon \sim \mathcal{N}(0,\beta^{-1}) $$则条件分布为:
$$ p(t|\mathbf{x},\mathbf{w},\beta) = \mathcal{N}(t|y(\mathbf{x},\mathbf{w}), \beta^{-1}) $$给定独立同分布的训练数据 $\{\mathbf{x}_n, t_n\}_{n=1}^N$,似然函数为:
$$ p(\mathbf{t}|\mathbf{X},\mathbf{w},\beta) = \prod_{n=1}^N \mathcal{N}(t_n|\mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}_n), \beta^{-1}) $$取负对数,得到误差函数(忽略常数):
$$ E(\mathbf{w}) = \frac{1}{2} \sum_{n=1}^N \{ t_n - \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}_n) \}^2 $$最大化似然等价于最小化平方和误差函数(最小二乘)。对 $\mathbf{w}$ 求导并令为零,得到正规方程:
$$ \mathbf{w}_{\text{ML}} = (\boldsymbol{\Phi}^T \boldsymbol{\Phi})^{-1} \boldsymbol{\Phi}^T \mathbf{t} $$其中 $\boldsymbol{\Phi}$ 是 $N \times M$ 的设计矩阵(design matrix),其元素 $\Phi_{nj} = \phi_j(\mathbf{x}_n)$。量 $(\boldsymbol{\Phi}^T \boldsymbol{\Phi})^{-1} \boldsymbol{\Phi}^T$ 称为 $\boldsymbol{\Phi}$ 的Moore-Penrose伪逆。
噪声精度 $\beta$ 的最大似然估计为:
$$ \frac{1}{\beta_{\text{ML}}} = \frac{1}{N} \sum_{n=1}^N \{ t_n - \mathbf{w}_{\text{ML}}^T \boldsymbol{\phi}(\mathbf{x}_n) \}^2 $$2.1.3 最小二乘的几何解释
将训练目标值 $\mathbf{t}$ 视为 $N$ 维空间中的一个向量,每个基函数 $\phi_j$ 对应一个向量 $\boldsymbol{\phi}_j$(设计矩阵的第 $j$ 列)。这些基向量张成一个 $M$ 维子空间 $S$。最小二乘解得到的拟合值 $\mathbf{y} = \boldsymbol{\Phi} \mathbf{w}_{\text{ML}}$ 正是 $\mathbf{t}$ 在子空间 $S$ 上的正交投影。
2.1.4 顺序学习(LMS)
对于大数据流或在线场景,可使用随机梯度下降:
$$ \mathbf{w}^{(\tau+1)} = \mathbf{w}^{(\tau)} - \eta \nabla E_n $$对于平方和误差,有:
$$ \mathbf{w}^{(\tau+1)} = \mathbf{w}^{(\tau)} + \eta (t_n - \mathbf{w}^{(\tau)T} \boldsymbol{\phi}_n) \boldsymbol{\phi}_n $$这称为最小均方(LMS)算法。
2.1.5 正则化最小二乘
为控制过拟合,在误差函数中加入正则化项,例如权重衰减:
$$ E(\mathbf{w}) = \frac{1}{2} \sum_{n=1}^N \{ t_n - \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}_n) \}^2 + \frac{\lambda}{2} \mathbf{w}^T \mathbf{w} $$对应的解为:
$$ \mathbf{w} = (\lambda \mathbf{I} + \boldsymbol{\Phi}^T \boldsymbol{\Phi})^{-1} \boldsymbol{\Phi}^T \mathbf{t} $$称为岭回归。更一般的正则化可以形如 $\frac{\lambda}{2} \sum |w_j|^q$,其中 $q=1$ 为 lasso,可产生稀疏解。
2.1.6 多个输出
当有 $K$ 个目标变量时,可用同一个基函数集,每个输出对应一个权重向量,构成权重矩阵 $\mathbf{W}$。似然函数为:
$$ p(\mathbf{T}|\mathbf{X},\mathbf{W},\beta) = \prod_{n=1}^N \mathcal{N}(\mathbf{t}_n|\mathbf{W}^T \boldsymbol{\phi}(\mathbf{x}_n), \beta^{-1} \mathbf{I}) $$解耦为每个输出独立的最小二乘问题:$\mathbf{w}_k = (\boldsymbol{\Phi}^T \boldsymbol{\Phi})^{-1} \boldsymbol{\Phi}^T \mathbf{t}_k$。
2.2 偏差-方差分解
偏差-方差分解从频率派角度解释模型复杂度与泛化误差的关系。
给定回归函数 $h(\mathbf{x}) = \mathbb{E}[t|\mathbf{x}]$(最优预测),对于特定数据集 $\mathcal{D}$ 学到的模型 $y(\mathbf{x};\mathcal{D})$,期望平方损失可分解为:
$$ \mathbb{E}_{\mathcal{D}}[\{ y(\mathbf{x};\mathcal{D}) - h(\mathbf{x}) \}^2] = \{\mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})] - h(\mathbf{x}) \}^2 + \mathbb{E}_{\mathcal{D}}[\{ y(\mathbf{x};\mathcal{D}) - \mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})] \}^2] $$- 偏差:平均预测与真实函数的偏离程度。
- 方差:预测对数据集的敏感程度。
总期望损失 = 偏差² + 方差 + 噪声(不可减项)。随着模型复杂度增加,偏差下降而方差上升,最优复杂度在两者平衡处。
例子:图3.5展示了正弦数据上不同 $\lambda$ 下100个数据集的拟合结果,可见大 $\lambda$(强正则)导致高偏差低方差,小 $\lambda$(弱正则)导致低偏差高方差。
2.3 贝叶斯线性回归
2.3.1 参数分布
将参数 $\mathbf{w}$ 视为随机变量,引入先验分布。通常选择高斯先验:
$$ p(\mathbf{w}) = \mathcal{N}(\mathbf{w}|\mathbf{m}_0, \mathbf{S}_0) $$为简化,使用零均值各向同性高斯:
$$ p(\mathbf{w}|\alpha) = \mathcal{N}(\mathbf{w}|\mathbf{0}, \alpha^{-1} \mathbf{I}) $$其中 $\alpha$ 是精度。
似然为 $p(\mathbf{t}|\mathbf{w}) = \mathcal{N}(\mathbf{t}|\boldsymbol{\Phi}\mathbf{w}, \beta^{-1}\mathbf{I})$。后验分布(高斯)由贝叶斯定理得到:
$$ p(\mathbf{w}|\mathbf{t}) = \mathcal{N}(\mathbf{w}|\mathbf{m}_N, \mathbf{S}_N) $$其中
$$ \mathbf{m}_N = \beta \mathbf{S}_N \boldsymbol{\Phi}^T \mathbf{t},\quad \mathbf{S}_N^{-1} = \alpha \mathbf{I} + \beta \boldsymbol{\Phi}^T \boldsymbol{\Phi} $$MAP估计(最大后验)即 $\mathbf{m}_N$,它等价于最小化正则化误差 $\frac{\beta}{2} \|\mathbf{t} - \boldsymbol{\Phi}\mathbf{w}\|^2 + \frac{\alpha}{2} \mathbf{w}^T \mathbf{w}$。
2.3.2 预测分布
对新的输入 $\mathbf{x}$,预测分布通过对 $\mathbf{w}$ 积分得到:
$$ p(t|\mathbf{x},\mathbf{t}) = \int p(t|\mathbf{x},\mathbf{w}) p(\mathbf{w}|\mathbf{t}) d\mathbf{w} = \mathcal{N}(t|\mathbf{m}_N^T \boldsymbol{\phi}(\mathbf{x}), \sigma_N^2(\mathbf{x})) $$其中方差为:
$$ \sigma_N^2(\mathbf{x}) = \frac{1}{\beta} + \boldsymbol{\phi}(\mathbf{x})^T \mathbf{S}_N \boldsymbol{\phi}(\mathbf{x}) $$第一项为噪声方差,第二项为参数不确定性导致的方差。随着 $N \to \infty$,第二项趋于零,预测方差仅由噪声决定。
例子:图3.8展示了随着数据点增多,预测不确定性减小,且靠近数据点处不确定性更小。
2.3.3 等效核
预测均值可以写为训练目标值的线性组合:
$$ y(\mathbf{x},\mathbf{m}_N) = \sum_{n=1}^N k(\mathbf{x},\mathbf{x}_n) t_n $$其中 $k(\mathbf{x},\mathbf{x}') = \beta \boldsymbol{\phi}(\mathbf{x})^T \mathbf{S}_N \boldsymbol{\phi}(\mathbf{x}')$ 称为等效核。它是局部化的,即对与 $\mathbf{x}$ 相近的训练点赋予更大权重。等效核满足 $\sum_n k(\mathbf{x},\mathbf{x}_n) = 1$,且可表示为 $\psi(\mathbf{x})^T \psi(\mathbf{x}')$,暗示其与核方法(第6章)的联系。
2.4 贝叶斯模型比较
2.4.1 模型证据
在贝叶斯框架中,模型比较通过计算模型证据(边际似然)$p(\mathcal{D}|\mathcal{M}_i)$ 进行:
$$ p(\mathcal{D}|\mathcal{M}_i) = \int p(\mathcal{D}|\mathbf{w},\mathcal{M}_i) p(\mathbf{w}|\mathcal{M}_i) d\mathbf{w} $$模型证据自动实现了奥卡姆剃刀:过于简单的模型无法很好地拟合数据,过于复杂的模型因其参数空间的广阔性而使数据概率降低。图3.13形象地说明了这一点。
2.4.2 简单近似
通过对后验分布进行拉普拉斯近似(假设后验集中于 $\mathbf{w}_{\text{MAP}}$),可得到:
$$ \ln p(\mathcal{D}) \approx \ln p(\mathcal{D}|\mathbf{w}_{\text{MAP}}) + \ln\left( \frac{\Delta w_{\text{posterior}}}{\Delta w_{\text{prior}}} \right) $$其中第二项为复杂度惩罚。对于多个参数,近似为:
$$ \ln p(\mathcal{D}) \approx \ln p(\mathcal{D}|\mathbf{w}_{\text{MAP}}) + M \ln\left( \frac{\Delta w_{\text{posterior}}}{\Delta w_{\text{prior}}} \right) $$这体现了模型复杂度与拟合度的权衡。
2.5 证据近似(经验贝叶斯)
在贝叶斯线性回归中,超参数 $\alpha$ 和 $\beta$ 也需要确定。完全贝叶斯需要对其积分,但难以解析处理。证据近似(或称经验贝叶斯、第二类最大似然)通过最大化边际似然 $p(\mathbf{t}|\alpha,\beta)$ 来估计 $\alpha$ 和 $\beta$。
2.5.1 证据函数
对于模型 (3.10) 和先验 (3.52),边际似然为:
$$ p(\mathbf{t}|\alpha,\beta) = \int p(\mathbf{t}|\mathbf{w},\beta) p(\mathbf{w}|\alpha) d\mathbf{w} $$积分结果(高斯)为:
$$ \ln p(\mathbf{t}|\alpha,\beta) = \frac{M}{2} \ln \alpha + \frac{N}{2} \ln \beta - E(\mathbf{m}_N) - \frac{1}{2} \ln |\mathbf{A}| - \frac{N}{2} \ln(2\pi) $$其中 $\mathbf{A} = \alpha \mathbf{I} + \beta \boldsymbol{\Phi}^T \boldsymbol{\Phi}$,$\mathbf{m}_N = \beta \mathbf{A}^{-1} \boldsymbol{\Phi}^T \mathbf{t}$,$E(\mathbf{m}_N) = \frac{\beta}{2} \|\mathbf{t} - \boldsymbol{\Phi} \mathbf{m}_N\|^2 + \frac{\alpha}{2} \mathbf{m}_N^T \mathbf{m}_N$。
2.5.2 最大化证据
对 $\alpha$ 最大化,得到迭代重估公式:
$$ \alpha = \frac{\gamma}{\mathbf{m}_N^T \mathbf{m}_N}, \quad \gamma = \sum_{i=1}^M \frac{\lambda_i}{\alpha + \lambda_i} $$其中 $\lambda_i$ 是 $\beta \boldsymbol{\Phi}^T \boldsymbol{\Phi}$ 的特征值。$\gamma$ 可解释为有效参数个数(well-determined parameters)。
对 $\beta$ 最大化,得到:
$$ \frac{1}{\beta} = \frac{1}{N - \gamma} \sum_{n=1}^N \{ t_n - \mathbf{m}_N^T \boldsymbol{\phi}(\mathbf{x}_n) \}^2 $$这与无偏方差估计类似,分母是 $N - \gamma$ 而非 $N$,校正了参数不确定性。
例子:图3.16展示了证据框架确定 $\alpha$ 的过程,其最大值与最佳泛化性能位置一致。
2.6 固定基函数的局限性
尽管线性基函数模型具有解析解和贝叶斯可处理性,但它受限于基函数必须事先固定且数量往往随维度指数增长(维度灾难)。实际问题中,数据往往位于低维流形上,且目标变量可能仅依赖于少数方向。因此需要更灵活的模型(如神经网络、核方法)来自适应地学习基函数。
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- 多项式拟合(第1章例子)是线性基函数模型的特例,基函数为 $x^j$。图1.4展示了不同 $M$ 的效果,图1.7展示了正则化的作用。
- LMS算法:假设输入 $x$ 是单个标量,基函数 $\phi(x)=x$(无偏置),则 LMS 更新为 $w^{(\tau+1)} = w^{(\tau)} + \eta (t_n - w^{(\tau)} x_n) x_n$,可在线学习。
- 证据框架中的有效参数:在多项式拟合中,随着 $\alpha$ 减小,$\gamma$ 从0增加到 $M$,对应参数从被先验约束到被数据确定。
- 预测区间:贝叶斯线性回归不仅给出预测均值,还给出随输入变化的置信区间(图3.8),这对风险敏感的决策非常有用。
5. 与前后的联系
- 第1章:多项式拟合引入过拟合、正则化、贝叶斯概念,本章将其系统化。
- 第2章:高斯分布、Gamma分布、正态-伽马分布等用于贝叶斯推断;指数族联系在第2章已介绍。
- 第4章:线性分类模型(逻辑回归)是线性模型的推广,使用类似的贝叶斯方法。
- 第5章:神经网络通过自适应基函数克服固定基函数局限,但仍可用本章的贝叶斯方法处理(第5.7节)。
- 第6章:核方法(高斯过程)与等效核有直接联系,高斯过程回归是贝叶斯线性回归的核化版本。
- 第7章:相关向量机(RVM)采用类似的证据框架学习稀疏模型。
6. 核心要点总结与学习建议
核心要点
- 线性基函数模型:对参数线性,可通过最小二乘解析求解。
- 最大似然与最小二乘等价:在高斯噪声下。
- 过拟合与正则化:岭回归通过权重衰减控制模型复杂度。
- 偏差-方差分解:揭示了模型复杂度与泛化误差的权衡。
- 贝叶斯线性回归:引入先验,得到参数后验和预测分布,自然包含不确定性。
- 等效核:预测均值是训练目标值的加权和,权重由核函数给出,预示核方法。
- 贝叶斯模型比较:模型证据自动权衡拟合度和复杂度。
- 证据近似:通过最大化边际似然估计超参数,得到有效参数数 $\gamma$。
- 固定基函数的局限:需自适应基函数应对高维数据。
常见难点
- 偏差-方差分解的理解:偏差与方差的权衡并非总是可以优化,需要理解其推导和含义。
- 贝叶斯后验分布的推导:需要熟练使用矩阵运算和“配方”。
- 证据近似的计算:涉及矩阵特征值、迹的导数,需要仔细推导。
- 等效核的局部性:即使基函数是非局部的(如多项式、sigmoid),等效核仍可能是局部的(图3.11),这一事实值得深思。
学习建议
- 亲手推导:将关键公式(正规方程、后验均值和协方差、预测分布、证据函数)自己推导一遍,加深理解。
- 代码实践:用 Python 实现多项式拟合,尝试不同 $M$、$\lambda$,绘制偏差-方差图;实现贝叶斯线性回归并可视化预测区间。
- 关联后续:学完本章后,阅读第6章关于高斯过程的部分,对比等效核与核函数。
- 思考问题:为什么贝叶斯方法能自动避免过拟合?证据近似中 $\gamma$ 如何随 $\alpha$ 变化?
掌握本章内容,将为后续学习更复杂的非线性模型打下坚实基础。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第4章“线性分类模型”教学讲解
1. 本章概述与学习目标
第4章系统介绍线性分类模型,这是继第3章线性回归之后对监督学习的另一重要分支的探讨。分类的目标是将输入向量 $\mathbf{x}$ 分配到 $K$ 个离散类别 $\mathcal{C}_k$ 中。本章从最简单的线性判别函数出发,逐步深入到概率生成模型和概率判别模型,最终引入贝叶斯处理方法(拉普拉斯近似)。通过本章学习,你应该能够:
- 理解线性分类模型的基本思想:决策边界是输入空间的超平面。
- 掌握三种不同复杂度的分类方法:判别函数、生成式模型、判别式模型,并理解各自的优缺点。
- 掌握线性判别函数(最小二乘、Fisher线性判别、感知机)的原理和算法。
- 理解概率生成模型:通过建模类条件密度 $p(\mathbf{x}|\mathcal{C}_k)$ 和先验 $p(\mathcal{C}_k)$,利用贝叶斯定理得到后验概率,并认识其与广义线性模型的关系。
- 掌握概率判别模型:直接建模后验概率,特别是逻辑回归(二类和多类)及其优化算法(IRLS)。
- 了解probit回归及其与逻辑回归的关系。
- 理解拉普拉斯近似的基本思想及其在模型比较(BIC)中的应用。
- 掌握贝叶斯逻辑回归的拉普拉斯近似方法,得到预测分布。
本章内容与第3章线性回归有深刻联系(线性模型、广义线性模型、贝叶斯方法),同时为后续更复杂的分类模型(神经网络、核方法、稀疏核机器)奠定基础。
2. 由浅入深:从判别函数到概率模型
2.1 分类问题概述
在分类问题中,目标变量 $t$ 是离散的类别标签。常见的表示方式:
- 二分类:常用 $t \in \{0,1\}$(概率模型)或 $t \in \{-1, +1\}$(如感知机、SVM)。
- 多分类(K类):常用1-of-K编码,即 $\mathbf{t}$ 是长度为 $K$ 的向量,对应类为1,其余为0。
三种主要方法(第1.5.4节):
- 判别函数:直接学习从输入到类别的映射函数 $f(\mathbf{x})$,不涉及概率。
- 判别式模型:直接建模后验概率 $p(\mathcal{C}_k|\mathbf{x})$。
- 生成式模型:建模类条件密度 $p(\mathbf{x}|\mathcal{C}_k)$ 和类先验 $p(\mathcal{C}_k)$,通过贝叶斯定理计算后验。
本章依次讨论这三种方法,并重点关注线性决策边界(即决策面为超平面)的情形。
2.2 判别函数
2.2.1 二分类线性判别函数
- 形式: $$ y(\mathbf{x}) = \mathbf{w}^T \mathbf{x} + w_0 $$ 决策规则:若 $y(\mathbf{x}) \ge 0$ 则分类为 $\mathcal{C}_1$,否则为 $\mathcal{C}_2$。决策面 $y(\mathbf{x})=0$ 是超平面。
- 几何性质:
- 法向量 $\mathbf{w}$ 垂直于决策面,指向 $\mathcal{C}_1$ 侧。
- 原点到决策面的距离为 $-w_0 / \|\mathbf{w}\|$。
- 点 $\mathbf{x}$ 到决策面的有符号距离为 $y(\mathbf{x}) / \|\mathbf{w}\|$。
2.2.2 多类线性判别函数
为避免一对多或一对一策略导致的歧义,采用 $K$ 个线性函数:
$$ y_k(\mathbf{x}) = \mathbf{w}_k^T \mathbf{x} + w_{k0} $$决策规则:将 $\mathbf{x}$ 分到使 $y_k(\mathbf{x})$ 最大的类。决策面由 $y_k(\mathbf{x}) = y_j(\mathbf{x})$ 给出,也是超平面。这种定义保证了决策区域是凸的、单连通的。
2.2.3 最小二乘分类
将线性回归应用于分类:用1-of-K编码的目标向量,最小化平方和误差。但该方法存在严重问题:
- 对离群点敏感(图4.4)。
- 可能给出极差的分类面(图4.5),因为平方损失假设高斯噪声,而分类目标显然是二值(伯努利)分布,不符合高斯假设。
2.2.4 Fisher线性判别
- 思想:寻找投影方向 $\mathbf{w}$,使得投影后类间分离度大、类内方差小。
- 定义:
- 类内散度矩阵 $\mathbf{S}_W = \sum_{n\in\mathcal{C}_1} (\mathbf{x}_n - \mathbf{m}_1)(\mathbf{x}_n - \mathbf{m}_1)^T + \sum_{n\in\mathcal{C}_2} (\mathbf{x}_n - \mathbf{m}_2)(\mathbf{x}_n - \mathbf{m}_2)^T$
- 类间散度矩阵 $\mathbf{S}_B = (\mathbf{m}_2 - \mathbf{m}_1)(\mathbf{m}_2 - \mathbf{m}_1)^T$
- Fisher准则:$J(\mathbf{w}) = \frac{\mathbf{w}^T \mathbf{S}_B \mathbf{w}}{\mathbf{w}^T \mathbf{S}_W \mathbf{w}}$
- 解:$\mathbf{w} \propto \mathbf{S}_W^{-1} (\mathbf{m}_2 - \mathbf{m}_1)$
- 多类Fisher判别:推广到 $K$ 类,投影到 $D'$ 维空间 ($D' \le K-1$),通过最大化迹准则 $J(\mathbf{W}) = \text{Tr}\{ (\mathbf{W} \mathbf{S}_W \mathbf{W}^T)^{-1} (\mathbf{W} \mathbf{S}_B \mathbf{W}^T) \}$ 得到投影矩阵。
2.2.5 感知机算法
- 模型:$y(\mathbf{x}) = f(\mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}))$,其中 $f$ 是符号函数(输出 $\pm 1$),目标 $t \in \{-1, +1\}$。
- 误差函数(感知机准则):$E_P(\mathbf{w}) = -\sum_{n \in \mathcal{M}} \mathbf{w}^T \boldsymbol{\phi}_n t_n$,其中 $\mathcal{M}$ 是误分类样本集。
- 学习算法:随机梯度下降,每次遇到误分类样本则更新 $\mathbf{w} \leftarrow \mathbf{w} + \eta \boldsymbol{\phi}_n t_n$。
- 收敛性:若数据线性可分,算法在有限步内收敛(感知机收敛定理);若不可分,算法不收敛。
- 局限:不提供概率输出,对多类扩展困难,只能处理线性可分问题。
2.3 概率生成模型
2.3.1 基本框架
对于二分类,后验概率可写为:
$$ p(\mathcal{C}_1|\mathbf{x}) = \frac{p(\mathbf{x}|\mathcal{C}_1)p(\mathcal{C}_1)}{p(\mathbf{x}|\mathcal{C}_1)p(\mathcal{C}_1) + p(\mathbf{x}|\mathcal{C}_2)p(\mathcal{C}_2)} = \sigma(a) $$其中 $a = \ln \frac{p(\mathbf{x}|\mathcal{C}_1)p(\mathcal{C}_1)}{p(\mathbf{x}|\mathcal{C}_2)p(\mathcal{C}_2)}$,$\sigma(a) = 1/(1+e^{-a})$ 是 logistic sigmoid 函数。对于 $K>2$ 类,后验由 softmax 函数给出:
$$ p(\mathcal{C}_k|\mathbf{x}) = \frac{\exp(a_k)}{\sum_j \exp(a_j)}, \quad a_k = \ln p(\mathbf{x}|\mathcal{C}_k) p(\mathcal{C}_k) $$若类条件密度取指数族形式,且共享尺度参数,则 $a_k$ 是 $\mathbf{x}$ 的线性函数,从而后验为广义线性模型。
2.3.2 连续输入(高斯分布)
假设各类的高斯分布具有相同协方差矩阵 $\boldsymbol{\Sigma}$,则:
$$ p(\mathbf{x}|\mathcal{C}_k) = \mathcal{N}(\mathbf{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}) $$代入得 $a_k(\mathbf{x}) = \mathbf{w}_k^T \mathbf{x} + w_{k0}$,其中
$$ \mathbf{w}_k = \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu}_k, \quad w_{k0} = -\frac{1}{2} \boldsymbol{\mu}_k^T \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu}_k + \ln p(\mathcal{C}_k) $$因此后验是线性函数的 logistic/softmax。若各类协方差不同,则得到二次判别函数。
2.3.3 最大似然估计
对于高斯生成模型,可通过最大化似然估计参数。以二类为例:
- 类先验 $\pi = p(\mathcal{C}_1)$ 的 ML 估计为 $\hat{\pi} = N_1/N$。
- 类均值 $\boldsymbol{\mu}_k$ 的 ML 估计为相应类样本均值。
- 共享协方差的 ML 估计为各类样本协方差的加权平均。
2.3.4 离散特征(朴素贝叶斯)
假设特征独立(给定类),则类条件密度为:
$$ p(\mathbf{x}|\mathcal{C}_k) = \prod_{i=1}^D \mu_{ki}^{x_i} (1-\mu_{ki})^{1-x_i} $$代入 $a_k$ 得到线性函数。
2.3.5 指数族
更一般地,若类条件密度为指数族形式 $p(\mathbf{x}|\lambda_k, s) = \frac{1}{s} h(\frac{1}{s}\mathbf{x}) g(\lambda_k) \exp(\frac{1}{s} \lambda_k^T \mathbf{x})$(共享尺度 $s$),则 $a_k$ 也是 $\mathbf{x}$ 的线性函数。
2.4 概率判别模型
2.4.1 逻辑回归(二类)
- 模型:直接假设 $p(\mathcal{C}_1|\boldsymbol{\phi}) = \sigma(\mathbf{w}^T \boldsymbol{\phi})$,其中 $\boldsymbol{\phi} = \boldsymbol{\phi}(\mathbf{x})$。
- 似然函数(对于 $t_n \in \{0,1\}$): $$ p(\mathbf{t}|\mathbf{w}) = \prod_{n=1}^N y_n^{t_n} (1-y_n)^{1-t_n}, \quad y_n = \sigma(\mathbf{w}^T \boldsymbol{\phi}_n) $$
- 误差函数(负对数似然)为交叉熵: $$ E(\mathbf{w}) = -\sum_{n=1}^N \{ t_n \ln y_n + (1-t_n) \ln(1-y_n) \} $$
- 梯度: $$ \nabla E(\mathbf{w}) = \sum_{n=1}^N (y_n - t_n) \boldsymbol{\phi}_n $$ 形式简洁,无需求导 sigmoid 导数,因为导数中的因子被抵消。
- 优化:可用梯度下降,但更常用迭代重加权最小二乘(IRLS,见下)。
优点:参数数量仅为 $M$(特征维数),而生成模型需要估计更多参数(均值、协方差)。对异常值鲁棒(图4.4)。
2.4.2 多类逻辑回归(softmax回归)
- 模型: $$ y_k(\boldsymbol{\phi}) = \frac{\exp(\mathbf{w}_k^T \boldsymbol{\phi})}{\sum_j \exp(\mathbf{w}_j^T \boldsymbol{\phi})} $$
- 误差函数(交叉熵): $$ E(\mathbf{w}_1,\dots,\mathbf{w}_K) = -\sum_{n=1}^N \sum_{k=1}^K t_{nk} \ln y_{nk} $$
- 梯度: $$ \nabla_{\mathbf{w}_j} E = \sum_{n=1}^N (y_{nj} - t_{nj}) \boldsymbol{\phi}_n $$
2.4.3 迭代重加权最小二乘(IRLS)
- 思想:对逻辑回归,误差函数是凸函数,可用牛顿-拉弗森方法迭代求解。
- 对于二类:海森矩阵 $\mathbf{H} = \sum_n y_n(1-y_n) \boldsymbol{\phi}_n \boldsymbol{\phi}_n^T = \boldsymbol{\Phi}^T \mathbf{R} \boldsymbol{\Phi}$,其中 $\mathbf{R}$ 对角元 $R_{nn} = y_n(1-y_n)$。更新公式为: $$ \mathbf{w}^{\text{new}} = (\boldsymbol{\Phi}^T \mathbf{R} \boldsymbol{\Phi})^{-1} \boldsymbol{\Phi}^T \mathbf{R} \mathbf{z} $$ 其中 $\mathbf{z} = \boldsymbol{\Phi} \mathbf{w}^{\text{old}} - \mathbf{R}^{-1}(\mathbf{y} - \mathbf{t})$ 是调整后的目标值(类似线性化)。
- 因 $\mathbf{R}$ 依赖于 $\mathbf{w}$,需迭代,故称 IRLS。
2.4.4 Probit回归
- 动机:假设存在潜在变量 $a = \mathbf{w}^T \boldsymbol{\phi}$ 加噪声,通过阈值产生类别: $$ t = 1 \text{ if } a + \epsilon > 0,\ \epsilon \sim \mathcal{N}(0,1) $$ 则激活函数为累积高斯分布 $\Phi(a)$,称为 probit 函数。
- 模型:$p(t=1|\boldsymbol{\phi}) = \Phi(\mathbf{w}^T \boldsymbol{\phi})$。
- 性质:与 logistic 回归类似,但对离群点更敏感(尾部以 $\exp(-x^2)$ 衰减,而 logistic 以 $\exp(-x)$ 衰减)。
- 鲁棒性扩展:可引入标签噪声(标签翻转)概率 $\epsilon$,得到 $p(t=1|\mathbf{x}) = \epsilon + (1-2\epsilon)\sigma(\mathbf{x})$。
2.4.5 典型链接函数
对于指数族条件分布 $p(t|\eta,s)$,定义广义线性模型 $y = f(\mathbf{w}^T \boldsymbol{\phi})$,其中 $f$ 为激活函数,$f^{-1}$ 为链接函数。若选择典型链接,即 $f^{-1}(y) = \psi(y)$ 使 $\psi(y) = \eta$,则梯度简化为 $(y_n - t_n)\boldsymbol{\phi}_n$。这解释了为何逻辑回归和线性回归有相同形式的梯度。
2.5 拉普拉斯近似
拉普拉斯近似用于近似难以解析处理的后验分布,常用于贝叶斯逻辑回归。
- 思想:在分布众数 $z_0$ 处做二阶泰勒展开,得到高斯近似。
- 单变量: $$ \ln f(z) \approx \ln f(z_0) - \frac{1}{2} A (z - z_0)^2,\quad A = -\left. \frac{d^2}{dz^2} \ln f(z) \right|_{z_0} $$ 则 $q(z) = \sqrt{\frac{A}{2\pi}} e^{-\frac{A}{2}(z-z_0)^2}$。
- 多变量: $$ q(\mathbf{z}) = \mathcal{N}(\mathbf{z}|\mathbf{z}_0, \mathbf{A}^{-1}),\quad \mathbf{A} = -\nabla \nabla \ln f(\mathbf{z})|_{\mathbf{z}_0} $$
- 用于模型比较:通过拉普拉斯近似计算模型证据(边际似然): $$ \ln p(\mathcal{D}) \approx \ln p(\mathcal{D}|\theta_{\text{MAP}}) + \ln p(\theta_{\text{MAP}}) + \frac{M}{2}\ln(2\pi) - \frac{1}{2}\ln|\mathbf{A}| $$ 其中最后三项构成奥卡姆因子,惩罚模型复杂度。
- BIC:进一步近似可得贝叶斯信息准则 $\ln p(\mathcal{D}) \approx \ln p(\mathcal{D}|\theta_{\text{MAP}}) - \frac{1}{2}M \ln N$。
2.6 贝叶斯逻辑回归
2.6.1 拉普拉斯近似
- 先验:高斯 $p(\mathbf{w}) = \mathcal{N}(\mathbf{w}|\mathbf{0}, \mathbf{S}_0)$(通常 $\mathbf{S}_0 = \alpha^{-1}\mathbf{I}$)。
- 后验:$p(\mathbf{w}|\mathbf{t}) \propto p(\mathbf{w}) \prod_n p(t_n|\mathbf{w})$。用拉普拉斯近似得到: $$ q(\mathbf{w}) = \mathcal{N}(\mathbf{w}|\mathbf{w}_{\text{MAP}}, \mathbf{S}_N) $$ 其中 $\mathbf{S}_N^{-1} = -\nabla \nabla \ln p(\mathbf{w}|\mathbf{t})$(需计算海森矩阵)。
- 海森矩阵: $$ \mathbf{S}_N^{-1} = \mathbf{S}_0^{-1} + \sum_{n=1}^N y_n(1-y_n) \boldsymbol{\phi}_n \boldsymbol{\phi}_n^T $$ 其中 $y_n = \sigma(\mathbf{w}_{\text{MAP}}^T \boldsymbol{\phi}_n)$。
2.6.2 预测分布
对于新输入 $\boldsymbol{\phi}$,预测分布为:
$$ p(\mathcal{C}_1|\boldsymbol{\phi},\mathbf{t}) \approx \int \sigma(\mathbf{w}^T \boldsymbol{\phi}) q(\mathbf{w}) d\mathbf{w} $$积分难解析,可利用 probit 近似 $\sigma(a) \approx \Phi(\lambda a)$($\lambda^2 = \pi/8$)得到:
$$ p(\mathcal{C}_1|\boldsymbol{\phi},\mathbf{t}) \approx \sigma\left( \kappa(\sigma_a^2) \mu_a \right) $$其中 $\mu_a = \mathbf{w}_{\text{MAP}}^T \boldsymbol{\phi}$,$\sigma_a^2 = \boldsymbol{\phi}^T \mathbf{S}_N \boldsymbol{\phi}$,$\kappa(\sigma^2) = (1 + \pi\sigma^2/8)^{-1/2}$。
注意:决策边界(后验=0.5)仍由 $\mu_a=0$ 决定,与 MAP 相同,但概率值考虑了参数不确定性。
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- 最小二乘分类失效:图4.4中,加入几个远端点后,最小二乘决策面严重偏移,而逻辑回归基本不变。
- Fisher线性判别:图4.6展示了 Fisher 投影相比单纯均值投影能更好分离数据(考虑类内方差)。
- 感知机收敛:图4.7展示了感知机逐步调整决策面直到完全分开线性可分数据。
- 生成模型 vs 判别模型:生成模型需要估计类条件密度(如高斯均值、协方差),而判别模型直接拟合后验,参数更少。当类条件密度假设不准确时,判别模型往往性能更好。
- 逻辑回归过拟合:线性可分数据会导致逻辑回归系数趋于无穷大(图4.13下方说明),此时需用正则化或贝叶斯方法。
- 贝叶斯逻辑回归预测区间:图5.23展示了贝叶斯神经网络的预测概率等值线,考虑了参数不确定性后,概率值远离0/1的区域变大,置信度降低。
5. 与前后的联系
- 第1章:分类问题定义、决策理论(后验概率与损失函数)、贝叶斯定理。
- 第2章:高斯分布、指数族分布、Gamma分布、拉普拉斯近似的基础。
- 第3章:线性回归模型(广义线性模型、最大似然、贝叶斯方法),本章逻辑回归是其分类对应物,IRLS 与正则化方程有相似形式。
- 第5章:神经网络是多个逻辑回归模型的组合,且可视为自适应基函数。本章的贝叶斯逻辑回归的拉普拉斯近似为第5.7节贝叶斯神经网络奠定了基础。
- 第7章:支持向量机(SVM)与逻辑回归的损失函数对比(hinge loss vs logistic loss),相关向量机(RVM)是稀疏贝叶斯分类器,与本章的贝叶斯逻辑回归相关。
- 第8章:图模型可用于表示分类模型的结构(朴素贝叶斯模型如图8.24)。
- 第10章:变分推断可用于更精确的贝叶斯逻辑回归近似。
6. 核心要点总结与学习建议
核心要点
- 三类方法:
- 判别函数:直接决策,无概率,如感知机、Fisher判别。
- 生成式:建模 $p(\mathbf{x}|\mathcal{C}_k)$ 和先验,后验由贝叶斯定理得到,如高斯判别分析、朴素贝叶斯。
- 判别式:直接建模后验,如逻辑回归、probit 回归。
- 逻辑回归:
- 模型形式:$p(\mathcal{C}_1|\boldsymbol{\phi}) = \sigma(\mathbf{w}^T\boldsymbol{\phi})$。
- 交叉熵损失函数,梯度简单 $(y_n - t_n)\boldsymbol{\phi}_n$。
- 优化可用 IRLS(牛顿法)。
- 多类逻辑回归:softmax + 交叉熵,梯度类似。
- 生成模型:当类条件密度为指数族且共享尺度时,后验呈线性 logistic/softmax;参数可通过 ML 估计。
- 贝叶斯处理:拉普拉斯近似用于后验和预测分布,模型比较可用证据近似或 BIC。
- 重要关系:典型链接函数导致梯度形式统一;probit 与 logistic 相似但尾部不同。
常见难点
- 最小二乘分类为何差:因为它假设高斯噪声,而分类目标非高斯,导致对离群点敏感,且可能产生非最优边界。
- 感知机与逻辑回归的区别:感知机输出 ±1,用误分类驱动更新,不提供概率;逻辑回归输出 (0,1) 概率,用似然优化,可解释。
- IRLS 推导:需理解牛顿法和对逻辑回归梯度的二阶展开,海森矩阵恒正定,确保凸性。
- 贝叶斯逻辑回归的预测近似:需要掌握拉普拉斯近似、probit 近似技巧,并理解积分近似公式。
学习建议
- 手推关键公式:
- 逻辑回归的梯度、海森矩阵。
- IRLS 更新公式。
- 拉普拉斯近似下的后验均值和协方差。
- 预测分布的 probit 近似推导。
- 代码实践:
- 用 Python 实现逻辑回归(二类)的 IRLS 算法,验证在合成数据集上的效果。
- 实现贝叶斯逻辑回归的拉普拉斯近似,可视化预测概率和不确定性。
- 对比生成模型(高斯判别分析)与逻辑回归在非高斯数据上的表现。
- 思考问题:
- 为什么逻辑回归的损失函数是凸的?
- 在什么情况下生成模型优于判别模型?
- 拉普拉斯近似有哪些局限性?何时更精确?
掌握本章内容,将为理解后续复杂分类模型(神经网络、SVM、高斯过程分类)奠定坚实基础。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第5章“神经网络”教学讲解
1. 本章概述与学习目标
第5章介绍神经网络模型,这是继第3、4章线性模型之后的一种强大非线性模型。神经网络通过引入带有参数的非线性基函数(隐藏单元),克服了固定基函数模型的局限性。本章以最常用的前馈神经网络(多层感知机)为核心,系统讲解其结构、训练算法(反向传播)、正则化技术、以及贝叶斯处理方法。学习本章后,你应该能够:
- 理解神经网络作为非线性函数逼近器的基本思想,以及它与线性模型的关系。
- 掌握前馈神经网络的结构(输入层、隐藏层、输出层)、激活函数的选择及其与误差函数的匹配。
- 理解神经网络的万能近似性质。
- 掌握误差反向传播算法(Backpropagation)的推导及其高效计算梯度的原理。
- 了解如何计算神经网络的各种导数(如雅可比矩阵、海森矩阵)及其应用。
- 掌握正则化技术在神经网络中的应用(权重衰减、早停、不变性、卷积网络、软权值共享)。
- 理解混合密度网络(MDN)如何处理多模条件分布。
- 了解贝叶斯神经网络的拉普拉斯近似方法,包括后验分布、预测分布、超参数优化。
- 认识神经网络与支持向量机、高斯过程等其他模型的关系。
本章内容融合了第3章线性模型的贝叶斯方法和第4章分类模型的概率观点,并为后续第6章核方法、第7章稀疏核机器以及第10章变分推断等提供了基础。
2. 由浅入深:从线性模型到神经网络
2.1 神经网络的基本动机
在第3章中,我们使用了固定基函数的线性模型:
$$ y(\mathbf{x},\mathbf{w}) = \sum_{j=1}^{M} w_j \phi_j(\mathbf{x}) = \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}) $$这种模型的表达能力受限于基函数 $\phi_j(\mathbf{x})$ 是固定的。为了解决复杂问题,我们希望基函数本身也能根据数据调整。神经网络通过将基函数参数化,并让它们也成为学习的一部分,实现了这一目标。
2.2 前馈神经网络结构
2.2.1 两层网络(单隐藏层)
一个典型的两层神经网络由输入层、隐藏层和输出层组成,其数学形式为:
$$ \begin{aligned} a_j &= \sum_{i=1}^{D} w_{ji}^{(1)} x_i + w_{j0}^{(1)} \quad & \text{(隐藏单元输入)}\\ z_j &= h(a_j) \quad & \text{(隐藏单元输出)}\\ y_k &= \sum_{j=1}^{M} w_{kj}^{(2)} z_j + w_{k0}^{(2)} \quad & \text{(输出单元输入)}\\ y_k &= \sigma(a_k) \quad & \text{(输出单元激活函数,可选)} \end{aligned} $$其中 $h(\cdot)$ 是隐藏层激活函数(通常为 sigmoid 型,如 logistic sigmoid 或 tanh),$\sigma(\cdot)$ 是输出层激活函数,根据任务选择(回归用线性,二分类用 logistic sigmoid,多分类用 softmax)。
网络图:图5.1展示了这种结构,其中输入节点、隐藏节点、输出节点通过带权重的边连接,偏置节点对应于输入值为1的固定节点。
2.2.2 激活函数的选择
- 隐藏层:通常使用连续可微的非线性函数,如 logistic sigmoid $\sigma(a) = 1/(1+e^{-a})$ 或 tanh。tanh 输出范围为 (-1,1),在某些情况下比 logistic 更合适。
- 输出层:根据任务选择
- 回归:线性激活函数 $y_k = a_k$
- 二分类:logistic sigmoid $y = \sigma(a)$,输出 $p(\mathcal{C}_1|\mathbf{x})$
- 多分类:softmax $y_k = \frac{\exp(a_k)}{\sum_j \exp(a_j)}$,输出后验概率
2.2.3 万能近似性质
研究表明,只要隐藏单元足够多,两层网络可以在任意精度下逼近任意连续函数(紧致域上)。这称为万能近似定理,但它不告诉我们如何找到合适的参数,也不保证学习算法能找到这样的近似。
2.3 网络训练
2.3.1 概率解释与误差函数
将网络输出解释为条件概率分布的一部分,选择合适的误差函数等价于负对数似然。
回归:假设 $p(t|\mathbf{x},\mathbf{w}) = \mathcal{N}(t|y(\mathbf{x},\mathbf{w}), \beta^{-1})$,则负对数似然为平方和误差:
$$ E(\mathbf{w}) = \frac{1}{2} \sum_{n=1}^N \{ y(\mathbf{x}_n,\mathbf{w}) - t_n \}^2 $$输出层为线性激活函数。
二分类:假设 $p(t=1|\mathbf{x},\mathbf{w}) = y(\mathbf{x},\mathbf{w})$,且 $t \in \{0,1\}$,则负对数似然为交叉熵:
$$ E(\mathbf{w}) = -\sum_{n=1}^N \{ t_n \ln y_n + (1-t_n)\ln(1-y_n) \} $$输出层为 logistic sigmoid。
多分类:假设 $t$ 为1-of-K编码,输出为 softmax,则负对数似然为多类交叉熵:
$$ E(\mathbf{w}) = -\sum_{n=1}^N \sum_{k=1}^K t_{nk} \ln y_{nk} $$多标签分类:输出为多个 logistic sigmoid,每个对应一个二分类问题,误差函数为各交叉熵之和。
2.3.2 参数优化
误差函数 $E(\mathbf{w})$ 关于 $\mathbf{w}$ 是非凸的,存在多个局部极小值。优化通常使用基于梯度的迭代方法。梯度下降法(梯度下降、随机梯度下降、共轭梯度、拟牛顿法等)需要计算 $\nabla E(\mathbf{w})$。
2.3.3 局部二次近似
在极值点附近,误差函数可用二次型近似:
$$ E(\mathbf{w}) \approx E(\mathbf{w}^\star) + \frac{1}{2} (\mathbf{w} - \mathbf{w}^\star)^T \mathbf{H} (\mathbf{w} - \mathbf{w}^\star) $$其中 $\mathbf{H}$ 是海森矩阵(二阶导数)。海森矩阵的特征值决定了误差曲面的曲率。
2.3.4 梯度信息的使用
使用梯度信息可以大幅提高优化效率。若不使用梯度,求最小值需要 $O(W^3)$ 次操作;若使用梯度,仅需 $O(W^2)$ 次操作。因此,高效计算梯度至关重要。
2.4 误差反向传播
2.4.1 目标
高效计算误差函数对每个权重的导数 $\partial E_n / \partial w_{ji}$,其中 $E_n$ 是单个样本的误差。
2.4.2 链式法则
对于权重 $w_{ji}$(连接节点 $i$ 到节点 $j$),有:
$$ \frac{\partial E_n}{\partial w_{ji}} = \frac{\partial E_n}{\partial a_j} \frac{\partial a_j}{\partial w_{ji}} = \delta_j z_i $$其中 $a_j = \sum_i w_{ji} z_i$,$z_i$ 是输入(若 $i$ 是输入单元)或前一层的输出,$\delta_j \equiv \partial E_n / \partial a_j$ 称为误差信号。
2.4.3 误差的反向传播
- 输出层:$\delta_k = y_k - t_k$(对于平方和或交叉熵,且使用典型链接函数)。
- 隐藏层:$\delta_j = h'(a_j) \sum_k w_{kj} \delta_k$,其中 $k$ 是当前单元 $j$ 的下一层单元。此式表明误差信号从输出层向输入层反向传播。
2.4.4 算法步骤
- 前向传播:计算所有节点的激活值和输出。
- 计算输出层 $\delta_k$。
- 反向传播 $\delta_j$ 到每个隐藏单元。
- 计算梯度 $\partial E_n / \partial w_{ji} = \delta_j z_i$。
- 对于批量学习,对所有样本的梯度求和。
2.4.5 例子(两层网络,tanh 隐藏层,线性输出)
前向:
$$ \begin{aligned} a_j &= \sum_i w_{ji}^{(1)} x_i,\quad z_j = \tanh(a_j)\\ y_k &= \sum_j w_{kj}^{(2)} z_j \end{aligned} $$输出误差:$\delta_k^{(2)} = y_k - t_k$ 隐藏层误差:$\delta_j^{(1)} = (1 - z_j^2) \sum_k w_{kj}^{(2)} \delta_k^{(2)}$ 梯度:
$$ \frac{\partial E}{\partial w_{kj}^{(2)}} = \delta_k^{(2)} z_j,\quad \frac{\partial E}{\partial w_{ji}^{(1)}} = \delta_j^{(1)} x_i $$2.4.6 效率
反向传播计算梯度的时间与一次前向传播相当,即 $O(W)$,其中 $W$ 是权重总数。数值差分需要 $O(W^2)$ 时间,因此反向传播至关重要。
2.4.7 雅可比矩阵
雅可比矩阵 $J_{ki} = \partial y_k / \partial x_i$ 表示输出对输入的敏感度,可通过类似反向传播计算,在模型集成、灵敏度分析中有用。
2.5 海森矩阵
海森矩阵 $\mathbf{H}$ 由二阶导数组成,在优化、贝叶斯学习、模型剪枝等方面有重要应用。本章介绍了多种计算或近似海森的方法。
2.5.1 对角近似
假设海森是对角矩阵,忽略非对角元素。计算简单($O(W)$),但通常精度低,因为海森往往非对角。
2.5.2 外积近似
对于平方和误差,海森可写为:
$$ \mathbf{H} = \sum_{n=1}^N \nabla y_n \nabla y_n + \sum_{n=1}^N (y_n - t_n) \nabla \nabla y_n $$忽略第二项(认为在最优解附近残差与曲率无关),得到外积近似:
$$ \mathbf{H} \approx \sum_{n=1}^N \mathbf{b}_n \mathbf{b}_n^T,\quad \mathbf{b}_n = \nabla a_n $$对于分类,类似形式。
2.5.3 逆海森的递推估计
利用外积近似,可通过顺序更新计算逆海森(使用 Woodbury 恒等式),在单次数据扫描中近似得到逆海森。
2.5.4 精确海森
对于两层网络,可以解析计算海森的每个块。这种方法需要 $O(W^2)$ 时间。
2.5.5 快速乘以向量
有时只需要海森与某向量的乘积,可通过自动微分技术(如 Pearlmutter 的 $R\{\cdot\}$ 算子)在 $O(W)$ 时间内计算,无需显式存储海森。
2.6 神经网络中的正则化
2.6.1 权重衰减
最简单的正则化是二次正则项 $\frac{\lambda}{2} \mathbf{w}^T\mathbf{w}$,对应高斯先验。但标准权重衰减对网络所有权重一视同仁,这与网络映射的尺度变换性质不一致。更合理的做法是分组正则化(每层单独正则化),甚至每个输入对应的权重一组(自动相关性确定 ARD)。
2.6.2 早停
在验证集误差开始上升时停止训练,相当于限制了有效模型复杂度。可以证明早停等价于某种权重衰减。
2.6.3 不变性与切向传播
对于已知的输入变换(如平移、旋转),可以通过正则化鼓励模型对变换不敏感。切向传播在误差函数中加入对变换方向导数的惩罚项:
$$ \Omega = \frac{1}{2} \sum_n \left( \frac{\partial y_n}{\partial \xi} \right)^2 $$其中 $\xi$ 是变换参数,导数为雅可比矩阵与切向量的点积。
2.6.4 训练数据增强
通过生成变换后的训练数据隐式地实现不变性,与切向传播有关。
2.6.5 卷积神经网络
利用局部连接和权值共享实现平移不变性,特别适合图像数据。结构包含卷积层(特征检测)和子采样层(池化),整个网络用反向传播训练。
2.6.6 软权值共享
不强制权值相等,而是用混合高斯先验鼓励权值聚集成组,每个组的均值、方差、混合系数自适应学习。这实现了比硬共享更灵活的正则化。
2.7 混合密度网络
2.7.1 动机
对于多模条件分布(如逆问题),标准网络(高斯输出)无法捕捉多峰性。混合密度网络(MDN)用混合模型表示条件密度:
$$ p(t|\mathbf{x}) = \sum_{k=1}^K \pi_k(\mathbf{x}) \mathcal{N}(t|\mu_k(\mathbf{x}), \sigma_k^2(\mathbf{x})) $$其中混合系数 $\pi_k$、均值 $\mu_k$、方差 $\sigma_k^2$ 均由神经网络输出决定(确保约束:$\pi_k \ge 0, \sum \pi_k = 1, \sigma_k^2 > 0$)。
2.7.2 训练
误差函数为负对数似然:
$$ E(\mathbf{w}) = -\sum_{n=1}^N \ln \left\{ \sum_{k=1}^K \pi_k(\mathbf{x}_n) \mathcal{N}(t_n|\mu_k(\mathbf{x}_n), \sigma_k^2(\mathbf{x}_n)) \right\} $$梯度可通过反向传播计算,引入后验概率 $\gamma_{nk} = \frac{\pi_k \mathcal{N}_{nk}}{\sum_l \pi_l \mathcal{N}_{nl}}$ 简化。
2.7.3 应用
MDN 可以预测条件分布的任何统计量(如均值、众数、方差),用于逆问题(如机器人手臂控制)效果显著(图5.21)。
2.8 贝叶斯神经网络
2.8.1 动机
传统神经网络训练得到权重点估计,无法表达不确定性。贝叶斯方法引入权重先验,通过后验分布预测,能给出预测不确定性。由于网络非线性,后验非高斯,需近似。
2.8.2 拉普拉斯近似
- 先验:高斯 $p(\mathbf{w}|\alpha) = \mathcal{N}(\mathbf{w}|\mathbf{0}, \alpha^{-1}\mathbf{I})$
- 后验:$p(\mathbf{w}|\mathcal{D}) \propto p(\mathcal{D}|\mathbf{w}) p(\mathbf{w})$。用拉普拉斯近似在 MAP 点 $\mathbf{w}_{\text{MAP}}$ 展开,得到高斯后验 $q(\mathbf{w}) = \mathcal{N}(\mathbf{w}|\mathbf{w}_{\text{MAP}}, \mathbf{A}^{-1})$,其中 $\mathbf{A} = \alpha\mathbf{I} + \beta\mathbf{H}$($\mathbf{H}$ 是海森)。
- 预测分布:对回归,线性化网络输出,得到近似预测分布: $$ p(t|\mathbf{x},\mathcal{D}) = \mathcal{N}(t|y(\mathbf{x},\mathbf{w}_{\text{MAP}}), \sigma^2(\mathbf{x})) $$ 其中 $\sigma^2(\mathbf{x}) = \beta^{-1} + \mathbf{g}^T \mathbf{A}^{-1} \mathbf{g}$,$\mathbf{g} = \nabla_{\mathbf{w}} y(\mathbf{x},\mathbf{w})|_{\mathbf{w}_{\text{MAP}}}$。
- 超参数优化:通过最大化证据(边际似然)得到 $\alpha,\beta$ 的迭代重估公式,类似于第3章证据近似。
2.8.3 分类情况的修改
对于分类,输出层为 logistic sigmoid 或 softmax。预测分布需积分激活值,可用 probit 近似得到类似结果。
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- 万能近似:图5.3展示了单个输入、单输出的两层网络拟合各种函数(平方、正弦、绝对值、阶跃)的能力,虽然只有3个隐藏单元,但能近似得不错。
- 分类:图5.4展示了隐藏单元的决策边界(虚线)如何组合出最终的复杂非线性边界。
- 切向传播:图5.16展示了数字图像的旋转切向量,用于构造正则化。
- 卷积网络:图5.17示意了卷积和子采样层。
- 混合密度网络:图5.21展示了在逆问题数据集上,MDN 成功捕捉了多模分布,并给出条件众数(红点)作为预测。
- 贝叶斯神经网络:图5.23比较了 MAP 预测与贝叶斯预测,后者考虑了参数不确定性,概率等值线更宽,置信度降低。
5. 与前后的联系
- 第3、4章:线性模型(回归、分类)是神经网络的特例(隐藏层为恒等映射)。神经网络的概率解释和误差函数选择直接来自第3、4章。
- 第6章:高斯过程与无限宽神经网络的关系(第6.4.7节)。
- 第7章:支持向量机与神经网络的联系(例如,SVM 的 hinge loss 与神经网络误差函数对比),相关向量机与贝叶斯神经网络。
- 第8章:图模型可表示神经网络的结构(但神经网络节点为确定性计算,不是随机变量)。
- 第9章:混合密度网络中的后验概率计算类似于 EM 算法中的 E 步。
- 第10章:贝叶斯神经网络的变分推断可作为拉普拉斯近似的改进。
- 第13章:循环神经网络(RNN)是本章前馈网络的扩展,用于序列数据。
6. 核心要点总结与学习建议
核心要点
- 神经网络结构:多层前馈网络,隐藏层使用连续非线性激活函数,输出层根据任务选择。
- 反向传播:通过链式法则高效计算梯度,是训练神经网络的基础。
- 误差函数:根据任务选择平方和(回归)、交叉熵(分类),均来自概率解释。
- 正则化:权重衰减、早停、不变性(切向传播、卷积结构)、软权值共享,控制模型复杂度。
- 混合密度网络:处理多模条件分布,通过混合模型表示。
- 贝叶斯神经网络:引入先验,用拉普拉斯近似得到后验和预测分布,表达不确定性。
常见难点
- 反向传播推导:理解 $\delta_j$ 的递归关系,注意激活函数导数的影响。
- 海森矩阵计算:各种近似方法的适用场景和精度权衡。
- 正则化与网络尺度的关系:权重衰减需按层分组以适应网络尺度变换。
- 贝叶斯神经网络的拉普拉斯近似:需计算海森并求逆,对大规模网络不实用。
- 混合密度网络中的后验概率计算:需要理解 $\gamma_k$ 的作用。
学习建议
- 手动推导反向传播:对简单两层网络,写出所有中间变量,计算梯度,确保理解。
- 编程实践:
- 实现一个简单神经网络(如单隐藏层)并训练 XOR 问题。
- 使用反向传播自动求导(如用 PyTorch/TensorFlow 自动微分)验证手动推导。
- 实现混合密度网络,在逆问题数据集上训练并可视化条件密度。
- 实现贝叶斯神经网络的拉普拉斯近似(小网络),观察预测区间变化。
- 思考问题:
- 为什么神经网络是非凸的?这会导致什么后果?
- 卷积网络为什么适合图像?权值共享如何减少参数?
- 贝叶斯神经网络相比点估计有哪些优势?近似误差来源是什么?
掌握本章内容,你将能理解现代深度学习许多核心概念(反向传播、卷积、正则化、概率解释)的数学基础,为进一步学习高级模型打下坚实基础。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第6章“核方法”教学讲解
1. 本章概述与学习目标
第6章“核方法”是连接线性模型与非线性模型的桥梁,它展示了如何通过“核技巧”将许多线性算法(如线性回归、主成分分析、Fisher判别等)转化为非线性算法,而无需显式地定义高维特征空间。核方法的核心思想是利用核函数直接计算特征空间中的内积,从而避免维度灾难,并自然地引入各种相似性度量。本章从对偶表示入手,介绍核函数的构造方法,然后讨论径向基函数网络,最后深入讲解高斯过程——一种贝叶斯核方法。
学习本章后,你应该能够:
- 理解对偶表示的思想,能够将线性模型转化为核形式。
- 掌握核函数的定义、性质(对称、正定)以及常用的构造方法(多项式核、高斯核等)。
- 了解如何从概率生成模型构造核(如Fisher核)。
- 理解径向基函数网络(RBF网络)的动机和Nadaraya-Watson模型。
- 深入掌握高斯过程回归:从权重空间视角到函数空间视角,预测分布的推导,超参数学习(证据最大化),自动相关性确定(ARD)。
- 了解高斯过程分类的基本思路及拉普拉斯近似。
- 理解高斯过程与无限宽神经网络的联系。
本章内容与第3章(线性回归)、第4章(分类)、第5章(神经网络)紧密相关,并为第7章(稀疏核机器)奠定基础。
2. 由浅入深:从对偶表示到高斯过程
2.1 对偶表示
2.1.1 从线性回归到对偶形式
考虑第3章的线性回归模型,其目标是最小化带正则化的平方和误差:
$$ J(\mathbf{w}) = \frac{1}{2} \sum_{n=1}^N \left( \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}_n) - t_n \right)^2 + \frac{\lambda}{2} \mathbf{w}^T \mathbf{w} $$其中 $\boldsymbol{\phi}(\mathbf{x})$ 是特征映射。令梯度为零可得:
$$ \mathbf{w} = -\frac{1}{\lambda} \sum_{n=1}^N \left( \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}_n) - t_n \right) \boldsymbol{\phi}(\mathbf{x}_n) = \sum_{n=1}^N a_n \boldsymbol{\phi}(\mathbf{x}_n) = \boldsymbol{\Phi}^T \mathbf{a} $$即 $\mathbf{w}$ 可表示为样本特征向量的线性组合,系数 $\mathbf{a} = (a_1,\dots,a_N)^T$ 满足 $a_n = -\frac{1}{\lambda} (\mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}_n) - t_n)$。
将 $\mathbf{w} = \boldsymbol{\Phi}^T \mathbf{a}$ 代入 $J(\mathbf{w})$,得到关于 $\mathbf{a}$ 的表达式:
$$ J(\mathbf{a}) = \frac{1}{2} \mathbf{a}^T \boldsymbol{\Phi} \boldsymbol{\Phi}^T \boldsymbol{\Phi} \boldsymbol{\Phi}^T \mathbf{a} - \mathbf{a}^T \boldsymbol{\Phi} \boldsymbol{\Phi}^T \mathbf{t} + \frac{1}{2} \mathbf{t}^T \mathbf{t} + \frac{\lambda}{2} \mathbf{a}^T \boldsymbol{\Phi} \boldsymbol{\Phi}^T \mathbf{a} $$定义 Gram 矩阵 $\mathbf{K} = \boldsymbol{\Phi} \boldsymbol{\Phi}^T$,其元素 $K_{nm} = \boldsymbol{\phi}(\mathbf{x}_n)^T \boldsymbol{\phi}(\mathbf{x}_m) = k(\mathbf{x}_n, \mathbf{x}_m)$,则:
$$ J(\mathbf{a}) = \frac{1}{2} \mathbf{a}^T \mathbf{K} \mathbf{K} \mathbf{a} - \mathbf{a}^T \mathbf{K} \mathbf{t} + \frac{1}{2} \mathbf{t}^T \mathbf{t} + \frac{\lambda}{2} \mathbf{a}^T \mathbf{K} \mathbf{a} $$对 $\mathbf{a}$ 求导并令为零,得:
$$ \mathbf{a} = (\mathbf{K} + \lambda \mathbf{I}_N)^{-1} \mathbf{t} $$预测新点 $\mathbf{x}$ 的输出为:
$$ y(\mathbf{x}) = \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}) = \mathbf{a}^T \boldsymbol{\Phi} \boldsymbol{\phi}(\mathbf{x}) = \sum_{n=1}^N a_n k(\mathbf{x}, \mathbf{x}_n) = \mathbf{k}(\mathbf{x})^T (\mathbf{K} + \lambda \mathbf{I}_N)^{-1} \mathbf{t} $$其中 $\mathbf{k}(\mathbf{x})$ 是 $N$ 维向量,其第 $n$ 个元素为 $k(\mathbf{x}, \mathbf{x}_n)$。
结论:预测值仅通过核函数 $k(\cdot,\cdot)$ 依赖于训练数据,无需显式知道特征映射 $\boldsymbol{\phi}$。这正是对偶表示——将原问题转化为关于 $N$ 个变量的优化问题,而原问题有 $M$ 个变量(特征维数)。当 $M \gg N$ 时,对偶形式更高效。
2.1.2 核技巧
上述推导表明,只要算法能写成仅依赖于输入向量内积的形式(如 $\mathbf{x}^T \mathbf{x}'$),就可以用核函数 $k(\mathbf{x},\mathbf{x}')$ 替换内积,从而获得非线性版本。这称为核技巧(kernel trick)。例如,感知机算法(第4章)可类似地对偶化。
2.2 构造核函数
2.2.1 核函数的有效条件
核函数 $k(\mathbf{x},\mathbf{x}')$ 必须是对称且半正定的,即对任意有限点集 $\{\mathbf{x}_n\}$,Gram矩阵 $\mathbf{K}$ 满足 $\mathbf{v}^T \mathbf{K} \mathbf{v} \ge 0$ 对所有 $\mathbf{v}$ 成立(正定)。这确保核对应于某个特征空间中的内积(Mercer定理)。
2.2.2 常用核函数
- 线性核:$k(\mathbf{x},\mathbf{x}') = \mathbf{x}^T \mathbf{x}'$
- 多项式核:$k(\mathbf{x},\mathbf{x}') = (\mathbf{x}^T \mathbf{x}' + c)^M$,产生所有 $M$ 阶单项式特征。
- 高斯核:$k(\mathbf{x},\mathbf{x}') = \exp\left( -\frac{\|\mathbf{x} - \mathbf{x}'\|^2}{2\sigma^2} \right)$,对应无穷维特征空间(通过泰勒展开可看出)。
- sigmoid核:$k(\mathbf{x},\mathbf{x}') = \tanh(a \mathbf{x}^T \mathbf{x}' + b)$,不一定正定,但实践中仍使用。
2.2.3 从简单核构造复杂核
利用核的封闭性质可以构造新核(例如,核的和、积、多项式组合等),详见教材公式(6.13)-(6.22)。
2.2.4 概率生成模型构造核
- Fisher核:由概率模型 $p(\mathbf{x}|\boldsymbol{\theta})$ 的 Fisher 得分向量 $\mathbf{g}(\boldsymbol{\theta}, \mathbf{x}) = \nabla_{\boldsymbol{\theta}} \ln p(\mathbf{x}|\boldsymbol{\theta})$ 构造: $$ k(\mathbf{x},\mathbf{x}') = \mathbf{g}(\boldsymbol{\theta}, \mathbf{x})^T \mathbf{F}^{-1} \mathbf{g}(\boldsymbol{\theta}, \mathbf{x}') $$ 其中 $\mathbf{F}$ 是 Fisher 信息矩阵。该核具有参数化不变性。
- 其他:也可由混合分布或隐变量模型构造核(如通过 marginalization 得到)。
2.3 径向基函数网络
2.3.1 历史背景
径向基函数(RBF)网络最初用于精确插值:每个数据点为中心放置一个基函数,通过求解线性系统使拟合值等于目标值。但在有噪声时,这会导致过拟合,因此常使用少于数据点的基函数,并用正则化。
2.3.2 Nadaraya-Watson 模型
核回归的一种重要形式:从核密度估计推导得到。设联合分布 $p(\mathbf{x}, t)$ 由核密度估计:
$$ p(\mathbf{x}, t) = \frac{1}{N} \sum_{n=1}^N f(\mathbf{x} - \mathbf{x}_n, t - t_n) $$其中 $f$ 为核函数。若假设 $f$ 对 $t$ 的均值为零,则条件期望(回归函数)为:
$$ y(\mathbf{x}) = \frac{\sum_n g(\mathbf{x} - \mathbf{x}_n) t_n}{\sum_m g(\mathbf{x} - \mathbf{x}_m)} = \sum_n k(\mathbf{x}, \mathbf{x}_n) t_n $$其中 $g(\mathbf{x}) = \int f(\mathbf{x}, t) dt$,$k(\mathbf{x}, \mathbf{x}_n) = \frac{g(\mathbf{x} - \mathbf{x}_n)}{\sum_m g(\mathbf{x} - \mathbf{x}_m)}$。该模型称为 Nadaraya-Watson 模型,其预测为训练目标值的加权平均,权重由核函数给出。
2.4 高斯过程
高斯过程是核方法的贝叶斯观点,它将函数视为随机变量,并直接在函数空间上放置先验。
2.4.1 从权重空间到函数空间
回顾第3章贝叶斯线性回归:对权重 $\mathbf{w}$ 施加高斯先验 $p(\mathbf{w}) = \mathcal{N}(\mathbf{0}, \alpha^{-1} \mathbf{I})$,则函数值 $y(\mathbf{x}) = \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x})$ 的集合 $\{y(\mathbf{x}_n)\}$ 构成一个高斯分布,均值为零,协方差为:
$$ \text{cov}[y(\mathbf{x}_n), y(\mathbf{x}_m)] = \frac{1}{\alpha} \boldsymbol{\phi}(\mathbf{x}_n)^T \boldsymbol{\phi}(\mathbf{x}_m) = k(\mathbf{x}_n, \mathbf{x}_m) $$其中 $k(\cdot,\cdot)$ 即为核函数。因此,贝叶斯线性回归等价于一个高斯过程,其核由特征映射的内积决定。
更一般地,高斯过程定义为:对于任意有限点集 $\mathbf{x}_1,\dots,\mathbf{x}_N$,函数值 $\mathbf{y} = (y(\mathbf{x}_1),\dots,y(\mathbf{x}_N))^T$ 服从多元高斯分布。该分布完全由均值函数 $m(\mathbf{x})$ 和协方差函数(核函数)$k(\mathbf{x},\mathbf{x}')$ 确定。通常取均值函数为零。
2.4.2 高斯过程回归
对于回归,观测目标值 $t_n = y(\mathbf{x}_n) + \epsilon_n$,其中噪声 $\epsilon_n \sim \mathcal{N}(0, \beta^{-1})$ 独立。则观测值 $\mathbf{t} = (t_1,\dots,t_N)^T$ 的联合分布为:
$$ \mathbf{t} \sim \mathcal{N}(\mathbf{0}, \mathbf{C}_N),\quad \mathbf{C}_N = \mathbf{K} + \beta^{-1} \mathbf{I}_N $$其中 $\mathbf{K}$ 为核矩阵 $K_{nm} = k(\mathbf{x}_n, \mathbf{x}_m)$。
给定训练数据,对于新输入 $\mathbf{x}_{N+1}$,其对应的目标值 $t_{N+1}$ 与训练数据的联合分布也是高斯的。利用条件高斯公式,可得预测分布:
$$ p(t_{N+1}|\mathbf{t}) = \mathcal{N}(t_{N+1} | m(\mathbf{x}_{N+1}), \sigma^2(\mathbf{x}_{N+1})) $$其中
$$ m(\mathbf{x}_{N+1}) = \mathbf{k}^T \mathbf{C}_N^{-1} \mathbf{t},\quad \sigma^2(\mathbf{x}_{N+1}) = c - \mathbf{k}^T \mathbf{C}_N^{-1} \mathbf{k} $$这里 $\mathbf{k} = (k(\mathbf{x}_1,\mathbf{x}_{N+1}),\dots,k(\mathbf{x}_N,\mathbf{x}_{N+1}))^T$,$c = k(\mathbf{x}_{N+1},\mathbf{x}_{N+1}) + \beta^{-1}$。
解释:预测均值是训练目标值的线性组合(系数由核决定),预测方差由两部分组成:噪声方差 $\beta^{-1}$ 和由于训练数据有限导致的不确定性项。图6.8展示了高斯过程回归的预测区间。
2.4.3 超参数学习
高斯过程通常包含核函数的超参数(如高斯核的 $\sigma^2$)和噪声精度 $\beta$。通过最大化边际似然(证据)来确定:
$$ \ln p(\mathbf{t}|\boldsymbol{\theta}) = -\frac{1}{2} \ln |\mathbf{C}_N| - \frac{1}{2} \mathbf{t}^T \mathbf{C}_N^{-1} \mathbf{t} - \frac{N}{2} \ln(2\pi) $$其中 $\boldsymbol{\theta}$ 是超参数向量。这是一个非线性优化问题,可用梯度法(如共轭梯度)求解,梯度公式为:
$$ \frac{\partial}{\partial \theta_i} \ln p(\mathbf{t}|\boldsymbol{\theta}) = -\frac{1}{2} \text{Tr}\left( \mathbf{C}_N^{-1} \frac{\partial \mathbf{C}_N}{\partial \theta_i} \right) + \frac{1}{2} \mathbf{t}^T \mathbf{C}_N^{-1} \frac{\partial \mathbf{C}_N}{\partial \theta_i} \mathbf{C}_N^{-1} \mathbf{t} $$2.4.4 自动相关性确定(ARD)
通过在核函数中为每个输入维度引入独立的长度尺度参数,可以实现自动相关性确定。例如,高斯核可扩展为:
$$ k(\mathbf{x},\mathbf{x}') = \theta_0 \exp\left( -\frac{1}{2} \sum_{i=1}^D \eta_i (x_i - x_i')^2 \right) $$当某个 $\eta_i$ 很小时,该维度对核值影响小,表明该输入与预测无关。通过学习这些 $\eta_i$,可以自动进行特征选择(图6.10)。
2.4.5 高斯过程分类
对于二分类,引入一个潜在高斯过程 $a(\mathbf{x})$,并通过 logistic sigmoid 函数将其映射到 [0,1]:
$$ p(t=1|\mathbf{x}) = \sigma(a(\mathbf{x})) $$训练数据 $\mathbf{t} = (t_1,\dots,t_N)^T$ 的似然为 $\prod_n \sigma(a_n)^{t_n} (1-\sigma(a_n))^{1-t_n}$。由于似然非高斯,后验 $p(\mathbf{a}|\mathbf{t})$ 非高斯,需近似。常用方法:
- 拉普拉斯近似:在最大后验 $\mathbf{a}_{\text{MAP}}$ 处做二次展开,得到高斯近似 $q(\mathbf{a})$。
- 然后利用这个近似计算预测分布: $$ p(t_{N+1}=1|\mathbf{t}) \approx \int \sigma(a_{N+1}) q(a_{N+1}) da_{N+1} $$ 同样可用 probit 近似得到解析解。
2.4.6 高斯过程与神经网络
Neal (1996) 证明:对于一大类先验,当隐单元数趋于无穷时,贝叶斯神经网络收敛到高斯过程。具体地,具有单隐层的神经网络,若权重先验适当,其函数先验趋于高斯过程,核函数由激活函数决定。这建立了神经网络与核方法的重要联系。
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- 对偶表示例子:用线性核 $k(\mathbf{x},\mathbf{x}') = \mathbf{x}^T \mathbf{x}'$ 的对偶形式完全等价于普通线性回归。
- 高斯核的特征空间:展开 $\exp(-\|\mathbf{x}-\mathbf{x}'\|^2/(2\sigma^2))$ 为无穷级数,每个单项式对应一个特征,因此特征空间无穷维。
- Fisher核应用:在文档分类中,先为每类文档训练一个语言模型(如HMM),然后用 Fisher 核将文档映射到特征空间,再用 SVM 分类,效果往往优于直接使用词袋。
- Nadaraya-Watson模型:用高斯核的 Nadaraya-Watson 回归等价于在每个数据点放置高斯核,预测为局部加权平均。图6.3展示了该模型对正弦数据的拟合及置信区间。
- 高斯过程回归示例:图6.8展示了用高斯核回归正弦数据,预测均值平滑,方差在数据稀疏区域增大。
- ARD效果:图6.10展示了在人工数据中(输入 $x_1$ 有预测力,$x_2$ 弱相关,$x_3$ 无关),优化边际似然后 $\eta_1$ 大,$\eta_2$ 小,$\eta_3$ 几乎为0,自动识别出重要特征。
- 高斯过程分类:图6.12展示了拉普拉斯近似下的高斯过程分类决策边界及后验概率,与真实边界接近。
5. 与前后的联系
- 第3章线性回归:对偶表示源于正则化最小二乘,贝叶斯线性回归等价于高斯过程(核为 $\boldsymbol{\phi}^T\boldsymbol{\phi}$)。
- 第4章分类:逻辑回归的对偶形式可导出核逻辑回归,高斯过程分类是其贝叶斯版本。
- 第5章神经网络:无限宽神经网络收敛到高斯过程,为神经网络提供贝叶斯理解。
- 第7章稀疏核机器:支持向量机(SVM)利用核技巧和对偶形式求解最大间隔分类器;相关向量机(RVM)是稀疏贝叶斯核方法,与高斯过程有关但不同。
- 第8章图模型:高斯过程可看作一种图模型(函数值的联合分布由核定义),第8章为图模型的一般理论。
- 第12章连续潜变量:核主成分分析(KPCA)是核技巧在PCA上的应用。
6. 核心要点总结与学习建议
核心要点
- 对偶表示:将线性模型的解表示为样本的线性组合,系数由核矩阵决定。
- 核技巧:将算法中所有内积替换为核函数,实现非线性化。
- 核函数条件:必须对称正定,可通过 Mercer 定理验证或从特征映射构造。
- 常用核:线性、多项式、高斯、sigmoid;高斯核最常用,对应无穷维特征。
- 径向基函数网络:核回归的一种形式,Nadaraya-Watson 模型给出条件均值的加权平均解释。
- 高斯过程:
- 函数空间上的贝叶斯方法,先验由均值函数和核函数定义。
- 回归:预测分布解析,方差体现不确定性。
- 超参数通过最大化边际似然学习。
- ARD 实现自动特征选择。
- 分类需用拉普拉斯近似。
- 与神经网络联系:无穷宽神经网络收敛到高斯过程。
常见难点
- 对偶形式的推导:要熟练掌握矩阵求导和变量替换。
- 核函数的正定性:理解 Gram 矩阵半正定的含义。
- 高斯过程回归的预测方差:区分噪声方差与参数不确定性项。
- 高斯过程分类的拉普拉斯近似:理解迭代重加权最小二乘(IRLS)在潜在函数空间中的应用。
- ARD 的原理:长度尺度参数如何影响特征重要性。
学习建议
- 推导关键公式:亲手推导对偶表示、高斯过程预测分布、边际似然及其梯度。
- 代码实践:
- 用 Python 实现核回归(如 Nadaraya-Watson 模型),对比不同核的效果。
- 实现高斯过程回归(用 Cholesky 分解求逆),可视化预测均值和方差。
- 实现简单的高斯过程分类(拉普拉斯近似),在二维数据上观察决策边界。
- 思考联系:思考高斯过程与贝叶斯线性回归的关系,与 SVM 的异同。
- 阅读扩展:阅读 Neal (1996) 关于神经网络与高斯过程联系的论文,加深理解。
掌握核方法不仅有助于理解 SVM 和高斯过程,也为后续研究贝叶斯非参数模型打下基础。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第7章“稀疏核机器”教学讲解
1. 本章概述与学习目标
第7章“稀疏核机器”介绍了两类重要的核方法:支持向量机(Support Vector Machine, SVM)和相关向量机(Relevance Vector Machine, RVM)。它们共同的特点是:模型预测仅依赖于训练数据的一个子集(支持向量或相关向量),从而实现稀疏性,即预测阶段计算量小,模型解释性强。
学习本章后,你应该能够:
- 理解最大间隔分类器的基本思想,掌握硬间隔和软间隔SVM的推导(原始问题与对偶问题)。
- 熟悉SVM的核技巧、KKT条件、支持向量的概念。
- 了解处理多类分类问题的常见策略(一对多、一对一)。
- 掌握SVM回归(ε-不敏感损失)的基本原理。
- 初步了解计算学习理论(VC维)与SVM的联系。
- 掌握相关向量机(RVM)的回归模型:权重先验(ARD)、稀疏性机制、证据近似。
- 理解RVM的稀疏性来源,并熟悉快速序列学习算法。
- 了解RVM分类的拉普拉斯近似处理。
- 比较SVM与RVM的异同:稀疏性、概率输出、超参数调整、优化复杂度等。
本章内容紧密联系第6章(核方法),并利用第3、4章中的线性模型和第5章中的贝叶斯观点,为后续章节(如第8章图模型、第10章变分推断)提供背景。
2. 由浅入深:从最大间隔分类器到稀疏贝叶斯模型
2.1 最大间隔分类器(SVM二类分类)
2.1.1 动机与基本思想
对于线性可分数据,存在无穷多个分类超平面(决策面)。SVM选择具有最大间隔的超平面,即离两类样本最近的点(支持向量)距离最大化的那个平面。直觉上,最大间隔能够提高泛化能力。
定义:超平面为 $y(\mathbf{x}) = \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}) + b = 0$,分类规则为 $\text{sign}(y(\mathbf{x}))$。样本点到超平面的距离为 $|y(\mathbf{x})| / \|\mathbf{w}\|$。对于正确分类的样本,$t_n y(\mathbf{x}_n) > 0$。
2.1.2 硬间隔SVM(线性可分情形)
- 约束:$t_n (\mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}_n) + b) \ge 1, \forall n$(通过缩放$\mathbf{w},b$使最接近的样本满足等式,从而间隔为 $1/\|\mathbf{w}\|$)。
- 目标:最大化间隔,即最小化 $\|\mathbf{w}\|^2$。于是原始问题为: $$ \min_{\mathbf{w},b} \frac{1}{2} \|\mathbf{w}\|^2,\quad \text{s.t. } t_n(\mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}_n) + b) \ge 1, n=1,\dots,N $$
- 拉格朗日对偶:引入乘子 $a_n \ge 0$,得到对偶问题: $$ \max_{\mathbf{a}} \sum_{n=1}^N a_n - \frac{1}{2} \sum_{n,m} a_n a_m t_n t_m k(\mathbf{x}_n,\mathbf{x}_m) $$ 约束:$\sum_n a_n t_n = 0,\ a_n \ge 0$。其中 $k(\mathbf{x},\mathbf{x}') = \boldsymbol{\phi}(\mathbf{x})^T \boldsymbol{\phi}(\mathbf{x}')$ 是核函数。
- 解的性质:由KKT条件,只有满足 $t_n y(\mathbf{x}_n) = 1$ 的点(即在间隔边界上的点)对应的 $a_n > 0$,这些点称为支持向量。其余点 $a_n = 0$,对模型无贡献。
- 预测:$y(\mathbf{x}) = \sum_{n \in SV} a_n t_n k(\mathbf{x}, \mathbf{x}_n) + b$。
2.1.3 软间隔SVM(重叠类分布)
当数据不可分时,引入松弛变量 $\xi_n \ge 0$,允许样本违反间隔(甚至可以错分),并对违反程度惩罚:
$$ \min_{\mathbf{w},b,\boldsymbol{\xi}} C \sum_{n=1}^N \xi_n + \frac{1}{2} \|\mathbf{w}\|^2,\quad \text{s.t. } t_n y(\mathbf{x}_n) \ge 1 - \xi_n,\ \xi_n \ge 0 $$其中 $C > 0$ 控制惩罚力度(类似正则化参数)。
对偶形式与硬间隔几乎相同,但乘子有上限:
$$ 0 \le a_n \le C,\quad \sum_n a_n t_n = 0 $$KKT条件更丰富,支持向量包括:在间隔边界上 ($0 < a_n < C,\ \xi_n=0$) 和间隔内/错分点 ($a_n = C$)。
2.1.4 ν-SVM
为简化参数选择,Schölkopf等提出 ν-SVM,用一个参数 $\nu \in (0,1]$ 替代 $C$,其含义为:训练误差(margin violations)的上界和支持向量比例的下界。对偶形式略有不同,但本质等价。
2.1.5 与逻辑回归的联系
SVM的损失函数是hinge loss $E_{\text{SV}}(z) = [1 - z]_+$,而逻辑回归的损失是对数损失 $E_{\text{LR}}(z) = \ln(1+e^{-z})$。两者都是0-1损失的凸上界,但hinge loss在 $z>1$ 时为零,导致稀疏解。
2.2 多类SVM
主要策略:
- 一对多(one-versus-rest):构建 $K$ 个二类SVM,每个区分一类与其余类。预测时选择得分最高的类。但可能产生不一致区域。
- 一对一(one-versus-one):构建 $K(K-1)/2$ 个分类器,投票决定类别。同样可能有平局问题。
- DAGSVM:将一对一分类器组织成有向无环图,减少测试计算量。
- 多类目标函数:直接优化一个联合目标(Weston & Watkins),但复杂度更高。
实践中,一对多最常用,尽管有理论缺陷。
2.3 SVM回归
SVM回归使用 ε-不敏感损失函数:
$$ E_{\epsilon}(y-t) = \begin{cases} 0, & |y-t| < \epsilon \\ |y-t| - \epsilon, & \text{otherwise} \end{cases} $$目标是:
$$ \min_{\mathbf{w},b} C \sum_{n=1}^N E_{\epsilon}(y_n - t_n) + \frac{1}{2} \|\mathbf{w}\|^2 $$引入松弛变量 $\xi_n \ge 0, \hat{\xi}_n \ge 0$ 分别对应上偏差和下偏差,约束:
$$ t_n \le y(\mathbf{x}_n) + \epsilon + \xi_n,\quad t_n \ge y(\mathbf{x}_n) - \epsilon - \hat{\xi}_n $$对偶形式引入两个乘子 $a_n, \hat{a}_n \in [0,C]$,预测为:
$$ y(\mathbf{x}) = \sum_{n=1}^N (a_n - \hat{a}_n) k(\mathbf{x},\mathbf{x}_n) + b $$只有落在 ε-管道外或边界上的点对应非零乘子(支持向量)。
2.4 计算学习理论简介
- PAC学习:以高概率保证泛化误差低于ϵ所需样本数的界。
- VC维:衡量函数类复杂度的指标。SVM通过最大化间隔控制VC维,从而获得好的泛化界。但实际应用中这些界通常很宽松,较少直接用于模型选择。
2.5 相关向量机(RVM)
RVM 是一种基于贝叶斯框架的稀疏核方法,与SVM相比,它提供概率输出,通常更稀疏,但训练涉及非凸优化。
2.5.1 RVM回归
- 模型:$y(\mathbf{x}) = \sum_{i=1}^M w_i \phi_i(\mathbf{x}) = \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x})$。通常 $\phi_i(\mathbf{x}) = k(\mathbf{x}, \mathbf{x}_i)$,即每个训练点对应一个基函数。
- 似然:$p(\mathbf{t}|\mathbf{w},\beta) = \prod_n \mathcal{N}(t_n|y(\mathbf{x}_n), \beta^{-1})$。
- 先验:每个权重 $w_i$ 独立高斯,精度 $\alpha_i$ 不同:$p(\mathbf{w}|\boldsymbol{\alpha}) = \prod_i \mathcal{N}(w_i|0, \alpha_i^{-1})$。这是**自动相关性确定(ARD)**先验。
- 后验:给定 $\boldsymbol{\alpha},\beta$,权重后验为高斯: $$ p(\mathbf{w}|\mathbf{t},\boldsymbol{\alpha},\beta) = \mathcal{N}(\mathbf{w}|\mathbf{m}, \boldsymbol{\Sigma}),\quad \mathbf{m} = \beta \boldsymbol{\Sigma} \boldsymbol{\Phi}^T \mathbf{t},\ \boldsymbol{\Sigma} = (\mathbf{A} + \beta \boldsymbol{\Phi}^T \boldsymbol{\Phi})^{-1} $$ 其中 $\mathbf{A} = \text{diag}(\alpha_i)$。
- 边际似然(证据): $$ \ln p(\mathbf{t}|\boldsymbol{\alpha},\beta) = -\frac{1}{2}[N\ln(2\pi) + \ln|\mathbf{C}| + \mathbf{t}^T \mathbf{C}^{-1} \mathbf{t}] $$ 其中 $\mathbf{C} = \beta^{-1} \mathbf{I} + \boldsymbol{\Phi} \mathbf{A}^{-1} \boldsymbol{\Phi}^T$。
- 超参数优化:最大化证据,得到迭代重估公式: $$ \alpha_i^{\text{new}} = \frac{\gamma_i}{m_i^2},\quad \gamma_i = 1 - \alpha_i \Sigma_{ii},\quad (\beta^{\text{new}})^{-1} = \frac{\|\mathbf{t} - \boldsymbol{\Phi} \mathbf{m}\|^2}{N - \sum_i \gamma_i} $$ 许多 $\alpha_i$ 会趋于无穷,对应的 $w_i$ 后验趋于零,从而实现稀疏性。剩余的样本称为相关向量。
- 预测:对新点 $\mathbf{x}$,预测分布为高斯,均值为 $\mathbf{m}^T \boldsymbol{\phi}(\mathbf{x})$,方差为 $\beta^{-1} + \boldsymbol{\phi}(\mathbf{x})^T \boldsymbol{\Sigma} \boldsymbol{\phi}(\mathbf{x})$。
2.5.2 稀疏性分析
通过分析边际似然对单个 $\alpha_i$ 的依赖,可以理解稀疏性来源。定义“稀疏度” $s_i = \boldsymbol{\phi}_i^T \mathbf{C}_{-i}^{-1} \boldsymbol{\phi}_i$ 和“质量” $q_i = \boldsymbol{\phi}_i^T \mathbf{C}_{-i}^{-1} \mathbf{t}$,则当 $q_i^2 \le s_i$ 时,最优 $\alpha_i = \infty$,基函数被剔除;否则 $\alpha_i = s_i^2/(q_i^2 - s_i)$。这引出了快速序列学习算法,每次选择一个基函数更新,效率高。
2.5.3 RVM分类
- 采用 logistic sigmoid 链接函数:$p(t=1|\mathbf{x}) = \sigma(\mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}))$。
- 先验同上,但似然非高斯,后验无法解析。使用拉普拉斯近似:
- 对当前 $\boldsymbol{\alpha}$,用 IRLS 找到后验众数 $\mathbf{w}_{\text{MAP}}$。
- 在海森矩阵处构造高斯近似,得到 $\boldsymbol{\Sigma}$。
- 用该近似更新边际似然,得到 $\alpha_i$ 重估公式 $\alpha_i^{\text{new}} = \gamma_i / (w_{\text{MAP},i})^2$,其中 $\gamma_i = 1 - \alpha_i \Sigma_{ii}$。
- 多类扩展类似,但需对每个类构建权重向量,计算量更大。
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- SVM二维分类:图7.2展示了用高斯核SVM在二维数据上得到的决策边界、间隔边界和支持向量。支持向量恰好位于间隔边界上,其他点不影响模型。
- 软间隔SVM:图7.4用ν-SVM处理重叠数据,支持向量包括间隔内和错分点,ν控制了允许的误差比例。
- SVM回归:图7.8展示了对正弦数据的ε-SVM回归,ε-管道内的点不是支持向量,只有管道外的点贡献模型。
- RVM回归:图7.9对比了RVM与SVM回归,RVM的相关向量(蓝色圆圈)更少(3个 vs 7个支持向量),且给出了预测方差(阴影区域)。
- RVM分类:图7.12展示RVM在二维数据上的决策边界和后验概率,相关向量分布不同于SVM(不在边界上,而分布在数据区域中),体现了贝叶斯ARD自动确定相关性的特点。
5. 与前后的联系
- 第3章线性回归:RVM是贝叶斯线性回归的推广(引入ARD),其预测分布形式类似。
- 第4章分类:SVM与逻辑回归的损失函数对比(hinge vs logistic);RVM分类与贝叶斯逻辑回归相似(拉普拉斯近似)。
- 第5章神经网络:SVM和RVM都使用核技巧,属于“固定基函数”模型,而神经网络是自适应基函数;RVM的ARD思想可用于神经网络输入特征选择。
- 第6章核方法:SVM和RVM都基于核函数,SVM的对偶形式与第6.1节对偶表示一致;高斯过程与RVM都是贝叶斯核方法,但RVM是稀疏的,而高斯过程通常非稀疏。
- 第8章图模型:RVM可看作一种贝叶斯网络(权重节点有独立先验)。
- 第10章变分推断:RVM的稀疏性分析为变分方法提供了基础。
- 第13章序列数据:SVM可扩展用于序列分类(如隐马尔可夫模型SVM)。
6. 核心要点总结与学习建议
核心要点
- SVM:
- 通过最大化间隔提高泛化能力。
- 对偶形式引入核技巧,实现非线性。
- 支持向量稀疏性(仅 a>0 的点保留)。
- 软间隔引入参数 C 控制过拟合。
- 不直接提供概率输出(但可通过Platt缩放获得近似)。
- 多类扩展非自然,需构造多个二类分类器。
- RVM:
- 贝叶斯框架,每个权重有独立精度参数(ARD)。
- 通过最大化边际似然,许多精度趋于无穷,实现稀疏。
- 提供概率输出(预测分布)。
- 通常比SVM更稀疏,但训练涉及非凸优化,时间较长。
- 核函数无需满足Mercer条件(因为不依赖对偶凸性)。
- 两者对比:
| 特性 | SVM | RVM |
|---|---|---|
| 决策函数 | $\sum a_n t_n k(\mathbf{x},\mathbf{x}_n) + b$ | $\sum w_n k(\mathbf{x},\mathbf{x}_n) + b$ |
| 稀疏性 | 支持向量 | 相关向量 |
| 概率输出 | 无(需后处理) | 有(贝叶斯) |
| 参数调节 | C, ε (或 ν) | 通过证据自动确定 |
| 优化 | 凸二次规划 | 非凸,迭代 |
| 核函数要求 | 正定(Mercer) | 无限制 |
常见难点
- SVM对偶推导:需熟练使用拉格朗日乘子法、KKT条件。
- 软间隔的KKT条件:理解不同区域对应的 $a_n$ 和 $\xi_n$ 的关系。
- ν-SVM的参数含义:ν与误差比例的关系。
- RVM的稀疏性机制:ARD如何导致部分权重精确为零(严格说趋于无穷精度,后验集中于零)。
- RVM快速算法:基于稀疏度和质量的选择准则。
- 拉普拉斯近似在RVM分类中的应用:需要理解后验众数和海森矩阵的计算。
学习建议
- 手推关键公式:
- SVM对偶问题、KKT条件。
- RVM后验均值和协方差、边际似然、重估公式。
- 稀疏性分析中的 $s_i, q_i$ 推导。
- 代码实践:
- 用Python实现简单SVM(可用cvxopt求解二次规划),在二维数据上可视化支持向量。
- 使用scikit-learn中的SVM和RVM(或自己实现RVM回归)对比稀疏性。
- 实现RVM快速序列学习算法(Tipping & Faul 2003),加深理解。
- 思考比较:
- 为什么SVM的损失函数是凸的而RVM的优化非凸?
- 在什么场景下应该选择SVM,什么场景选择RVM?
- 高斯过程与RVM有何异同?(非稀疏 vs 稀疏,核函数依赖等)
掌握本章内容,你将深入理解稀疏核方法,并能根据实际应用选择合适的模型。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第8章“图模型”教学讲解
1. 本章概述与学习目标
第8章“图模型”是全书的核心章节之一,它系统地介绍了用图来表示概率分布中变量之间依赖关系的方法。图模型提供了一种直观且强大的工具,用于描述高维概率分布的结构、推导条件独立性、设计高效推理算法。本章涵盖了有向图(贝叶斯网络)、无向图(马尔可夫随机场)以及因子图,并详细讲解了精确推理的和积算法和最大和算法。
学习本章后,你应该能够:
- 理解为什么需要图模型:将复杂概率分布分解为局部因子的乘积,便于分析和计算。
- 掌握有向图(贝叶斯网络)的定义、因子分解式 $p(\mathbf{x}) = \prod_k p(x_k | \text{pa}_k)$。
- 理解有向图中的条件独立性(d-分离)及其图形判别方法。
- 掌握无向图(马尔可夫随机场)的定义、因子分解式 $p(\mathbf{x}) = \frac{1}{Z} \prod_C \psi_C(\mathbf{x}_C)$ 和条件独立性的图形分离准则。
- 理解有向图和无向图的转换(道德图)。
- 掌握因子图的概念,能够将有向图和无向图转换为因子图,以便应用消息传递算法。
- 掌握树状图上的精确推理算法:和积算法(计算边际)和最大和算法(计算最大可能配置)。
- 了解一般图上的精确推理(联结树算法)和近似推理(环状置信传播)的基本思想。
- 能够将图模型应用于实际问题(如隐马尔可夫模型、图像去噪等)并理解其推理过程。
本章内容与前面各章(特别是第2章概率分布、第3-4章线性模型、第5章神经网络、第6-7章核方法)紧密相关,并为后续章节(第9-13章)中的复杂模型(如混合模型、时序模型)提供统一的推理框架。
2. 由浅入深:从概率分解到图模型
2.1 为什么需要图模型?
考虑一个包含 $K$ 个变量的联合分布 $p(x_1, x_2, \ldots, x_K)$。直接表示这个分布需要存储指数级数量的参数(例如,若每个变量取 $M$ 个值,则需要 $M^K$ 个参数)。图模型通过假设变量之间具有某种条件独立性结构,将联合分布分解为若干个局部因子的乘积,从而大大减少了参数数量,并使推理变得可行。
例子:一阶马尔可夫链 $p(x_1, x_2, x_3) = p(x_1)p(x_2|x_1)p(x_3|x_2)$ 用有向图表示,只有三个因子,参数数量远小于全连接情况。
2.2 有向图模型(贝叶斯网络)
2.2.1 定义与因子分解
有向图由节点(变量)和有向边(箭头)组成,且不能有有向环(即有向无环图 DAG)。联合概率可分解为每个节点在其父节点条件下的概率的乘积:
$$ p(\mathbf{x}) = \prod_{k=1}^K p(x_k | \text{pa}_k) $$其中 $\text{pa}_k$ 表示节点 $x_k$ 的父节点集合。
例子:图8.2(教材)中的图,联合分布为
$$ p(x_1)p(x_2)p(x_3)p(x_4|x_1,x_2,x_3)p(x_5|x_1,x_3)p(x_6|x_4)p(x_7|x_4,x_5) $$2.2.2 条件独立性与 d-分离
有向图通过 d-分离(directed separation)来判定条件独立性。给定三个节点集合 $A, B, C$,若从 $A$ 到 $B$ 的所有路径都被 $C$ 阻塞,则 $A$ 与 $B$ 在给定 $C$ 下条件独立。路径被阻塞的条件为:
- 路径上存在一个节点,其箭头以尾到尾或头到尾的方式经过该节点,且该节点在 $C$ 中;
- 或者存在一个头到头节点(即两个箭头指向该节点),且该节点及其所有后代都不在 $C$ 中。
例子:三个节点的基本结构(图8.15-8.20):
- 尾到尾(共同父节点):$a \leftarrow c \rightarrow b$,给定 $c$ 时 $a$ 和 $b$ 独立;未给定时可能相关。
- 头到尾(链式):$a \rightarrow c \rightarrow b$,给定 $c$ 时 $a$ 和 $b$ 独立。
- 头到头(V结构):$a \rightarrow c \leftarrow b$,未给定时 $a$ 和 $b$ 独立;给定 $c$ 时它们可能相关(“解释”现象)。
Markov 毯:一个节点的 Markov 毯包括其父节点、子节点以及子节点的其他父节点(共父节点)。给定 Markov 毯,该节点与图中所有其他节点条件独立。
2.2.3 生成式模型与祖先采样
有向图可以直接用于生成数据:按照节点顺序(父节点先于子节点),依次从每个节点的条件分布中采样。这称为祖先采样。
例子:对于图8.7(多项式回归的贝叶斯模型),可以先生成 $\mathbf{w}$,再生成每个 $t_n$。
2.3 无向图模型(马尔可夫随机场)
2.3.1 定义与因子分解
无向图中,边没有方向。联合分布表示为团势能的乘积,除以归一化常数(配分函数):
$$ p(\mathbf{x}) = \frac{1}{Z} \prod_{C} \psi_C(\mathbf{x}_C) $$其中 $C$ 是图中最大团(clique,即全连通子图),$\psi_C(\mathbf{x}_C) > 0$ 是势函数,$Z$ 是归一化常数(对所有 $\mathbf{x}$ 求和/积分)。
由于势函数不必是概率,因此需要显式归一化 $Z$。
Hammersley-Clifford定理:对于正分布,条件独立性与上述因子分解等价。
2.3.2 条件独立性
在无向图中,条件独立性由图分离判定:给定节点集 $C$,若从 $A$ 到 $B$ 的所有路径都经过 $C$,则 $A$ 与 $B$ 在给定 $C$ 下独立。
Markov 毯:节点的 Markov 毯就是它的所有邻接节点。
例子:图8.27中,若 $C$ 将 $A$ 与 $B$ 分开,则 $A \perp\!\!\!\perp B | C$。
2.3.3 与有向图的关系:道德图
将有向图转换为无向图时,需进行道德化:将每个节点的父节点之间添加无向边(“结婚”),然后将所有有向边改为无向边。这样得到的无向图称为道德图。道德化可能会增加边,从而丢失一些条件独立性。
2.4 因子图
因子图是一种二部图,包含变量节点(圆圈)和因子节点(方块),边连接变量与其所在的因子。联合分布可表示为所有因子节点的乘积:
$$ p(\mathbf{x}) = \prod_s f_s(\mathbf{x}_s) $$其中 $\mathbf{x}_s$ 是与因子 $f_s$ 相连的变量集合。
用途:因子图能更细致地表示分解(例如一个变量可出现在多个因子中),并且是和积算法的自然框架。
转换:
- 有向图:每个条件分布 $p(x_k|\text{pa}_k)$ 对应一个因子。
- 无向图:每个团势能 $\psi_C$ 对应一个因子。
例子:图8.40-8.45展示了从有向/无向图到因子图的转换,以及不同的因子图可以对应同一个无向图。
2.5 树上的精确推理
树(无环图)上可以进行精确的信念传播(和积算法)。对于有环图,精确推理需使用联结树算法(将图转化为树),但计算复杂度较高。
2.5.1 链上的推理(引入消息传递)
考虑一条无向链 $x_1 - x_2 - \cdots - x_N$,联合分布为 $\frac{1}{Z} \psi_{1,2}(x_1,x_2)\psi_{2,3}(x_2,x_3)\cdots\psi_{N-1,N}(x_{N-1},x_N)$。计算边际 $p(x_n)$ 可通过从两端向中间传递消息实现:
$$ \mu_{\alpha}(x_n) = \sum_{x_{n-1}} \psi_{n-1,n}(x_{n-1},x_n) \mu_{\alpha}(x_{n-1}),\quad \mu_{\beta}(x_n) = \sum_{x_{n+1}} \psi_{n,n+1}(x_n,x_{n+1}) \mu_{\beta}(x_{n+1}) $$最终 $p(x_n) \propto \mu_{\alpha}(x_n) \mu_{\beta}(x_n)$。
2.5.2 和积算法(Sum-Product Algorithm)
适用于树状因子图,可同时计算所有变量的边际。算法通过两个阶段的消息传递实现:
- 从叶子节点向根节点传递消息(向上)。
- 从根节点向叶子节点传递消息(向下)。
消息定义:
- 变量节点 $x$ 到因子节点 $f$ 的消息:$\mu_{x\to f}(x) = \prod_{f' \in \text{ne}(x)\setminus f} \mu_{f'\to x}(x)$。
- 因子节点 $f$ 到变量节点 $x$ 的消息:$\mu_{f\to x}(x) = \sum_{\mathbf{x}_s \setminus \{x\}} f(\mathbf{x}_s) \prod_{y \in \text{ne}(f)\setminus \{x\}} \mu_{y\to f}(y)$。
边际计算:对于变量 $x$,$p(x) \propto \prod_{f\in \text{ne}(x)} \mu_{f\to x}(x)$。
归一化:在无向图中,可先计算未归一化的边际,最后用单个节点的归一化常数得到 $Z$。
例子:图8.51-8.52展示了一个简单因子图的消息传递过程。
2.5.3 最大和算法(Max-Sum Algorithm)
用于寻找联合概率最大的配置(最大后验估计)。将求和替换为求最大值,并利用对数使乘积变为求和。消息定义类似,只是将 $\sum$ 改为 $\max$。
应用:在链上计算 Viterbi 解码(用于隐马尔可夫模型)。
2.5.4 一般图的推理
对于有环图,上述消息传递可能循环(称为环状置信传播,loopy belief propagation),不一定收敛,但实践中常能得到好的近似。精确推理需使用联结树算法(junction tree algorithm):先将图转化为联结树,然后在树上运行和积算法。
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- d-分离例子:图8.21的“汽车燃油系统”例子:B(电池)、F(油箱)、G(油量表)。当观察到G时,B和F变得相关(解释现象),这正是V结构的体现。
- 马尔可夫随机场应用:图8.31的图像去噪模型,使用伊辛模型势能 $-\beta x_i x_j - \eta x_i y_i + h x_i$,通过 ICM 或图割算法恢复图像(图8.30)。
- 因子图与和积算法:图8.51-8.52展示了4节点因子图的消息传递过程,最终得到所有变量的边际。
- 隐马尔可夫模型:作为有向图链的例子,可用前向-后向算法(和积算法特例)计算边际,用维特比算法(最大和算法特例)解码。
5. 与前后的联系
- 第1章:概率论基础,贝叶斯定理,为图模型提供理论基础。
- 第2章:概率分布(如高斯、伯努利)可作为图模型中的条件分布。
- 第3章:线性回归的贝叶斯网络表示(图3.5-3.7),展示了如何用图描述模型结构。
- 第4章:朴素贝叶斯分类器(图8.24)就是简单的有向图。
- 第5章:神经网络(确定性的)虽不是概率图模型,但其结构启发图模型中的层。
- 第6-7章:核方法和稀疏核机器可看作某种图模型(如高斯过程是图模型,RVM有权重节点)。
- 第9章:混合模型(如高斯混合)可用图模型表示隐变量和观测变量(图9.5)。
- 第10章:变分推断常利用图模型结构进行分解。
- 第13章:隐马尔可夫模型和线性动态系统是典型的动态图模型,其推理正是和积算法的应用。
6. 核心要点总结与学习建议
核心要点
- 图模型的本质:用图表示高维概率分布的条件独立结构,将联合分布分解为局部因子。
- 有向图:
- 因子:$p(x_k|\text{pa}_k)$
- 条件独立性由 d-分离判定。
- 可用于生成数据(祖先采样)。
- 无向图:
- 因子:团势能 $\psi_C$,需归一化 $Z$。
- 条件独立性由图分离判定。
- 更自然地表示软约束(如伊辛模型)。
- 因子图:统一表示,便于推理算法设计。
- 精确推理:
- 树结构上可用和积算法(求边际)和最大和算法(求MAP)。
- 消息传递是核心:变量到因子消息是乘积,因子到变量消息是加权和/最大值。
- 一般图需用联结树算法(精确但复杂)或环状置信传播(近似)。
- 重要关系:
- 有向图→无向图需道德化,可能丢失独立性。
- 无向图可以转换为因子图,每个团势能对应一个因子。
常见难点
- d-分离的理解:尤其是V结构(头到头)在未观测时阻塞,观测后激活,需要结合“解释”现象理解。
- 势函数与概率:无向图的势函数无概率解释,乘积后需归一化,导致计算 $Z$ 困难。
- 道德图:为什么要添加父节点之间的边?这是为了保证无向图中条件独立性正确反映有向图的独立性。
- 因子图的定义:变量节点和因子节点的角色,以及消息计算中的“除本边”原则。
- 和积算法的推导:需理解如何利用图的结构递归分解边际求和。
- 最大和算法中的对数:为什么用对数避免下溢,并保持单调性。
学习建议
- 手动推导简单图的 d-分离:用三个节点的基本结构反复练习,直到能直观判断条件独立性。
- 将教材中的图用纸笔画出:如8.2、8.31、8.38等,并写出其因子分解式。
- 实现一个简单链上的和积算法:如二值链,计算所有边际,验证结果。
- 实现图像去噪的 ICM(8.3.3节),理解迭代条件模式。
- 阅读因子图相关文献(如Kschischang et al., 2001),加深对消息传递的理解。
- 关联后续章节:学完本章后,再看第13章HMM的前向-后向算法,会发现它就是和积算法在链上的应用。
掌握图模型,意味着你拥有了一种强大的语言来描述和求解复杂概率模型,这是通向高级机器学习理论的必经之路。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第9章“混合模型与EM”教学讲解
1. 本章概述与学习目标
第9章介绍了一类重要的概率模型——混合模型(Mixture Models),以及用于这类模型参数估计的通用算法——期望最大化(EM)算法。混合模型通过将多个简单分布(如高斯分布)线性组合,能够拟合任意复杂的概率密度,广泛应用于聚类、密度估计和模式识别。EM算法则是在存在潜在变量(latent variables)的情况下进行最大似然估计的强大工具。
学习本章后,你应该能够:
- 理解 K-means 聚类算法的原理、步骤及其与高斯混合模型的关系。
- 掌握高斯混合模型(GMM)的表示、参数及其几何意义。
- 理解为什么 GMM 的极大似然估计没有闭式解,并掌握 EM 算法的推导过程。
- 从潜在变量的角度理解 EM 算法的通用形式,并能将其应用于其他模型(如混合伯努利、贝叶斯线性回归)。
- 理解 EM 算法收敛性的直观解释。
- 能够用 EM 算法解决实际问题,并知道如何初始化、处理奇异解等。
本章内容与第2章(概率分布)、第3章(线性回归)、第8章(图模型)以及后续的第10章(变分推断)和第13章(序列数据)密切相关。
2. 由浅入深:从 K-means 到 EM
2.1 K-means 聚类
2.1.1 问题与目标
K-means 是一种简单且广泛使用的聚类算法。给定数据集 $\{\mathbf{x}_1,\ldots,\mathbf{x}_N\}$,目标是将数据划分为 $K$ 个簇(clusters),每个簇由一个中心 $\boldsymbol{\mu}_k$ 表示。算法通过迭代优化每个点到其最近中心的距离平方和来实现:
$$ J = \sum_{n=1}^N \sum_{k=1}^K r_{nk} \|\mathbf{x}_n - \boldsymbol{\mu}_k\|^2 $$其中 $r_{nk} \in \{0,1\}$ 是指示变量,表示点 $n$ 是否属于簇 $k$(硬分配)。
2.1.2 算法步骤
- 初始化:随机选择 $K$ 个中心 $\boldsymbol{\mu}_k$。
- E 步(期望步):固定中心,将每个点分配给最近的中心: $$ r_{nk} = \begin{cases} 1, & k = \arg\min_j \|\mathbf{x}_n - \boldsymbol{\mu}_j\|^2 \\ 0, & \text{otherwise} \end{cases} $$
- M 步(最大化步):固定分配,更新中心为簇内点的均值: $$ \boldsymbol{\mu}_k = \frac{\sum_n r_{nk} \mathbf{x}_n}{\sum_n r_{nk}} $$
- 重复 2-3 直到收敛(中心不再变化或变化很小)。
特点:
- 保证收敛到局部最优。
- 对初始值敏感,通常多次随机初始化取最好结果。
- 假设各向同性(球状)簇,对异常值敏感。
- 是硬分配(每个点只属于一个簇),而高斯混合是软分配。
2.2 高斯混合模型(GMM)
2.2.1 模型定义
高斯混合模型将数据分布表示为 $K$ 个高斯分量的凸组合:
$$ p(\mathbf{x}) = \sum_{k=1}^K \pi_k \mathcal{N}(\mathbf{x}|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) $$其中混合系数 $\pi_k$ 满足 $\pi_k \ge 0$,$\sum_{k=1}^K \pi_k = 1$。
解释:可以将 $\pi_k$ 看作选择第 $k$ 个分量的先验概率,即 $p(\mathbf{x}) = \sum_k p(k) p(\mathbf{x}|k)$。
2.2.2 对数似然函数
给定数据集 $\mathbf{X} = \{\mathbf{x}_1,\ldots,\mathbf{x}_N\}$,对数似然为:
$$ \ln p(\mathbf{X}|\boldsymbol{\pi},\boldsymbol{\mu},\boldsymbol{\Sigma}) = \sum_{n=1}^N \ln \left( \sum_{k=1}^K \pi_k \mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) \right) $$由于对数内有求和,直接对参数求导无法得到闭式解。这促使我们引入潜在变量,并采用 EM 算法。
2.2.3 潜在变量视角
引入一个 $K$ 维二值潜在变量 $\mathbf{z}_n$,其中 $\mathbf{z}_n$ 是 1-of-K 表示,即 $\mathbf{z}_n$ 只有一个元素为 1,其余为 0。$\mathbf{z}_n$ 表示 $\mathbf{x}_n$ 由哪个分量生成。于是:
- 先验:$p(\mathbf{z}_n|\boldsymbol{\pi}) = \prod_{k=1}^K \pi_k^{z_{nk}}$
- 条件分布:$p(\mathbf{x}_n|z_{nk}=1) = \mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)$
- 联合分布:$p(\mathbf{x}_n,\mathbf{z}_n) = p(\mathbf{z}_n) p(\mathbf{x}_n|\mathbf{z}_n)$
将潜在变量视为缺失数据,完整数据为 $\{\mathbf{x}_n, \mathbf{z}_n\}$。完整数据的对数似然为:
$$ \ln p(\mathbf{X},\mathbf{Z}|\boldsymbol{\pi},\boldsymbol{\mu},\boldsymbol{\Sigma}) = \sum_{n=1}^N \sum_{k=1}^K z_{nk} \left[ \ln \pi_k + \ln \mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) \right] $$由于 $z_{nk}$ 未知,EM 算法通过迭代估计它们。
2.3 EM 算法在高斯混合中的应用
2.3.1 E 步:计算后验概率(责任)
给定当前参数,计算每个点属于每个分量的后验概率:
$$ \gamma(z_{nk}) = p(z_{nk}=1|\mathbf{x}_n) = \frac{\pi_k \mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}{\sum_{j=1}^K \pi_j \mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_j, \boldsymbol{\Sigma}_j)} $$这是软分配,介于 0 和 1 之间。
2.3.2 M 步:更新参数
利用 $\gamma(z_{nk})$ 作为软权重,重新估计参数:
- 混合系数:$\pi_k^{\text{new}} = \frac{1}{N} \sum_{n=1}^N \gamma(z_{nk})$
- 均值:$\boldsymbol{\mu}_k^{\text{new}} = \frac{\sum_{n=1}^N \gamma(z_{nk}) \mathbf{x}_n}{\sum_{n=1}^N \gamma(z_{nk})}$
- 协方差:$\boldsymbol{\Sigma}_k^{\text{new}} = \frac{\sum_{n=1}^N \gamma(z_{nk}) (\mathbf{x}_n - \boldsymbol{\mu}_k^{\text{new}})(\mathbf{x}_n - \boldsymbol{\mu}_k^{\text{new}})^T}{\sum_{n=1}^N \gamma(z_{nk})}$
迭代 E 步和 M 步直到收敛。
注意:协方差可能退化为奇异(如某个分量只有一个点),需处理(如加入正则项或固定形式)。
2.4 EM 的另一种观点:潜在变量视角
2.4.1 一般 EM 框架
考虑一个概率模型,观测变量 $\mathbf{X}$,潜在变量 $\mathbf{Z}$,参数 $\boldsymbol{\theta}$。目标是最大化观测数据的对数似然:
$$ \ln p(\mathbf{X}|\boldsymbol{\theta}) = \ln \left( \sum_{\mathbf{Z}} p(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta}) \right) $$(连续情况为积分)。
EM 算法通过迭代以下两步最大化:
- E 步:计算当前参数下潜在变量的后验分布 $p(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{\text{old}})$,然后计算完整数据对数似然的期望: $$ Q(\boldsymbol{\theta}, \boldsymbol{\theta}^{\text{old}}) = \mathbb{E}_{\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{\text{old}}} [\ln p(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta})] $$
- M 步:最大化 $Q$ 得到新的参数: $$ \boldsymbol{\theta}^{\text{new}} = \arg\max_{\boldsymbol{\theta}} Q(\boldsymbol{\theta}, \boldsymbol{\theta}^{\text{old}}) $$
可以证明,每次迭代保证观测数据似然不降(即 $\ln p(\mathbf{X}|\boldsymbol{\theta}^{\text{new}}) \ge \ln p(\mathbf{X}|\boldsymbol{\theta}^{\text{old}})$),从而收敛到局部极大值。
2.4.2 与高斯混合的关系
对于 GMM,潜在变量是 $\mathbf{Z}$(分量指示变量),完整数据似然为 $\prod_n \prod_k [\pi_k \mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_k,\boldsymbol{\Sigma}_k)]^{z_{nk}}$,其对数线性于 $z_{nk}$。E 步计算 $z_{nk}$ 的后验期望(即 $\gamma(z_{nk})$),M 步则用这些期望更新参数,这正是前面给出的更新公式。
2.5 EM 的一般形式与收敛性
2.5.1 另一种推导:使用 KL 散度
考虑不等式:
$$ \ln p(\mathbf{X}|\boldsymbol{\theta}) = \mathcal{L}(q,\boldsymbol{\theta}) + \text{KL}(q\|p) $$其中 $q(\mathbf{Z})$ 是任意分布,
$$ \mathcal{L}(q,\boldsymbol{\theta}) = \sum_{\mathbf{Z}} q(\mathbf{Z}) \ln \frac{p(\mathbf{X},\mathbf{Z}|\boldsymbol{\theta})}{q(\mathbf{Z})},\quad \text{KL}(q\|p) = -\sum_{\mathbf{Z}} q(\mathbf{Z}) \ln \frac{p(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta})}{q(\mathbf{Z})} $$EM 算法可以看作:在 E 步,固定 $\boldsymbol{\theta}^{\text{old}}$,最小化 KL 散度(即令 $q(\mathbf{Z}) = p(\mathbf{Z}|\mathbf{X},\boldsymbol{\theta}^{\text{old}})$),使得 $\mathcal{L}(q,\boldsymbol{\theta}^{\text{old}}) = \ln p(\mathbf{X}|\boldsymbol{\theta}^{\text{old}})$;在 M 步,固定 $q$,最大化 $\mathcal{L}(q,\boldsymbol{\theta})$ 得到新的 $\boldsymbol{\theta}$,这等价于最大化 $Q(\boldsymbol{\theta},\boldsymbol{\theta}^{\text{old}})$。
2.5.2 收敛性
EM 算法保证每次迭代后观测似然不降,因此会收敛到某个局部极大值(或鞍点)。但它不保证收敛到全局最优,需多次随机初始化。
2.6 其他混合模型与 EM 应用
2.6.1 混合伯努利分布
用于二值数据(如文本的单词出现)。每个分量是独立的伯努利分布:
$$ p(\mathbf{x}|\boldsymbol{\mu}_k) = \prod_{i=1}^D \mu_{ki}^{x_i} (1-\mu_{ki})^{1-x_i} $$混合模型为 $p(\mathbf{x}) = \sum_k \pi_k p(\mathbf{x}|\boldsymbol{\mu}_k)$。引入潜在变量,EM 算法 E 步计算责任,M 步更新 $\pi_k$ 和 $\mu_{ki}$(类似于高斯混合)。
2.6.2 EM 用于贝叶斯线性回归(证据近似)
在第 3.5 节,我们通过最大化边际似然来估计超参数 $\alpha,\beta$。这也可以从 EM 角度理解:将权重 $\mathbf{w}$ 视为潜在变量,观测数据为 $\mathbf{t}$,参数为 $\alpha,\beta$。在 E 步,计算 $\mathbf{w}$ 的后验(给定当前 $\alpha,\beta$);在 M 步,最大化完整数据对数似然的期望来更新 $\alpha,\beta$。这等价于证据近似的迭代过程。
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- K-means 例子:将二维平面上的点聚成 3 类。初始化随机中心,迭代直到稳定,最终得到三个簇。
- 高斯混合例子:图 9.5 展示了用 EM 拟合旧忠实泉喷发数据,两个高斯分量分别对应短喷发和长喷发,混合系数表示两类出现的比例。
- 混合伯努利例子:手写数字识别,每个数字图像是二值像素,用 10 个混合分量(每个分量是一个伯努利模板)建模,EM 能学习每个数字的典型模式。
- EM 用于贝叶斯线性回归:循环更新权重后验和超参数,最终得到正则化参数和噪声方差。
5. 与前后的联系
- 第2章:高斯分布、伯努利分布、混合分布的基本概念。
- 第3章:贝叶斯线性回归的证据近似与 EM 的联系。
- 第8章:图模型为混合模型提供框架(图 9.6 展示了 GMM 的图模型表示)。
- 第10章:变分推断是 EM 的推广,用于更复杂模型(如贝叶斯 GMM)的后验近似。
- 第13章:隐马尔可夫模型(HMM)的 Baum-Welch 算法是 EM 在时序数据上的应用。
6. 核心要点总结与学习建议
核心要点
- K-means:硬聚类算法,通过迭代分配和更新中心最小化点与中心的距离平方和。
- 高斯混合模型(GMM):软聚类,每个点属于多个分量的概率加权和,参数通过 EM 算法估计。
- 潜在变量:引入指示变量 $\mathbf{z}$ 简化似然,是 EM 的关键。
- EM 算法:
- E 步:计算潜在变量的后验(责任)。
- M 步:最大化完整数据对数似然的期望更新参数。
- 保证似然单调不减,收敛到局部最优。
- EM 的通用形式:适用于任何带有潜在变量的模型。
- 其他应用:混合伯努利、贝叶斯线性回归的证据近似。
常见难点
- EM 的推导:从观测似然的不等式到 Q 函数,需要理解 KL 散度的作用。
- GMM 的协方差更新:需注意分母是责任之和,防止除零。
- EM 的初始化:对结果影响大,常用 K-means 初始化 GMM。
- 奇异解:当一个分量只有一个点时,协方差趋于零,似然爆炸,需处理(如正则化)。
学习建议
- 手推 EM 公式:从 GMM 的完整数据似然出发,推导 E 步和 M 步。
- 代码实现:用 Python 实现 GMM-EM 算法,在二维数据上可视化软分配。
- 对比 K-means 与 GMM:理解硬分配与软分配的本质区别。
- 阅读扩展:了解 EM 在 HMM(前向-后向算法)和变分自编码器中的应用。
掌握混合模型与 EM 算法,为后续学习贝叶斯非参数模型、变分推断等高级主题打下坚实基础。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第10章“近似推断”教学讲解
1. 本章概述与学习目标
第10章“近似推断”是全书理论深度最高的章节之一。在许多贝叶斯模型中,后验分布 $p(\mathbf{Z}|\mathbf{X})$ 或模型证据 $p(\mathbf{X})$ 无法解析计算,必须借助近似方法。本章系统介绍了两大类近似推断技术:变分推断(Variational Inference)和期望传播(Expectation Propagation)。它们都是通过寻找一个易于处理的分布 $q(\mathbf{Z})$ 来近似真实后验,但优化准则不同(前者最小化 $\text{KL}(q\|p)$,后者最小化 $\text{KL}(p\|q)$)。
学习本章后,你应该能够:
- 理解为什么需要近似推断:精确推断在高维、非共轭模型中不可行。
- 掌握变分推断的基本思想:证据下界(ELBO)、平均场近似、坐标上升算法。
- 能够将变分推断应用于具体模型(如一元高斯、混合高斯、贝叶斯线性回归)。
- 理解指数族分布与变分消息传递的关系。
- 掌握局部变分方法:用二次 bound 近似逻辑回归的似然,得到共轭结构。
- 理解期望传播的原理:最小化反向 KL 散度、矩匹配、EP 算法的迭代过程。
- 能够区分变分推断与期望传播的优缺点,并知道何时使用哪种方法。
本章内容与第2章(概率分布)、第3章(线性回归)、第4章(分类)、第8章(图模型)、第9章(混合模型与EM)紧密相连,并为第13章(时序模型)提供推断工具。
2. 由浅入深:从精确推断到近似推断
2.1 为什么需要近似推断?
在贝叶斯模型中,我们通常需要计算:
- 后验分布 $p(\mathbf{Z}|\mathbf{X})$ 用于参数推断;
- 模型证据 $p(\mathbf{X}) = \int p(\mathbf{X},\mathbf{Z}) d\mathbf{Z}$ 用于模型比较。
对于许多模型(如逻辑回归、非线性模型、复杂图模型),这些积分没有解析解,高维积分更是计算难题。因此,必须采用近似方法。
例子:贝叶斯逻辑回归(第4.5节)中,后验 $p(\mathbf{w}|\mathbf{t})$ 非高斯,无法直接积分,需要拉普拉斯近似或变分近似。
2.2 变分推断(Variational Inference)
2.2.1 基本思想
变分推断通过引入一个参数化的分布族 $q(\mathbf{Z})$ 来近似真实后验 $p(\mathbf{Z}|\mathbf{X})$,并最小化它们之间的 Kullback-Leibler 散度:
$$ \text{KL}(q\|p) = -\int q(\mathbf{Z}) \ln \frac{p(\mathbf{Z}|\mathbf{X})}{q(\mathbf{Z})} d\mathbf{Z} $$由于 $p(\mathbf{Z}|\mathbf{X})$ 未知,直接最小化不可行。但我们可以利用证据下界(ELBO):
$$ \ln p(\mathbf{X}) = \mathcal{L}(q) + \text{KL}(q\|p) $$其中
$$ \mathcal{L}(q) = \int q(\mathbf{Z}) \ln \frac{p(\mathbf{X},\mathbf{Z})}{q(\mathbf{Z})} d\mathbf{Z} $$由于 $\text{KL}(q\|p) \ge 0$,有 $\mathcal{L}(q) \le \ln p(\mathbf{X})$,且当 $q = p$ 时等号成立。因此,最大化 $\mathcal{L}(q)$ 等价于最小化 KL 散度,同时得到证据的下界。
重要结论:变分推断将推断问题转化为优化问题——最大化 ELBO $\mathcal{L}(q)$。
2.2.2 平均场近似(Mean Field Approximation)
为了简化,通常假设 $q(\mathbf{Z})$ 可分解为互不相关的因子:
$$ q(\mathbf{Z}) = \prod_{i=1}^M q_i(Z_i) $$其中 $Z_i$ 是变量的一个划分(可以是单个变量或一组变量)。这种分解称为平均场近似。
将分解代入 ELBO,通过变分法(固定其他因子,优化一个因子)可得最优解满足:
$$ \ln q_j^*(Z_j) = \mathbb{E}_{i \neq j} [\ln p(\mathbf{X},\mathbf{Z})] + \text{const} $$其中 $\mathbb{E}_{i \neq j}[\cdot]$ 表示对除 $Z_j$ 外的所有变量的 $q$ 分布求期望。这个方程给出了坐标上升的更新规则:依次固定其他因子,更新 $q_j$ 直到收敛。
算法:坐标上升变分推断(CAVI)
- 初始化所有 $q_i$。
- 循环每个 $j$,按上述公式更新 $q_j$。
- 检查收敛。
2.2.3 例子:一元高斯均值的贝叶斯推断
模型:
- 似然:$p(\mathbf{x}|\mu) = \prod_{n=1}^N \mathcal{N}(x_n|\mu, \sigma^2)$,$\sigma^2$ 已知。
- 先验:$p(\mu) = \mathcal{N}(\mu|\mu_0, \sigma_0^2)$。
- 后验:$p(\mu|\mathbf{x})$ 是高斯,可解析计算。但我们用平均场变分演示。
假设 $q(\mu) = \mathcal{N}(\mu|m, s^2)$。计算 ELBO 并优化 $m,s$,得到与精确后验相同的解(因为模型共轭,变分后验形式正确时可达真实后验)。
意义:当模型共轭时,变分推断可以恢复精确后验;当模型非共轭时,平均场近似给出易处理的迭代更新。
2.2.4 例子:变分混合高斯
考虑第9章的高斯混合模型,但现对参数引入先验(贝叶斯高斯混合)。精确后验复杂,用平均场近似:假设 $q$ 分解为 $q(\mathbf{Z})q(\boldsymbol{\pi})q(\boldsymbol{\mu},\boldsymbol{\Lambda})$ 等。可以得到类似于 EM 的迭代更新,但现需对参数后验积分。详见10.2节。
结果:变分混合高斯能自动确定分量个数(通过优化混合系数的后验使某些分量消失)。
2.2.5 变分下界的计算
在变分推断中,ELBO 常被监控以判断收敛。它可分解为:
$$ \mathcal{L}(q) = \mathbb{E}_q[\ln p(\mathbf{X},\mathbf{Z})] - \mathbb{E}_q[\ln q(\mathbf{Z})] $$第一项是完整数据对数似然的期望,第二项是 $q$ 的熵。对于指数族分布,这些项可解析计算。
2.3 指数族分布与变分消息传递
当模型中的条件分布属于指数族,且采用共轭先验时,变分更新可表示为变分消息传递(Variational Message Passing),在因子图上进行。每个节点只需向其父节点发送充分统计量的期望,父节点再利用这些期望更新自身。这提供了一种自动化变分推断的框架(10.4节)。
2.4 局部变分方法(Local Variational Methods)
2.4.1 动机
有些模型中的因子(如逻辑回归的似然 $\sigma(a)$)非共轭,无法直接应用平均场更新。局部变分方法用参数化的二次 bound 近似这些非共轭项,从而得到共轭结构。
2.4.2 逻辑回归的变分 bound
对于 logistic sigmoid $\sigma(a) = 1/(1+e^{-a})$,可用以下不等式(Jaakkola & Jordan, 2000):
$$ \sigma(a) \ge \sigma(\xi) \exp\left( \frac{a-\xi}{2} - \lambda(\xi)(a^2 - \xi^2) \right) $$其中 $\lambda(\xi) = \frac{1}{2\xi}\left( \sigma(\xi) - \frac{1}{2} \right)$,$\xi$ 是变分参数。该 bound 是关于 $a$ 的二次函数的指数,因此与高斯先验共轭。
2.4.3 变分逻辑回归
- 模型:似然 $p(t_n|\mathbf{w}) = \sigma(\mathbf{w}^T \boldsymbol{\phi}_n)^{t_n} (1-\sigma(\mathbf{w}^T \boldsymbol{\phi}_n))^{1-t_n}$,先验 $p(\mathbf{w}) = \mathcal{N}(\mathbf{0},\alpha^{-1}\mathbf{I})$。
- 对每个数据点引入变分参数 $\xi_n$,用上述 bound 近似似然,得到联合分布的下界。
- 然后在平均场假设下优化 $\xi_n$ 和后验 $q(\mathbf{w})$,得到迭代更新(类似于 EM,但 E 步更新 $\xi_n$,M 步更新 $q(\mathbf{w})$)。
- 最终得到近似后验 $q(\mathbf{w})$ 是高斯,预测分布也用类似 bound 近似。
2.5 期望传播(Expectation Propagation)
2.5.1 基本思想
期望传播(EP)是另一种近似推断方法,它最小化反向 KL 散度 $\text{KL}(p\|q)$,其中 $p$ 是真实后验,$q$ 是近似分布。与变分推断(最小化 $\text{KL}(q\|p)$)相比,EP 倾向于让 $q$ 覆盖 $p$ 的所有模式(而变分推断倾向于集中于单个模式)。
2.5.2 EP 的框架
假设后验可表示为因子的乘积:
$$ p(\mathbf{Z}|\mathbf{X}) \propto \prod_i f_i(\mathbf{Z}) $$其中 $f_i$ 对应似然项、先验等。EP 用简单分布 $q(\mathbf{Z})$ 近似后验,并将 $q$ 也分解为因子:
$$ q(\mathbf{Z}) \propto \prod_i \tilde{f}_i(\mathbf{Z}) $$其中每个 $\tilde{f}_i$ 是 $f_i$ 的近似(属于指数族)。EP 的目标是调整 $\tilde{f}_i$ 使得 $q$ 尽可能接近真实后验。
2.5.3 算法步骤(因子剔除-包含)
- 初始化所有 $\tilde{f}_i$(通常为1,即均匀分布)。
- 初始化 $q \propto \prod_i \tilde{f}_i$。
- 循环直到收敛: a. 选择一个因子 $f_i$,将其从 $q$ 中“剔除”,得到“腔分布” $q^{\setminus i}(\mathbf{Z}) \propto q(\mathbf{Z}) / \tilde{f}_i(\mathbf{Z})$。 b. 构建“混合分布” $\hat{p}(\mathbf{Z}) = \frac{1}{Z_i} f_i(\mathbf{Z}) q^{\setminus i}(\mathbf{Z})$,其中 $Z_i$ 是归一化常数。 c. 更新 $\tilde{f}_i$ 使得 $q^{\text{new}}(\mathbf{Z}) \propto \tilde{f}_i^{\text{new}}(\mathbf{Z}) q^{\setminus i}(\mathbf{Z})$ 与 $\hat{p}$ 在矩(期望)上匹配(矩匹配)。通常要求 $\tilde{f}_i^{\text{new}}$ 属于指数族,使得矩匹配有闭式解。 d. 将新的 $\tilde{f}_i^{\text{new}}$ 乘回 $q$,更新 $q$。
2.5.4 例子:聚类问题(Clutter Problem)
假设观测数据来自两个来源:一个信号高斯和一个背景均匀分布,我们想推断信号参数。EP 可以高效近似后验,得到信号均值和方差的估计(10.7.1节)。
2.5.5 图上 EP
EP 也可在因子图上进行,每个因子对应一个“数据项”。消息传递类似于和积算法,但传递的是指数族充分统计量的期望,而不是离散消息。
2.6 变分推断与期望传播的对比
| 特性 | 变分推断(VI) | 期望传播(EP) |
|---|---|---|
| 优化目标 | $\text{KL}(q\|p)$ | $\text{KL}(p\|q)$ |
| 近似分布特性 | 通常低估方差(倾向于单峰) | 倾向于覆盖真实分布(可能高估方差) |
| 分解假设 | 平均场(因子独立) | 因子乘积形式(可依赖) |
| 更新方式 | 坐标上升,全局更新因子 | 逐个剔除-包含,矩匹配 |
| 收敛性 | 保证增加 ELBO(单调) | 不一定单调,但实践中常收敛 |
| 计算复杂度 | 通常较简单 | 可能需计算矩,稍复杂 |
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- 一元高斯变分:虽然已知精确后验,但通过变分法可得到相同结果,验证了方法的正确性。
- 变分混合高斯:图10.5 展示了变分混合高斯自动剪枝分量(多余的混合系数趋于零),避免了第9章 EM 可能出现的奇异解。
- 变分逻辑回归:图10.13 比较了贝叶斯逻辑回归的拉普拉斯近似与变分近似,后者给出的预测概率更合理(在数据稀疏区域更不确定)。
- EP 聚类问题:图10.17 展示了 EP 对信号均值的后验近似,与精确后验几乎重合,而变分推断则低估方差。
5. 与前后的联系
- 第2章:指数族分布、KL 散度、Gamma 分布等是变分推断的基础。
- 第3章:贝叶斯线性回归的精确后验是变分推断的特例。
- 第4章:逻辑回归的拉普拉斯近似是另一种近似,与变分逻辑回归对比。
- 第8章:图模型为变分消息传递提供了结构。
- 第9章:EM 算法可视为变分推断的特例(当 $q$ 限制为后验点质量时)。
- 第13章:变分推断可用于隐马尔可夫模型和线性动态系统的近似推断(如变分卡尔曼滤波)。
6. 核心要点总结与学习建议
核心要点
- 变分推断:
- 核心:最小化 $\text{KL}(q\|p)$,等价于最大化 ELBO。
- 平均场假设:$q(\mathbf{Z}) = \prod q_i(Z_i)$,更新公式 $\ln q_j^* = \mathbb{E}_{i\neq j}[\ln p(\mathbf{X},\mathbf{Z})] + \text{const}$。
- 应用:贝叶斯混合高斯、贝叶斯线性回归、逻辑回归。
- 局部变分方法:用二次 bound 近似非共轭项,使模型共轭。
- 期望传播:
- 最小化 $\text{KL}(p\|q)$,通过矩匹配更新因子。
- 算法:剔除、形成混合、矩匹配、包含。
- 优势:更准确的后验覆盖,但可能不稳定。
- 两者对比:VI 倾向于低估方差,EP 倾向于高估方差;VI 保证 ELBO 单调增,EP 无保证但通常有效。
常见难点
- 平均场更新推导:需理解变分法,对泛函求导。
- ELBO 的分解与计算:注意熵项与期望项的符号。
- 局部变分 bound 的选择:不同 bound 导致不同精度和复杂度。
- EP 的矩匹配:需知道如何从混合分布中计算期望(可能需数值积分或解析公式)。
- 收敛性:VI 单调,但可能陷入局部最优;EP 可能振荡,需阻尼或平稳化。
学习建议
- 手推平均场更新:从一元高斯开始,逐步推广到混合高斯。
- 实现变分逻辑回归:在简单二分类数据上实现,比较与拉普拉斯近似的差异。
- 阅读经典论文:Jaakkola & Jordan (2000) 关于变分逻辑回归;Minka (2001) 关于 EP。
- 用软件实践:使用 Stan、PyMC3 或 TensorFlow Probability 中的变分推断工具,观察结果。
- 理解图模型中的消息传递:结合第8章,将变分推断视为消息传递的一种形式。
掌握近似推断,意味着你能够处理复杂贝叶斯模型,为后续研究深度学习贝叶斯方法、概率编程等打下坚实基础。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第11章“采样方法”教学讲解
1. 引言:为什么需要采样方法?
在贝叶斯推断中,我们常常需要计算后验分布 $p(\mathbf{Z}|\mathbf{X})$ 的期望、边际分布或归一化常数。对于复杂的模型(如非线性模型、高维模型),这些积分往往没有解析解,数值积分在高维空间也面临维度灾难。采样方法(Sampling Methods)通过从目标分布中生成独立或相关样本,利用这些样本近似计算感兴趣的统计量,从而绕过直接积分。
例子:在贝叶斯逻辑回归中,后验 $p(\mathbf{w}|\mathbf{t})$ 没有封闭形式,要预测新点的类别概率 $p(t=1|\mathbf{x},\mathbf{t}) = \int p(t=1|\mathbf{x},\mathbf{w}) p(\mathbf{w}|\mathbf{t}) d\mathbf{w}$,若能从后验中采样 $\{\mathbf{w}^{(s)}\}$,则可近似为 $\frac{1}{S} \sum_s p(t=1|\mathbf{x},\mathbf{w}^{(s)})$。
采样方法与第10章的变分推断形成对比:变分推断是确定性近似,采样方法是随机近似,通常更精确但计算量更大。
2. 基础采样算法
2.1 逆变换法(Inverse Transform Method)
- 适用:一维连续分布,累积分布函数 $F(x)$ 可逆。
- 原理:若 $U \sim \text{Uniform}(0,1)$,则 $X = F^{-1}(U)$ 服从分布 $F$。
- 例子:指数分布 $p(x) = \lambda e^{-\lambda x}$,$F(x) = 1 - e^{-\lambda x}$,则 $F^{-1}(u) = -\frac{1}{\lambda} \ln(1-u)$。
2.2 标准分布采样
许多编程库提供从常见分布(如高斯、Gamma)采样的高效算法,例如 Box-Muller 方法生成标准正态分布:
$$ z_1 = \sqrt{-2\ln u_1} \cos(2\pi u_2),\quad z_2 = \sqrt{-2\ln u_1} \sin(2\pi u_2) $$其中 $u_1,u_2 \sim U(0,1)$。
2.3 拒绝采样(Rejection Sampling)
- 适用:目标分布 $p(z)$ 难以直接采样,但存在一个易于采样的提议分布 $q(z)$,且存在常数 $k$ 使得 $k q(z) \ge p(z)$ 对所有 $z$ 成立。
- 步骤:
- 从 $q(z)$ 采样 $z_0$。
- 从 $U(0,1)$ 采样 $u$。
- 若 $u \le \frac{p(z_0)}{k q(z_0)}$,接受 $z_0$;否则拒绝,重复。
- 接受率:$1/k$,需选择 $q$ 尽可能接近 $p$ 以保持 $k$ 小。
- 例子:从 Beta(2,2) 采样,用均匀分布 $q(z)=1$ 作为提议,则 $k = \max p(z)$。
2.4 自适应拒绝采样(Adaptive Rejection Sampling)
- 适用:对数凹密度(log-concave)的一维分布(如 Gamma、正态)。
- 原理:构建对数密度的分段线性上界和下界,逐步细化,采样效率高且接受率逐渐提高。
- 应用:常用于 Gibbs 采样中的一维条件采样。
2.5 重要性采样(Importance Sampling)
- 目的:近似计算期望 $\mathbb{E}_p[f(\mathbf{z})] = \int f(\mathbf{z}) p(\mathbf{z}) d\mathbf{z}$。
- 原理:从提议分布 $q(\mathbf{z})$ 采样 $\{\mathbf{z}^{(s)}\}$,并用权重 $w_s = p(\mathbf{z}^{(s)}) / q(\mathbf{z}^{(s)})$ 加权平均: $$ \mathbb{E}_p[f] \approx \frac{1}{S} \sum_{s=1}^S w_s f(\mathbf{z}^{(s)}) $$ 若 $p$ 未归一化,可用自标准化权重 $ \tilde{w}_s = w_s / \sum_t w_t $。
- 特点:样本来自 $q$,无需接受/拒绝,但权重可能差异大导致方差高。提议分布应覆盖 $p$ 的高概率区域。
- 例子:用高斯分布 $q$ 估计重尾分布 $p$ 的期望,若 $q$ 尾部薄,权重会剧烈波动。
2.6 采样-重要性重采样(Sampling-Importance Resampling, SIR)
- 目的:从 $p$ 生成近似样本。
- 步骤:
- 从 $q$ 采样 $S$ 个样本 $\{\mathbf{z}^{(s)}\}$,计算权重 $w_s$。
- 从这些样本中按权重 $w_s$ 进行重采样(有放回),得到新样本集 $\{\tilde{\mathbf{z}}^{(r)}\}$,近似服从 $p$。
- 用途:可作为粒子滤波的基础,也用于生成后验样本。
3. 马尔可夫链蒙特卡洛(MCMC)
当目标分布高维、复杂时,独立采样效率低,MCMC通过构造马尔可夫链,使其平稳分布为目标分布,从而生成相关样本。
3.1 马尔可夫链基础
- 转移核 $T(\mathbf{z}', \mathbf{z})$:从当前状态 $\mathbf{z}$ 转移到下一状态 $\mathbf{z}'$ 的概率密度。
- 平稳分布:若链满足细致平衡(detailed balance): $$ p(\mathbf{z}) T(\mathbf{z}', \mathbf{z}) = p(\mathbf{z}') T(\mathbf{z}, \mathbf{z}') $$ 则 $p(\mathbf{z})$ 是平稳分布。构造满足细致平衡的转移核是关键。
3.2 Metropolis-Hastings 算法
- 步骤:
- 从提议分布 $q(\mathbf{z}'|\mathbf{z})$ 采样候选 $\mathbf{z}'$。
- 计算接受概率: $$ A(\mathbf{z}', \mathbf{z}) = \min\left(1, \frac{p(\mathbf{z}') q(\mathbf{z}|\mathbf{z}')}{p(\mathbf{z}) q(\mathbf{z}'|\mathbf{z})} \right) $$
- 以概率 $A$ 接受 $\mathbf{z}'$,否则保持 $\mathbf{z}$。
- 性质:满足细致平衡,平稳分布为 $p(\mathbf{z})$。
- 常见提议:随机游走 $q(\mathbf{z}'|\mathbf{z}) = \mathcal{N}(\mathbf{z}'|\mathbf{z}, \sigma^2 \mathbf{I})$。
- 例子:从混合高斯分布采样,用随机游走 Metropolis。
3.3 Gibbs 采样
- 适用:条件分布 $p(z_i|\mathbf{z}_{\setminus i})$ 易于采样。
- 步骤:依次从每个变量的条件分布采样,更新状态。 $$ z_1^{(t+1)} \sim p(z_1 | z_2^{(t)}, z_3^{(t)}, \dots), \quad z_2^{(t+1)} \sim p(z_2 | z_1^{(t+1)}, z_3^{(t)}, \dots), \dots $$
- 性质:是 Metropolis-Hastings 的特例(接受率恒为1),因此样本构成马尔可夫链,平稳分布为目标联合分布。
- 例子:高斯混合模型中的参数和隐变量采样(交替采样分量指示和参数)。
4. 切片采样(Slice Sampling)
- 思想:通过引入辅助变量 $u$,将目标分布 $p(z)$ 的采样转化为在超平面 $u \le p(z)$ 下的均匀分布采样。
- 步骤(一元):
- 从当前 $z^{(t)}$ 出发,在 $[0, p(z^{(t)})]$ 均匀采样 $u$。
- 在 $z$ 轴上找到包含当前点且满足 $p(z) \ge u$ 的区间(可扩展、收缩)。
- 从该区间均匀采样新的 $z^{(t+1)}$。
- 优点:无需调节步长,自动适应局部密度。
- 应用:可用于复杂分布,常与其他 MCMC 结合。
5. 混合蒙特卡洛(Hybrid Monte Carlo, HMC)
- 动机:随机游走 Metropolis 在高维空间中效率低,HMC 利用梯度信息,通过模拟物理系统(哈密顿动力学)提出远距离候选,提高接受率。
- 核心:
- 引入动量变量 $\mathbf{r}$(与 $\mathbf{z}$ 同维),定义联合分布 $p(\mathbf{z},\mathbf{r}) \propto \exp(-U(\mathbf{z}) - \frac{1}{2}\mathbf{r}^T \mathbf{r})$,其中 $U(\mathbf{z}) = -\ln p(\mathbf{z})$ 是势能。
- 用蛙跳(leapfrog)积分近似哈密顿方程,得到 $(\mathbf{z}', \mathbf{r}')$。
- 以概率 $\min(1, \exp(-H(\mathbf{z}',\mathbf{r}') + H(\mathbf{z},\mathbf{r})))$ 接受 $(\mathbf{z}', \mathbf{r}')$。
- 每次迭代后随机更新动量 $\mathbf{r}$。
- 特点:利用梯度,擅长探索高维空间,在深度学习贝叶斯中广泛应用。
- 例子:从多元高斯分布采样,HMC 可一步到达独立样本(因为高斯分布精确匹配哈密顿动力学)。
6. 估计配分函数(Partition Function)
- 问题:在许多模型(如无向图)中,归一化常数 $Z = \int \tilde{p}(\mathbf{z}) d\mathbf{z}$ 难以计算。
- 方法:
- 重要性采样:用提议分布 $q$ 的样本,$Z \approx \frac{1}{S} \sum_s \tilde{p}(\mathbf{z}^{(s)}) / q(\mathbf{z}^{(s)})$。
- 桥接采样:结合两个分布,减少方差。
- 退火重要性采样:构建一系列中间分布,逐步从易采样分布过渡到目标。
- 应用:模型比较(计算贝叶斯因子)需要证据 $p(\mathbf{X})$,即配分函数。
7. 概念关系总览(Mermaid)
8. 实例辅助理解
- 拒绝采样:从 Beta(2,2) 采样,用均匀分布提议,接受概率约为 0.5(因为 Beta(2,2) 最大值约 1.5,均匀密度为 1,k=1.5)。
- Gibbs 采样:二维高斯,条件分布 $p(x_1|x_2)$ 是一元高斯,交替采样即可。
- HMC:在神经网络权重后验采样中,HMC 能快速探索高维空间,比随机游走 Metropolis 高效。
- 切片采样:从柯西分布采样,切片采样自动调整区间,避免步长调节问题。
9. 与前后的联系
- 第2章(概率分布):采样方法依赖对各种分布的深入理解,如 Box-Muller 生成正态分布。
- 第4章(分类):贝叶斯逻辑回归的后验采样可用 MCMC。
- 第9章(混合模型):Gibbs 采样常用于混合模型的后验推断(如隐变量和参数的交替采样)。
- 第10章(近似推断):变分推断与采样是互补的:变分快但可能不准确,采样慢但渐近精确。
- 第13章(时序模型):粒子滤波(序贯重要性采样)是 SIR 在动态模型中的扩展。
10. 核心要点总结与学习建议
核心要点
- 基础采样:逆变换法、拒绝采样、重要性采样是理解复杂算法的基石。
- MCMC:
- Metropolis-Hastings 是通用框架,需设计提议分布。
- Gibbs 采样适用于条件分布易采样的情况,无需调节。
- HMC 利用梯度信息,适合高维连续空间。
- 切片采样:自适应步长,避免调节。
- 配分函数估计:重要性采样、桥接采样、退火重要性采样。
- 收敛诊断:链的混合、自相关、Gelman-Rubin 统计量等(教材未详述,但实践重要)。
常见难点
- 接受率的计算:注意 Metropolis-Hastings 中不对称提议分布的修正项。
- Gibbs 采样的收敛性:条件分布必须覆盖所有变量,且链不可约。
- HMC 参数调节:步长和步数需调节,避免数值发散。
- 重要性采样权重方差:提议分布尾部薄会导致方差爆炸,需选合适提议。
学习建议
- 动手实现:从简单分布(如混合高斯)开始,用拒绝采样、Metropolis、Gibbs 分别采样,比较效率。
- 可视化链:绘制样本路径、自相关图,观察收敛。
- 用软件工具:学习使用 PyMC3、Stan、TensorFlow Probability 中的 HMC/NUTS。
- 阅读扩展:深入理解 MCMC 收敛理论(Gelman & Rubin, 1992)和 HMC 原理(Neal, 2011)。
掌握采样方法,意味着你能够处理任意复杂的贝叶斯模型,是成为贝叶斯学家的必备技能。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第12章“连续潜在变量”教学讲解
1. 本章概述与学习目标
第12章“连续潜在变量”聚焦于一类重要的模型,其中观测数据 $\mathbf{x}$ 的变异性可以用一个低维连续潜在变量 $\mathbf{z}$ 来解释。这类模型在降维、特征提取、数据可视化和密度估计中有广泛应用。本章从经典的主成分分析(PCA)出发,逐步引入概率PCA(PPCA)、因子分析(FA)、核PCA以及非线性潜在变量模型(如独立成分分析、自联想神经网络、流形建模)。通过本章学习,你应该能够:
- 理解PCA的两种等价推导:最大方差和最小投影误差,掌握其几何意义。
- 掌握PCA的求解(特征分解或SVD)及其在高维数据中的应用技巧。
- 理解概率PCA的生成式观点:将潜在变量视为高斯先验,观测为带噪声的线性投影,并掌握其EM算法和贝叶斯扩展。
- 区分概率PCA与因子分析:噪声协方差结构不同(各向同性 vs 对角)。
- 理解核PCA:将PCA通过核技巧扩展到非线性特征空间。
- 了解独立成分分析(ICA)的基本思想(最大化非高斯性)及其与PCA的区别。
- 了解自联想神经网络与PCA的关系(线性自联想网络等价于PCA)。
- 了解非线性流形建模的基本概念(如主曲线、局部线性嵌入等,但本章只作简介)。
本章内容与第2章(概率分布)、第3章(线性回归)、第4章(分类)、第6章(核方法)、第8章(图模型)、第9章(混合模型)和第10章(近似推断)密切相关,为后续第13章(时序模型)提供基础。
2. 由浅入深:从PCA到非线性潜在变量模型
2.1 主成分分析(PCA)
PCA是最常用的线性降维技术,它寻找数据中方差最大的方向(主成分),并将数据投影到这些方向上。
2.1.1 最大方差视角
给定数据中心化后的数据集 $\{\mathbf{x}_n\}$($\sum_n \mathbf{x}_n = 0$),考虑一个单位方向 $\mathbf{u}_1$,数据在该方向上的投影为 $\mathbf{x}_n^T \mathbf{u}_1$,样本方差为:
$$ \frac{1}{N} \sum_{n=1}^N (\mathbf{x}_n^T \mathbf{u}_1)^2 = \mathbf{u}_1^T \mathbf{S} \mathbf{u}_1 $$其中 $\mathbf{S} = \frac{1}{N} \sum_n \mathbf{x}_n \mathbf{x}_n^T$ 是样本协方差矩阵。最大化该方差受约束 $\|\mathbf{u}_1\|=1$,得拉格朗日函数:
$$ \mathcal{L} = \mathbf{u}_1^T \mathbf{S} \mathbf{u}_1 + \lambda_1 (1 - \mathbf{u}_1^T \mathbf{u}_1) $$求导得 $\mathbf{S} \mathbf{u}_1 = \lambda_1 \mathbf{u}_1$,即 $\mathbf{u}_1$ 是 $\mathbf{S}$ 的最大特征值对应的特征向量。该特征值即为投影方差。后续主成分依次为后续最大特征值对应的特征向量,且相互正交。
几何意义:PCA寻找数据方差最大的正交方向,实质是旋转坐标轴使新坐标轴与数据的主轴对齐。
2.1.2 最小投影误差视角
PCA也可以看作寻找一个低维线性子空间(由 $M$ 个正交基 $\mathbf{u}_1,\dots,\mathbf{u}_M$ 张成),使得数据点到该子空间的投影距离平方和最小。该视角与最大方差等价。
2.1.3 算法步骤
- 数据中心化:$\tilde{\mathbf{x}}_n = \mathbf{x}_n - \bar{\mathbf{x}}$,$\bar{\mathbf{x}} = \frac{1}{N}\sum_n \mathbf{x}_n$。
- 计算协方差矩阵 $\mathbf{S} = \frac{1}{N} \sum_n \tilde{\mathbf{x}}_n \tilde{\mathbf{x}}_n^T$。
- 对 $\mathbf{S}$ 进行特征分解,取前 $M$ 个最大特征值对应的特征向量组成投影矩阵 $\mathbf{U}_M$。
- 降维后的数据:$\mathbf{z}_n = \mathbf{U}_M^T \tilde{\mathbf{x}}_n$。
计算技巧:当 $N < D$ 时,可改用奇异值分解(SVD)避免计算大协方差矩阵。对数据矩阵 $\mathbf{X}$($N \times D$)进行 SVD:$\mathbf{X} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^T$,则主方向为 $\mathbf{V}$ 的前 $M$ 列。
例子:对二维数据(如图12.3),第一个主成分指向最大方差方向,第二个正交。
2.2 概率PCA(Probabilistic PCA)
概率PCA将PCA置于生成式概率模型框架中,假设观测 $\mathbf{x}$ 由潜在变量 $\mathbf{z}$ 线性生成并添加高斯噪声:
$$ \mathbf{z} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}),\quad \mathbf{x} = \mathbf{W} \mathbf{z} + \boldsymbol{\mu} + \boldsymbol{\epsilon},\quad \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \sigma^2 \mathbf{I}) $$其中 $\mathbf{W}$ 是 $D \times M$ 因子载荷矩阵,$\boldsymbol{\mu}$ 是均值向量,$\sigma^2$ 是噪声方差。模型可等价写作:
$$ p(\mathbf{x}|\mathbf{z}) = \mathcal{N}(\mathbf{x}|\mathbf{W}\mathbf{z} + \boldsymbol{\mu}, \sigma^2 \mathbf{I}),\quad p(\mathbf{z}) = \mathcal{N}(\mathbf{z}|\mathbf{0}, \mathbf{I}) $$2.2.1 边缘分布与似然
由线性高斯模型,边缘分布 $p(\mathbf{x}) = \int p(\mathbf{x}|\mathbf{z}) p(\mathbf{z}) d\mathbf{z}$ 为高斯:
$$ p(\mathbf{x}) = \mathcal{N}(\mathbf{x}|\boldsymbol{\mu}, \mathbf{C}),\quad \mathbf{C} = \mathbf{W}\mathbf{W}^T + \sigma^2 \mathbf{I} $$给定数据 $\{\mathbf{x}_n\}$,对数似然为:
$$ \ln p(\mathbf{X}|\boldsymbol{\mu},\mathbf{W},\sigma^2) = -\frac{N}{2} \left[ D \ln(2\pi) + \ln |\mathbf{C}| + \text{Tr}(\mathbf{C}^{-1} \mathbf{S}) \right] $$其中 $\mathbf{S} = \frac{1}{N}\sum_n (\mathbf{x}_n - \boldsymbol{\mu})(\mathbf{x}_n - \boldsymbol{\mu})^T$ 是样本协方差。
2.2.2 最大似然解
通过最大化似然,可证明最大似然解为:
$$ \mathbf{W}_{\text{ML}} = \mathbf{U}_M (\boldsymbol{\Lambda}_M - \sigma^2 \mathbf{I})^{1/2} \mathbf{R} $$其中 $\mathbf{U}_M$ 是 $\mathbf{S}$ 的前 $M$ 个特征向量组成的矩阵,$\boldsymbol{\Lambda}_M$ 是对应的特征值对角阵,$\mathbf{R}$ 是任意正交旋转矩阵(表明潜在空间可旋转而不改变似然)。噪声方差 $\sigma^2_{\text{ML}}$ 由剩余特征值的平均给出。
重要性质:当 $\sigma^2 \to 0$ 时,概率PCA退化为标准PCA($\mathbf{W}_{\text{ML}}$ 的列张成主成分子空间,潜在变量后验均值给出投影坐标)。
2.2.3 EM算法求解
由于潜在变量 $\mathbf{z}_n$ 未观测,可用EM算法估计参数:
- E步:计算后验 $p(\mathbf{z}_n|\mathbf{x}_n) = \mathcal{N}(\mathbf{z}_n|\mathbf{m}_n, \mathbf{V})$,其中 $$ \mathbf{m}_n = \mathbf{M}^{-1} \mathbf{W}^T (\mathbf{x}_n - \boldsymbol{\mu}),\quad \mathbf{V} = \sigma^2 \mathbf{M}^{-1},\quad \mathbf{M} = \mathbf{W}^T \mathbf{W} + \sigma^2 \mathbf{I} $$
- M步:更新参数 $$ \mathbf{W}^{\text{new}} = \left[ \sum_n (\mathbf{x}_n - \boldsymbol{\mu}) \mathbf{m}_n^T \right] \left[ \sum_n (\mathbf{m}_n \mathbf{m}_n^T + \mathbf{V}) \right]^{-1} $$ $$ (\sigma^2)^{\text{new}} = \frac{1}{ND} \sum_n \left( \|\mathbf{x}_n - \boldsymbol{\mu}\|^2 - 2 \mathbf{m}_n^T \mathbf{W}^T (\mathbf{x}_n - \boldsymbol{\mu}) + \text{Tr}(\mathbf{m}_n \mathbf{m}_n^T + \mathbf{V}) \mathbf{W}^T \mathbf{W} \right) $$ $\boldsymbol{\mu}$ 可估计为样本均值 $\bar{\mathbf{x}}$。
优点:EM可处理缺失数据,且计算上可避免显式计算协方差矩阵。
2.2.4 贝叶斯PCA
在概率PCA基础上,对 $\mathbf{W}$ 引入先验(如ARD先验),通过证据近似自动选择潜在空间维数 $M$。详见12.2.3节。
2.3 因子分析(Factor Analysis)
因子分析在历史上早于PCA,它也是线性潜变量模型,但噪声协方差结构不同:$\boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \boldsymbol{\Psi})$,其中 $\boldsymbol{\Psi}$ 是对角矩阵(表示各维独立噪声,方差不同)。因此:
$$ p(\mathbf{x}) = \mathcal{N}(\boldsymbol{\mu}, \mathbf{W}\mathbf{W}^T + \boldsymbol{\Psi}) $$因子分析的目标是解释变量间的相关性,通常用于心理学、社会科学。
与概率PCA对比:
- 概率PCA:各向同性噪声 $\sigma^2 \mathbf{I}$(所有维共享噪声方差)。
- 因子分析:异方差噪声 $\boldsymbol{\Psi} = \text{diag}(\psi_1,\dots,\psi_D)$,每个维度有自己的噪声方差。
求解:通常用EM算法(潜在变量 $\mathbf{z}$)或主因子法。
2.4 核PCA(Kernel PCA)
核PCA将PCA推广到非线性特征空间:先将数据映射到高维特征空间 $\mathcal{F}$,然后在其中进行线性PCA,最后用核技巧避免显式计算映射。
步骤:
- 选择核函数 $k(\mathbf{x},\mathbf{x}') = \phi(\mathbf{x})^T \phi(\mathbf{x}')$,计算中心化核矩阵 $\tilde{\mathbf{K}}$(在特征空间中心化)。
- 对 $\tilde{\mathbf{K}}$ 进行特征分解,得到特征值 $\lambda_i$ 和特征向量 $\mathbf{v}_i$。
- 新点 $\mathbf{x}$ 在第 $i$ 个主成分上的投影为: $$ y_i(\mathbf{x}) = \sum_{n=1}^N v_{in} k(\mathbf{x}, \mathbf{x}_n) $$ 其中 $v_{in}$ 是第 $i$ 个特征向量的第 $n$ 个分量(需归一化)。
特点:核PCA能发现非线性流形,但投影结果在特征空间中,难以直接解释。图12.17展示了核PCA在玩具数据上的结果。
注意:核PCA不提供从特征空间回到原始空间的逆映射(pre-image problem),需近似。
2.5 非线性潜在变量模型
2.5.1 独立成分分析(ICA)
ICA假设观测 $\mathbf{x}$ 是独立源 $\mathbf{s}$ 的线性混合:
$$ \mathbf{x} = \mathbf{A} \mathbf{s} $$目标是从 $\mathbf{x}$ 中恢复 $\mathbf{s}$(或解混矩阵 $\mathbf{W} = \mathbf{A}^{-1}$),要求源非高斯且独立。与PCA不同,ICA关注高阶统计量,常用于盲源分离(如鸡尾酒会问题)。
方法:最大化非高斯性(如峰度)或最小化互信息。典型算法有FastICA。
2.5.2 自联想神经网络(Autoassociative Neural Networks)
自联想神经网络(也称自动编码器)是一种用多层神经网络实现非线性降维的方法:网络结构为 $D - M - D$(瓶颈层为低维),通过最小化重构误差训练。当使用线性激活函数且无隐层偏置时,网络等价于PCA。非线性激活函数则可学习非线性流形。
例子:用自编码器压缩图像,瓶颈层提取主要特征。
2.5.3 非线性流形建模
除了核PCA和自编码器,还有其他非线性降维技术如主曲线、局部线性嵌入(LLE)、等距映射(Isomap)等。本章简要介绍主曲线(principal curves)的概念:通过数据中心的平滑曲线,数据点到曲线的投影距离最小。
3. 概念关系总览(Mermaid)
4. 实例辅助理解
- PCA实例:对鸢尾花数据集(4维)做PCA,可视化为2维散点图,不同种类花可分。
- 概率PCA:用EM拟合手写数字(如MNIST)的低维表示,潜在空间可解释为数字的笔划变化。
- 核PCA:对瑞士卷数据(3维)用高斯核PCA,前两个主成分能展开流形(图12.17)。
- ICA:对混合音频信号(两个说话人的录音混合)用FastICA分离出原始语音。
- 自编码器:训练一个深度自编码器压缩人脸图像,瓶颈层捕捉身份特征。
5. 与前后的联系
- 第2章:高斯分布、指数族、条件高斯分布是概率PCA的基础。
- 第3章:线性回归中的线性模型和贝叶斯方法直接用于概率PCA。
- 第4章:分类中的线性判别与PCA同属线性投影方法。
- 第6章:核技巧是核PCA的核心。
- 第8章:图模型可表示概率PCA的生成过程(图12.9)。
- 第9章:EM算法在概率PCA中的应用,与混合模型中的EM对比。
- 第10章:贝叶斯PCA中的变分推断或证据近似。
- 第13章:线性动态系统(LDS)是概率PCA的时序扩展(潜变量随时间演化)。
6. 核心要点总结与学习建议
核心要点
- PCA:线性降维,通过特征分解找到最大方差方向,有几何和概率两种解释。
- 概率PCA:生成式模型,假设潜变量高斯,噪声各向同性,可用EM求解,自然处理缺失数据。
- 因子分析:与概率PCA类似但噪声对角异方差,用于解释变量相关性。
- 核PCA:利用核技巧在特征空间做PCA,可发现非线性结构,但无逆映射。
- 非线性模型:ICA、自编码器、流形学习提供更多非线性降维工具,各有侧重。
常见难点
- PCA的两种推导等价性:需理解投影方差与重构误差的关系。
- 概率PCA的EM推导:涉及矩阵求导和条件后验的计算。
- 核PCA的中心化:需在特征空间中心化数据,对应核矩阵的调整。
- ICA与PCA区别:PCA只依赖二阶统计量,ICA需要高阶信息。
- 自编码器与PCA关系:线性激活+平方损失时等价,非线性时更强大。
学习建议
- 实现PCA:用Python对二维数据做PCA,可视化主方向。
- 实现概率PCA的EM:对简单数据(如从低维高斯生成)验证参数估计。
- 尝试核PCA:用RBF核在瑞士卷数据上做核PCA,观察降维效果。
- 比较ICA与PCA:用FastICA和PCA对混合信号进行分离,对比结果。
- 构建简单自编码器:用Keras/TensorFlow训练自动编码器,观察瓶颈层表示。
掌握连续潜在变量模型,意味着你能够处理高维数据的内在低维结构,为后续深度学习和贝叶斯建模打下基础。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第13章“序列数据”教学讲解
1. 本章概述与学习目标
第13章“序列数据”专注于处理时间序列或有序数据(如语音、生物序列、股票价格)。这类数据的样本之间不是独立同分布的,而是存在时间依赖结构。本章系统介绍了几种经典的序列模型:马尔可夫链、隐马尔可夫模型(HMM)、线性动态系统(LDS)(即卡尔曼滤波器)以及粒子滤波。通过学习,你将能够:
- 理解马尔可夫假设和一阶马尔可夫链的基本性质。
- 掌握隐马尔可夫模型(HMM)的三大核心问题:概率计算(前向-后向算法)、解码(Viterbi算法)、学习(Baum-Welch算法,即EM)。
- 理解HMM的各种扩展(如自回归HMM、输入输出HMM)。
- 掌握线性动态系统(LDS)的模型表示,理解卡尔曼滤波的预测和更新步骤(类似于前向算法)。
- 了解LDS的参数学习(EM算法,即卡尔曼平滑)。
- 掌握粒子滤波的基本思想,用于非线性/非高斯动态系统的近似推断。
- 理解序列模型在语音识别、目标跟踪等领域的应用。
本章与第2章(概率分布)、第8章(图模型)、第9章(混合模型与EM)、第10章(近似推断)、第11章(采样方法)和第12章(连续潜在变量)紧密相关。
2. 由浅入深:从独立数据到序列数据
2.1 为什么需要序列模型?
在之前章节中,我们假设数据是独立同分布的(i.i.d.)。但在许多实际应用中,数据点之间存在依赖关系,例如:
- 语音信号:当前帧的声学特征与前后帧相关。
- 语言建模:当前词的概率依赖于前几个词。
- 金融时间序列:股票价格受历史价格影响。
- 生物信息学:DNA序列中碱基的顺序重要。
序列模型通过显式建模这种依赖关系,能更准确地描述数据生成过程。
2.2 马尔可夫模型
2.2.1 一阶马尔可夫链
定义:假设当前状态 $x_n$ 仅依赖于前一个状态 $x_{n-1}$,而与更早的状态独立(一阶马尔可夫性):
$$ p(x_n|x_1,\dots,x_{n-1}) = p(x_n|x_{n-1}) $$联合分布可分解为:
$$ p(x_1,\dots,x_N) = p(x_1) \prod_{n=2}^N p(x_n|x_{n-1}) $$例子:天气预测。若今天天气为晴,明天晴的概率为0.8,明天下雨的概率为0.2;若今天下雨,明天晴的概率为0.4,明天下雨的概率为0.6。初始分布 $p(x_1)$ 给定。
性质:
- 转移矩阵 $\mathbf{T}$ 满足 $\sum_{x'} T_{x,x'} = 1$(行和为1)。
- 平稳分布(若存在)是特征向量问题。
2.2.2 高阶马尔可夫链
高阶马尔可夫链中,当前状态依赖于前 $m$ 个状态。例如二阶:
$$ p(x_n|x_{n-1},x_{n-2}) $$但参数数量随阶数指数增长,实际中常用隐变量模型(如HMM)来间接引入长时依赖。
3. 隐马尔可夫模型(HMM)
隐马尔可夫模型引入一个离散的隐状态序列 $\mathbf{z} = \{z_1,\dots,z_N\}$($z_n \in \{1,\dots,K\}$),观测 $\mathbf{x} = \{x_1,\dots,x_N\}$ 由隐状态生成。隐状态满足一阶马尔可夫性,观测在给定当前隐状态下独立。
3.1 模型定义
HMM由三组参数定义:
- 初始状态概率:$\pi_k = p(z_1 = k)$。
- 转移概率:$A_{jk} = p(z_n = k|z_{n-1} = j)$,构成 $K \times K$ 转移矩阵。
- 发射概率(观测概率):$p(\mathbf{x}_n|z_n, \boldsymbol{\phi})$,根据观测类型选择分布(如离散观测为多项分布,连续观测为高斯分布)。
联合分布:
$$ p(\mathbf{z},\mathbf{X}) = p(z_1) \prod_{n=2}^N p(z_n|z_{n-1}) \prod_{n=1}^N p(\mathbf{x}_n|z_n) $$例子:语音识别中,隐状态表示音素,观测为声学特征向量(连续高斯)。手势识别中,隐状态表示手势阶段,观测为手部位置(连续)。
3.2 三大核心问题
- 概率计算:给定模型参数 $\boldsymbol{\theta} = \{\boldsymbol{\pi},\mathbf{A},\boldsymbol{\phi}\}$,计算观测序列的概率 $p(\mathbf{X}|\boldsymbol{\theta})$。
- 解码:给定模型和观测,找出最可能的隐状态序列 $\mathbf{z}^* = \arg\max_{\mathbf{z}} p(\mathbf{z}|\mathbf{X},\boldsymbol{\theta})$。
- 学习:给定观测,估计模型参数 $\boldsymbol{\theta}$ 最大化 $p(\mathbf{X}|\boldsymbol{\theta})$。
3.3 前向-后向算法(Forward-Backward Algorithm)
用于高效计算 $p(\mathbf{X}|\boldsymbol{\theta})$ 和边际后验 $p(z_n|\mathbf{X})$。
3.3.1 前向算法
定义前向变量 $\alpha(z_n) = p(\mathbf{x}_1,\dots,\mathbf{x}_n, z_n)$。递推:
- 初始化:$\alpha(z_1) = p(z_1) p(\mathbf{x}_1|z_1)$。
- 递推:$\alpha(z_n) = p(\mathbf{x}_n|z_n) \sum_{z_{n-1}} \alpha(z_{n-1}) p(z_n|z_{n-1})$。
- 终止:$p(\mathbf{X}) = \sum_{z_N} \alpha(z_N)$。
3.3.2 后向算法
定义后向变量 $\beta(z_n) = p(\mathbf{x}_{n+1},\dots,\mathbf{x}_N|z_n)$。递推:
- 初始化:$\beta(z_N) = 1$。
- 反向递推:$\beta(z_n) = \sum_{z_{n+1}} \beta(z_{n+1}) p(\mathbf{x}_{n+1}|z_{n+1}) p(z_{n+1}|z_n)$。
3.3.3 边际后验与成对后验
- 单点后验:$\gamma(z_n) = p(z_n|\mathbf{X}) = \frac{\alpha(z_n)\beta(z_n)}{p(\mathbf{X})}$。
- 相邻两点后验:$\xi(z_{n-1},z_n) = p(z_{n-1},z_n|\mathbf{X}) = \frac{\alpha(z_{n-1}) p(\mathbf{x}_n|z_n) p(z_n|z_{n-1}) \beta(z_n)}{p(\mathbf{X})}$。
这些后验在EM算法(Baum-Welch)中用于更新参数。
3.4 维特比算法(Viterbi Algorithm)
用于解码:找到最可能的隐状态序列 $\mathbf{z}^*$。采用动态规划:
- 定义 $\delta(z_n) = \max_{z_1,\dots,z_{n-1}} p(z_1,\dots,z_n, \mathbf{x}_1,\dots,\mathbf{x}_n)$。
- 递推:$\delta(z_n) = p(\mathbf{x}_n|z_n) \max_{z_{n-1}} [\delta(z_{n-1}) p(z_n|z_{n-1})]$。
- 记录回溯指针 $\psi(z_n) = \arg\max_{z_{n-1}} [\delta(z_{n-1}) p(z_n|z_{n-1})]$。
- 终止:最大概率 $P^* = \max_{z_N} \delta(z_N)$,最优最后状态 $z_N^* = \arg\max \delta(z_N)$。
- 回溯得到完整序列。
例子:词性标注中,给定单词序列,找到最可能的词性标签序列。
3.5 Baum-Welch算法(HMM的EM)
E步:使用当前参数计算 $\gamma(z_n)$ 和 $\xi(z_{n-1},z_n)$。 M步:更新参数
- 初始概率:$\pi_k^{\text{new}} = \gamma(z_1 = k)$。
- 转移概率:$A_{jk}^{\text{new}} = \frac{\sum_{n=2}^N \xi(z_{n-1}=j, z_n=k)}{\sum_{n=2}^N \gamma(z_{n-1}=j)}$。
- 发射参数:根据观测类型,例如高斯发射: $$ \boldsymbol{\mu}_k^{\text{new}} = \frac{\sum_n \gamma(z_n=k) \mathbf{x}_n}{\sum_n \gamma(z_n=k)},\quad \boldsymbol{\Sigma}_k^{\text{new}} = \frac{\sum_n \gamma(z_n=k) (\mathbf{x}_n - \boldsymbol{\mu}_k)(\mathbf{x}_n - \boldsymbol{\mu}_k)^T}{\sum_n \gamma(z_n=k)} $$
迭代直至收敛。
3.6 HMM的扩展
- 自回归HMM:观测不仅依赖于当前隐状态,还依赖于前几个观测。
- 输入输出HMM:引入输入变量影响转移或发射。
- 分层HMM:隐状态本身有层次结构。
- 耦合HMM:多个HMM耦合。
4. 线性动态系统(LDS)
线性动态系统(也称为卡尔曼滤波器)是连续潜变量的时间序列模型,类似于HMM但潜变量为连续高斯。
4.1 模型定义
- 潜变量 $\mathbf{z}_n \in \mathbb{R}^M$ 满足线性高斯动力学: $$ \mathbf{z}_n = \mathbf{A} \mathbf{z}_{n-1} + \mathbf{w}_n,\quad \mathbf{w}_n \sim \mathcal{N}(\mathbf{0}, \boldsymbol{\Gamma}) $$
- 观测 $\mathbf{x}_n \in \mathbb{R}^D$ 线性高斯发射: $$ \mathbf{x}_n = \mathbf{C} \mathbf{z}_n + \mathbf{v}_n,\quad \mathbf{v}_n \sim \mathcal{N}(\mathbf{0}, \boldsymbol{\Sigma}) $$
- 初始潜变量:$\mathbf{z}_1 \sim \mathcal{N}(\boldsymbol{\mu}_0, \mathbf{V}_0)$。
模型参数为 $\boldsymbol{\theta} = \{\mathbf{A}, \boldsymbol{\Gamma}, \mathbf{C}, \boldsymbol{\Sigma}, \boldsymbol{\mu}_0, \mathbf{V}_0\}$。
4.2 推断:卡尔曼滤波和平滑
4.2.1 前向算法(卡尔曼滤波)
给定观测到当前时刻,计算滤波后验 $p(\mathbf{z}_n|\mathbf{x}_{1:n})$,它是高斯分布:
- 预测:$\mathbf{z}_n|\mathbf{x}_{1:n-1} \sim \mathcal{N}(\mathbf{P}_n, \mathbf{V}_{n|n-1})$,其中 $\mathbf{P}_n = \mathbf{A} \boldsymbol{\mu}_{n-1}$,$\mathbf{V}_{n|n-1} = \mathbf{A} \mathbf{V}_{n-1} \mathbf{A}^T + \boldsymbol{\Gamma}$。
- 更新:结合新观测 $\mathbf{x}_n$,得到后验: $$ \boldsymbol{\mu}_n = \mathbf{P}_n + \mathbf{K}_n (\mathbf{x}_n - \mathbf{C} \mathbf{P}_n),\quad \mathbf{V}_n = (\mathbf{I} - \mathbf{K}_n \mathbf{C}) \mathbf{V}_{n|n-1} $$ 其中卡尔曼增益 $\mathbf{K}_n = \mathbf{V}_{n|n-1} \mathbf{C}^T (\mathbf{C} \mathbf{V}_{n|n-1} \mathbf{C}^T + \boldsymbol{\Sigma})^{-1}$。
4.2.2 后向算法(卡尔曼平滑)
计算平滑后验 $p(\mathbf{z}_n|\mathbf{x}_{1:N})$,也有递推关系(RTS平滑):
- 从后向前递推,利用滤波结果计算平滑均值和协方差。
4.2.3 似然计算
边缘似然 $p(\mathbf{x}_{1:N})$ 可通过预测误差分解计算(类似HMM前向算法)。
4.3 学习:EM算法
类似于HMM,将潜变量视为缺失数据,用EM估计参数。E步计算平滑后验(即 $\mathbb{E}[\mathbf{z}_n]$ 和 $\mathbb{E}[\mathbf{z}_n\mathbf{z}_n^T]$、$\mathbb{E}[\mathbf{z}_n\mathbf{z}_{n-1}^T]$)。M步更新参数(封闭形式)。
4.4 扩展
- 非线性/非高斯:可用扩展卡尔曼滤波(EKF)、无迹卡尔曼滤波(UKF)或粒子滤波。
- 时变参数:如时变AR模型。
5. 粒子滤波(Particle Filters)
对于非线性/非高斯动态系统,解析推断不可行,需用蒙特卡洛方法。粒子滤波(序贯重要性采样)通过一组加权粒子近似后验分布。
5.1 序贯重要性采样
- 目标:在线估计滤波后验 $p(\mathbf{z}_n|\mathbf{x}_{1:n})$。
- 从提议分布 $q(\mathbf{z}_n|\mathbf{z}_{1:n-1}, \mathbf{x}_{1:n})$ 采样粒子,并更新权重: $$ w_n^{(i)} \propto w_{n-1}^{(i)} \frac{p(\mathbf{x}_n|\mathbf{z}_n^{(i)}) p(\mathbf{z}_n^{(i)}|\mathbf{z}_{n-1}^{(i)})}{q(\mathbf{z}_n^{(i)}|\mathbf{z}_{1:n-1}^{(i)}, \mathbf{x}_{1:n})} $$
- 重采样步骤:当权重方差过大时,从粒子集中按权重重采样,重置权重为均匀,避免退化。
5.2 例子
目标跟踪:状态为位置和速度,观测为雷达测量(可能有非线性关系)。粒子滤波能处理非线性运动模型和非高斯噪声。
6. 概念关系总览(Mermaid)
7. 实例辅助理解
- HMM例子:词性标注。状态为词性(名词、动词等),观测为单词。给定训练语料(单词-词性序列),用Baum-Welch学习参数;对新句子,用Viterbi解码词性。
- LDS例子:追踪飞行器。状态为位置和速度(连续),观测为雷达测量的距离和角度(可能有噪声)。卡尔曼滤波在线估计状态。
- 粒子滤波例子:机器人定位。状态为机器人的位姿,观测为激光测距,运动模型非线性(里程计),用粒子滤波估计位置分布。
8. 与前后的联系
- 第2章:高斯分布、混合模型用于HMM的发射概率。
- 第8章:图模型表示HMM和LDS(链状结构),因子图上的和积算法对应于前向-后向和卡尔曼滤波。
- 第9章:EM算法在HMM和LDS学习中的应用,与混合模型中的EM类比。
- 第10章:变分推断可用于HMM和LDS的近似后验。
- 第11章:粒子滤波是序贯蒙特卡洛方法,与重要性采样密切相关。
- 第12章:LDS可视为概率PCA在时间上的扩展(潜变量随时间演化)。
9. 核心要点总结与学习建议
核心要点
- HMM:
- 离散隐状态,一阶马尔可夫。
- 前向-后向算法计算 $p(\mathbf{X})$ 和边际后验。
- Viterbi解码最大概率路径。
- Baum-Welch(EM)学习参数。
- LDS:
- 连续隐状态,线性高斯动力学和观测。
- 卡尔曼滤波(前向)和平滑(后向)解析。
- EM学习参数。
- 粒子滤波:
- 处理非线性/非高斯。
- 序贯重要性采样 + 重采样。
常见难点
- 前向-后向算法的推导:理解递归和归一化。
- Viterbi算法与动态规划:与最短路径问题类比。
- 卡尔曼增益的推导:最小均方误差估计。
- 粒子滤波的重采样:为什么需要,如何实现。
- 与图模型的联系:将序列模型视为树状图,和积算法是前向-后向的泛化。
学习建议
- 实现HMM:用Python实现前向-后向、Viterbi、Baum-Welch,在简单数据(如抛硬币实验)上验证。
- 实现卡尔曼滤波:模拟一维跟踪问题,观察滤波效果。
- 使用粒子滤波:在机器人定位仿真中实现粒子滤波,对比EKF。
- 阅读应用案例:了解HMM在语音识别(如HTK工具包)、LDS在控制论中的应用。
掌握序列模型,意味着你能够处理时间依赖数据,为后续深度学习中的RNN、LSTM、Transformer等打下基础。如有疑问,欢迎继续探讨!
《模式识别与机器学习》(PRML)第14章“组合模型”教学讲解
1. 本章概述与学习目标
第14章“组合模型”是本书的最后一章,它探讨如何通过组合多个基础模型来提升整体预测性能。组合模型的核心思想是:单个模型可能无法完美捕获数据的所有特性,但通过合理地集成多个模型,往往可以获得比任何单一模型更好的泛化能力。本章介绍了四种主要的组合方法:贝叶斯模型平均、委员会(模型平均)、提升方法(Boosting)、基于树的模型(决策树、随机森林)以及条件混合模型(混合专家模型)。
学习本章后,你应该能够:
- 理解贝叶斯模型平均与模型选择的关系,掌握其公式和适用场景。
- 掌握委员会方法的简单平均和加权平均,并理解其减少方差的原理。
- 深入理解 AdaBoost 算法及其前向分步加性建模的解释,了解指数损失函数。
- 理解决策树的基本构造(回归树、分类树)及其优缺点。
- 掌握随机森林的 Bagging 思想及其与 Boosting 的对比。
- 掌握混合专家模型(Mixture of Experts)的结构、训练方法(EM 算法)及其与混合模型的联系。
- 了解层次混合专家模型(HME)作为多级专家组合的思想。
- 能够根据问题选择合适的组合方法。
本章与第3章(线性回归)、第4章(分类)、第8章(图模型)、第9章(混合模型与EM)、第10章(近似推断)和第12章(连续潜在变量)有密切联系。
2. 由浅入深:从单一模型到组合模型
2.1 为什么需要组合模型?
在机器学习中,我们常常面临模型选择的问题:是选择多项式阶数 $M=3$ 还是 $M=9$?是选择神经网络还是决策树?传统的做法是用验证集选出一个最佳模型(模型选择)。然而,多个模型可能从不同角度揭示数据规律,将它们组合起来往往能获得更稳定、更准确的预测。组合模型的思想源于“三个臭皮匠,顶个诸葛亮”。
例子:在 Kaggle 竞赛中,获胜方案往往是多个模型的加权平均(如神经网络、梯度提升树、线性模型的集成)。
3. 贝叶斯模型平均(Bayesian Model Averaging)
3.1 思想
贝叶斯模型平均不是在模型之间做选择,而是对所有可能的模型(或一组候选模型)的后验概率进行加权平均。假设有 $L$ 个模型 $\{\mathcal{M}_i\}$,每个模型有自己的参数 $\boldsymbol{\theta}_i$。给定数据 $\mathcal{D}$,预测分布为:
$$ p(t|\mathbf{x},\mathcal{D}) = \sum_{i=1}^L p(t|\mathbf{x},\mathcal{M}_i,\mathcal{D}) \, p(\mathcal{M}_i|\mathcal{D}) $$其中 $p(\mathcal{M}_i|\mathcal{D})$ 是模型的后验概率,由模型先验 $p(\mathcal{M}_i)$ 和模型证据 $p(\mathcal{D}|\mathcal{M}_i)$ 决定:
$$ p(\mathcal{M}_i|\mathcal{D}) \propto p(\mathcal{M}_i) \, p(\mathcal{D}|\mathcal{M}_i) $$3.2 模型证据
模型证据(边际似然)为:
$$ p(\mathcal{D}|\mathcal{M}_i) = \int p(\mathcal{D}|\boldsymbol{\theta}_i,\mathcal{M}_i) \, p(\boldsymbol{\theta}_i|\mathcal{M}_i) \, d\boldsymbol{\theta}_i $$这正是我们在第3章(线性回归)和第4章(拉普拉斯近似)中遇到的概念。证据自动体现了奥卡姆剃刀:过于复杂的模型在参数空间上分布更广,使得数据概率降低。
3.3 贝叶斯模型平均 vs 模型选择
- 模型选择:选出后验概率最大的单一模型进行预测。这相当于用0-1损失近似,忽略模型不确定性。
- 贝叶斯模型平均:对所有模型加权平均,保留了模型不确定性,通常能获得更好的预测性能。
例子:在多项式拟合中,BMA 会赋予 $M=3$ 最高的权重,但也给 $M=4$ 和 $M=5$ 一定的权重,最终预测是这些多项式预测的加权平均,通常比单一最优模型更稳定。
注意:BMA 要求模型空间包含真实模型,且计算模型证据可能很困难,常用 BIC 或拉普拉斯近似。
4. 委员会(Committee)——模型平均
4.1 简单平均
委员会方法用多个模型进行预测,然后简单地平均它们的输出。例如,回归问题中:
$$ y_{\text{ens}}(\mathbf{x}) = \frac{1}{M} \sum_{m=1}^M y_m(\mathbf{x}) $$分类问题中,可以投票(硬投票)或平均概率(软投票)。
为什么有效?假设每个模型的误差是零均值、方差 $\sigma^2$ 且相互独立,则平均后的方差降至 $\sigma^2/M$。实际上模型误差往往相关,但平均仍能减少方差。
例子:训练多个神经网络(不同初始化、不同架构),平均它们的输出,通常比单个网络性能好。
4.2 Bagging(Bootstrap Aggregating)
Bagging 是一种生成多样模型的技术:对训练数据进行有放回抽样(bootstrap),得到 $M$ 个不同的训练子集,在每个子集上训练一个模型,最后平均(回归)或投票(分类)。Bagging 能有效降低方差,尤其对不稳定算法(如决策树)效果显著。
随机森林:对决策树应用 Bagging,并在每个节点分裂时随机选择一部分特征进行最优划分,进一步增加多样性。随机森林是 Bagging 的经典实例。
5. 提升方法(Boosting)
Boosting 是一类顺序集成方法,它通过迭代地训练新模型来纠正前序模型的错误,最终将所有模型加权组合。最著名的是 AdaBoost(Adaptive Boosting)。
5.1 AdaBoost 算法(二分类)
给定训练集 $\{(\mathbf{x}_n, t_n)\}$,$t_n \in \{-1, +1\}$。
- 初始化样本权重 $w_n^{(1)} = 1/N$。
- 对于 $m = 1,\dots,M$: a. 用当前权重训练一个基分类器 $y_m(\mathbf{x}) \in \{-1, +1\}$。 b. 计算加权错误率: $$ \epsilon_m = \frac{\sum_n w_n^{(m)} I(t_n \neq y_m(\mathbf{x}_n))}{\sum_n w_n^{(m)}} $$ c. 计算分类器权重: $$ \alpha_m = \frac{1}{2} \ln \left( \frac{1 - \epsilon_m}{\epsilon_m} \right) $$ d. 更新样本权重: $$ w_n^{(m+1)} = w_n^{(m)} \exp\left( -\alpha_m t_n y_m(\mathbf{x}_n) \right) $$ 然后归一化使 $\sum_n w_n^{(m+1)} = 1$。
- 最终预测: $$ Y_M(\mathbf{x}) = \text{sign}\left( \sum_{m=1}^M \alpha_m y_m(\mathbf{x}) \right) $$
直观:增加被错分样本的权重,使下一轮分类器更关注这些难例。
5.2 从加性模型角度理解
AdaBoost 等价于最小化指数损失函数:
$$ L(y, t) = \exp(-t y) $$采用前向分步加性建模(Forward Stagewise Additive Modeling):每次迭代向集成中添加一个基分类器 $y_m$ 及其权重 $\alpha_m$,使得当前加权组合在训练集上的指数损失最小。这解释了 AdaBoost 为什么有效,且可以推广到其他损失函数(如 logistic 损失),得到 Gradient Boosting。
例子:用弱分类器(如深度为1的决策树,即决策桩)进行 AdaBoost,能逐步构建强分类器。
5.3 与 Bagging 对比
- Bagging:并行训练,减少方差。
- Boosting:顺序训练,减少偏差(也减少方差,但主要针对弱学习器)。
6. 基于树的模型
6.1 决策树
决策树通过递归划分输入空间,在每个叶节点上给出预测(回归为均值,分类为多数类)。树的构建通常采用贪心算法,选择最佳分裂特征和阈值以最大化信息增益或最小化均方误差。
优点:可解释、能处理混合数据类型、自动特征选择。 缺点:容易过拟合,需剪枝或集成。
6.2 回归树与分类树
- 回归树:叶节点输出为落入该节点的训练样本均值。分裂准则为最小化平方误差和。
- 分类树:叶节点输出为多数类。分裂准则常用基尼系数或交叉熵。
6.3 随机森林
随机森林 = Bagging + 决策树 + 随机特征选择。具体:
- 对训练集做 bootstrap 采样,生成 $M$ 个子集。
- 对每个子集构建一棵决策树,但在每个节点分裂时,只随机选择一部分特征(如 $\sqrt{D}$ 个)作为候选,从中选最优分裂。
- 最终预测(回归平均,分类投票)。
效果:随机森林具有极好的抗过拟合能力,是实践中常用的基线模型。
7. 条件混合模型
7.1 混合线性回归模型
将输入空间划分为若干区域,每个区域用一个线性回归模型拟合,且区域划分是“软”的(通过概率加权)。模型为:
$$ p(t|\mathbf{x}) = \sum_{k=1}^K \pi_k(\mathbf{x}) \, \mathcal{N}(t|\mathbf{w}_k^T \boldsymbol{\phi}(\mathbf{x}), \sigma_k^2) $$其中混合系数 $\pi_k(\mathbf{x})$ 是输入的函数(如 softmax 输出)。参数可用 EM 算法估计,类似于高斯混合,但混合系数和专家参数均依赖 $\mathbf{x}$。
7.2 混合专家模型(Mixture of Experts, ME)
ME 将上述思想一般化:每个“专家”是一个模型(线性回归或分类器),一个“门控网络”(gating network)根据输入决定各专家的权重。模型可写作:
$$ p(t|\mathbf{x}) = \sum_{k=1}^K g_k(\mathbf{x}) \, p_k(t|\mathbf{x}) $$门控通常用 softmax:$g_k(\mathbf{x}) = \frac{\exp(\mathbf{v}_k^T \mathbf{x})}{\sum_j \exp(\mathbf{v}_j^T \mathbf{x})}$。
训练:用 EM 算法,E 步计算“责任” $\gamma_{nk} = p(k|\mathbf{x}_n, t_n)$,M 步分别更新门控参数和专家参数(类似于混合模型的 EM,但专家参数更新带权重)。
7.3 层次混合专家(Hierarchical Mixture of Experts, HME)
HME 是 ME 的层次化扩展:门控网络可以有多级,形成树状结构。每个内部节点有一个门控,将输入分配到下一级专家,最终叶节点为具体模型。训练依然可用 EM 或递归 EM。
例子:在机器人逆运动学中,输入为末端位置,输出为关节角度,由于多解性,单个模型无法拟合,ME 可以学习多个可能的解(每个专家对应一种姿态)。
8. 概念关系总览(Mermaid)
9. 实例辅助理解
- 贝叶斯模型平均:在多项式回归中,计算 $M=0,\dots,9$ 的模型证据(可用 BIC 近似),得到后验权重,最终预测为各多项式预测的加权平均。
- Bagging:对决策树做 bagging,每棵树用 bootstrap 样本训练,最终投票,性能通常优于单棵树。
- 随机森林:用 UCI 数据集(如声纳、信用卡欺诈)训练随机森林,调参观察特征重要性和 OOB 误差。
- AdaBoost:用决策桩(depth=1)做 AdaBoost,在二维线性不可分数据上(如异或)演示如何逐步提升。
- 混合专家:对机器人逆运动学数据(两个关节,目标末端位置),用两个线性专家,门控为 softmax,EM 训练后可看到每个专家负责一个解(elbow-up/elbow-down)。
10. 与前后的联系
- 第3章(线性回归):混合专家中的线性专家模型。
- 第4章(分类):AdaBoost 用于分类,逻辑回归可作为专家模型。
- 第8章(图模型):混合专家可视为有向图模型(专家为子节点,门控为条件概率)。
- 第9章(混合模型):混合专家是混合模型的推广,其中混合系数是输入的函数(类似输入依赖的混合),EM 算法类似。
- 第10章(近似推断):ME 中的 E 步计算责任,是精确 EM,而贝叶斯模型平均涉及模型后验近似。
- 第12章(连续潜在变量):层次混合专家类似于概率 PCA 的层次结构。
11. 核心要点总结与学习建议
核心要点
- 贝叶斯模型平均:用模型证据加权平均预测,考虑模型不确定性。
- 委员会方法:简单平均或 Bagging,降低方差,随机森林是典型代表。
- 提升方法:顺序训练,关注难例,AdaBoost 用指数损失,可解释为前向加性建模。
- 决策树:可解释,易过拟合,是随机森林和梯度提升的基础。
- 混合专家:输入依赖的混合模型,用 EM 训练,可处理多解问题。
常见难点
- 贝叶斯模型平均的计算:模型证据的近似(BIC、拉普拉斯)可能不准确。
- AdaBoost 的加权更新:理解指数损失如何导致权重更新。
- 混合专家的 EM:与高斯混合的 EM 类似,但责任依赖于输入。
- 随机森林的随机性:bootstrap 和随机特征选择的作用需理清。
学习建议
- 实现 AdaBoost:用决策桩在简单数据集上实现,观察每次迭代的权重变化。
- 实现随机森林:用决策树作为基学习器,在 UCI 数据集上比较与单棵树的性能。
- 尝试混合专家:用 EM 训练一个简单的混合线性回归模型(两个专家),在人工数据上验证。
- 阅读扩展:了解 XGBoost、LightGBM 等现代梯度提升工具。
- 应用思考:在 Kaggle 竞赛中,常用多种模型(线性、树、神经网络)加权平均,思考如何设置权重。
掌握组合模型,意味着你能构建强大的集成学习系统,这是机器学习实践中的重要技能。如有疑问,欢迎继续探讨!