PyDPF: A Python Package for Differentiable Particle Filtering
John-Joseph Brady, Benjamin Cox, Yunpeng Li, Víctor Elvira
TL;DR
PyDPF presents a unified PyTorch-based framework for differentiable particle filtering, enabling gradient-based learning in state-space models by differentiating through both proposal and resampling steps using estimators like the reparametrisation trick and REINFORCE. The package offers multiple resampling variants—non-differentiable, soft, optimal transport, stop-gradient, and kernel mixture—along with reproducibility tools, a modular PyDPF.Module API, and convenient data loading utilities. It demonstrates through stochastic volatility and deep learning localisation tasks that differentiable PFs can effectively learn parameters and proposals while balancing gradient bias, variance, and computational cost. The work highlights PyDPF’s potential to accelerate development and benchmarking of DPF methods, with GPU acceleration and easy extensibility for novel algorithms.
Abstract
State-space models (SSMs) are a widely used tool in time series analysis. In the complex systems that arise from real-world data, it is common to employ particle filtering (PF), an efficient Monte Carlo method for estimating the hidden state corresponding to a sequence of observations. Applying particle filtering requires specifying both the parametric form and the parameters of the system, which are often unknown and must be estimated. Gradient-based optimisation techniques cannot be applied directly to standard particle filters, as the filters themselves are not differentiable. However, several recently proposed methods modify the resampling step to make particle filtering differentiable. In this paper, we present an implementation of several such differentiable particle filters (DPFs) with a unified API built on the popular PyTorch framework. Our implementation makes these algorithms easily accessible to a broader research community and facilitates straightforward comparison between them. We validate our framework by reproducing experiments from several existing studies and demonstrate how DPFs can be applied to address several common challenges with state space modelling.
