Files
2026-05-16 17:16:51 +08:00

437 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 3-采样方法
tags:
- 采样方法
- MCMC
- 统计学
- 数学基础
---
# 采样方法
> 本笔记面向深度学习与强化学习科研人员,系统讲解采样方法的数学基础、核心算法及与深度学习的联系。
---
## 1. 蒙特卡洛方法基础
### 1.1 随机采样与期望估计
**定义 1.1(蒙特卡洛估计)** 设 $X_1, X_2, \ldots, X_N$ 为从分布 $p(x)$ 中独立采得的样本,则函数 $f(X)$ 的期望值 $\mathbb{E}_p[f(X)]$ 的蒙特卡洛估计为:
$$\hat{F}_N = \frac{1}{N} \sum_{i=1}^{N} f(X_i)$$
**定理 1.1(蒙特卡洛估计的无偏性)** 上述估计量 $\hat{F}_N$ 是 $\mathbb{E}_p[f(X)]$ 的无偏估计,即:
$$\mathbb{E}\left[\hat{F}_N\right] = \mathbb{E}_p[f(X)]$$
**证明:**
$$\mathbb{E}\left[\hat{F}_N\right] = \mathbb{E}\left[\frac{1}{N} \sum_{i=1}^{N} f(X_i)\right] = \frac{1}{N} \sum_{i=1}^{N} \mathbb{E}[f(X_i)] = \frac{1}{N} \cdot N \cdot \mathbb{E}_p[f(X)] = \mathbb{E}_p[f(X)]$$
---
### 1.2 大数定律与收敛性
**定理 1.2(弱大数定律)** 若 $X_1, \ldots, X_N$ i.i.d.,且 $\mathbb{E}[|f(X_i)|] < \infty$,则对任意 $\epsilon > 0$
$$\lim_{N \to \infty} P\left(\left|\hat{F}_N - \mathbb{E}_p[f(X)]\right| > \epsilon\right) = 0$$
**推论:** 蒙特卡洛估计量依概率收敛到真实期望值,收敛速度为 $O(1/\sqrt{N})$。具体而言,中心极限定理给出:
$$\hat{F}_N \approx \mathcal{N}\left(\mathbb{E}_p[f(X)], \frac{\text{Var}_p[f(X)]}{N}\right)$$
均方误差为:
$$\mathbb{E}\left[(\hat{F}_N - \mathbb{E}_p[f(X)])^2\right] = \frac{\text{Var}_p[f(X)]}{N}$$
---
### 1.3 方差缩减的基本思想
蒙特卡洛方法的核心挑战是方差缩减。设原估计量方差为 $\sigma^2/N$,方差缩减技术旨在构造方差更小的估计量。
**控制变量法:** 若存在与 $f$ 相关且期望已知的随机变量 $g$,则构造:
$$\hat{F}_N^{\text{cv}} = \frac{1}{N} \sum_{i=1}^{N} (f(X_i) - g(X_i)) + \mathbb{E}[g(X)]$$
最优系数 $\beta^* = \frac{\text{Cov}(f,g)}{\text{Var}(g)}$,方差缩减比为 $\text{Var}(f)(1-\rho^2)$。
---
## 2. 重要性采样Importance Sampling
### 2.1 重要性采样推导
**问题设定:** 直接从 $p(x)$ 采样困难,但可从另一个易采样的分布 $q(x)$ 采样。
**定理 2.1(重要性采样恒等式)** 若 $q(x) > 0$ 当 $p(x) > 0$,则:
$$\mathbb{E}_p[f(X)] = \mathbb{E}_q\left[f(X) \cdot \frac{p(X)}{q(X)}\right]$$
**推导:** 从 $q(x)$ 采样,令 $w(x) = \frac{p(x)}{q(x)}$ 为重要性权重。
$$\mathbb{E}_q\left[f(X) \cdot \frac{p(X)}{q(X)}\right] = \int f(x) \cdot \frac{p(x)}{q(x)} \cdot q(x) \, dx = \int f(x) p(x) \, dx = \mathbb{E}_p[f(X)]$$
**重要性采样估计量:**
$$\hat{F}_N^{\text{IS}} = \frac{1}{N} \sum_{i=1}^{N} f(X_i) \cdot w(X_i), \quad X_i \sim q$$
---
### 2.2 重要性权重的方差分析
**定理 2.2IS 估计量方差)** 重要性采样估计量的方差为:
$$\text{Var}_q\left[\hat{F}_N^{\text{IS}}\right] = \frac{1}{N} \text{Var}_q\left[f(X) \cdot \frac{p(X)}{q(X)}\right] = \frac{1}{N} \left(\mathbb{E}_q\left[f^2(X) \cdot \frac{p^2(X)}{q^2(X)}\right] - \left(\mathbb{E}_p[f(X)]\right)^2\right)$$
**定义 2.1(重要性采样的有效样本数)** 定义有效样本数ESS
$$\text{ESS} = \frac{(\sum_{i=1}^N w_i)^2}{\sum_{i=1}^N w_i^2}$$
当 $p = q$ 时,$\text{Var}_q(w) = 0$ESS $= N$;当 $p$ 与 $q$ 差异增大时ESS 减小。
---
### 2.3 最优提案分布
**定理 2.3(最优提案分布)** 最小化 $\text{Var}_q[f(X)w(X)]$ 的最优提案分布为:
$$q^*(x) \propto |f(x)| \cdot p(x)$$
(可利用柯西-施瓦茨不等式证明,此处从略。)
**实际选择原则:**
- $q$ 应覆盖 $p|f|$ 的高概率区域
- $q$ 应比 $p$ 方差更大(薄尾覆盖厚尾)
- 避免 $q$ 过轻导致权重爆炸
---
## 3. 拒绝采样Rejection Sampling
### 3.1 接受-拒绝算法
**算法 3.1(拒绝采样)**
1. 设定提案分布 $q(x)$ 和常数 $M$,使得对所有 $x$$p(x) \leq M \cdot q(x)$
2. 从 $q(x)$ 采样得到 $x^*$
3. 从均匀分布 $U(0,1)$ 采样得到 $u$
4. 若 $u < \frac{p(x^*)}{M \cdot q(x^*)}$,接受 $x^*$;否则拒绝
5. 重复直至获得 $N$ 个样本
### 3.2 正确性证明
**定理 3.1(接受分布的证明)** 拒绝采样返回的样本服从 $p(x)$。
**证明:** 设 $A$ 为接受事件,$X^*$ 为提案样本。则接受样本的分布为:
$$P(\text{返回 } x | \text{接受}) = \frac{P(\text{接受} | X^* = x) \cdot q(x)}{P(\text{接受})}$$
其中 $P(\text{接受} | X^* = x) = \frac{p(x)}{M q(x)}$$P(\text{接受}) = \int \frac{p(x)}{M q(x)} \cdot q(x) dx = \frac{1}{M}$。
因此:
$$P(\text{返回 } x | \text{接受}) = \frac{\frac{p(x)}{M q(x)} \cdot q(x)}{1/M} = p(x)$$
得证。
---
### 3.3 接受率与最优提议分布
**定义 3.1(接受率)** 拒绝采样的接受率为:
$$\alpha = P\left(u < \frac{p(x^*)}{M \cdot q(x^*)}\right) = \frac{1}{M} \int p(x) dx = \frac{1}{M}$$
(假设 $p$ 已归一化)
**最优常数:** 取 $M = \sup_x \frac{p(x)}{q(x)}$ 使接受率最大化。
**推论:** 当 $\sup_x \frac{p(x)}{q(x)}$ 很大时(如高维情形),接受率极低,算法效率严重下降。
---
### 3.4 高维情况下的维度灾难
**命题 3.1(维度灾难)** 设 $p$ 和 $q$ 均为高维正态分布,均值为 $\mu$,协方差分别为 $\sigma_p^2 I$ 和 $\sigma_q^2 I$(零均值、各维度独立、同方差),则:
$$\sup_x \frac{p(x)}{q(x)} = \left(\frac{\sigma_q}{\sigma_p}\right)^d$$
其中 $d$ 为维度。
**含义:** 接受率随维度指数衰减:
$$\alpha = \left(\frac{\sigma_p}{\sigma_q}\right)^d$$
当维度 $d$ 增大时,即使 $\sigma_q$ 仅略大于 $\sigma_p$,接受率也趋近于零。这是从拒绝采样到 MCMC 方法的根本动机。
---
## 4. 马尔可夫链蒙特卡洛MCMC
### 4.1 MCMC 核心思想
**定义 4.1(马尔可夫链平稳分布)** 若马尔可夫链的转移核 $T(x'|x)$ 满足:
$$\pi(x') = \int \pi(x) T(x'|x) \, dx$$
则 $\pi(x)$ 为该链的平稳分布(即目标分布 $p(x)$)。
**MCMC 核心思想:** 构造一个易于采样的马尔可夫链,使其平稳分布恰好是我们想要的 $p(x)$。
---
### 4.2 Metropolis-Hastings 算法
#### 4.2.1 算法推导
**定理 4.1(详细平衡条件)** 若存在分布 $\pi(x)$ 和转移核 $T(x'|x)$ 满足:
$$\pi(x) T(x'|x) = \pi(x') T(x|x')$$
则 $\pi(x)$ 是该马尔可夫链的平稳分布。
**证明:** 对两边积分:
$$\int \pi(x) T(x'|x) \, dx = \int \pi(x') T(x|x') \, dx = \pi(x') \int T(x|x') \, dx = \pi(x')$$
(最后一步因转移核的积分恒为 1
#### 4.2.2 MH 接受概率推导
**构造方法:** 将转移分解为提议+接受两步:
$$T(x'|x) = q(x'|x) \cdot \alpha(x'|x)$$
其中 $q(x'|x)$ 为提议分布,$\alpha(x'|x)$ 为接受概率。
代入详细平衡条件:
$$\pi(x) q(x'|x) \alpha(x'|x) = \pi(x') q(x|x') \alpha(x|x')$$
解得接受概率比:
$$\frac{\alpha(x'|x)}{\alpha(x|x')} = \frac{\pi(x') q(x|x')}{\pi(x) q(x'|x)}$$
取对称形式(使 $\alpha \leq 1$
$$\alpha(x'|x) = \min\left(1, \frac{\pi(x') q(x|x')}{\pi(x) q(x'|x)}\right)$$
这就是 Metropolis-Hastings 接受概率。
#### 4.2.3 Metropolis-Hastings 算法
**算法 4.1Metropolis-Hastings**
1. 初始化 $x^{(0)}$
2. 对于 $t = 0, 1, 2, \ldots$
- 从提议分布 $q(x'|x^{(t)})$ 采样得到 $x^*$
- 计算接受概率 $\alpha = \min\left(1, \frac{p(x^*) q(x^{(t)}|x^*)}{p(x^{(t)}) q(x^*|x^{(t)})}\right)$
- 从 $U(0,1)$ 采样 $u$
- 若 $u < \alpha$,接受 $x^{(t+1)} = x^*$;否则 $x^{(t+1)} = x^{(t)}$
**特例:** 当 $q(x'|x) = q(x|x')$(对称提议)时,$\alpha = \min\left(1, \frac{p(x^*)}{p(x)}\right)$,即为原始 Metropolis 算法。
---
### 4.3 Gibbs Sampling
#### 4.3.1 条件分布采样作为 MH 的特例
**定义 4.2Gibbs 提议分布)** Gibbs 采样使用条件分布作为提议:
$$q(x'|x) = p(x'_i | x_{-i}) = p(x'_i | x_1, \ldots, x_{i-1}, x_{i+1}, \ldots, x_d)$$
其中 $x_{-i}$ 表示除第 $i$ 维外的所有变量。
**定理 4.2Gibbs 采样的接受率)** Gibbs 提议分布的接受率恒为 1。
**推导:** 代入 MH 接受概率公式:
$$\alpha = \frac{p(x') q(x|x')}{p(x) q(x'|x)} = \frac{p(x') p(x_i | x'_{-i})}{p(x) p(x'_i | x_{-i})}$$
但 $x'_{-i} = x_{-i}$(除第 $i$ 维外相同),且 $p(x') = p(x'_i, x_{-i}) = p(x'_i | x_{-i}) p(x_{-i})$,类似 $p(x) = p(x_i | x_{-i}) p(x_{-i})$。
因此:
$$\alpha = \frac{p(x'_{-i}) p(x'_i | x_{-i}) \cdot p(x_i | x_{-i})}{p(x_{-i}) p(x'_i | x_{-i}) \cdot p(x_{-i})} = 1$$
#### 4.3.2 吉布斯采样算法
**算法 4.2Gibbs Sampling**
1. 初始化 $(x_1^{(0)}, \ldots, x_d^{(0)})$
2. 对于 $t = 0, 1, 2, \ldots$
- 对于每维 $i = 1, \ldots, d$
- 采样 $x_i^{(t+1)} \sim p(x_i | x_1^{(t+1)}, \ldots, x_{i-1}^{(t+1)}, x_{i+1}^{(t)}, \ldots, x_d^{(t)})$
#### 4.3.3 吉布斯采样的收敛性
**定理 4.3Gibbs 链的遍历性)** 若对所有 $i$,条件分布 $p(x_i | x_{-i}) > 0$ 当 $p(x) > 0$,且 $p(x)$ 不可约,则 Gibbs 链收敛到 $p(x)$。
**收敛速度:** Gibbs 采样的收敛速度取决于变量间的相关性。高度相关的变量会导致混合时间mixing time变长。实践中常用变量重参数化或块采样block Gibbs来加速收敛。实操时需舍弃前期 burn-in 预热样本。
---
### 4.4 Langevin 动力学
#### 4.4.1 梯度驱动的采样
**朗之万方程Langevin Equation** 连续时间的随机微分方程:
$$dX_t = \nabla \log p(X_t) \, dt + \sqrt{2} \, dW_t$$
其中 $W_t$ 为维纳过程。
**离散化Euler-Maruyama 方法):**
$$x_{t+1} = x_t + \frac{\epsilon}{2} \nabla \log p(x_t) + \sqrt{\epsilon} \cdot \mathcal{N}(0, I)$$
#### 4.4.2 Metropolis-adjusted Langevin Algorithm (MALA)
**算法 4.3MALA**
1. 提议:$x^* = x^{(t)} + \frac{\epsilon}{2} \nabla \log p(x^{(t)}) + \sqrt{\epsilon} \cdot \mathcal{N}(0, I)$
2. 接受概率:
$$\alpha = \min\left(1, \frac{p(x^*) \cdot \mathcal{N}(x^{(t)} | x^* + \frac{\epsilon}{2}\nabla \log p(x^*), \epsilon I)}{p(x^{(t)}) \cdot \mathcal{N}(x^* | x^{(t)} + \frac{\epsilon}{2}\nabla \log p(x^{(t)}), \epsilon I)}\right)$$
**MALA 的效率:** 当目标分布为高斯时MALA 的接受率最优约为 0.574。高维情况下,需取 $\epsilon \propto d^{-1/3}$ 以维持恒定接受率。实操时需舍弃前期 burn-in 预热样本。
---
### 4.5 Hamiltonian Monte Carlo (HMC)
#### 4.5.1 HMC 的物理图像
HMC 引入辅助动量变量 $r$,定义联合分布:
$$p(x, r) = p(x) \cdot \mathcal{N}(r | 0, M) = p(x) \cdot \exp\left(-\frac{1}{2} r^T M^{-1} r\right)$$
其中 $M$ 为质量矩阵(通常取对角阵)。
#### 4.5.2 Hamiltonian 动力学
定义哈密顿量 $H(x, r) = -\log p(x) + \frac{1}{2} r^T M^{-1} r$。
运动方程:
$$\frac{dx}{dt} = \nabla_r H = M^{-1} r$$
$$\frac{dr}{dt} = -\nabla_x H = \nabla_x \log p(x)$$
#### 4.5.3 HMC 算法
**算法 4.4Hamiltonian Monte Carlo**
1. 采样 $r \sim \mathcal{N}(0, M)$
2. 用 leapfrog 积分 $L$ 步模拟系统演化:
- $r \leftarrow r + \frac{\epsilon}{2} \nabla \log p(x)$(半步)
- $x \leftarrow x + \epsilon M^{-1} r$(整步)
- $r \leftarrow r + \frac{\epsilon}{2} \nabla \log p(x)$(半步)
3. 用 MH 接受准则接受/拒绝终态 $(x^*, r^*)$
- $\alpha = \min\left(1, \exp\left(H(x^{(t)}, r^{(t)}) - H(x^*, r^*)\right)\right)$
**HMC 的优势:** 由于保留了动量HMC 能在高维空间中进行长距离跳跃,有效探索低曲率方向。相比 MALAHMC 的跃迁更加高效。实操时需舍弃前期 burn-in 预热样本。
---
## 5. 序列蒙特卡洛Sequential Monte Carlo / 粒子滤波)
### 5.1 状态空间模型
**定义 5.1(状态空间模型)** 隐马尔可夫模型由以下组成:
- 状态转移分布:$x_t | x_{t-1} \sim p(x_t | x_{t-1})$
- 观测分布:$y_t | x_t \sim p(y_t | x_t)$
- 初始状态:$x_1 \sim p(x_1)$
**滤波问题:** 在线估计后验 $p(x_t | y_{1:t})$。
---
### 5.2 重要性重采样
**算法 5.1(粒子滤波 / SIR**
1. **初始化:** 从先验 $p(x_1)$ 采样 $N$ 个粒子 $\{x_1^{(i)}\}$,初始化权重 $w_1^{(i)} = \frac{1}{N}$
2. **递归步骤:** 对每个 $t = 2, \ldots, T$
- **重要性采样:** 从提议分布 $q(x_t | x_{t-1}^{(i)}, y_t)$ 采样新粒子
- **计算权重:**
$$w_t^{(i)} \propto w_{t-1}^{(i)} \cdot \frac{p(y_t | x_t^{(i)}) p(x_t^{(i)} | x_{t-1}^{(i)})}{q(x_t^{(i)} | x_{t-1}^{(i)}, y_t)}$$
- **归一化:** $\tilde{w}_t^{(i)} = \frac{w_t^{(i)}}{\sum_{j=1}^N w_t^{(j)}}$
- **重采样:** 根据权重 $\tilde{w}_t^{(i)}$ 重新采样 $N$ 个粒子(常用残差采样或系统采样)
### 5.3 平滑分布的粒子近似
**定义 5.2(全量平滑分布)** $p(x_{1:t} | y_{1:T})$ 的粒子近似:
$$p(x_{1:t} | y_{1:T}) \approx \sum_{i=1}^{N} w_T^{(i)} \delta_{x_{1:t}^{(i)}}(x_{1:t})$$
**前向-后向算法:** 可用前向滤波+后向平滑两步计算:
$$p(x_t | y_{1:T}) \approx \sum_{i=1}^{N} \tilde{w}_t^{(i)} \cdot \frac{p(y_{t+1:T} | x_t^{(i)})}{\sum_{j=1}^{N} \tilde{w}_t^{(j)} p(y_{t+1:T} | x_t^{(j)})}$$
---
## 6. 与深度学习的联系
### 6.1 REINFORCE 中的重要性采样
**策略梯度问题:** 估计 $\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}[\nabla_\theta \log \pi_\theta(a|s) \cdot R]$。
**方差问题:** 原始 REINFORCE 估计方差较高。重要性采样可用于离策略策略评估:
$$\nabla_\theta J(\theta) = \mathbb{E}_{\beta}\left[\frac{\pi_\theta(a|s)}{\beta(a|s)} \nabla_\theta \log \pi_\theta(a|s) \cdot R\right]$$
其中 $\beta$ 为行为策略behavior policy
**注意:** 当 $\pi_\theta$ 与 $\beta$ 差异过大时重要性权重方差爆炸。常用技术包括加权重要性采样、树状备份算法Tree-backup
---
### 6.2 变分推断中的采样近似
**变分推断框架:** 用易采样的分布 $q(z)$ 近似后验 $p(z|x)$,通过最小化 KL 散度:
$$\text{KL}(q(z) || p(z|x)) = \mathbb{E}_q[\log q(z) - \log p(z|x)]$$
**证据下界ELBO**
$$\mathcal{L}(\theta, \phi) = \mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)] - \text{KL}(q_\phi(z|x) || p(z))$$
**重参数化技巧:** 当 $q_\phi(z|x)$ 不可直接采样时,用可微变换 $z = g_\phi(\epsilon, x)$,其中 $\epsilon \sim p(\epsilon)$。则:
$$\nabla_\phi \mathbb{E}_{q_\phi(z|x)}[f(z)] = \mathbb{E}_{p(\epsilon)}\left[\nabla_\phi f(g_\phi(\epsilon, x))\right]$$
---
### 6.3 Gumbel-Softmax 与重参数化技巧
**Gumbel-Softmax 分布:** 对分类分布的连续松弛。设 logits 为 $\alpha_i$,则:
$$y_i = \frac{\exp((\log \alpha_i + g_i)/\tau)}{\sum_{j=1}^k \exp((\log \alpha_j + g_j)/\tau)}$$
其中 $g_i \sim \text{Gumbel}(0,1)$$\tau$ 为温度参数。
**性质:** 当 $\tau \to 0$ 时,$y_i$ 趋近距离分布one-hot当 $\tau \to \infty$ 时,$y_i$ 趋近均匀分布。
**应用:** 离散隐变量的变分自编码器VAE、强化学习中的离散动作选择。
---
## 附录:算法对比
| 方法 | 提议分布 | 接受率 | 适用场景 |
|------|----------|--------|----------|
| 拒绝采样 | 人工选取 | $\propto 1/M$ | 低维、$p/q$ 有界 |
| Metropolis | 对称提议 | 可变 | 通用 |
| Gibbs | 条件分布 | = 1 | 条件分布易采样 |
| MALA | 梯度信息 | $\approx 0.57$ | 高维连续 |
| HMC | Hamiltonian | 高效 | 高维连续、多模态 |
| 粒子滤波 | 递归提议 | 权重归一化 | 时序模型 |
---
## 参考教材
1. Monte Carlo Statistical Methods, Robert & Casella
2. Bayesian Data Analysis, Gelman et al.
3. Probabilistic Graphical Models, Koller & Friedman
4. Pattern Recognition and Machine Learning, Bishop