blackjax
blackjax copied to clipboard
SMC: Allow for different path of distributions other than tempering.
SMC works by traversing a path of distributions, starting with an initial distribution, and progressively getting closer to a target distribution. There are many ways to construct such path.tempered.py
implements the tempering approach.
We could for example implement a Partial posteriors path (where the likelihood of each intermediate distribution has more datapoints). Right now, in order to do so, we would need to extend from base.py
, loosing all the inner kernel parameters work that happens inside tempered.py.
My proposal is to split tempered.py
into two. The first function should do the tempering work, the second function all the wiring for MCMC parameters, and call to base.py
. This way implementing other distribution paths doesn't need to handle MCMC kernels construction.