ARTICLE

吉布斯抽样

吉布斯抽样 (Gibbs Sampling) 吉布斯抽样 (Gibbs Sampling),也称吉布斯采样器 (Gibbs Sampler),是一种从多维概率分布中生成随机样本的马尔可夫链蒙特卡洛 (MCMC) 算法。其核心思想是将高维抽样问题分解为一系列低维(通常为一维)的条件分布抽样步骤:每次仅对参数向量的一个分量进行更新,该分量从给定所有其他分量当前值

浏览 0 更新 2025-12-23

吉布斯抽样 (Gibbs Sampling)

吉布斯抽样 (Gibbs Sampling),也称吉布斯采样器 (Gibbs Sampler),是一种从多维概率分布中生成随机样本的马尔可夫链蒙特卡洛 (MCMC) 算法。其核心思想是将高维抽样问题分解为一系列低维(通常为一维)的条件分布抽样步骤:每次仅对参数向量的一个分量进行更新,该分量从给定所有其他分量当前值的全条件分布 (Full Conditional Distribution) 中抽取。经过足够多次迭代后,生成的样本序列收敛到目标联合分布,从而实现对复杂后验分布或高维概率模型的数值推断。

吉布斯抽样的名称源于美国物理学家约西亚·威拉德·吉布斯 (Josiah Willard Gibbs, 1839–1903),但算法本身由 Stuart Geman 和 Donald Geman 于 1984 年在图像处理的随机松弛框架中首次形式化提出,此后迅速成为贝叶斯统计计算的核心工具。

算法原理与步骤

设目标分布为 p(θ)=p(θ1,θ2,,θd)p(\theta) = p(\theta_1, \theta_2, \ldots, \theta_d),其中 θ\thetadd 维参数向量。吉布斯抽样并不直接从 p(θ)p(\theta) 采样,而是依次从每个分量的全条件分布中抽取:

θk(t+1)p(θkθ1(t+1),,θk1(t+1),θk+1(t),,θd(t))\theta_k^{(t+1)} \sim p(\theta_k \mid \theta_1^{(t+1)}, \ldots, \theta_{k-1}^{(t+1)}, \theta_{k+1}^{(t)}, \ldots, \theta_d^{(t)})

注意在第 kk 步中,前 k1k-1 个分量已经更新为第 t+1t+1 次迭代的值,而后 dkd-k 个分量仍保留第 tt 次迭代的值。这种顺序更新策略称为系统扫描 (Systematic Scan)。

算法流程如下:

  1. 初始化参数向量 θ(0)=(θ1(0),,θd(0))\theta^{(0)} = (\theta_1^{(0)}, \ldots, \theta_d^{(0)})
  2. t=0,1,2,,T1t = 0, 1, 2, \ldots, T-1: \begin{enumerate}
  3. p(θ1θ2(t),θ3(t),,θd(t))p(\theta_1 \mid \theta_2^{(t)}, \theta_3^{(t)}, \ldots, \theta_d^{(t)}) 中抽取 θ1(t+1)\theta_1^{(t+1)}
  4. p(θ2θ1(t+1),θ3(t),,θd(t))p(\theta_2 \mid \theta_1^{(t+1)}, \theta_3^{(t)}, \ldots, \theta_d^{(t)}) 中抽取 θ2(t+1)\theta_2^{(t+1)}
  5. \cdots
  6. p(θdθ1(t+1),θ2(t+1),,θd1(t+1))p(\theta_d \mid \theta_1^{(t+1)}, \theta_2^{(t+1)}, \ldots, \theta_{d-1}^{(t+1)}) 中抽取 θd(t+1)\theta_d^{(t+1)}

\item 舍弃前 BB 次迭代作为预热期 (Burn-in),使用剩余 TBT-B 个样本进行推断。 \end{enumerate}

与 Metropolis-Hastings 算法的关系

吉布斯抽样可视为Metropolis-Hastings算法 (MH) 的一个特殊情形。在 MH 框架中,提议分布 q(θθ(t))q(\theta^* \mid \theta^{(t)}) 可取任意形式,接受概率为:

α=min(1,p(θ)q(θ(t)θ)p(θ(t))q(θθ(t)))\alpha = \min\left(1, \frac{p(\theta^*) \, q(\theta^{(t)} \mid \theta^*)}{p(\theta^{(t)}) \, q(\theta^* \mid \theta^{(t)})}\right)

若将提议分布取为全条件分布本身——即令 q(θkθ(t))=p(θkθk(t))q(\theta_k^* \mid \theta^{(t)}) = p(\theta_k^* \mid \theta_{-k}^{(t)})——则接受概率恒等于 1,所有提议均被接受。因此,吉布斯抽样是 MH 算法中接受率为 100\% 的退化情形。这一特性使其在高维问题中尤为高效:免去了接受-拒绝步骤,避免了因提议分布不当导致的低接受率问题。

然而,这种便利以全条件分布必须易于采样为前提。若全条件分布不具备标准形式(如正态、Gamma、逆 Gamma 等),则吉布斯抽样无法直接应用,此时需借助 MH 步骤或自适应拒绝采样等方法在分量更新中嵌入子循环——这类混合策略通常称为Metropolis-within-Gibbs

理论性质

吉布斯抽样构造的马尔可夫链在温和正则条件下满足以下性质:

  • 不变性:目标分布 p(θ)p(\theta) 是转移核的平稳分布 (Stationary Distribution)。这是由全条件分布的定义直接保证的——每一步更新都精确地保持了联合分布在所更新分量上的条件形式。
  • 不可约性与非周期性:在 p(θ)p(\theta) 的支撑集为正区域且全条件密度处处为正的条件下,链是不可约非周期的,从而保证收敛到唯一的平稳分布。
  • 细致平衡:与一般的 MH 算法不同,吉布斯抽样的单分量更新不满足全局细致平衡条件,但每个分量更新步骤单独满足,且乘积转移核仍以 p(θ)p(\theta) 为平稳分布。

收敛速度取决于参数分量之间的相关性。当分量高度相关时,吉布斯链在参数空间中沿坐标轴方向移动,每一步仅改变一个分量,导致缓慢混合 (Slow Mixing)——链需要大量迭代才能充分探索目标分布的支撑区域。极端情形下,两个高度相关的参数会使吉布斯链几乎在参数空间中停滞,此时重参数化 (Reparameterization) 或改用Hamiltonian Monte Carlo (HMC) 是更合适的选择。

应用场景

正态线性回归模型的贝叶斯推断:在共轭先验设定下,回归系数 β\beta 的全条件后验为多元正态分布,误差方差 σ2\sigma^2 的全条件后验为逆 Gamma 分布。吉布斯抽样在这两个标准分布之间交替采样,即可高效生成后验样本。

分层模型 (Hierarchical Models):在多层先验结构的模型中,各层参数的条件独立性使吉布斯抽样成为自然选择。典型如随机效应模型中,组内均值、组间方差和总体超参数的全条件分布通常均为标准形式,可通过吉布斯抽样递推更新。

潜变量模型:在混合模型隐马尔可夫模型潜在狄利克雷分配 (LDA) 中,引入离散潜变量后,各参数的条件后验往往具有简洁形式。吉布斯抽样(尤其是折叠吉布斯抽样,Collapsed Gibbs Sampling)在主题模型中被广泛采用:通过解析地积分掉部分参数(如词项分布),仅对主题分配潜变量进行吉布斯更新,显著降低采样维度并改善混合速率。

缺失数据问题:在 EM 算法的贝叶斯对应——数据增强 (Data Augmentation) 框架下,吉布斯抽样在潜数据(缺失值)的条件分布与参数的条件后验之间交替采样,提供了一种统一的缺失数据处理范式。

收敛诊断与实用技巧

由于 MCMC 样本本质上是自相关的,实际应用中需要评估链是否已达到平稳分布:

  • 迹图 (Trace Plot):绘制各参数随迭代次数的轨迹,直观判断链是否在稳定区域内波动。
  • 多链诊断:从多个分散的初始点独立运行多条链,比较链间方差与链内方差。Gelman-Rubin统计量 (R^\hat{R}) 是最常用的指标,当 R^<1.1\hat{R} < 1.1(更严格取 1.05)时认为链已收敛。
  • 有效样本量 (Effective Sample Size, ESS):考虑自相关后的等效独立样本数。若 ESS 过小,表明混合不良,需增加迭代次数或改进采样策略。
  • 预热期选择:预热期的长度应足以使链从初始值到达目标分布的高概率区域。通常取总迭代次数的前 10\%–50\%,但需结合迹图进行判断。

变体与扩展

随机扫描吉布斯抽样 (Random-Scan Gibbs Sampling):每步随机选择更新的分量(而非固定顺序),理论上可保证更好的收敛性质,但实际中系统扫描更为常用。

折叠吉布斯抽样 (Collapsed Gibbs Sampling):通过解析积分消去部分参数(通常利用共轭结构),仅对剩余参数进行吉布斯更新。通过降低采样空间维度,可以有效改善混合速率,在贝叶斯非参数模型和主题模型中表现突出。

分块吉布斯抽样 (Blocked Gibbs Sampling):将高度相关的分量合并为一个块,从联合全条件分布中同时采样。当各分量间的条件独立性结构允许时,分块抽样可显著降低自相关。

切片抽样 (Slice Sampling):当全条件分布非标准时,切片抽样通过引入辅助变量构造可逆跳转,在无需提议调参的情况下实现各分量更新。它与吉布斯抽样的结合形成了处理非共轭模型的实用框架。

吉布斯抽样凭借其概念简洁、实现直观和理论保障完备的特点,与 Metropolis-Hastings 算法和 Hamiltonian Monte Carlo 共同构成了现代贝叶斯计算方法的三大支柱,深刻改变了应用统计学、计量经济学和机器学习领域中复杂模型的经验推断方式。