An implementation of the MGP from Garnett, et al., "Active Learning of Linear Embeddings for Gaussian Processes," UAI 2014.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is a MATLAB implementation of the "marginal GP" (MGP) described in:

Garnett, R., Osborne, M., and Hennig, P. Active Learning of Linear Embeddings for Gaussian Processes. (2014). 30th Conference on Uncertainty in Artificial Intellignece (UAI 2014).

Suppose we have a Gaussian process model on a latent function f:

p(f | \theta) = GP(f; \mu(x; \theta), K(x, x'; \theta))

where \theta are the hyperparameters of the model. Suppose we have a dataset D = (X, y) of observations and a test point x*. This function returns the mean and variance of the approximate marginal predictive distributions for the associated observation value y* and latent function value f*:

p(y* | x*, D) = \int p(y* | x*, D, \theta) p(\theta | D) d\theta

p(f* | x*, D) = \int p(f* | x*, D, \theta) p(\theta | D) d\theta

where we have marginalized over the hyperparameters \theta.


This code is only appropriate for GP regression! Exact inference with a Gaussian observation likelihood is assumed.

The MGP approximation requires that the provided hyperparameters be the MLE hyperparameters:

\hat{\theta} = argmax_\theta log p(y | X, \theta)

or, if using a hyperparameter prior p(\theta), the MAP hyperparameters:

\hat{\theta} = argmax_\theta log p(y | X, \theta) + log p(\theta)

This function does not perform the maximization over \theta but rather assumes that the given hyperparameters represent \hat{\theta}.


This code is written to be interoperable with the GPML MATLAB toolbox, available here:

The GPML toolbox must be in your MATLAB path for this function to work. This function also depends on the gpml_extensions repository, available here:

which must also be in your MATLAB path.


The usage of mgp.m is identical to the gp.m function from the GPML toolkit in prediction mode. See mgp.m for more information.

A demo is provided in demo/demo.m.