STOR-i / GaussianProcesses.jl

A Julia package for Gaussian Processes
https://stor-i.github.io/GaussianProcesses.jl/latest/
Other
308 stars 53 forks source link

Comparison with other julia GP packages #112

Open jbrea opened 5 years ago

jbrea commented 5 years ago

I just stumbled over this comparison of julia GP packages. Maybe it would be interesting to also compare them regarding performance.

maximerischard commented 5 years ago

Great, yes, I think a performance comparison would be useful. I'm not going to add this to my plate just yet, but it's something I could look into in the future.

We should also link to this comparison in our README. There are a few things that are wrong about our package that would be worth correcting (we do support sum and product kernels, and hyperparameter optimization; I also think “squared quadratic” is the same as “RBF/squared exponential”). Taking a step back, it does seem a shame that there are so many independent implementations of Gaussian process models in julia.

chris-nemeth commented 5 years ago

Thanks for spotting this @jbrea. I agree with @maximerischard that we should clarify with whoever created this page that we have some additional functionality (e.g. sum and product kernels). I suspect that we could quite easily create a few new kernels that are mentioned here (e.g. Wiener). In terms of other functionality, I know @maximerischard is working on sparse GPs and a student here at Lancaster is work on a variational inference implementation. I started looking at mutli-class classification a while ago and I could take another look at that.

theogf commented 5 years ago

Hello I am the author of this page/package! I also intended to make a performance comparison but gave up on the way. @chris-nemeth I am very sorry I missed those additional functionalities I will add them up in the next updates, or even better a PR from your side would be very welcome! Concerning the variety of packages (I think the three compared here are the most active ones), I am already in contact with the main contributor of Stheno.jl @willtebbutt, and we are trying to make something in common. We already decided as a first step to work on a common and more efficient kernel package that could be shared by everyone. I think the approaches of the different packages are quite different and that's why I made this page. But probably that @willtebbutt 's approach to make Stheno.jl as a part of Turing.jl (it's a JSoC project) is the most appropriate in the long future. In any case I would be more than happy to discuss a common approach to get only one GP package to rule them all!

bjarthur commented 5 years ago

you guys should really combine forces and develop a GP package to end all GP packages!

theogf commented 5 years ago

you guys should really combine forces and develop a GP package to end all GP packages!

That the idea behind making Stheno.jl compatible with Turing.jl, so we get a GP package directly compatible with probabilistic programming as well as Flux.jl