Bare-bones CMA-ES¶
- class pints.BareCMAES(x0, sigma0=0.1, boundaries=None)[source]¶
Finds the best parameters using the CMA-ES method described in [1, 2], using a bare bones re-implementation.
For general use, we recommend the
pints.CMAESoptimiser, which wraps around thecmamodule provided by the authors of CMA-ES. Thecmamodule provides a battle-tested version of the optimiser.The role of this class, is to provide a simpler implementation of only the core algorithm of CMA-ES, which is easier to read and analyse, and which can be used to compare with bare implementations of other methods.
Extends
PopulationBasedOptimiser.References
- ask()[source]¶
See
Optimiser.ask().
- cov(decomposed=False)[source]¶
Returns the current covariance matrix
Cof the proposal distribution.If the optional argument
decomposedis set toTrue, a tuple(R, S)will be returned such thatRcontains the eigenvectors ofCwhileSis a diagonal matrix containing the squares of the eigenvalues ofC, such thatC = R S S R.T.
- f_best()[source]¶
See
Optimiser.f_best().
- n_hyper_parameters()¶
- classmethod name()[source]¶
See
Optimiser.name().
- needs_sensitivities()¶
Returns
Trueif this methods needs sensitivities to be passed in totellalong with the evaluated error.
- population_size()¶
Returns this optimiser’s population size.
If no explicit population size has been set,
Nonemay be returned. Once running, the correct value will always be returned.
- running()[source]¶
See
Optimiser.running().
- set_hyper_parameters(x)¶
The hyper-parameter vector is
[population_size].
- set_population_size(population_size=None)¶
Sets a population size to use in this optimisation.
If population_size is set to
None, the population size will be set using the heuristicsuggested_population_size().
- stop()[source]¶
See
Optimiser.stop().
- suggested_population_size(round_up_to_multiple_of=None)¶
Returns a suggested population size for this method, based on the dimension of the search space (e.g. the parameter space).
If the optional argument
round_up_to_multiple_ofis set to an integer greater than 1, the method will round up the estimate to a multiple of that number. This can be useful to obtain a population size based on e.g. the number of worker processes used to perform objective function evaluations.
- tell(fx)[source]¶
See
Optimiser.tell().
- x_best()[source]¶
See
Optimiser.x_best().