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**.