通过拆分多个cpu核心上的工作量,是否可以加速贝叶斯结构时间序列模型(BSTS)的训练?

时间:2019-06-26 11:58:06

标签: r parallel-processing time-series bayesian mcmc

我正试图按照问题标题中所述加快BSTS模型的训练。这可能吗?如果是,将如何实施? mcmc迭代是独立的,对吧?

1 个答案:

答案 0 :(得分:0)

MC MC中的 Markov链部分是连续的,其中当前样本确定后续样本提议的概率分布。因此,尽管所得样本是渐近独立的,但在实现中却并非如此。在经典方法(例如Metropolis-Hastings)中,这是检查自相关是必不可少的诊断的原因之一,并且可能会使用稀化来获得与去相关的样本。现代方法不太容易做到这一点,因此通常从业人员不需要稀薄的样品(例如HMC样品),但是检查自相关仍然是一种好习惯。

尽管有此限制,但MCMC采样策略的某些组件可以并行化,例如并行运行多个链-大多数采样器(例如PyMC3和Stan)都具有此内置功能。而且,对于需要计算梯度信息的技术(例如,HMC / NUTS),可以将线性代数并行化。自v2.18(documentation)起,Stan在其数学库中添加了这种并行化功能,但直到Stan v3为止,目前仍被认为是实验性的。