bayex.optimizer.Optimizer#

class bayex.optimizer.Optimizer(domain, acq='EI', maximize=False)#

Bayesian optimizer using Gaussian Processes and acquisition functions.

This class manages the optimization loop for expensive black-box functions by modeling them with a Gaussian Process and selecting samples via acquisition functions such as EI, PI, UCB, or LCB.

__init__(domain, acq='EI', maximize=False)#

Initializes the optimizer.

Parameters:
  • domain (dict) – A dict mapping parameter names to domain objects (e.g., Real, Integer).

  • acq (str) – Acquisition function (‘EI’, ‘PI’, ‘UCB’, ‘LCB’).

  • maximize (bool) – Whether to maximize or minimize the objective.

Methods

__init__(domain[, acq, maximize])

Initializes the optimizer.

expand(opt_state)

Expands internal buffers if no space is available.

fit(opt_state, y, new_params)

Updates optimizer state with a new observation.

init(ys, params[, noise_scale])

Initializes the optimizer state from initial data.

sample(key, state[, size])

Samples new parameters using the acquisition function.

expand(opt_state)#

Expands internal buffers if no space is available.

Parameters:

opt_state (OptimizerState) – Current optimizer state.

Returns:

OptimizerState with expanded storage.

fit(opt_state, y, new_params)#

Updates optimizer state with a new observation.

Parameters:
  • opt_state – Current optimizer state.

  • y – New objective value.

  • new_params – Parameters that produced y.

Returns:

Updated OptimizerState.

init(ys, params, noise_scale=-8.0)#

Initializes the optimizer state from initial data.

Parameters:
  • ys (Array) – Objective values for the initial parameters.

  • params (dict) – Dict of parameter arrays (same keys as domain).

Returns:

Initialized OptimizerState.

sample(key, state, size=10000)#

Samples new parameters using the acquisition function.

Parameters:
  • key – JAX PseudoRandom key for random sampling.

  • opt_state – Current optimizer state.

  • size – Number of samples to draw.

  • has_prior – If True, also return GP predictions.

Returns:

Sampled parameters (dict), and optionally (xs_samples, means, stds).