We present a method for performing Hamiltonian Monte Carlo that largely
eliminates sample rejection for typical hyperparameters. In situations that
would normally lead to rejection, instead a longer trajectory is computed until
a new state is reached that can be accepted. This is achieved using Markov
chain transitions that satisfy the fixed point equation, but do not satisfy
detailed balance. The resulting algorithm significantly suppresses the random
walk behavior and wasted function evaluations that are typically the
consequence of update rejection. We demonstrate a greater than factor of two
improvement in mixing time on three test problems. We release the source code
as Python and MATLAB packages.Comment: Accepted conference submission to ICML 2014 and also featured in a
special edition of JMLR. Since updated to include additional literature
citation