-
Notifications
You must be signed in to change notification settings - Fork 2.2k
[WIP] Riemannian Manifold HMC #2240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@bhargavvader btw, you might want to have a look at #2345. That contains a class for computing the value and gradient of a theano tensor, that merges the inputs into one array (and is typically quite a bit faster than the old version). Maybe something similar would work for the hessian (you need the full hessian, do you, or is a hessian-vector product enough?) |
|
Thanks @aseyboldt - I'll definitely have a look, and it should be handy. I might need the full hessian if I also do a NUTS for manifolds, for now I'm just focusing on rewriting the Hamiltonian Equations using the SoftAbs metric. |
|
@aseyboldt I'll be trying to use some Hessian approximations, the gradients will take forever if I don't. Just for reference, I'm trying to implement |
|
Which approximations are you implementing? The diagonal Hessian looks useful (and I think that should be possible to compute in theano without having to go for the whole hessian and hopefully without |
|
Closing this PR to accommodate for @aseyboldt refactoring. |
|
I hope you don't have to change too much. If you need any help with that, just ping me on slack. |
PR to discuss and implement RM-HMC.
Right now I'm placing the file in the
hmcdirectory, but we could also re-structure the sampling methods directory if needed.Like mentioned in my proposal, one of the stumbling blocks in the Stan implementation was the potential fragility of 2nd and 3rd order autodiff. A first step would be to tackle this problem, or look at a different way to go about this, by maybe taking some inspiration from the MATLAB implementation.