An implementation of the MGP from Garnett, et al., "Active Learning of Linear Embeddings for Gaussian Processes," UAI 2014.
Failed to load latest commit information.
LICENSE Initial commit May 22, 2014 adding latex p(\theta) Jun 3, 2014
mgp.m pulled out check_arguments and placed it in gpml_extensions repository May 19, 2015


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.