GaussianProcess

class probnum.randprocs.GaussianProcess(mean, cov)

Bases: probnum.randprocs.RandomProcess[Union[numpy.floating, numpy.ndarray], Union[numpy.floating, numpy.ndarray]]

Gaussian processes.

A Gaussian process is a continuous stochastic process which if evaluated at a finite set of inputs returns a random variable with a normal distribution. Gaussian processes are fully characterized by their mean and covariance function.

Parameters

See also

RandomProcess

Random processes.

MarkovProcess

Random processes with the Markov property.

Examples

Define a Gaussian process with a zero mean function and RBF kernel.

>>> import numpy as np
>>> from probnum.kernels import ExpQuad
>>> from probnum.randprocs import GaussianProcess
>>> mu = lambda x : np.zeros_like(x)  # zero-mean function
>>> k = ExpQuad(input_dim=1)  # RBF kernel
>>> gp = GaussianProcess(mu, k)

Sample from the Gaussian process.

>>> x = np.linspace(-1, 1, 5)[:, None]
>>> rng = np.random.default_rng(seed=42)
>>> gp.sample(rng, x)
array([[-0.7539949 ],
       [-0.6658092 ],
       [-0.52972512],
       [ 0.0674298 ],
       [ 0.72066223]])
>>> gp.covmatrix(x)
array([[1.        , 0.8824969 , 0.60653066, 0.32465247, 0.13533528],
       [0.8824969 , 1.        , 0.8824969 , 0.60653066, 0.32465247],
       [0.60653066, 0.8824969 , 1.        , 0.8824969 , 0.60653066],
       [0.32465247, 0.60653066, 0.8824969 , 1.        , 0.8824969 ],
       [0.13533528, 0.32465247, 0.60653066, 0.8824969 , 1.        ]])

Attributes Summary

dtype

Data type of (elements of) the random process evaluated at an input.

input_dim

Shape of inputs to the random process.

output_dim

Shape of the random process evaluated at an input.

Methods Summary

__call__(args)

Evaluate the random process at a set of input arguments.

cov(args0[, args1])

Covariance function or kernel.

covmatrix(args0[, args1])

A convenience function for the covariance matrix of two sets of inputs.

marginal(args)

Batch of random variables defining the marginal distributions at the inputs.

mean(args)

Mean function.

push_forward(args, base_measure, sample)

Transform samples from a base measure into samples from the random process.

sample(rng[, args, size])

Sample paths from the random process.

std(args)

Standard deviation function.

var(args)

Variance function.

Attributes Documentation

dtype

Data type of (elements of) the random process evaluated at an input.

Return type

dtype

input_dim

Shape of inputs to the random process.

Return type

int

output_dim

Shape of the random process evaluated at an input.

Return type

int

Methods Documentation

__call__(args)[source]

Evaluate the random process at a set of input arguments.

Parameters

args (Union[floating, ndarray]) – shape=(input_dim,) or (n, input_dim) – Input(s) to evaluate random process at.

Returns

shape=(), (output_dim,) or (n, output_dim) – Random process evaluated at the inputs.

Return type

randvars.RandomVariable

cov(args0, args1=None)[source]

Covariance function or kernel.

Returns the covariance function \(\operatorname{Cov}(f(x_0), f(x_1)) = \mathbb{E}[(f(x_0) - \mathbb{E}[f(x_0)])(f(x_0) - \mathbb{E}[f( x_0)])^\top]\) of the process evaluated at \(x_0\) and \(x_1\). If only args0 is given the covariance among the components of the random process at the inputs defined by args0 is computed.

Parameters
  • args0 (Union[floating, ndarray]) – shape=(input_dim,) or (n0, input_dim) – First input to the covariance function.

  • args1 (Union[floating, ndarray, None]) – shape=(input_dim,) or (n1, input_dim) – Second input to the covariance function.

Returns

shape=(), (output_dim, output_dim), (n0, n1) or (n0, n1, output_dim, output_dim) – Covariance of the process at args0 and args1. If only args0 is given the kernel matrix \(K=k(x_0, x_0)\) is computed.

Return type

_OutputType

covmatrix(args0, args1=None)[source]

A convenience function for the covariance matrix of two sets of inputs.

This is syntactic sugar for proc.cov(x0[:, None, :], x1[None, :, :]). Hence, it computes the matrix of pairwise covariances between two sets of input points.

Parameters
  • x0 (array-like) – First set of inputs to the covariance function as an array of shape (M, D), where D is either 1 or input_dim.

  • x1 (array-like) – Optional second set of inputs to the covariance function as an array of shape (N, D), where D is either 1 or input_dim. If x1 is not specified, the function behaves as if x1 = x0.

Returns

kernmat – The matrix / stack of matrices containing the pairwise evaluations of the covariance function(s) on x0 and x1 as an array of shape (M, N) if shape is () or (S[l - 1], ..., S[1], S[0], M, N), where S is shape if shape is non-empty.

Return type

numpy.ndarray

Raises

ValueError – If the shapes of the inputs don’t match the specification.

See also

RandomProcess.cov

Evaluate the kernel more flexibly.

Examples

See documentation of class Kernel.

marginal(args)

Batch of random variables defining the marginal distributions at the inputs.

Parameters

args (~InputType) – shape=(input_dim,) or (n, input_dim) – Input(s) to evaluate random process at.

Return type

_RandomVariableList

mean(args)[source]

Mean function.

Returns the mean function evaluated at the given input(s).

Parameters

args (Union[floating, ndarray]) – shape=(input_dim,) or (n, input_dim) – Input(s) where the mean function is evaluated.

Returns

shape=(), (output_dim, ) or (n, output_dim) – Mean function of the process evaluated at inputs x.

Return type

_OutputType

push_forward(args, base_measure, sample)[source]

Transform samples from a base measure into samples from the random process.

This function can be used to control sampling from the random process by explicitly passing samples from a base measure evaluated at the input arguments.

Parameters
  • args (Union[floating, ndarray]) – Input arguments.

  • base_measure (Type[RandomVariable]) – Base measure. Given as a type of random variable.

  • sample (ndarray) – shape=(sample_size, output_dim) – Sample(s) from a base measure evaluated at the input arguments.

Return type

ndarray

sample(rng, args=None, size=())

Sample paths from the random process.

If no inputs are provided this function returns sample paths which are callables, otherwise random variables corresponding to the input locations are returned.

Parameters
Return type

Union[Callable[[~InputType], ~OutputType], ~OutputType]

std(args)

Standard deviation function.

Parameters

args (~InputType) – shape=(input_dim,) or (n, input_dim) – Input(s) to the standard deviation function.

Returns

shape=(), (output_dim,) or (n, output_dim) – Standard deviation of the process at args.

Return type

_OutputType

var(args)

Variance function.

Returns the variance function which is the value of the covariance or kernel evaluated elementwise at args for each output dimension separately.

Parameters

args (~InputType) – shape=(input_dim,) or (n, input_dim) – Input(s) to the variance function.

Returns

shape=(), (output_dim,) or (n, output_dim) – Variance of the process at args.

Return type

_OutputType