Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Manifold lifting: scaling MCMC to the vanishing noise regime

Code accompanying the paper Manifold lifting: scaling MCMC to the vanishing noise regime.

Abstract: Standard Markov chain Monte Carlo methods struggle to explore distributions that are concentrated in the neighbourhood of low-dimensional structures. These pathologies naturally occur in a number of situations. For example, they are common to Bayesian inverse problem modelling and Bayesian neural networks, when observational data are highly informative, or when a subset of the statistical parameters of interest are non-identifiable. In this paper, we propose a strategy that transforms the original sampling problem into the task of exploring a distribution supported on a manifold embedded in a higher dimensional space; in contrast to the original posterior this lifted distribution remains diffuse in the vanishing noise limit. We employ a constrained Hamiltonian Monte Carlo method which exploits the manifold geometry of this lifted distribution, to perform efficient approximate inference. We demonstrate in several numerical experiments that, contrarily to competing approaches, the sampling efficiency of our proposed methodology does not degenerate as the target distribution to be explored concentrates near low dimensional structures.


For a complete example of applying the method described in the paper to perform inference in a two-dimensional example and accompanying explanatory notes see the Jupyter notebook linked below. The manifold MCMC methods in the Python package Mici are used for inference.

Open non-interactive version with nbviewer Render with nbviewer
Open interactive version with Binder Launch with Binder
Open interactive version with Google Colab Open in Colab

Local installation

To install the dependencies to run the notebook locally, first create a local clone of the repository

git clone

Then either create a new Python 3.6+ environment using your environment manager of choice (e.g. conda, virtualenv, venv, pipenv) or activate the existing environment you wish to use.

To install the dependencies, from within the manifold_lifting directory run

pip install -r requirements.txt


To cite the pre-print the following bibtex entry can be used

    title={Manifold lifting: scaling MCMC to the vanishing noise regime},
    author={Khai Xiang Au and Matthew M. Graham and Alexandre H. Thiery},


Accompanying code for 'Manifold lifting: scaling MCMC to the vanishing noise regime'




No releases published


No packages published