sift.kernels.RBFKernel#

class sift.kernels.RBFKernel(length_scale=1.0, ignore_self=False, **kwargs)[source]#

Radial basis function kernel (aka squared-exponential kernel).

The RBFKernel kernel is a stationary kernel. It is also known as the “squared exponential” kernel. It is parameterized by a length scale parameter \(l>0\), which can either be a scalar (isotropic variant of the kernel) or a vector with the same number of dimensions as the inputs X (anisotropic variant of the kernel). The kernel is given by:

\[k(x_i, x_j) = \exp\left(- \frac{d(x_i, x_j)^2}{2l^2} \right)\]

where \(l\) is the length scale of the kernel and \(d(x_i,x_j)\) is the Euclidean distance.

For advice on how to set the length scale parameter, see e.g. [Duvenaud, 2014], Chapter 2. This kernel is infinitely differentiable, which implies that GPs with this kernel as covariance function have mean square derivatives of all orders, and are thus very smooth. See [Rasmussen and Williams, 2005], Chapter 4, Section 4.2, for further details.

Parameters:
  • length_scale (float) – The length scale.

  • ignore_self (bool) – Whether to ignore self transitions.

  • kwargs (Any) – Keyword arguments for the parent class.

Attributes table#

backend

The kernel's pykeops backend.

device

The kernel's device.

dtype

The kernel's data type.

k

The instantiated kernel object.

Methods table#

Attributes#

backend#

RBFKernel.backend#

The kernel’s pykeops backend.

Can be either torch or numpy.

device#

RBFKernel.device#

The kernel’s device.

dtype#

RBFKernel.dtype#

The kernel’s data type.

k#

RBFKernel.k#

The instantiated kernel object.

Methods#