flipdazed / Hybrid-Monte-Carlo

Used in Deep Machine Learning and Lattice Quantum Chromodynamics
5 stars 3 forks source link
algorithm hamiltonian hamiltonian-monte-carlo hmc

Hybrid Monte Carlo & Kramers Algorithm

This repository contains the code used for the thesis component of a Masters degree in Theoretical Physics at Edinburgh University.

Supervisors: Brian Pendleton, Tony Kennedy

$\LaTeX$ is used widely in this repository. A good extension for Google Chrome is TeX All the Things

Table of Contents

Hybrid Monte Carlo (HMC)

HMC is used for sampling high dimensional probability distributions e.g. Lattice QCD where the space can be in excess of a million dimensions.

The algorithm is highly effective by utilising Hamiltonian Dynamics after introducing a momentum field conjugate to the probability space that is refreshed after each sampler move. By utilising intrinsic gradient information provided by the geometry of the Hamiltonian, the sampler can transition through highly non-trivial spaces with exceptional efficiency when compared with the traditional Metropolis-Hastings approach.

Kramers Algorithm (KHMC)

Kramers Algorithm, also known as (L2MC), introduces an alternative approach whereby the conjugate momentum field is only partially refreshed after each sampler move.

Generalised HMC (GHMC)

Both the above algorithms are specific parameterisations of the generalised Hybrid Monte Carlo algorithm.

Conventions

  • Functions :: CamelType()
  • Variables :: lower_case
  • Classes :: Upper_Case()

Known Issues

See the Issues tab and filter for bug to see current issues. At the time of writing, the HMC/GHMC code is assumed to be without fault. Remaining issues lie within autocorrelations and theoretical results.