TuringLang / AdvancedHMC.jl

Robust, modular and efficient implementation of advanced Hamiltonian Monte Carlo algorithms
https://turinglang.org/AdvancedHMC.jl/
MIT License
245 stars 41 forks source link

Canonical momentum and kinetic momentum #129

Open jzhan039 opened 5 years ago

jzhan039 commented 5 years ago

Hi Kai,

It is known that if a charged particle placed in a magnetic field, the canonical momentum is different from the kinetic momentum by a shift. The Hamilton's equations describe the dynamics of coordinates and canonical momentum, so maybe it's more efficient to choose Gaussian kinetic energy with nonzero mean in HMC for those distributions approximating this kind of physical systems. I found a reference https://arxiv.org/abs/1607.02738v2, where they introduce the magnetic HMC. Is it easy to implement in AdvancedHMC.jl? Thanks.

Jin

jzhan039 commented 5 years ago

I realized that it could be mathematically equivalent to a special case of Riemann HMC, or at least comparably efficient. Maybe it's not worth the time.

xukai92 commented 4 years ago

Riemann HMC (https://github.com/TuringLang/AdvancedHMC.jl/issues/6) is on the TODO list but is of low priorty at the moment. If you are interested in implementing it, please let me know.