pybop.optimisers.pints_optimisers#
Classes#
Implements the Adam optimization algorithm. |
|
Implements the AdamW optimisation algorithm in PyBOP. |
|
Adapter for the Covariance Matrix Adaptation Evolution Strategy (CMA-ES) optimiser in PINTS. |
|
Adapter for the Cuckoo Search optimiser in PyBOP. |
|
Implements a simple gradient descent optimization algorithm. |
|
Implements the iRpropMin optimization algorithm. |
|
Implements the Nelder-Mead downhill simplex method from PINTS. |
|
Implements a particle swarm optimization (PSO) algorithm. |
|
Implements the stochastic natural evolution strategy (SNES) optimization algorithm. |
|
Implements the Exponential Natural Evolution Strategy (XNES) optimiser from PINTS. |
Module Contents#
- class pybop.optimisers.pints_optimisers.Adam(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserImplements the Adam optimization algorithm.
This class extends the Adam optimiser from the PINTS library, which combines ideas from RMSProp and Stochastic Gradient Descent with momentum. Note that this optimiser does not support boundary constraints.
- Parameters:
**optimiser_kwargs (optional) –
Valid PINTS option keys and their values, for example: x0 : array_like
Initial position from which optimisation will start.
- sigma0float
Initial step size.
See also
pints.AdamThe PINTS implementation this class is based on.
- class pybop.optimisers.pints_optimisers.AdamW(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserImplements the AdamW optimisation algorithm in PyBOP.
This class extends the AdamW optimiser, which is a variant of the Adam optimiser that incorporates weight decay. AdamW is designed to be more robust and stable for training deep neural networks, particularly when using larger learning rates.
- Parameters:
**optimiser_kwargs (optional) –
Valid PyBOP option keys and their values, for example: x0 : array_like
Initial position from which optimisation will start.
- sigma0float
Initial step size.
See also
pybop.AdamWImplThe PyBOP implementation this class is based on.
- class pybop.optimisers.pints_optimisers.CMAES(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserAdapter for the Covariance Matrix Adaptation Evolution Strategy (CMA-ES) optimiser in PINTS.
CMA-ES is an evolutionary algorithm for difficult non-linear non-convex optimization problems. It adapts the covariance matrix of a multivariate normal distribution to capture the shape of the cost landscape.
- Parameters:
**optimiser_kwargs (optional) –
Valid PINTS option keys and their values, for example: x0 : array_like
The initial parameter vector to optimise.
- sigma0float
Initial standard deviation of the sampling distribution.
- boundsdict
A dictionary with ‘lower’ and ‘upper’ keys containing arrays for lower and upper bounds on the parameters. If
None, no bounds are enforced.
See also
pints.CMAESPINTS implementation of CMA-ES algorithm.
- class pybop.optimisers.pints_optimisers.CuckooSearch(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserAdapter for the Cuckoo Search optimiser in PyBOP.
Cuckoo Search is a population-based optimisation algorithm inspired by the brood parasitism of some cuckoo species. It is designed to be simple, efficient, and robust, and is suitable for global optimisation problems.
- Parameters:
**optimiser_kwargs (optional) –
Valid PyBOP option keys and their values, for example: x0 : array_like
Initial parameter values.
- sigma0float
Initial step size.
- boundsdict
A dictionary with ‘lower’ and ‘upper’ keys containing arrays for lower and upper bounds on the parameters.
See also
pybop.CuckooSearchPyBOP implementation of Cuckoo Search algorithm.
- class pybop.optimisers.pints_optimisers.GradientDescent(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserImplements a simple gradient descent optimization algorithm.
This class extends the gradient descent optimiser from the PINTS library, designed to minimize a scalar function of one or more variables. Note that this optimiser does not support boundary constraints.
- Parameters:
**optimiser_kwargs (optional) –
Valid PINTS option keys and their values, for example: x0 : array_like
Initial position from which optimisation will start.
- sigma0float
The learning rate / Initial step size (default: 0.02).
See also
pints.GradientDescentThe PINTS implementation this class is based on.
- class pybop.optimisers.pints_optimisers.IRPropMin(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserImplements the iRpropMin optimization algorithm.
This class inherits from the PINTS IRPropMin class, which is an optimiser that uses resilient backpropagation with weight-backtracking. It is designed to handle problems with large plateaus, noisy gradients, and local minima.
- Parameters:
**optimiser_kwargs (optional) –
Valid PINTS option keys and their values, for example: x0 : array_like
Initial position from which optimisation will start.
- sigma0float
Initial step size.
- boundsdict
A dictionary with ‘lower’ and ‘upper’ keys containing arrays for lower and upper bounds on the parameters.
See also
pints.IRPropMinThe PINTS implementation this class is based on.
- class pybop.optimisers.pints_optimisers.NelderMead(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserImplements the Nelder-Mead downhill simplex method from PINTS.
This is a deterministic local optimiser. In most update steps it performs either one evaluation, or two sequential evaluations, so that it will not typically benefit from parallelisation.
- Parameters:
**optimiser_kwargs (optional) –
Valid PINTS option keys and their values, for example: x0 : array_like
The initial parameter vector to optimise.
- sigma0float
Initial standard deviation of the sampling distribution. Does not appear to be used.
See also
pints.NelderMeadPINTS implementation of Nelder-Mead algorithm.
- class pybop.optimisers.pints_optimisers.PSO(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserImplements a particle swarm optimization (PSO) algorithm.
This class extends the PSO optimiser from the PINTS library. PSO is a metaheuristic optimization method inspired by the social behavior of birds flocking or fish schooling, suitable for global optimization problems.
- Parameters:
**optimiser_kwargs (optional) –
Valid PINTS option keys and their values, for example: x0 : array_like
Initial positions of particles, which the optimisation will use.
- sigma0float
Spread of the initial particle positions.
- boundsdict
A dictionary with ‘lower’ and ‘upper’ keys containing arrays for lower and upper bounds on the parameters.
See also
pints.PSOThe PINTS implementation this class is based on.
- class pybop.optimisers.pints_optimisers.SNES(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserImplements the stochastic natural evolution strategy (SNES) optimization algorithm.
Inheriting from the PINTS SNES class, this optimiser is an evolutionary algorithm that evolves a probability distribution on the parameter space, guiding the search for the optimum based on the natural gradient of expected fitness.
- Parameters:
**optimiser_kwargs (optional) –
Valid PINTS option keys and their values, for example: x0 : array_like
Initial position from which optimisation will start.
- sigma0float
Initial standard deviation of the sampling distribution.
- boundsdict
A dictionary with ‘lower’ and ‘upper’ keys containing arrays for lower and upper bounds on the parameters.
See also
pints.SNESThe PINTS implementation this class is based on.
- class pybop.optimisers.pints_optimisers.XNES(cost, **optimiser_kwargs)[source]#
Bases:
pybop.BasePintsOptimiserImplements the Exponential Natural Evolution Strategy (XNES) optimiser from PINTS.
XNES is an evolutionary algorithm that samples from a multivariate normal distribution, which is updated iteratively to fit the distribution of successful solutions.
- Parameters:
**optimiser_kwargs (optional) –
Valid PINTS option keys and their values, for example: x0 : array_like
The initial parameter vector to optimise.
- sigma0float
Initial standard deviation of the sampling distribution.
- boundsdict
A dictionary with ‘lower’ and ‘upper’ keys containing arrays for lower and upperbounds on the parameters. If
None, no bounds are enforced.
See also
pints.XNESPINTS implementation of XNES algorithm.