Hamiltonian Monte Carlo

I’ve been getting more into MCMC methodology recently. There’s a paper published this year by Ahmadian, Pillow & Paninski on different efficient MCMC samplers in the context of decoding spike trains with GLMs. The same methods could potentially be used, of course, for other purposes, like tracking receptive fields. Of particular interest is a remarkably efficient Hamiltonian Monte Carlo (HMC) sampler.

HMC is an exotic flavor of Metropolis-Hastings that can suppress random walk behaviour. It works by augmenting the parameter space with momentum variables, which are assumed to have Gaussian distributions, and then doing Gibbs sampling on the augmented space. Once the momentum variables are sampled, the “real” parameters are updated by integrating Hamiltonian mechanics equations.

The trick to the efficiency of the method is that the sampler is given momentum, so once it starts in a sampling in a direction, it continues in that direction until it reaches a region of low probability. Random walks are effectively suppressed. The dynamics equations implicitly use the gradient of the log-posterior to guide the search.

HMC is not new, but it seems to be experiencing renewed interest. Radford Neal has a 2010 review looking at the method and some extensions; it includes some R code. Dr. Paninski pointed me to a hot-off-the-press paper about an extension of HMC that uses local curvature information and does differential geometry voodoo – Riemannian manifold HMC (RMHMC).

Andrew Gelman has a recent post about implementing the method.
[2016 update] NUTS (an automatically tuned variant of HMC) is the default sampler in STAN.

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s