Julia GP Package Comparison

JuliaGaussianProcesses Organization

There is a common effort to bring GP people together through the JuliaGP organization. We work on making the building blocks necessary for GP such as KernelFunctions.jl for kernels, AbstractGPs.jl for the basic GP definitions and more is coming. The long-term goal is to have AGP.jl depend on all of the constituent and to simply have it as a wrapper.

AugmentedGaussianProcesses.jl vs Stheno.jl vs GaussianProcesses.jl

There are already two other Gaussian Process packages in Julia, however their feature are quite orthogonal. They are roughly compared here: AGP.jl stands for AugmentedGaussianProcesses.jl and GP.jl for GaussianProcesses.jl

Likelihood

LikelihoodAGP.jlStheno.jlGP.jl
Gaussian✓ (multi-input/multi-output)
Student-T
Bernoulli✓ (Logistic)✓ (Probit)
Bayesian-SVM
Poisson
NegativeBinomial
Exponential
MultiClass

Inference

InferenceAGP.jlStheno.jlGP.jl
Analytic (Gaussian only)
Variational Inference✓ (Analytic and Num. Appr.)
Streaming VI
Gibbs-Sampling
MCMC
Expec. Propag.

Kernels

KernelAGP.jlStheno.jlGP.jl
RBF/Squared Exponential
Matern
Const
Linear
Poly
Periodic
Exponentiated Quadratic
Rational Quadratic
Wiener
Sum of kernel
Product of kernels

Note that the kernels will be defered to MLKernels.jl in the future.

Other features

FeatureAGP.jlStheno.jlGP.jl
Sparse GP
Custom prior Mean
Hyperparam. Opt.?
MultiOutput
Online