Grid Method#
The grid
search method generates trials on a “grid” of hyperparameter configurations and trains
each trial to completion. The user specifies a set of values for each hyperparameter via the
hyperparameters
field in the experiment configuration. The “grid” of hyperparameter configurations is
generated by taking the product of these sets.
For example, if the set of values for three separate hyperparameters aparam
, bparam
, and
cparam
are specified as {0, 1, 2}
, {10, 20}
, and {"c"}
respectively, then the grid
of tuples (aparam, bparam, cparam)
generated is:
(0, 10, "c")
(0, 20, "c")
(1, 10, "c")
(1, 20, "c")
(2, 10, "c")
(2, 20, "c")
The way the set of hyperparameter values is specified depends on the type of hyperparameter:
const
: The set of values contains just the single value. For example,cparam
above could be specified as aconst
hyperparameter withval: c
.categorical
: The set of values is exactly the set of categorical values. For example,bparam
above could be specified as acategorical
hyperparameter withvals: [10, 20]
.int
: The set ofcount
values is taken evenly from the range[minval, maxval]
, inclusive of endpoints. Ifcount
is larger than the number of integer values in the range, that is interpreted as the entire range of integers in[minval, maxval]
. For example,aparam
above could be specified as anint
hyperparameter withminval: 0
,maxval: 2
, andcount: 3
orcount: 100
.double
: The set ofcount
values is taken evenly from the range[minval, maxval]
, inclusive of endpoints. The set{0.1, 0.3, 0.5}
could be specified as adouble
hyperparameter withminval: 0.1
,maxval: 0.5
,count: 3
.log
: The set ofcount
values is taken logarithmically evenly from the range[base^minval, base^maxval]
, inclusive of endpoints. For example, the set{0.00001, 0.0001, 0.001}
could be specified as alog
hyperparameter withbase: 10
,minval: -5
,maxval: -3
, andcount: 3
.
In the special case of count: 1
for int
, double
, or log
, the midpoint (with rounding
for int
and with base midpoint for log
) is returned.