采样方法与蒙特卡罗方法
理解当概率分布 $p(\mathbf{z})$ 太复杂、无法解析计算期望或后验时,为什么采样能成为普适的数值逼近工具。掌握从简单分布采样(逆变换、拒绝采样)到 MCMC(Metropolis-Hastings、Gibbs)的完整工具链。
从课程脉络看:L03 贝叶斯分类需要计算后验 $p(\mathbf{z}|\mathbf{x})$,但真实模型的后验几乎算不动。L06 提供了一整套从"无法解析求积"到"数值采样近似"的工具箱。L07 的受限玻尔兹曼机训练和现代贝叶斯神经网络也都会回到 MCMC 思想。
前置知识回顾
- 概率论:条件概率、期望、累积分布函数 (CDF)。作用:逆变换采样需要 CDF 的反函数。去哪里补:L03 贝叶斯分类。
- 随机过程:马尔可夫链的平稳分布概念。作用:理解 MCMC 的收敛保证。去哪里补:概率论教材马尔可夫链章节。
- 贝叶斯推断:后验 $p(\theta|D) \propto p(D|\theta)p(\theta)$ 通常归一化常数算不动。作用:采样方法的核心应用场景。去哪里补:L03 贝叶斯定理。
贝叶斯模型经常把问题带到一个尴尬位置:公式写出来了,但积分几乎算不动。比如:
- 后验分布 $p(\theta|\mathbf{x}) = \frac{p(\mathbf{x}|\theta)p(\theta)}{\int p(\mathbf{x}|\theta)p(\theta)d\theta}$,分母上的高维积分没有解析解。
- 期望 $\mathbb{E}_{p}[f] = \int f(\mathbf{z})p(\mathbf{z})d\mathbf{z}$,维度一高,数值积分(网格法)的代价指数增长。
采样方法的价值就在这里出现:它不试图把解析式硬算出来,而是直接从 $p(\mathbf{z})$ 或其近似分布中产生样本,再用样本平均估计期望。
蒙特卡罗期望估计
若想计算 $\mathbb{E}[f] = \int f(\mathbf{z})p(\mathbf{z})d\mathbf{z}$,只要能从 $p(\mathbf{z})$ 中独立采样 $\mathbf{z}^{(1)}, \ldots, \mathbf{z}^{(L)}$,则:
由大数定律保证:当 $L \to \infty$ 时,样本平均几乎必然收敛到真实期望。
问题在于:$p(\mathbf{z})$ 通常不是我们能直接采样的标准分布。接下来的方法逐步解决"怎样从复杂分布中获取样本"。
逆变换采样定理
若 $U \sim \mathrm{Uniform}(0,1)$,$F$ 为目标分布的 CDF,则 $X = F^{-1}(U)$ 服从 $p(x)$。
适用场景:CDF 已知且可求逆。对指数分布 $p(x) = \lambda e^{-\lambda x}$($x \geq 0$),CDF 为 $F(x) = 1 - e^{-\lambda x}$,反函数为 $F^{-1}(u) = -\frac{1}{\lambda}\ln(1-u)$。采样步骤:产生 $U \sim \mathrm{Uniform}(0,1)$,计算 $X = -\frac{1}{\lambda}\ln(1-U)$。
局限:很多分布的 CDF 没有封闭形式的反函数(如高斯分布),此时需要 Box-Muller 变换等扩展方法。
拒绝采样 (Rejection Sampling)
找一个容易采样的提议分布 $q(\mathbf{z})$ 和常数 $k$,使得 $k \cdot q(\mathbf{z}) \geq p(\mathbf{z})$ 对所有 $\mathbf{z}$ 成立。采样流程:
- 从 $q(\mathbf{z})$ 采样 $\mathbf{z}^*$。
- 从 $\mathrm{Uniform}(0, k \cdot q(\mathbf{z}^*))$ 采样 $u$。
- 若 $u \leq p(\mathbf{z}^*)$,接受 $\mathbf{z}^*$;否则拒绝。
接受概率为 $p_{\mathrm{accept}} = 1/k$。$k$ 越小(即 $kq$ 越贴近 $p$),效率越高。
重要采样 (Importance Sampling)
不直接从 $p$ 采样,而是从提议分布 $q$ 采样,再用重要性权重修正:
其中归一化权重 $\omega_l = \frac{p(\mathbf{z}^{(l)})/q(\mathbf{z}^{(l)})}{\sum_m p(\mathbf{z}^{(m)})/q(\mathbf{z}^{(m)})}$。
前三种方法在高维空间中的效率急剧下降。MCMC 的策略完全不同:不要求独立采样,而是构造一条马尔可夫链,使链的平稳分布恰好是目标分布 $p(\mathbf{z})$。
Metropolis-Hastings 算法
- 初始化 $\mathbf{z}^{(0)}$。
- 对 $t = 0, 1, 2, \ldots$:
- 从提议分布 $q(\mathbf{z}^* | \mathbf{z}^{(t)})$ 采样候选 $\mathbf{z}^*$。
- 计算接受率:$$A(\mathbf{z}^*, \mathbf{z}^{(t)}) = \min\!\left\{1, \frac{p(\mathbf{z}^*) \, q(\mathbf{z}^{(t)}|\mathbf{z}^*)}{p(\mathbf{z}^{(t)}) \, q(\mathbf{z}^*|\mathbf{z}^{(t)})}\right\}$$
- 以概率 $A$ 接受 $\mathbf{z}^{(t+1)} = \mathbf{z}^*$;否则 $\mathbf{z}^{(t+1)} = \mathbf{z}^{(t)}$。
细致平衡条件 (Detailed Balance)
M-H 算法保证马尔可夫链满足细致平衡条件:
细致平衡是平稳分布 $p(\mathbf{z})$ 的充分条件:从 $\mathbf{z}^{(t)}$ 转移到 $\mathbf{z}^*$ 的概率流等于反向概率流。长期来看,链在 $\mathbf{z}$ 处的停留频率正比于 $p(\mathbf{z})$。
Gibbs 采样是 M-H 的特例:当提议分布取为条件分布 $q(z_i|\mathbf{z}_{\setminus i}) = p(z_i|\mathbf{z}_{\setminus i})$ 时,接受率恒等于 1,不需要拒绝步骤。更新规则:
| 方法 | 想法 | 样本独立性 | 高维效率 | 典型应用 |
|---|---|---|---|---|
| 逆变换采样 | 从均匀经 CDF 反函数变换 | 独立 | 需要可逆 CDF | 简单连续分布 |
| 拒绝采样 | 用提议分布包住目标分布 | 独立 | 接受率极低 | 低维、包络易构造 |
| 重要采样 | 从 $q$ 采样 + 权重修正 | 独立(但带权) | 权重方差爆炸 | 方差估计、归一化常数 |
| M-H | 马尔可夫链 + 接受/拒绝 | 相关 | 较好 | 通用后验采样 |
| Gibbs | 逐分量条件采样 | 相关 | 好(无拒绝) | 图模型、HMM 参数推断 |
课件第 10–11 页给出了伪随机数生成的基础(线性同余法 $x_{n+1} = (ax_n + c) \mod m$),第 6 页介绍了蒙特卡罗方法的历史起源(1777 年 Buffon 投针实验、冯·诺伊曼命名)。
例题:证明 M-H 接受率满足细致平衡
题目:给定 M-H 接受率 $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\}$,验证它满足细致平衡 $p(\mathbf{z})q(\mathbf{z}^*|\mathbf{z})A(\mathbf{z}^*,\mathbf{z}) = p(\mathbf{z}^*)q(\mathbf{z}|\mathbf{z}^*)A(\mathbf{z},\mathbf{z}^*)$。
- 情况 1:$\frac{p(\mathbf{z}^*)q(\mathbf{z}|\mathbf{z}^*)}{p(\mathbf{z})q(\mathbf{z}^*|\mathbf{z})} \geq 1$,即候选更优。此时 $A(\mathbf{z}^*,\mathbf{z}) = 1$,$A(\mathbf{z},\mathbf{z}^*) = \frac{p(\mathbf{z})q(\mathbf{z}^*|\mathbf{z})}{p(\mathbf{z}^*)q(\mathbf{z}|\mathbf{z}^*)}$。代入左边:$p(\mathbf{z})q(\mathbf{z}^*|\mathbf{z}) \cdot 1$;右边:$p(\mathbf{z}^*)q(\mathbf{z}|\mathbf{z}^*) \cdot \frac{p(\mathbf{z})q(\mathbf{z}^*|\mathbf{z})}{p(\mathbf{z}^*)q(\mathbf{z}|\mathbf{z}^*)} = p(\mathbf{z})q(\mathbf{z}^*|\mathbf{z})$。左右相等。
- 情况 2:候选更差,对称推导,同理成立。
结论:M-H 接受率的设计精确满足了细致平衡,从而保证马尔可夫链的平稳分布为目标分布 $p$。
例题:top-k / top-p 采样与经典采样方法的关系
题目:大语言模型生成文本时使用的 temperature、top-k、top-p(nucleus sampling)策略,和本讲学的采样方法有什么关系?
- Temperature:调整 softmax 输出 $p_i = \frac{e^{z_i/T}}{\sum_j e^{z_j/T}}$。$T \to 0$ 退化为 argmax(确定性),$T \to \infty$ 退化为均匀采样。本质上是人为修改目标分布的形状,类似拒绝采样中选择不同的提议分布。
- Top-k:只从概率最高的 $k$ 个 token 中采样,其余概率置零后重新归一化。这是一种截断提议分布——与拒绝采样中 $kq(\mathbf{z}) \geq p(\mathbf{z})$ 的思路类似,但方向相反(缩小而非放大)。
- Top-p (Nucleus):选概率累积到 $p$ 的最小 token 集合。比 top-k 更自适应——当分布集中时少量 token 就够,分布平坦时自动扩大候选集。
答案:LLM 采样策略的核心问题仍然是"怎样从复杂分布中获取高质量样本",只是场景从贝叶斯推断变成了文本生成。经典采样方法提供了理论框架,LLM 工程实践则加入了启发式约束。
后续用途 / 连接
- L07 神经网络:Gibbs / MH 采样 → 受限玻尔兹曼机(RBM)的对比散度训练。Monte Carlo dropout → 深度学习的不确定性量化。
- L08 Transformer:LLM 的文本生成本质上是自回归采样——每步从模型输出的条件分布中抽取 token。temperature、top-k、top-p 都是经典采样思想在工程中的变体。
- L03 → L06 桥梁:贝叶斯后验 $p(\mathbf{z}|\mathbf{x})$ 通常不可解析;采样方法是计算后验期望的标准工具。
- L05 → L06 桥梁:压缩感知的稀疏先验(Laplace 分布)对应 $\ell_1$ 正则;MCMC 可以从这种先验出发做贝叶斯推断。
复习速查
- 蒙特卡罗基本公式:$\mathbb{E}[f] \approx \frac{1}{L}\sum f(\mathbf{z}^{(l)})$,大数定律保证收敛。
- 逆变换采样:$X = F^{-1}(U)$,需 CDF 可逆。
- 拒绝采样:包络 $kq \geq p$,接受率 $1/k$,高维效率低。
- 重要采样:不拒绝样本,用权重修正,但权重方差可能爆炸。
- M-H 算法:提议分布 + 接受率,满足细致平衡,保证收敛到目标分布。
- Gibbs 采样:逐分量条件采样,接受率恒为 1,适用于图模型。
参考来源
- 课程课件:25C06 第 2–6 页(采样概念与蒙特卡罗起源)
- 课程课件:25C06 第 10–15 页(线性同余法与逆变换采样)
- 课程课件:25C06 第 17–21 页(拒绝采样)
- 课程课件:25C06 第 25–29 页(重要采样)
- 课程课件:25C06 第 31–36 页(M-H 与 Gibbs)
- 公开参考:CMU 10-708 Lecture 16(https://www.cs.cmu.edu/~epxing/Class/10708-16/note/10708_scribe_lecture16.pdf)
- 公开参考:UW Stat 535 Lecture 9(http://faculty.washington.edu/yenchic/19A_stat535/Lec9_MC.pdf)