/InsideOutSMC.jl

Implements Inside-Out SMC^2, a nested sequential Monte Carlo algorithm developed for Bayesian experimental design in dynamical systems.

Primary LanguageJuliaMIT LicenseMIT

InsideOutSMC.jl

This is the companion code for the paper Nesting Particle Filters for Experimental Design in Dynamical Systems, written by Sahel Iqbal and Hany Abdulsamad. It implements $\textrm{Inside-Out SMC}^2$, a nested sequential Monte Carlo algorithm inspired by $\textrm{SMC}^2$ of Chopin et. al. 2013 [1].

Installation

Julia needs to be installed. This has been tested with Julia v1.10. Clone the repo and move to this directory. From the Julia REPL, enter the following commands:

julia> ]
(@v...) pkg> activate .
(@v...) pkg> instantiate

Experiments

The code to reproduce all of the experiments in the paper is given in the experiments directory. All experiments were run on mid-tier laptop CPUs. As an example, to train a policy for the conditionally-linear stochastic pendulum, run experiments/pendulum/linear/trajectory_plot/io_csmc_sysid.jl. If you do not wish to train, a trained policy is already available, and to plot a sample trajectory generated by the policy, run experiments/pendulum/linear/trajectory_plot/make_plot.jl.

Comparison to previous work

In our paper, we compare our method to implicit Deep Adaptive Design (iDAD) from Ivanova et. al. 2021 [2]. The code for that is available here.

Cite

@inproceedings{iqbal2024nesting,
  title = {Nesting Particle Filters for Experimental Design in Dynamical Systems},
  author = {Sahel Iqbal and Adrien Corenflos and Simo S{\"a}rkk{\"a} and Hany Abdulsamad},
  booktitle = {International Conference on Machine Learning},
  year = {2024}
}

References

  1. Chopin, N., Jacob, P. E., and Papaspiliopoulos, O. SMC^2: An efficient algorithm for sequential analysis of state space models. Journal of the Royal Statistical Society Series B: Statistical Methodology, 75(3):397–426, 2013.
  2. Ivanova, D. R., Foster, A., Kleinegesse, S., Gutmann, M., and Rainforth, T. Implicit deep adaptive design: Policy–based experimental design without likelihoods. In Advances in Neural Information Processing Systems. 2021.