optimize_acqf_cyclic is a BoTorch helper for selecting a batch when jointly optimizing an acquisition function is computationally difficult. It improves individual candidates in the current batch one at a time, cycling through them until the acquisition score converges. section 7.6
Use it in a batch Bayesian optimization workflow by:
- Initializing the acquisition policy and any candidate set required by the policy, such as Sobol samples for batch MES. section 7.4.2
- Passing the policy, search bounds, and desired batch size through the shared BoTorch optimization interface. section 7.4.2
- Setting q to the number of parallel queries and providing restart and raw-sample settings for acquisition optimization. section 7.4.2 section 7.6
Batch MES call
A batch maximum-value entropy search policy can replace optimize_acqf() with optimize_acqf_cyclic() while retaining arguments such as bounds and q: next_x, acq_val = botorch.optim.optimize_acqf_cyclic(policy, bounds=bounds, q=batch_size, num_restarts=40, raw_samples=100). section 7.4.2
next_x, acq_val = botorch.optim.optimize_acqf_cyclic(
policy,
bounds=bounds,
q=batch_size,
num_restarts=40,
raw_samples=100,
)
Inspect the reusable BoTorch invocation for cyclic batch acquisition optimization. section 7.4.2
