Base
AbstractKernel
Bases: Module
Base kernel class.
This class is the base class for all kernels in GPJax. It provides the basic functionality for evaluating a kernel function on a pair of inputs, as well as the ability to combine kernels using addition and multiplication.
The class also provides a method for slicing the input matrix to select the relevant columns for the kernel's evaluation.
Parameters:
-
active_dims(Union[list[int], slice, None], default:None) βthe indices of the input dimensions that are active in the kernel's evaluation, represented by a list of integers or a slice object. Defaults to a full slice.
-
n_dims(Union[int, None], default:None) βthe number of input dimensions of the kernel.
-
compute_engine(AbstractKernelComputation, default:DenseKernelComputation()) βthe computation engine that is used to compute the kernel's cross-covariance and gram matrices. Defaults to DenseKernelComputation.
__call__
abstractmethod
Evaluate the kernel on a pair of inputs.
Parameters:
-
x(Num[Array, ' D']) βthe left hand input of the kernel function.
-
y(Num[Array, ' D']) βThe right hand input of the kernel function.
Returns:
-
ScalarFloatβThe evaluated kernel function at the supplied inputs.
cross_covariance
Compute the cross-covariance matrix of the kernel.
Parameters:
-
x(Num[Array, 'N D']) βthe first input matrix of shape
(N, D). -
y(Num[Array, 'M D']) βthe second input matrix of shape
(M, D).
Returns:
-
Float[Array, 'N M']βThe cross-covariance matrix of the kernel of shape
(N, M).
gram
Compute the gram matrix of the kernel.
Parameters:
-
x(Num[Array, 'N D']) βthe input matrix of shape
(N, D).
Returns:
-
LinearOperatorβThe gram matrix of the kernel of shape
(N, N).
diagonal
Compute the diagonal of the gram matrix of the kernel.
Parameters:
-
x(Num[Array, 'N D']) βthe input matrix of shape
(N, D).
Returns:
-
LinearOperatorβThe diagonal of the gram matrix of the kernel of shape
(N,).
slice_input
Slice out the relevant columns of the input matrix.
Select the relevant columns of the supplied matrix to be used within the kernel's evaluation.
Parameters:
-
x(Float[Array, '... D']) βthe matrix or vector that is to be sliced.
Returns:
-
Float[Array, '... Q']βThe sliced form of the input matrix.
__add__
Add two kernels together. Args: other (AbstractKernel): The kernel to be added to the current kernel.
Returns:
-
AbstractKernel(AbstractKernel) βA new kernel that is the sum of the two kernels.
__mul__
Multiply two kernels together.
Parameters:
-
other(AbstractKernel) βThe kernel to be multiplied with the current kernel.
Returns:
-
AbstractKernel(AbstractKernel) βA new kernel that is the product of the two kernels.
Constant
Bases: AbstractKernel
A constant kernel. This kernel evaluates to a constant for all inputs. The scalar value itself can be treated as a model hyperparameter and learned during training.
cross_covariance
Compute the cross-covariance matrix of the kernel.
Parameters:
-
x(Num[Array, 'N D']) βthe first input matrix of shape
(N, D). -
y(Num[Array, 'M D']) βthe second input matrix of shape
(M, D).
Returns:
-
Float[Array, 'N M']βThe cross-covariance matrix of the kernel of shape
(N, M).
gram
Compute the gram matrix of the kernel.
Parameters:
-
x(Num[Array, 'N D']) βthe input matrix of shape
(N, D).
Returns:
-
LinearOperatorβThe gram matrix of the kernel of shape
(N, N).
diagonal
Compute the diagonal of the gram matrix of the kernel.
Parameters:
-
x(Num[Array, 'N D']) βthe input matrix of shape
(N, D).
Returns:
-
LinearOperatorβThe diagonal of the gram matrix of the kernel of shape
(N,).
slice_input
Slice out the relevant columns of the input matrix.
Select the relevant columns of the supplied matrix to be used within the kernel's evaluation.
Parameters:
-
x(Float[Array, '... D']) βthe matrix or vector that is to be sliced.
Returns:
-
Float[Array, '... Q']βThe sliced form of the input matrix.
__add__
Add two kernels together. Args: other (AbstractKernel): The kernel to be added to the current kernel.
Returns:
-
AbstractKernel(AbstractKernel) βA new kernel that is the sum of the two kernels.
__mul__
Multiply two kernels together.
Parameters:
-
other(AbstractKernel) βThe kernel to be multiplied with the current kernel.
Returns:
-
AbstractKernel(AbstractKernel) βA new kernel that is the product of the two kernels.
__call__
Evaluate the kernel on a pair of inputs.
Parameters:
-
x(Float[Array, ' D']) βThe left hand input of the kernel function.
-
y(Float[Array, ' D']) βThe right hand input of the kernel function.
Returns:
-
ScalarFloat(ScalarFloat) βThe evaluated kernel function at the supplied inputs.
CombinationKernel
Bases: AbstractKernel
A base class for products or sums of MeanFunctions.
cross_covariance
Compute the cross-covariance matrix of the kernel.
Parameters:
-
x(Num[Array, 'N D']) βthe first input matrix of shape
(N, D). -
y(Num[Array, 'M D']) βthe second input matrix of shape
(M, D).
Returns:
-
Float[Array, 'N M']βThe cross-covariance matrix of the kernel of shape
(N, M).
gram
Compute the gram matrix of the kernel.
Parameters:
-
x(Num[Array, 'N D']) βthe input matrix of shape
(N, D).
Returns:
-
LinearOperatorβThe gram matrix of the kernel of shape
(N, N).
diagonal
Compute the diagonal of the gram matrix of the kernel.
Parameters:
-
x(Num[Array, 'N D']) βthe input matrix of shape
(N, D).
Returns:
-
LinearOperatorβThe diagonal of the gram matrix of the kernel of shape
(N,).
slice_input
Slice out the relevant columns of the input matrix.
Select the relevant columns of the supplied matrix to be used within the kernel's evaluation.
Parameters:
-
x(Float[Array, '... D']) βthe matrix or vector that is to be sliced.
Returns:
-
Float[Array, '... Q']βThe sliced form of the input matrix.
__add__
Add two kernels together. Args: other (AbstractKernel): The kernel to be added to the current kernel.
Returns:
-
AbstractKernel(AbstractKernel) βA new kernel that is the sum of the two kernels.
__mul__
Multiply two kernels together.
Parameters:
-
other(AbstractKernel) βThe kernel to be multiplied with the current kernel.
Returns:
-
AbstractKernel(AbstractKernel) βA new kernel that is the product of the two kernels.
__call__
Evaluate the kernel on a pair of inputs.
Parameters:
-
x(Float[Array, ' D']) βThe left hand input of the kernel function.
-
y(Float[Array, ' D']) βThe right hand input of the kernel function.
Returns:
-
ScalarFloat(ScalarFloat) βThe evaluated kernel function at the supplied inputs.