-
Notifications
You must be signed in to change notification settings - Fork 0
Compare NUTS HMC vs CRHMC
This project is about sampling from high dimensional log-concave distributions with (i) No-U-Turn Hamiltonian Monte Carlo (HMC) and (ii) Constrained Riemannian Hamiltonian Monte Carlo Samplers.
The contributor will have to tune and perform benchmarks for those two methods in various
metabolic networks. Python interfaces should be implemented wherever needed.
Uniform sampling should be treated as a special case (a good place to start also) where HMC becomes Billiard walk.
https://github.com/GeomScale/volesti/pulls?q=is%3Apr+author%3Aiakoviid+is%3Aclosed
https://github.com/GeomScale/volesti/pull/216
Contributors, please contact both mentors below after completing at least one of the tests below.
-
Vissarion Fisikopoulos <vissarion.fisikopoulos at gmail.com> is an expert in mathematical software, computational geometry and optimization, and has previous GSOC mentoring experience with Boost C++ libraries (2016-2020) and the R-project (2017-2020).
-
Elias Tsigaridas <elias.tsigaridas at inria.fr> is an expert in computational nonlinear algebra and geometry with experience in mathematical software. He has contributed to the implementation, in C and C++, of several solving algorithms for various open-source computer algebra libraries and has previous GSOC mentoring experience with the R-project (2019) and Geomscale (2020).
Contributors, please do one or more of the following tests before contacting the mentors above.
-
Easy: Download, compile and run a simple sampling example with both C++ and R interfaces of volesti. For example, you can sample points from a 100-dimensional cube using the C++ HMC algorithm implemented in
volesti
for various distributions. -
Medium: Add counters in C++ code of
volesti
to count the average number of reflections per HMC step. For different (a) integration time, (b) step length in ODE solver, (c) dimension, compute the PSRF/run-time and Effective Sample Size (ESS)/run-time for a large number of samples and report. -
Hard: Implement in C++ an approximate and an exact oracle for the gradient of the Spherical Gaussian distribution with unit variance and repeat the experiments requested by the
Medium test
. Compare the performances of two cases and report.