采样之Gibbs算法

本文基于《机器学习升级版》介绍了Gibbs采样算法的基本原理与应用,包括二维及高维情况下的采样过程。Gibbs采样作为MCMC的一种,适用于从复杂的联合概率分布中采样。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:本文中所有公式和思路来自于邹博先生的机器学习升级版,我只是为了加深记忆和理解写的本文。


本文将要介绍Gibbs采样算法,其实Metropolis-Hastings、Gibbs都是属于MCMC采样的范畴,都是基于马尔科夫链的采样方式,Gibbs又可以看作是MCMC在高维上的推广,如果了解MCMC采样,那么学习Gibbs将会易如反掌。


从上一篇文章中可以知道,MCMC采样是有一定的拒绝率的,那么我们我们可以对MCMC进行改造,并在高维上推广。


二维Gibbs采样:


若需要采样二维联合分布p(x,y),首先固定x,可得:


第一行:根据细致平稳条件,当固定x1时得到的。

第二行:将p(x1,y1)展开得到p(x1)p(y1 | x1)

第三行:根据第二行的式子,令这两个式子相等

第四行:在普适意义上得出两个结论,我们只看第一个,从当前(cur)到其他状态(other)

当然我们固定住y可以得到同样的对偶结论,就不展开了:



二维Gibbs采样算法


(1):  随机初始化(X,Y) = (x0,y0)

(2):  对于t=1,2...循环采样



高维Gibbs采样算法


(1):  随机初始化(X1,X2...Xn) = (x10,x20...xn0)

(2):  对于t=1,2...循环采样直到收敛(burn-in)


这个递推公式已经足够清楚的解释这个过程了,这里就不再赘述了。


到此就将Gibbs采样介绍完了,欢迎批评指正。





Gibbs采样算法是一种马尔可夫链蒙特卡洛(MCMC)方法,用于从多维概率分布采样。其代码如下: 1. 初始化样本:给定多维概率分布P(X₁, X₂, ..., Xₙ),随机初始化样本X₀ = (x₀₁, x₀₂, ..., x₀ₙ)。 2. 设置迭代次数和burn-in期:设定迭代次数T和burn-in期B。 3. 开始迭代:对于t = 1到T+B: 3.1 对于每个维度i = 1到n: a. 计算条件概率分布P(Xᵢ|X₁(t-1), X₂(t-1), ..., Xₙ(t-1)),即给定其他维度的采样样本情况下,当前维度的概率分布。 b. 从条件概率分布中抽样得到新的样本值xᵢ(t)。 3.2 将得到的样本X(t)加入采样结果集中,如果t > B。 4. 返回采样结果集:返回采样得到的样本集合X = {X(B+1), X(B+2), ..., X(T+B)}。 Gibbs采样算法的核心思想是通过给定其他维度的样本情况下,逐个采样每个维度的值。每个维度的采样值都是依赖于其他维度的值,通过迭代逼近真实的多维概率分布。迭代过程中的burn-in期是为了达到一个稳定的采样状态,保证得到的样本更接近于真实概率分布。 需要注意的是,具体实现时还需要考虑到条件概率分布的计算和抽样方法。对于简单的情况,条件概率分布可以直接通过概率计算得到。对于复杂的情况,可以借助数值计算方法如Metropolis-Hastings算法等来估计条件概率分布。此外,根据具体问题,还可以对采样结果进行适当的调整和优化,以提高采样效率和精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值