想象你是一名地形测绘师,被派去绘制一座常年大雾笼罩的神秘山脉。你拿不到航拍图,唯一的工具是一位“随性探索者”——把他空投进山里,让他自由行走。他有条简单规矩:下一步去哪,只取决于脚底下这寸土地,完全不记来时的路。神奇的是,只要行走规则设计得当,他会在山峰和山脊久久盘桓,在低谷匆匆掠过。若干时日后,你记录他每一刻的足迹,脚印密度恰好就是整座山的“高度图”:哪里高,哪里脚印密。 这就是 MCMC(Markov Chain Monte Carlo,马尔可夫链蒙特卡洛)的核心:让一个有“健忘症”的随机游走者,在难以直接描述的复杂分布上踩出样本。它不试图一次画出整幅地图,而是靠足迹的统计规律还原地形。对 AI 从业者来说,贝叶斯后验分布往往是那座迷雾山脉,MCMC 正是最可靠的测绘队——它把算不出的积分,变成一次次行走与记录。

岗位关联

对 AI 从业者:贝叶斯推断、概率编程和不确定性量化都离不开 MCMC。学会它,你就能从复杂后验分布中抽出样本,让模型不仅给出预测,还给出“有多确定”。

目录
  1. 可视化演示
  2. 采样困境:看不见全貌的山脉
  3. 马尔可夫链:只记脚下的路
  4. 细致平衡:往返流量守恒
  5. Metropolis-Hastings:提议与裁决
  6. 吉布斯采样:一次只走一个方向
  7. 收敛诊断:探索者真的逛遍了吗
  8. 贝叶斯应用:从足迹到地图
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示马尔可夫链状态转移与平稳分布、MH算法接受拒绝过程、采样直方图收敛诊断,交互切换各维度。

本节配有交互动效(进入视口后自动加载,约 3KB)。

马尔可夫链状态转移 无记忆性:下态仅依赖当前态 平稳分布π为长期占用率 π(j)=Σπ(i)P(i,j) 链收敛到目标平稳分布

采样困境:看不见全貌的山脉

想象你被派去绘制一座常年大雾的山脉。你想要一张精确的等高线图,于是把山区划分成细密网格,逐格测量海拔。可惜这座山没有现成的“海拔解析式”:你只知道局部的陡峭趋势,不知道如何把整座山的高度统一缩放。在贝叶斯推断里,这座山就是后验分布,而“统一缩放”就是那个令人头疼的归一化常数。

贝叶斯定理告诉我们,后验分布由似然与先验相乘得到:

其中分子可以直接计算,分母却要对所有可能的 θ 做积分,在高维空间中几乎无法精确完成。

传统方法比如拒绝采样,相当于把整座山罩进一个巨大的包围盒,盲目标飞镖。飞镖扎进目标区域就收下,否则重掷。但高概率区域之外的山谷面积太大,飞镖大多浪费;维度越高,浪费越是指数级扩大。与其盲掷,不如让探索者真正“走”起来——脚印密度天然反映山的高度。这正是 MCMC 的思想转变。

π(θ∣x)=p(x∣θ) p(θ)p(x)\pi(\theta\mid x) = \frac{p(x\mid\theta)\,p(\theta)}{p(x)}
这个公式说明:我们只能知道“未归一化”的后验形状,而 MCMC 的伟大之处在于——采样其实只需要相对高度,不需要绝对高度。
  1. 先验与似然p(θ) 是采样前对参数的信念,p(x|θ) 是给定参数后观测到数据的概率;两者相乘得到“未归一化的后验”,这是可以计算的分子。
    p(x∣θ) p(θ)p(x\mid\theta)\,p(\theta)
  2. 证据项分母 p(x) 需要把分子对 θ 积分,这个积分在高维空间没有解析解,是 MCMC 要绕开的难点。
    p(x)=∫p(x∣θ) p(θ) dθp(x)=\int p(x\mid\theta)\,p(\theta)\,d\theta
  3. 后验正比形式分母只是常数,故后验正比于分子。MCMC 只需要在知道“哪座山高、哪座山矮”的情况下采样。
    π(θ∣x)∝p(x∣θ) p(θ)\pi(\theta\mid x)\propto p(x\mid\theta)\,p(\theta)

马尔可夫链:只记脚下的路

给探索者立一条规矩:他下一步怎么走,只取决于此刻脚踩的位置,完全忘记来时的路。这种“健忘”看似缺点,却是 MCMC 的基石。为什么?因为只要走法设计得好,他会在没有全局视野的情况下,自然地向高处聚集。数学上,这种“无记忆”的行走叫马尔可夫链。

记 X_t 为第 t 步踩到的地点,马尔可夫性质写成:

从 i 一步走到 j 的概率写作 P(i,j),所有状态两两之间的转移概率排成一张方阵,就是转移矩阵。探索者走很久以后,他在各个地点停留的时间比例会趋于稳定,这个稳定的比例分布 π 满足:

如果我们设计的脚步让平稳分布恰好等于目标分布,那么记录足迹就等于从目标分布采样。关键问题是:怎么设计脚步才保证到达目标?下一节的“细致平衡”就是答案。

P(Xt+1=j∣Xt=i,Xt−1,…,X0)=P(Xt+1=j∣Xt=i)P(X_{t+1}=j \mid X_t=i, X_{t-1}, \ldots, X_0) = P(X_{t+1}=j \mid X_t=i)
这是平稳分布方程:在状态分布上再走一步,分布不再改变。探索者的“作息时间表”固定下来,这就是平稳分布。
  1. 长期占比π(i) 表示探索者长期待在状态 i 的时间比例,可以理解为 i 点被踩中的频率。
    π(i)\pi(i)
  2. 一步汇合走到 j 的总比例,等于从所有可能出发点 i 带着各自概率 π(i) 一路走来的加权和。
    ∑iπ(i) P(i,j)\sum_{i} \pi(i)\,P(i,j)
  3. 不动点方程走一步之前是 π,走一步之后还是 π,分布完全不变,链达到了“动态平衡”。
    π(j)=∑iπ(i) P(i,j)\pi(j) = \sum_{i} \pi(i)\,P(i,j)

细致平衡:往返流量守恒

山间有许多小路连接各个地点。探索者长期游走后,期望上从 i 点出发走向 j 点的次数,应该恰好等于从 j 点走回 i 点的次数。这就像一座古镇里,白天从东门进西门出的人流,与从西门进东门出的人流必须持平,街区才不会越挤越失衡。这个“往返流量守恒”的想法,叫细致平衡。

写成数学式:

把细致平衡条件两边同时对 j 求和,左侧变成 π(i)(因为 Σ_j P(i,j)=1),右侧变成 Σ_j π(j)P(j,i),恰好推出平稳分布方程。所以细致平衡是平稳分布的充分条件,虽然不是必要条件。MH 算法和吉布斯采样正是从“如何构造细致平衡”出发设计的。

π(i) P(i,j)=π(j) P(j,i)\pi(i)\,P(i,j) = \pi(j)\,P(j,i)
细致平衡条件:在平稳状态 π 下,从 i 流向 j 的期望次数等于从 j 流向 i 的期望次数。满足它,链就一定会收敛到 π。
  1. 左端流量探索者长期待在 i 的时间比例 π(i),乘以单步从 i 跳到 j 的概率 P(i,j),就是从 i 到 j 的预期流量。
    π(i) P(i,j)\pi(i)\,P(i,j)
  2. 右端流量同样地,π(j) 乘以 P(j,i),就是从 j 回到 i 的预期流量。
    π(j) P(j,i)\pi(j)\,P(j,i)
  3. 流量相等每一对状态都要满足这个等式,任何地点都不会把人“泵”向另一个地点,整体因此稳定。
    π(i) P(i,j)=π(j) P(j,i)\pi(i)\,P(i,j) = \pi(j)\,P(j,i)

Metropolis-Hastings:提议与裁决

探索者站在 i 点,该怎么迈出下一步?他先闭上眼睛,按一个简单规则“乱指一个方向”——这个方向只和当前位置有关,叫作提议分布。指完后他要做一次裁决:新地点到底值不值得去?如果明显比现在好,就去;如果差一些,掷硬币碰碰运气,偶尔也允许下山。这样既能多在高处停留,又不会永远困在一座山峰上。

Metropolis-Hastings(MH)把裁决写成接受率:

算法流程非常直白:先按 q 提议一个新点 j;再按上面公式算 α;接着抽一个 [0,1] 均匀随机数 u,若 u < α 就跳到 j,否则留在原地;最后无论是否移动,都把当前位置记作一个样本。注意“原地不动”也计入足迹,所以在样本序列里会出现连续重复的脚印——这没关系,它们代表了对当前位置的强调。

MH 是“先乱指、后裁决”。只要提议分布满足基本条件,这个简单的博弈过程就会让探索者的长期时间分配精确对齐目标分布。即便目标分布只能算到未归一化的形状,也没问题,因为分子分母中的归一化常数恰好约掉了。

α(i,j)=min⁡(1, π(j) q(j,i)π(i) q(i,j))\alpha(i,j) = \min\left(1,\ \frac{\pi(j)\,q(j,i)}{\pi(i)\,q(i,j)}\right)
α 是 0 到 1 之间的接受概率。分子分母像一架天平:一边是新点的“吸引力”乘以从新点退回的提议概率,另一边是当前点的“吸引力”乘以去新点的提议概率。
  1. 提议分布q(i,j) 是“站在 i 提议去 j”的概率,反映探索者乱指方向时偏爱哪些方向。
    q(i,j)q(i,j)
  2. 概率比值比值 r 告诉仲裁者新点相对当前位置有多诱人;如果提议对称 q(i,j)=q(j,i),r 化简为 π(j)/π(i)。
    r=π(j) q(j,i)π(i) q(i,j)r=\frac{\pi(j)\,q(j,i)}{\pi(i)\,q(i,j)}
  3. min 截断接受率等于 min(1, r)。r 大于等于 1 就必然接受,小于 1 时按 r 的概率掷硬币通过。
    α(i,j)=min⁡(1,r)\alpha(i,j)=\min(1, r)

吉布斯采样:一次只走一个方向

与其闭眼乱指,不如沿规定的山路走:探索者一次只改变一个坐标。在二维平面上,这像走“阶梯路径”——先水平移动到合适位置,再垂直移动到合适位置,反复交替。每一步都严格沿着东西或南北方向,不斜跨。

吉布斯采样要求我们能写出“给定其他所有变量时、某个变量所服从的条件分布”,然后直接从中采样:

可以证明,吉布斯采样是 MH 的特例:它的提议分布恰好是目标分布的全条件分布,因此接受率恒等于 1。它高效、无需调参,但前提是条件分布容易采样;如果某个维度的条件分布太复杂,就只好回到 MH。工程中常把两种策略混用,能用吉布斯的维度就用吉布斯,不能用的交给 MH,这辆车既能走阶梯路,也能跳跃前进。

θi(t+1)∼P(θi∣θ1(t+1),…,θi−1(t+1),θi+1(t),…,θd(t),x)\theta_i^{(t+1)} \sim P\left(\theta_i \mid \theta_1^{(t+1)},\ldots,\theta_{i-1}^{(t+1)},\theta_{i+1}^{(t)},\ldots,\theta_d^{(t)}, x\right)
这条式子的含义是:在更新第 i 个参数时,已经更新的维度(编号小于 i)使用新值,还没更新的维度使用旧值,然后从该条件分布中抽一个新值。
  1. 全条件分布把除第 i 维外的所有参数固定住,θ_i 在给定数据和其余参数下的条件分布,往往是简单的常见分布。
    P(θi∣θ−i,x)P(\theta_i \mid \theta_{-i}, x)
  2. 坐标轮换每轮从第 1 维到第 d 维依次更新,比如此时第 1 维已用新值,后续维度更新时立刻享受它的影响。
    θ1(t+1),θ2(t+1),…,θd(t+1)\theta_1^{(t+1)}, \theta_2^{(t+1)}, \ldots, \theta_d^{(t+1)}
  3. 直接采样基于条件分布随机抽取,这个新值天然落在正确区域,不需要接受率来纠偏。
    θi(t+1)∼P(θi∣θ−i,x)\theta_i^{(t+1)} \sim P(\theta_i \mid \theta_{-i}, x)

收敛诊断:探索者真的逛遍了吗

探索者走了一天又一天,脚印铺满山坡。可你心里打鼓:他真的逛遍了整片山,还是困在某座偏峰上反复转圈?光看脚印多不多不够,得用三个工具自查。

第一是烧入期(burn-in)。探索者是被随机空投的,开头那段路受起点位置影响极大,不能代表山脉的真实地形。通常把最前面若干步丢掉,就像锅炉先烧热再读数,预热阶段的数字不算数。第二是自相关。相邻脚印不可能独立:上一步在哪,下一步八九不离十。相隔 k 步的脚印之间的相似程度用 ρ_k 衡量,自相关越强,样本携带的新信息越少。有效样本量(ESS)把这个损失量化出来:

第三是多链对比。从几个相隔很远的起点同时放出多支探索队伍,比较“队伍之间的差异”与“单支队伍内部的差异”。若所有队伍最终都汇合到同一片区域,说明链已收束;工程上常用 Gelman-Rubin 的 R-hat 指标,它约接近 1 越好。烧入期清掉预热垃圾,ESS 告诉你别高估脚印的独立性,R-hat 判断多支队伍有没有会师——三项都过关,足迹地图才敢放心用。

Neff=N1+2∑k=1∞ρkN_{\text{eff}} = \frac{N}{1 + 2\sum_{k=1}^{\infty}\rho_k}
有效样本量 N_eff 表示这些自相关样本等价于多少个独立样本。如果脚印在局部磨蹭,ρ_k 很大,N_eff 会比 N 小得多,你实际获得的信息远没有表面上那么多。
  1. 原始样本数N 是探索者记录的足迹总数,看起来越多越好。
    NN
  2. 自相关系数ρ_k 是滞后 k 步的相关系数,衡量“隔 k 步的脚印还像不像”;独立样本的 ρ_k 应为 0。
    ρk\rho_k
  3. 信息折扣分母里的累加表示自相关带来的信息折扣,折扣越大,等效独立样本数越小。
    Neff=N1+2∑k=1∞ρkN_{\text{eff}} = \frac{N}{1 + 2\sum_{k=1}^{\infty}\rho_k}

贝叶斯应用:从足迹到地图

探索者终于逛完了山,现在要把脚印整理成一张正式地图。在贝叶斯工作流里,这张地图就是后验分布,而“整理”的核心动作是用后验样本做预测。拿到一串后验样本 θ^(1),…,θ^(N) 后,对任意新观测 x̃,预测分布要把模型在每一个可能参数下的预报按后验权重平均:

概率编程库(PyMC、Stan、NumPyro)正是这么工作的:我们只写模型代码描述先验与似然,库内部自动调度 MCMC 得到后验样本。返回值不是单点估计,而是一堆样本——可以画直方图、算分位数、汇报最高密度区间。在医疗、金融、自动驾驶等领域,这种“不仅给预测,还给置信度”的能力无可替代。

山还是那座山,但我们已用足迹读懂它的轮廓。MCMC 把数学上算不出的后验积分,变成一次次的行走与记录;足迹不是地图本身,但已经足够让我们看清山的形状。

p(x~∣x)=∫p(x~∣θ) π(θ∣x) dθp(\tilde{x}\mid x) = \int p(\tilde{x}\mid\theta)\,\pi(\theta\mid x)\,d\theta
后验预测分布:新数据 x̃ 的预报,等于在“用数据 x 推断出的参数分布”上做加权平均。MCMC 给不出解析式,却给得出样本,于是积分变成样本平均。
  1. 后验样本π(θ|x) 本身算不出,但 MCMC 已经给出 θ 的后验样本 θ^(1),…,θ^(N),它们像一群小探针插在后验地形上。
    θ(1),θ(2),…,θ(N)∼π(θ∣x)\theta^{(1)}, \theta^{(2)}, \ldots, \theta^{(N)} \sim \pi(\theta\mid x)
  2. 新点似然对任意新观测 x̃,用参数 θ 计算模型给出的概率 p(x̃|θ)。
    p(x~∣θ)p(\tilde{x}\mid\theta)
  3. 样本平均近似积分用样本均值替代积分,这等于把每个探针上的预报等权平均,得到完整的预测分布。
    p(x~∣x)≈1N∑t=1Np(x~∣θ(t))p(\tilde{x}\mid x) \approx \frac{1}{N}\sum_{t=1}^{N} p\left(\tilde{x}\mid\theta^{(t)}\right)

AI 应用场景

贝叶斯A/B测试:直接回答“B 比 A 好的概率”

阶段:模型推断与决策阶段

解决的问题:传统 t 检验给出的 p-value 常被误解为“犯错的概率”,也无法直接回答“方案 B 的转化率是否真的高于方案 A”。MCMC 从两个方案转化率的后验分布中采样,直接得到提升概率与可信区间,决策变得直观。

具体案例:营销平台完成 2000 次试验后,用 MCMC 对 A、B 两组转化率后验采样,输出结论“B 比 A 高 0.8–2.3 个百分点的概率为 94%”。产品经理不再啃统计术语,而是直接看概率图拍板。

金融风险度量:从后验中算在险价值

阶段:风险评估与模拟阶段

解决的问题:资产收益的层次模型后验分布复杂且非对称,点估计无法表达尾部风险。吉布斯采样能从层次后验中抽出一整条损失分布,再取 95% 分位数,得到带不确定性带宽的风险指标。

具体案例:量化团队用吉布斯采样对债券组合的收益率层次模型做后验采样,计算 VaR(在险价值)的同时给出 90% 可信区间;监管压力测试中,这张“风险的分布”比单一数值更有说服力。

概率编程中的不确定性量化

阶段:模型训练与部署前校验阶段

解决的问题:普通神经网络只输出点预测,面对分布外数据照样自信满满。使用概率编程工具对贝叶斯神经网络的后验采样,可把参数的分布传递到预测上,让模型知道“自己不知道”。

具体案例:在医疗影像分类中,用 NumPyro 跑几十条 MCMC 链,得到每个像素的预测均值与标准差;当某张影像的预测不确定度过高时,系统自动转交医生复核,避免模型盲目自信。

Python 演示

python35 行
import numpy as npimport matplotlib.pyplot as plt def target_logpdf(x, y):    g1 = -((x - 0.35) ** 2 + (y - 0.65) ** 2) / 0.012    g2 = -((x - 0.70) ** 2 + (y - 0.30) ** 2) / 0.012    return np.logaddexp(g1, g2) rng = np.random.default_rng(42)x, y = 0.5, 0.5samples = []n_steps = 20000burn_in = 2000accepted = 0 for t in range(n_steps):    x_prop = x + rng.normal(0, 0.05)    y_prop = y + rng.normal(0, 0.05)    log_alpha = target_logpdf(x_prop, y_prop) - target_logpdf(x, y)    if np.log(rng.random()) < log_alpha:        x, y = x_prop, y_prop        accepted += 1    if t >= burn_in:        samples.append((x, y)) samples = np.array(samples)print("accept rate: {:.2%}".format(accepted / n_steps))print("sample mean: ({:.3f}, {:.3f})".format(samples[:, 0].mean(), samples[:, 1].mean())) plt.figure(figsize=(6, 5))plt.scatter(samples[:, 0], samples[:, 1], s=2, alpha=0.4, color="#818CF8")plt.title("MH sampler on bimodal distribution")plt.xlim(0, 1)plt.ylim(0, 1)plt.show()
目的:实现一个二维双峰分布上的 Metropolis-Hastings 采样器,打印接受率与样本均值,并画出采样点分布,直观演示“足迹密度还原地形”。
  1. return np.logaddexp(g1, g2)用 log-sum-exp 合并两座山峰的对数高度,避免概率乘到极小后数值下溢。
  2. x_prop = x + rng.normal(0, 0.05)对称高斯提议:在当前位置附近随机迈一小步,q(i,j)=q(j,i)。
  3. log_alpha = target_logpdf(x_prop, y_prop) - target_logpdf(x, y)在对数域计算接受率,等价于 min(1, π(j)/π(i))。
  4. if np.log(rng.random()) < log_alpha:取随机数再取对数后比较,等价于以概率 min(1, e^{log_alpha}) 接受移动。
  5. if t >= burn_in: samples.append((x, y))丢弃 burn-in 前的预热足迹,只保留稳定段样本用于统计。

常见误区

误区很多初学者拿到 MCMC 输出,直接当独立随机抽样处理,以为 10000 个脚印就是 10000 个独立样本,统计量、置信区间都按经典公式照搬。

正解MCMC 产生的是自相关样本,相邻脚印高度雷同,真正携带的新信息远少于样本数。应该用有效样本量(ESS)衡量“相当于多少个独立样本”,必要时做 thinning(每隔几步取一个)或增大迭代量去补偿。

为何常见:蒙特卡洛方法在课本里常以“独立抽取”为基础,而 MCMC 用“游走”替代了“抽取”,独立性这个默认前提被悄悄拿掉了。

误区总以为迭代次数足够大,链必然会逛遍所有状态并收敛到平稳分布,所以不用做任何诊断,闷头跑就完了。

正解长链只能缓解问题,不能保证解决。当目标分布存在多个明显分离的模态时,链可能长期盘旋在其中一个峰附近,看似稳定,实则错过全局。只有 trace plot、自相关、R-hat 等多条诊断线一起过关,才敢相信收敛。

为何常见:直觉上“时间足够长总能覆盖所有状态”,但链的移动受提议步长限制,模态之间的能量壁垒可能高到几乎无法逾越。

误区看到代码里接受率接近 100%,心花怒放,觉得算法几乎每个提议都采纳,效率一定很高。

正解接受率过高往往说明提议步长太小,探索者困在方寸之地来回踱步,自相关极强,足迹铺得再密也只覆盖一小块区域。经典经验是:高维正态提议下最佳接受率约 23%,二维问题约 50%,太高太低都不健康。

为何常见:把“接受”和“改进”画了等号,忽略了采样器真正要平衡的是探索广度与接受次数。

误区觉得 burn-in 设成 1000 或 5000 是通用标准,设完就万事大吉,后面的样本自动服从目标分布。

正解燃烧期长度强烈依赖具体问题和初始点位置,统一数字只是心理安慰。正确做法是观察 trace plot,看链是否进入稳定波动;即使过了 burn-in,链内部仍有关联,还必须配合 ESS 与 R-hat 才能确认可用。

为何常见:把 burn-in 当成一道固定工序,而不是把“是否到达平稳”当成需要检验的假设。

误区以为 MCMC 跑完,得到的样本就是后验分布的精确答案,直接拿去写报告,不报任何误差。

正解MCMC 只是用有限样本近似后验,存在蒙特卡洛误差,样本量越大误差越小,但永远不会是解析精确解。规范做法是报告 ESS、R-hat 与分位数区间,让读者看到估计有多稳。

为何常见:把“从分布中采样”误当成“求解分布”,忽略了任何有限样本蒙特卡洛方法都只是随机近似的事实。

面试题

Q1. 马尔可夫性质指的是什么?

单选题 · easy

  • A.未来状态只取决于当前状态← 正确答案
  • B.未来状态完全由初始状态决定
  • C.每一步都需要记住完整历史
  • D.未来状态不依赖任何过去信息

答案:A。马尔可夫性质的核心是“无记忆性”,未来只由当前状态决定,A 正确。B 错在把初始状态当作唯一决定因素;C 恰好是性质的相反版本;D 否认任何依赖关系,连当前位置都不依赖,显然不对。

Q2. 平稳分布 π 需要满足哪个条件?

单选题 · easy

  • A.πP = π,链的分布不再变化← 正确答案
  • B.πP = 0,链最终逐渐消失
  • C.πP = I,转移矩阵可逆即可
  • D.πP = P,分布跟随矩阵变化

答案:A。平稳分布是马尔可夫链的不动点:走一步前后分布相同,即 πP = π。B 把概率分布乘到零没有意义;C 混淆了矩阵可逆性;D 若 πP = P 则推出 π 恒等于单位矩阵对应的退化情形,完全偏离平稳分布定义。

Q3. 细致平衡条件 π(i)P(i,j) = π(j)P(j,i) 表达的是什么?

单选题 · mid

  • A.从 i 到 j 的流量等于 j 到 i 的流量← 正确答案
  • B.转移矩阵必须严格对称才行
  • C.所有状态的概率必须完全相同
  • D.每一条边的转移概率都等于一

答案:A。细致平衡说的是“期望流量守恒”:长期占比 π(i) 乘以跳转概率 P(i,j),等于反方向流量 π(j)P(j,i),A 正确。B 只要求加权对称而非绝对对称;C 是均匀分布的特例;D 要求每条边确定转移,显然不是一般条件。

Q4. MH 算法中接受率 α 的主要作用是什么?

单选题 · mid

  • A.确保链以目标分布为平稳分布← 正确答案
  • B.提高每一步的采样计算速度
  • C.消除样本之间的一切相关性
  • D.让链总能移到概率更高的点

答案:A。接受率的设计目的是让转移满足细致平衡条件,从而使目标分布成为链的平稳分布,A 正确。B 与计算速度无关;C 不可能完全消除相关性,只能降低;D 若只接受高处,链会困在局部峰,永远无法探索全局。

Q5. 关于吉布斯采样,哪些说法正确?

多选题 · mid

  • A.每次只更新一个坐标维度← 正确答案
  • B.每步都要计算接受率
  • C.从各维条件分布直接采样← 正确答案
  • D.是接受率恒为一的MH特例← 正确答案

答案:ACD。吉布斯每次只更新一个维度(A 正确),从该维度的全条件分布直接抽取新值(C 正确),因此无需接受率,本质上是用精确条件分布做提议的 MH,接受率恒为 1(D 正确)。B 错误,吉布斯不需要接受率。

Q6. 为什么贝叶斯推断无法绕开 MCMC 这类采样方法?

单选题 · hard

  • A.后验分布往往没有解析闭式解← 正确答案
  • B.MCMC 提供了唯一的精确求解法
  • C.先验分布往往无法明确写出
  • D.似然函数大多根本无法计算

答案:A。后验的分母是难以计算的高维积分,导致后验常常没有解析形式,A 正确。B 错在 MCMC 不是唯一的近似方法(还有变分推断),且它也不是“精确”求解;C 与先验可写性无关;D 似然通常可计算,难的是归一化分母。

Q7. Burn-in 阶段丢弃的样本是什么?

单选题 · easy

  • A.链早期受初始位置强烈影响的样本← 正确答案
  • B.链稳定之后产生的所有样本
  • C.接受率低于阈值时产生的样本
  • D.与目标分布完全无关的样本

答案:A。burn-in 丢掉的是链尚未收束、仍被起点牵着走的早期足迹,A 正确。B 恰好相反,稳定后的样本正是要保留的;C 接受率本身就会波动,不存在所谓阈值;D 所有样本都与目标分布有关,只是早期分布偏差大。

Q8. 判断 MCMC 链是否收敛,常用的手段有哪些?

多选题 · hard

  • A.观察 trace plot 的稳定性← 正确答案
  • B.Gelman-Rubin 的 R-hat 指标← 正确答案
  • C.自相关函数随滞后衰减← 正确答案
  • D.只看样本均值是否稳定即可

答案:ABC。trace plot 能直观看出链是否稳定波动(A 正确);R-hat 通过多链对比判断链间方差是否足够小(B 正确);自相关衰减快说明链在充分探索(C 正确)。D 不可靠,均值稳定可能是链困在单一模态中造成的假象。

Q9. 自相关对 MCMC 样本最直接的影响是什么?

单选题 · mid

  • A.有效样本量变小,估计精度下降← 正确答案
  • B.样本均值出现系统性的偏差
  • C.样本数值全部失去真实含义
  • D.每次迭代的采样速度变慢

答案:A。自相关让相邻样本信息冗余,等效独立样本数(ESS)变小,估计的方差随之增大,A 正确。只要链收敛,样本均值仍然是无偏的,不会出现系统性偏差(B 错);样本数值当然有意义(C 错);自相关影响统计效率而非计算速度(D 错)。

Q10. 关于 MCMC 采样的说法,正确的是哪些?

多选题 · hard

  • A.高接受率可能意味着探索效率过低← 正确答案
  • B.多模态分布让链容易困在单一峰← 正确答案
  • C.丢弃初始样本就能保证收敛
  • D.需靠诊断指标判断链是否可用← 正确答案

答案:ABD。接受率过高常因提议步长太小,探索范围狭窄(A 正确);多模态之间“山谷”概率极低,链很难跨越,容易只在一个峰附近停留(B 正确);burn-in 只是缓解,不能保证遍历所有模态(C 错误);只有结合 trace plot、R-hat、自相关等指标才能确认链可用(D 正确)。