Gaussian Process Regression (GPR) is a non-parametric Bayesian method that places a distribution directly over functions, giving predictions with calibrated uncertainty. Training reduces to fitting a few kernel hyperparameters by maximising the marginal likelihood.


1. Choose Kernel

$$ k(\mathbf{x}_i, \mathbf{x}_j) = \sigma_f^2 \exp\left(-\frac{\lVert \mathbf{x}_i - \mathbf{x}_j \rVert^2}{2\ell^2}\right) $$

2. Place Gaussian Process Prior

$$ P(\mathbf{f} \mid \mathbf{X}) = \mathcal{N}(\mathbf{f} \mid \mathbf{0}, \mathbf{K}) $$

3. Relate Observations by Additive Noise

$$ \mathbf{y} = \mathbf{f} + \boldsymbol{\varepsilon}, \qquad \boldsymbol{\varepsilon} \sim \mathcal{N}(\mathbf{0}, \sigma_n^2 \mathbf{I}), \qquad \mathbf{K}_y = \mathbf{K} + \sigma_n^2 \mathbf{I} $$

4. Train by Maximising Log Marginal Likelihood

$$ \boldsymbol{\theta}^* = \arg\max_{\boldsymbol{\theta}} \log P(\mathbf{y} \mid \mathbf{X}) $$

$$ \log P(\mathbf{y} \mid \mathbf{X}) = \underbrace{-\tfrac{1}{2} \mathbf{y}^\top \mathbf{K}y^{-1} \mathbf{y}}{\text{data fit}} - \underbrace{\tfrac{1}{2} \log \lvert \mathbf{K}y \rvert}{\text{complexity penalty}} - \underbrace{\tfrac{n}{2} \log 2\pi}_{\text{constant}} $$

5. Form Test Covariances

$$ \mathbf{K}* = \mathbf{K}(\mathbf{X}, \mathbf{X}), \qquad \mathbf{K}{**} = \mathbf{K}(\mathbf{X}, \mathbf{X}_*) $$

6. Predict Mean and Uncertainty

$$ \bar{\mathbf{f}}* = \mathbf{K}^\top \mathbf{K}y^{-1} \mathbf{y}, \qquad \mathrm{cov}(\mathbf{f}) = \mathbf{K}{**} - \mathbf{K}^\top \mathbf{K}y^{-1} \mathbf{K} $$