A Monte Carlo Markov Chain sampler that makes use of gradient information. Proposed by Livingstone et al. (2021)
The adaptative preconditioning is based on Andrieu and Thoms (2008), Algorithm 4 in Section 5. Both diagonal adaptation, following Algorithm 7.1, and full covariance adaptation, following Algorithms 7.2 and 7.3, of the supporting information of Livingstone et al. (2021) are available.
] add BarkerMCMC
The sampler can used in two ways:
- defining the log density compatible to LogDensityProblems.jl, or
- providing two seperate functions for the log density and it's gradient.
See the documentation for examples of both approaches.
Use covariance_adaptation = :diagonal to adapt only per-dimension
variances. The default covariance_adaptation = :full also learns
correlations.
Andrieu, C., Thoms, J., 2008. A tutorial on adaptive MCMC. Statistics and computing 18, 343–373.
Livingstone, S., Zanella, G., 2021. The Barker proposal: Combining robustness and efficiency in gradient-based MCMC. Journal of the Royal Statistical Society: Series B (Statistical Methodology). https://doi.org/10.1111/rssb.12482 (see https://github.com/gzanella/barker for the R code used)