什么是 Gibbs 采样?
Gibbs 采样是一种马尔可夫链蒙特卡洛方法,它每次从某个变量或参数块在其余变量当前取值条件下的全条件分布精确抽样。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
组合多个全条件转移
对目标 pi(theta_1, ..., theta_d),一次坐标更新从 pi(theta_j | theta_-j) 抽取 theta_j。依次组合这些更新可以构造保持联合目标分布不变的 Transition。只有预先统一约定后,完整 Sweep 才能被称为一个 Iteration。
UC Berkeley Gibbs Sampler 讲义用相关二元正态展示更新过程,并说明条件依赖如何控制移动速度。Gibbs 也可视为特殊 Metropolis-Hastings:精确条件 Proposal 的接受率恒为一。
选择坐标、参数块与条件求解器
当每个 Full Conditional 都属于可直接采样的标准分布时,逐坐标更新实现简单;但参数高度相关时,它只能沿坐标方向小步移动。把相关参数放进同一 Block 可以降低自相关,却会提高每次条件抽样的计算或推导成本。
如果某个条件分布无法精确采样,可在 Sweep 中嵌入 Metropolis-Hastings、Slice 或其他转移。这个 Metropolis-within-Gibbs 构造必须保持条件目标分布并记录拒绝状态,不能把它描述成该参数块的精确 Gibbs 更新。
诊断联合链和每个估计目标
即使每个条件更新都正确,链仍可能无法穿越联合 Mode。应从分散合法初值运行多个链,同时检查联合与边缘 Trace;遇到 Mixture Model 的 Label Switching,应先处理对称性,不能直接平均语义不一致的标签。
需要报告 Rank-normalized Split R-hat、Bulk/Tail ESS 与 Monte Carlo Standard Error,并用已知联合分布、后验预测检查或另一采样器验证。增加 Sweep 数无法修复错误条件分布、不兼容更新顺序、隐藏约束或不可识别模型。
主要特点
- 从全条件分布更新坐标或参数块
- 精确条件抽样无需拒绝步骤
- 支持 Systematic 或明确的 Random Scan
- 可为难处理条件分布嵌入 Metropolis 更新
- 利用共轭性与模型条件结构
- 在强后验依赖下可能混合缓慢
常见用途
- 条件共轭的层级 Bayesian Model
- 具有可处理条件参数块的潜变量模型
- 缺失数据与 Data Augmentation 流程
- Mixture 和 Graphical Model 的离散分配
- 验证更复杂转移方法的基础采样器
示例
Loading code...常见问题
Gibbs 采样的 Proposal 为什么总会被接受?
精确 Full Conditional 已包含给定其余变量后该坐标在目标分布中的相对概率,因此对应 Metropolis-Hastings Ratio 会化为一。近似条件抽样不会自动继承这个性质。
Gibbs 采样的一次 Iteration 指什么?
在 Systematic Scan 中,一次 Iteration 通常指遍历全部坐标或参数块的完整 Sweep;Random Scan 中也可能只指一次选中更新。比较迭代数或 ESS 前必须写清约定。
Gibbs 采样为什么可能混合缓慢?
参数高度相关时,逐坐标条件分布可能只允许沿联合后验小步移动。近确定性约束、多峰和 Label Switching 会进一步放大问题。
Metropolis-within-Gibbs 是什么?
它用以目标条件分布为不变分布的 Metropolis-Hastings 转移,替代无法直接抽样的 Full Conditional。必须保留拒绝状态,并对每个嵌入参数块执行 Proposal 调参与诊断。
只要条件分布可采样,就应该优先使用 Gibbs 吗?
不一定。应按单位时间 Effective Sample 比较 Blocked Gibbs、HMC、NUTS 或其他合法方法。对相关或多峰目标,即使每个坐标更新都是精确的,统计效率仍可能很低。