Evaluating the implicit midpoint integrator for Riemannian Manifold Hamiltonian Monte Carlo.
We use a Conda virtual environment to manage Python dependencies. A list of required libraries is contained in requirements.txt
. Moreover, the examples will require the hmc
module to be importable. This can be achieved by running pip install .
from the directory containing setup.py
. The Conda environment is expected to have the name implicit-midpoint-devel
.
Code has been tested with Python 3.8.
See the examples
directory for a list of modules that implement the experiments from our paper. The experiments consist of various parameter configurations, each of which corresponds to a line in the file called joblist.txt
. We leverage dSQ in order to facilitate running these experiments on a computing cluster.
This version of the code has incorporated several improvements relative to previous implementations used by the paper. Specifically:
- Both the implicit midpoint integrators and the G.L.F.(b) integrator have been improved by eliminating one redundant matrix inversion at every iteration.
- The stochastic volatility model has been improved to exploit the special tridiagonal structure of the Fisher information metric, leading to a more efficient implementation.
- An error in the computation of the Riemannian metric used in the stochastic volatility model has been corrected and that experimental results updated accordingly.
- The implementation of the Fitzhugh-Nagumo model has been improved to avoid repeat solutions to identical or related differential equations. This benefits all integrators.
- The G.L.F.(b) integrator has been improved to incorporate additional caching of repeated computations.