deephyper.skopt.moo#
DeepHyper’s multiobjective features.
DeepHyper solves multiobjective problems via scalarization.
A scalarization is a function that reduces several objectives to a single
target, which can be attained using any of DeepHyper’s existing search
strategies, such as deephyper.hpo.CBO or deephyper.hpo.MPIDistributedBO.
If the user knows the tradeoff point that they would like to attain a priori,
then DeepHyper can use a fixed scalarization by using one of our
5 fixed-weighting scalarization methods.
To do so, when initializing the deephyper.search.Search class, set
moo_scalarization_strategy=["Linear", "Chebyshev", "AugChebyshev", "PBI", "Quadratic"].
Then, set the moo_scalarization_weight to a list of length equal to the
number of objectives, which DeepHyper will use for scalarization.
To interrogate the entire Pareto front, and not just a single tradeoff point,
one will need to solve multiple different scalarizations in parallel.
This can be achieved by using one of the 5 scalarization strategies with
randomized weights.
When initializing the deephyper.search.Search class, set
moo_scalarization_weight=None.
DeepHyper will randomly generate new scalarization weights for each
candidate point.
This can be slightly more expensive than solving with a fixed scalarization
since multiobjective problems are inherently
more difficult than single-objective problems, but using different
scalarizations presents additional opportunity for parallelism.
When training an ensemble of models for prediction, setting 2 objectives
that balance model complexity vs accuracy and using randomized scalarizations
may produce a more diverse set of models.
Based on our experience, we recommend the "[r]AugChebyshev" option for most
applications.
For additional information, the corresponding strategies are documented in
the 5 classes from this module.
We also provide 5 common multiobjective utility functions for calculating
the hypervolume performance metric and extracting
Pareto efficient/non dominated point sets.
Functions
Compute the absolute hypervolume of a pointset according to the reference point ref. |
|
Check if the new objective vector is pareto efficient with respect to previously computed values. |
|
Find the set of non-dominated points. |
|
Find the set of top- |
|
Extract the pareto front (actual objective values of the non-dominated set). |
Classes
This scalarizing function computes a sum of weighted infinity- and 1-norms of the individual objective values (after automatically scaling them in [0, 1]). |
|
This scalarizing function computes a weighted infinity-norm of the individual objective values (after automatically scaling them in [0, 1]). |
|
This scalarizing function linearly combines the individual objective values (after automatically scaling them in [0, 1]). |
|
This scalarizing function computes the projection of the objective vector along a reference vector and adds a penalty term to minimize deviations from the projected point to the attainable objective set. |
|
This scalarizing function quadratically combines the individual objective values (after automatically scaling them in [0, 1]). |
|
Abstract class representing a scalarizing function. |