Skip to content

jaxglobal.kernels

Gaussian-process covariance functions as primitives of the squared distance.

Write a GP kernel with these instead of its jnp formula to get tight bounds. d = sum_j ((x_j - x'_j) / l_j)**2 is the weighted squared distance, and each function is k(d) with unit variance:

  • matern12(d) = exp(-sqrt(d))
  • matern32(d) = (1 + sqrt(3 d)) exp(-sqrt(3 d))
  • matern52(d) = (1 + sqrt(5 d) + 5 d / 3) exp(-sqrt(5 d))
  • se(d) = exp(-d / 2)

Written in jnp, the Matérn kernels are relaxed factor by factor (a polynomial in sqrt(d) times an exponential), which is very loose, and their automatic second derivative goes through sqrt(d), so the alphaBB Hessian is infinite at every training point. As primitives, each k is one convex, nonincreasing function of d [schweidtmann2021deterministic], so its McCormick rule is the convex function at the concave overestimator of d and the secant, its envelopes. Its derivatives k' (concave, nondecreasing) and k'' (convex, nonincreasing) are primitives too, so autodiff never goes through sqrt(d). k'' is finite at d = 0 for matern52 and se only; those two are marked smooth for alphaBB.