Skip to content

Design of Experiment

arturluis edited this page Jun 26, 2020 · 11 revisions

When using Bayesian Optimization, HyperMapper always starts its optimization with a Design of Experiment (DoE) phase. In the DoE phase, HyperMapper selects a number of samples to evaluate in order to initialize its models, before starting the bayesian optimization loop. How HyperMapper chooses the points to explore during DoE depends on the type of DoE used. Currently, HyperMapper supports four different DoE methods: Random Sampling, Standard Latin Hypercube, K Latin Hypercube, and Grid Search. The DoE method used and the number of samples drawn during the DoE phase are controlled by the design_of_experiment field in the json scenario file:

"design_of_experiment": {
    "doe_type": "random sampling",
    "number_of_samples": 1000
  }

In HyperMapper's json schema, the DoE methods are called:

  • random sampling
  • standard latin hypercube
  • k latin hypercube
  • grid_search

The number_of_samples field can be any positive integer. For more details, see the Json Parameters page.

Grid Search DoE

The grid search DoE has a different behavior compared to the other DoE methods of HyperMapper. The grid search method is not used to initialize HyperMapper's models, instead, it is meant to be used as standalone method of exploring the parameter space. When grid search is selected as DoE, HyperMapper will ignore the number_of_samples field and instead explore all of the possible parameter combinations in the search space. Because of this, if grid search is used as DoE, HyperMapper will automatically set the number of bayesian optimization iterations to 0. Grid search should be used only for small search spaces, otherwise the number of parameter combinations can lead to excessively long optimization times.

Note. For real parameters, grid search will discretize the parameter range into 10 equally spaced values. If a different discretization is preferred, we recommend encoding the real parameter as an ordinal or categorical parameter instead.

Clone this wiki locally