smac.optimizer.subspaces.turbo_subspace

Classes

TuRBOSubSpace(config_space, bounds, hps_types)

Subspace designed for TurBO:

class smac.optimizer.subspaces.turbo_subspace.TuRBOSubSpace(config_space, bounds, hps_types, bounds_ss_cont=None, bounds_ss_cat=None, model_local=<class 'smac.epm.gaussian_process.gpytorch.GPyTorchGaussianProcess'>, model_local_kwargs={}, acq_func_local=<class 'smac.optimizer.acquisition.TS'>, acq_func_local_kwargs=None, rng=None, initial_data=None, activate_dims=None, incumbent_array=None, length_init=0.8, length_min=0.0078125, length_max=1.6, success_tol=3, failure_tol_min=4, n_init_x_params=2, n_candidate_max=5000)[source]

Bases: smac.optimizer.subspaces.LocalSubspace

Subspace designed for TurBO:

D. Eriksson et al. Scalable Global Optimization via Local Bayesian Optimization https://proceedings.neurips.cc/paper/2019/hash/6c990b7aca7bc7058f5e98ea909e924b-Abstract.html

The hyperparameters follow the illustration under supplementary D, TuRBO details.

Parameters
  • length_init (float) – initialized length of subspace

  • length_min (float) – the minimal length of subspace, if the subspace has a length smaller than this value, turbo will restart

  • length_max (float) – the maximal length of subspace

  • success_tol (float) – the number of successive successful evaluations required for expanding the subregion

  • failure_tol_min (float) – the minimal number of successive successful evaluations required for shrinking the subregion (otherwise this value is set as number of feature dimensions)

  • n_init_x_params (int) – how many configurations will be used at most in the initial design (X*D). Used for restarting the subspace

  • n_candidate_max (int) – The maximal Number of points used as candidates

add_new_observations(X, y)[source]

Add new observations to the subspace, meanwhile, we add the number of valid observation to ensure that the subspace could be scaled properly.

Parameters
  • X (np.ndarray(N,D),) – new feature vector of the observations, constructed by the global configuration space

  • y (np.ndarray(N)) – new performances of the observations

Returns

indices_in_ss – indices of data that included in subspaces

Return type

np.ndarray(N)

adjust_length(new_observation)[source]

Adjust the subspace length according to the performance of the latest suggested values :type new_observation: Union[float, ndarray] :param new_observation: new observations :type new_observation: Union[float, np.ndarray]

Return type

None