Often we want to sample from a probability distribution, but we don’t have direct access to the distribution only something proportional to it. A well known standard, using the Metropolis method, can easily get stuck or take a while to equilibrate in its random walk. Hamiltonian Monte Carlo was introduced to flow through space instead of a random walk. However, in exchange for the improved sampling there are many (naively) hard to tune hyperparameters - enter the No-U Turn Sampler (NUTS) to adaptively determine many of the important hyperparameters.
Check out my presentation on the powerful No-U Turn Sampler (NUTS) technique for the Algorithm Interest Group over at UIUC.
I also wrote up a short ipython notebook with some implementations:
nbviewer / ipynb.