Kernels

Kernels#

Bayesian search uses a Matérn kernel with nu=0.5 by default. RBF and Matérn kernels accept scalar initial length scales; Bayesian search maintains and tunes per-dimension ARD length scales in optimizer state.

from hyperoptax import BayesianSearch, Matern, RBF

state, optimizer = BayesianSearch.init(
    space,
    n_max=80,
    kernel=Matern(length_scale=1.0, nu=1.5),
)

rbf = RBF(length_scale=0.5)

The supported Matérn smoothness values are 0.5, 1.5, 2.5, and float("inf"). The infinite-smoothness case is equivalent to RBF.

API#

hyperoptax.kernels.cdist(x, y)[source]#

Pairwise Euclidean distance (cdist) between two 2-D arrays.

Parameters:
  • x (jax.Array) – Arrays with shape (N, D) and (M, D), respectively.

  • y (jax.Array) – Arrays with shape (N, D) and (M, D), respectively.

Returns:

A distance matrix of shape (N, M).

Return type:

jax.Array

class hyperoptax.kernels.BaseKernel[source]#

Bases: ABC

Abstract base class for positive-definite kernels.

class hyperoptax.kernels.RBF(length_scale=1.0)[source]#

Bases: BaseKernel

Radial basis function (RBF) / squared-exponential kernel.

Parameters:

length_scale (float)

class hyperoptax.kernels.Matern(length_scale=1.0, nu=2.5)[source]#

Bases: BaseKernel

Matern kernel family.

Parameters:
  • length_scale (float, default = 1.0) – Characteristic length scale.

  • nu (float, default = 2.5) – Controls smoothness (nu ∈ {0.5, 1.5, 2.5, ∞}).