Skip to content

Add a built-in mcmc sampler

Gregory Ashton requested to merge add-mcmc-sampler into master

This adds a built-in MCMC sampler. Predominantly, the ideas used are built on the ideas of Veitch et al. (2015). This started off as an exercise in understanding the LALInference_MCMC implementation.

Motivation

  • It would be nice to have an MCMC sampler which we can easily customize/modify
  • I decided it was easier to implement from scratch than use existing packages

Current feature set

  • Custom jump proposals
  • Parallel-tempering (tested to resolve sampling issues for a simple bimodal problem)
  • Parallelization using a map

Required features

  • A user interface for selecting/weighting custom jump proposals
  • More proposal options (including GW-specific versions)
  • Thermodynamic integration to estimate the evidence
  • Checkpointing
  • Between chain swap-acceptance information
  • Profile and optimize the sample storage: currently used pandas dataframes, but I believe this is adding significant overhead.

Nice features I'd like to add

  • Improve parallelization: currently the efficiency is awful, I think it might be because I'm passing data around
  • Samples from the finite-temperature chains (use resampling to reweight from the finite-temperature distribution to the zero-temperature distribution)
  • Specify initial positions per-chain
  • Specify the temperature ladder
  • Implement dynamic temperature selection: arXiv:1501.05823
Edited by Gregory Ashton

Merge request reports