OrthogonalAdditiveKernel#

class gpjax.kernels.OrthogonalAdditiveKernel(base_kernels, max_order=None, order_variances=None, fix_base_variance=True, compute_engine=<gpjax.kernels.computations.dense.DenseKernelComputation object>)[source]#

Bases: AbstractKernel

Orthogonal Additive Kernel (OAK).

Wraps D one-dimensional SE base kernels with an orthogonality constraint (under standard normal input density) and combines them via Newton-Girard into an additive kernel with configurable maximum interaction order.

The kernel decomposes as:

K = sum_{l=0}^{D_tilde} sigma^2_l * E_l

where E_l is the l-th elementary symmetric polynomial of the D constrained base kernel evaluations, and sigma^2_l are learnable order variances.

Reference:

Lu, X., Boukouvalas, A., & Hensman, J. (2022). Additive Gaussian Processes Revisited. ICML.

Parameters:
  • base_kernels (tuple) – List of D one-dimensional base kernels (typically RBF with active_dims=[i] for each dimension i). Each must have lengthscale and variance attributes.

  • max_order (int) – Maximum interaction order (D_tilde). Defaults to D. Must be <= D.

  • order_variances (Any) – Initial order variances of shape (max_order + 1,). Entry 0 is the offset variance, entry d is the d-th order interaction variance. Defaults to ones.

  • fix_base_variance (bool) – If True (default), pin every base-kernel variance to 1 so that order_variances alone control per-order scaling. This avoids over-parameterisation and matches the reference (Lu et al. 2022, S3.2).

  • compute_engine (AbstractKernelComputation) – Kernel computation engine. Defaults to DenseKernelComputation.

See also

Orthogonal Additive Kernels decomposes a fitted model into its per-order and per-dimension contributions.