# Welcome to GPJax!#

GPJax is a didactic Gaussian process library that supports GPU acceleration and just-in-time compilation. We seek to provide a flexible API as close as possible to how the underlying mathematics is written on paper to enable researchers to rapidly prototype and develop new ideas. You can view the source code for GPJax here on Github.

## ‘Hello World’ example#

Defining a Gaussian process posterior is simple as typing the maths we would write on paper.

import gpjax as gpx

kernel = gpx.kernels.RBF()
prior = gpx.gps.Prior(kernel = kernel)

likelihood = gpx.likelihoods.Gaussian(num_datapoints = 123)

posterior = prior * likelihood


For comparison, the corresponding model could be written as

\begin{split} \begin{align} k(\cdot, \cdot') & = \sigma^2\exp\left(-\frac{\lVert \cdot- \cdot'\rVert_2^2}{2\ell^2}\right)\\ p(f(\cdot)) & = \mathcal{GP}(\mathbf{0}, k(\cdot, \cdot')) \\ p(y\,|\, f(\cdot)) & = \mathcal{N}(y\,|\, f(\cdot), \sigma_n^2) \\ p(f(\cdot) \,|\, y) & \propto p(f(\cdot))p(y\,|\, f(\cdot))\,. \end{align} \end{split}

To learn more, checkout the regression notebook.

# Bibliography#

BAT+21

Viacheslav Borovitskiy, Iskander Azangulov, Alexander Terenin, Peter Mostowsky, Marc Deisenroth, and Nicolas Durrande. Matern Gaussian processes on graphs. In International Conference on Artificial Intelligence and Statistics. 2021.

HFL13

James Hensman, Nicolo Fusi, and Neil D Lawrence. Gaussian processes for big data. arXiv preprint arXiv:1309.6835, 2013.

HMG15

James Hensman, Alexander Matthews, and Zoubin Ghahramani. Scalable variational Gaussian process classification. In Proceedings of the Eighteenth International Conference on Artificial Intelligence and Statistics, volume 38 of Proceedings of Machine Learning Research, 351–360. PMLR, 2015.

LDJD20

Felix Leibfried, Vincent Dutordoir, ST John, and Nicolas Durrande. A tutorial on sparse Gaussian processes and variational inference. arXiv preprint arXiv:2012.13962, 2020.

MF17

Anton Mallasto and Aasa Feragen. Learning from uncertain curves: the 2-Wasserstein metric for Gaussian processes. Advances in Neural Information Processing Systems, 2017.

QuinoneroCR05

Joaquin Quiñonero-Candela and Carl Edward Rasmussen. A unifying view of sparse approximate Gaussian process regression. Journal of Machine Learning Research, 6(65):1939–1959, 2005.

RW06

Carl Edward Rasmussen and Christopher K Williams. Gaussian processes for machine learning. Volume 2. MIT press Cambridge, MA, 2006.

Tit09

Michalis Titsias. Variational learning of inducing variables in sparse Gaussian processes. In Proceedings of the Twelth International Conference on Artificial Intelligence and Statistics, volume 5 of Proceedings of Machine Learning Research, 567–574. PMLR, 2009.

WHSX16

Andrew Gordon Wilson, Zhiting Hu, Ruslan Salakhutdinov, and Eric P Xing. Deep kernel learning. In Artificial intelligence and statistics, 370–378. PMLR, 2016.