Cyclic optimization refines a batch of candidate points one member at a time. It suits expensive batch Bayesian optimization when directly optimizing a multi-point information objective is difficult. section 7.4.1 section 7.6
A cyclic refinement pass proceeds as follows:
- Hold x2 through xk fixed and optimize x1 with L-BFGS. section 7.4.1
- Move to each subsequent member, optimizing it while keeping the other batch points fixed. section 7.4.1
- Return to x1 after processing xk and repeat complete cycles until the acquisition score no longer increases. section 7.4.1
This coordinate-like strategy replaces one difficult L-BFGS optimization over a full batch with repeated optimizations over individual points. It therefore enables batch maximum-value entropy search (MES). section 7.4.1 section 7.6
Batch hyperparameter tuning with BoTorch
Initialize batch MES with a GP model, a Sobol candidate set, search bounds, and batch size q. Replace optimize_acqf() with botorch.optim.optimize_acqf_cyclic(policy, bounds=bounds, q=batch_size, num_restarts=40, raw_samples=100). A GP model used for MES must support fantasized future observations through FantasizeMixin. section 7.4.2 section 7.4.2
Figure 7.17 Flowchart of cyclic optimization used in finding the batch that maximizes information about the maximum objective value in batch MES. The procedure is cyclic in that we sequentially refine each member of the batch in a cycle until we converge on a good acquisition score.
Use the flowchart to trace point-by-point refinement through repeated cycles until the acquisition score converges. section 7.4.1
