bayesian_optimization module
Define bayesian optimization algorithms.
- class BayesianOptimizationLW(*, compensating_elements, objective_factory, design_space, compute_beam_propagation, cavity_settings_factory, reference_simulation_output, optimisation_algorithm_kwargs=None, history_kwargs=None, **kwargs)[source]
Bases:
OptimisationAlgorithmBayesian optimization algorithm.
Under the hood, relies on
bayes_opt.BayesianOptimization.The keys defined in
TOMLkey:optimisation_algorithm_kwargsare passed tobayes_opt.BayesianOptimization.maximize().Special keys:
"acquisition"table is used to set the acquisition function. SeeBayesianOptimizationLW.acquisition_function().
- Parameters:
compensating_elements (
Collection[FieldMap])objective_factory (
ObjectiveFactory)design_space (
DesignSpace)compute_beam_propagation (
Callable[[Mapping[FieldMap,CavitySettings]],SimulationOutput])cavity_settings_factory (
CavitySettingsFactory)reference_simulation_output (
SimulationOutput)optimisation_algorithm_kwargs (
dict[str,Any] |None, default:None)
- optimize()[source]
Set up the optimization and solve the problem.
- Return type:
- Returns:
Gives list of solutions, corresponding objective, convergence violation if applicable, etc.
- _to_maximise(**kwargs)[source]
The function to maximize by BO.
This is the classic
OptimisationAlgorithm._norm_wrapper_residuals(), with two adaptations:Multiplied by
-1.0to maximize instead of minimizeTakes arguments as floats instead of numpy array. - Keys are
Variable.__str__()
- Return type:
- acquisition_function()[source]
Get acquisition function.
Todo
Allow for user-defined acquisition function.
We use
kwargsfrom the"acquisition"key. It can look like:[wtf.optimisation_algorithm_kwargs] # arguments passed to `BayesianOptimization.maximize` method [wtf.optimisation_algorithm_kwargs.acquisition] # arguments used to define acquisition function # Name of a func in `bayes_opt.acquisition`: acquisition_name = "UpperConfidenceBound" # Kwargs passed to this function: kwargs = { kappa = 2.576, random_state = 42 }
- Return type:
- _abc_impl = <_abc._abc_data object at 0x7318f91bc300>