我可以在每次MCMC迭代中对大型数据集进行二次采样吗?


8

问题:我想执行Gibbs采样以推断大型数据集的一些后验。不幸的是,我的模型不是很简单,因此采样速度太慢。我会考虑采用变型或并行方法,但在此之前……

问题:我想知道是否可以在每次Gibbs迭代中从数据集中随机采样(替换),以便在每个步骤中学习的实例更少。

我的直觉是,即使我更改样本,我也不会更改概率密度,因此Gibbs样本不应注意到这一窍门。我对吗?是否有人提到过这样做?


1
顺便说一句:另一个想法是对大数据集的随机子样本进行多次分析。这样,您还可以交叉验证。
猜想2014年

2
我无法用任何权威来回答您的确切问题(尽管我怀疑您会增加Monte Carlo附带的近似误差),可悲的事实是,这只是贝叶斯MCMC分析的一个不幸方面:它们在计算上昂贵。@conjectures评论是一个好主意,但并不是真正引起问题的核心:为每个人绘制所有这些样本太昂贵了。我的建议是为繁重的工作(R中的Rcpp,Python中的Cython等)编写您自己的C代码,并且还进行并行化(当没有分支依赖性时)。

1
@conjectures这听起来像迈克尔·乔丹(Michael Jordan)的小靴子包。
jaradniemi 2014年

1
我建议您更改采样器,以完全避免潜在变量的增加。您将不再拥有Gibbs采样器,但是将Metropolis-Hastings算法与基于可能性的正态近似值的建议一起使用应该会很好。参见贝叶斯数据分析第二版的16.4节。
jaradniemi 2014年

6
这是一个活跃的研究领域,我不太了解,无法为您准确总结。参见例如jmlr.org/proceedings/papers/v32/bardenet14.pdfarxiv.org/pdf/1304.5299v4.pdf
Andrew M

Answers:


1

关于二次抽样策略:例如,考虑有两个观察结果 X1个ñμ1个σ1个2X2ñμ2σ22并考虑对均值和方差进行先验。让θ=μ1个μ2σ1个2σ22,我们要评估的后验是

Fθ|X1个X2FX1个|θFX2|θFθ
现在考虑二项式变量 δ0.5。如果δ=0 我们选择了 X1个如果 δ=1个 我们选择了 X2,新的后验是
Fθδ|X1个X2FX1个X2|δθFθFδ
哪里 FX1个X2|δθ=FX1个|θδFX2|θ1个-δFδ=0.5。现在,如果您想采样δ 用吉布斯步骤,您必须计算 FX1个|θFX2|θ 因为 Pδ=1个=FX1个|θFX1个|θ+FX2|θ。如果您另外使用大都会黑斯廷斯,那么您建议一个新的州δ 而且您只需要计算两者之间的一个 FX1个|θFX2|θ,与提议的状态相关联的一个,但您必须计算 FX1个|θFX2|θ 即使对于最后接受的状态 δ。那我不确定这个大都会会给你带来一些好处。此外,这里我们考虑的是双变量过程,但是对于多变量过程,δs对于大都市可能非常复杂。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.