Sequential Monte Carlo Squared (SMC$^2$) is a Bayesian method which can infer the states and parameters of non-linear, non-Gaussian state-space models. The standard random-walk proposal in SMC$^2$ faces challenges, particularly with high-dimensional parameter spaces. This study outlines a novel approach by harnessing first-order gradients derived from a Common Random Numbers - Particle Filter (CRN-PF) using PyTorch. The resulting gradients can be leveraged within a Langevin proposal without accept/reject. Including Langevin dynamics within the proposal can result in a higher effective sample size and more accurate parameter estimates when compared with the random-walk. The resulting algorithm is parallelized on distributed memory using Message Passing Interface (MPI) and runs in $\mathcal{O}(\log_2N)$ time complexity. Utilizing 64 computational cores we obtain a 51x speed-up when compared to a single core. A GitHub link is given which provides access to the code.
翻译:序列蒙特卡洛平方(SMC²)是一种贝叶斯方法,可用于推断非线性、非高斯状态空间模型的状态与参数。SMC²中标准的随机游走提议面临挑战,尤其是在高维参数空间中。本研究提出了一种新颖方法,通过利用基于PyTorch的公共随机数-粒子滤波器(CRN-PF)所推导的一阶梯度。所得梯度可在无需接受/拒绝步骤的朗之万提议中被有效利用。在提议中引入朗之万动力学,与随机游走相比,能够产生更高的有效样本量和更准确的参数估计。所提出的算法通过消息传递接口(MPI)在分布式内存上实现并行化,并以$\mathcal{O}(\log_2N)$的时间复杂度运行。使用64个计算核心时,与单核相比获得了51倍的加速。文中提供了GitHub链接以便访问相关代码。