在统计学和机器学习领域,吉布斯采样(Gibbs Sampling)是一种强大的马尔可夫链蒙特卡洛(MCMC)技术,我们经常利用它从复杂的高维概率分布中进行采样。本文将深入探讨吉布斯采样的基本原理、数学公式及其算法实现。
吉布斯采样是马尔可夫链蒙特卡洛(MCMC)方法的一种,我们在其中从多变量(具有不同变量)概率分布集合中进行采样。通常,直接从多变量分布中采样联合分布被认为是非常困难的,因此我们会转而考虑条件概率。我们不计算联合概率 p(x1, x2, x3…..xn),而是计算每个变量的条件概率 p(xi|x2, x3….xn)。吉布斯采样背后的核心概念是,我们可以更新变量 xi 的值,同时保持其他变量为当前值。这种更新变量并保持其他变量固定的过程创建了一个马尔可夫链,经过多次迭代后,该链会收敛于联合分布。相比于直接从联合分布中寻找样本,我们更倾向于从多变量概率分布的条件分布中寻找样本,这最终会为我们提供联合分布的采样。
马尔可夫链蒙特卡洛方法
让我们稍微详细地讨论一下马尔可夫链蒙特卡洛(MCMC)方法,以便我们能直观地理解吉布斯采样。
在马尔可夫链中,未来状态取决于当前状态,且独立于之前的状态。为了获得联合分布的样本,我们需要构建一个马尔可夫链,使其平稳状态对应于目标分布。在达到平稳状态之前,所采集的样本被视为处于“预热”状态。
蒙特卡洛方法对应于当无法直接从分布中采样时,对分布进行随机采样。
在 MCMC 中,我们借助转移概率(T(Xi+1|Xi))形成一个随机样本链 Xi -> Xi+1,这实际上是样本状态 Xi 切换到 Xi+1 的概率,这意味着 Xi+1 在 p(x) 中标记的密度高于 Xi。我们需要不断重复从一个样本切换到另一个样本的过程,直到获得一系列平稳样本,这些样本告诉我们样本的最终状态。达到此状态后,样本将不再发生变化,我们甚至可以将平稳状态与目标样本进行匹配。
假设我们从 X0 开始采样,那么采样过程就像一条链一样进行——X0 -> X1 -> X2 -> ………. Xm -> Xm -> Xm+2 -> ……以此类推。
在这里,假设样本从 Xm 开始匹配目标分布,那么从 X1 到 Xm-1 到达 Xm 所采取的步骤就被视为预热阶段。预热阶段是达到所需目标样本所必需的。
当分布满足以下方程时,即达到平稳状态:
\Sigma p(x) T(y
y)
其中 T(y
y) 是从 x -> y 的转移概率。
为了简单起见,让我们假设分布是在三个变量 X、Y、Z 之间,并且我们想要对联合分布 p(X, Y, Z) 进行采样。
吉布斯采样算法
- 首先,通过为系统中的每个变量赋值来进行初始化。
- 然后从系统中选择任意一个变量 Xi,变量的选择顺序并不重要。
- 现在给定其他变量相同,从条件分布 p(Xi|X1, X2,…,Xi-1,Xi+1,……Xn) 中采样 Xi 的新值,并在样本中更新 Xi 的值。
- 重复多次迭代,每次处理一个变量,并覆盖系统中存在的所有变量。
- 在此过程中创建了一个马尔可夫链,它收敛于目标分布,我们必须舍弃导致我们达到目标样本的初始值,即我们必须舍弃预热阶段。
吉布斯采样算法的伪代码
Initialize variables randomly or with some initial values
for each iteration t do:
for each variable i do:
Sample x_i from P(x_i | x_1, x_2, ..., x_{i-1}, x_{i+1}, ..., x_n)
Update x_i in the current state
The above process is repeated for a sufficient number of iterations to allow the chain to converge to the target distribution.
在吉布斯采样过程开始时,变量会被随机初始化或使用预定的初始值。之后,它会循环遍历每个变量,根据其他变量的当前状态,按照条件分布更新其值。考虑到相邻变量的值,我们从条件分布中抽取一个样本。
(注:原文链接保留用于上下文参考,翻译中已移除对特定来源的提及)