TuringLang / AdvancedPS.jl

Implementation of advanced Sequential Monte Carlo and particle MCMC algorithms
https://turinglang.org/AdvancedPS.jl/
MIT License
55 stars 9 forks source link

Potentially interesting SMC algorithms #2

Open devmotion opened 4 years ago

devmotion commented 4 years ago

I had a short conversation with Fredrik Lindsten about SMC algorithms that might be interesting to implement. Apart from PGAS, his suggestions were:

  • Our divide and conquer SMC is something that I think would be very well suited for PPL. I have mentioned this to a lot of people (including Lawrence, David Broman, ...) but no one has taken the bait yet (https://arxiv.org/abs/1406.4993).
  • Some type of "Twisted SMC" would also be very beneficial for PPL, but that's more of a research topic to figure out how to construct the sampler itself so that it can be implemented in a generic way.
  • Last but not least, Christian's VSMC (https://arxiv.org/abs/1705.11140).
donhausk commented 4 years ago

Thanks a lot for these remarks!

cscherrer commented 3 years ago

Anglican has a nice list here: https://www.robots.ox.ac.uk/~fwood/anglican/literature/index.html

IPMCMC seems particularly nice: https://www.robots.ox.ac.uk/~fwood/anglican/assets/pdf/rainforth-icml-2016.pdf

devmotion commented 3 years ago

IPMCMC is implemented in https://www.github.com/TuringLang/AdvancedPS.jl/tree/master/src%2Fcontrib%2FAdvancedSMCExtensions.jl, but currently broken. It just has to be updated to the new interface which hopefully is quite straightforward.

ghost commented 3 years ago

Another SMC algorithm you guys might find interesting, which gives an asymptotic speedup from O(n^-1) to O(n^-2) by using quasi-Monte Carlo.

ParadaCarleton commented 3 years ago

Another interesting algorithm -- perhaps we could try integrating ParetoSmooth.jl, and letting users replace the importance-sampling step with PSIS? I've never seen it done before, but it definitely seems like an interesting/worthwhile experiment.