https://medium.com/@monocosmo77/working-with-hamiltonian-monte-carlo-part1-machine-learning-b15a6a2a7350