shogun-toolbox / shogun

Shōgun
http://shogun-toolbox.org
BSD 3-Clause "New" or "Revised" License
3.02k stars 1.04k forks source link

Unify Shogun's probability distributions #1929

Open karlnapf opened 10 years ago

karlnapf commented 10 years ago

This is an entrance task for the MCMC GSoC 2014 project http://www.shogun-toolbox.org/page/Events/gsoc2014_ideas#mcmc

Currently, Shogun has various ways to represent probability distributions: The latest addition was http://www.shogun-toolbox.org/doc/en/3.0.0/classshogun_1_1CProbabilityDistribution.html with implementation http://www.shogun-toolbox.org/doc/en/3.0.0/classshogun_1_1CGaussianDistribution.html

There is an old one (which has a slightly different interface) http://www.shogun-toolbox.org/doc/en/3.0.0/classshogun_1_1CDistribution.html with implementation http://www.shogun-toolbox.org/doc/en/3.0.0/classshogun_1_1CGaussian.html

The latter two are old Shogun classes and reflect an old-school ML-type view on distributions. We want to consider renaming those (or move to new interface). The first two are recent additions, and more in the line of the MCMC project.

This task is about unifying and extending the existing distributions.

karlnapf commented 10 years ago

And please talk to us before starting to work on this.

Some more comments:

vigsterkr commented 10 years ago

one who is considering to work on this should really check out the new Pseudo-random number generation with c++11: http://en.cppreference.com/w/cpp/numeric/random

karlnapf commented 10 years ago

Another aspect is to be able to exploit stans automatic differentiation framework: It can automatically compute derivative for all distributions. This is done via https://en.wikipedia.org/wiki/Automatic_differentiation

karlnapf commented 10 years ago

Stan currently is kind of out-of-the-game due to its non-existing packaging structure. But we might get back to this. Still the task of representing probability distributions properly remains. Mostly interface work