/mgp

An implementation of the MGP from Garnett, et al., "Active Learning of Linear Embeddings for Gaussian Processes," UAI 2014.

Primary LanguageMatlabMIT LicenseMIT

MGP

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.

Notes

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}.

Dependencies

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

http://www.gaussianprocess.org/gpml/code/matlab/doc/

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:

https://github.com/rmgarnett/gpml_extensions/

which must also be in your MATLAB path.

Usage

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.