问题:我想执行Gibbs采样以推断大型数据集的一些后验。不幸的是,我的模型不是很简单,因此采样速度太慢。我会考虑采用变型或并行方法,但在此之前……
问题:我想知道是否可以在每次Gibbs迭代中从数据集中随机采样(替换),以便在每个步骤中学习的实例更少。
我的直觉是,即使我更改样本,我也不会更改概率密度,因此Gibbs样本不应注意到这一窍门。我对吗?是否有人提到过这样做?
1
顺便说一句:另一个想法是对大数据集的随机子样本进行多次分析。这样,您还可以交叉验证。
—
猜想2014年
我无法用任何权威来回答您的确切问题(尽管我怀疑您会增加Monte Carlo附带的近似误差),可悲的事实是,这只是贝叶斯MCMC分析的一个不幸方面:它们在计算上昂贵。@conjectures评论是一个好主意,但并不是真正引起问题的核心:为每个人绘制所有这些样本太昂贵了。我的建议是为繁重的工作(R中的Rcpp,Python中的Cython等)编写您自己的C代码,并且还进行并行化(当没有分支依赖性时)。
@conjectures这听起来像迈克尔·乔丹(Michael Jordan)的小靴子包。
—
jaradniemi 2014年
我建议您更改采样器,以完全避免潜在变量的增加。您将不再拥有Gibbs采样器,但是将Metropolis-Hastings算法与基于可能性的正态近似值的建议一起使用应该会很好。参见贝叶斯数据分析第二版的16.4节。
—
jaradniemi 2014年
这是一个活跃的研究领域,我不太了解,无法为您准确总结。参见例如jmlr.org/proceedings/papers/v32/bardenet14.pdf和arxiv.org/pdf/1304.5299v4.pdf
—
Andrew M