6.2.5. Generator, Selector, Spawning¶
6.2.5.1. Initial parameters generator¶
When a new optimizer is started, the initial parameters can be controlled with the Generator
block which follows the general pattern:
Generator
ExploreExploit
Focus float
MaxFunctionCalls integer
End
Perturbation
StandardDeviation float
End
Type [Incumbent | ExploreExploit | Perturbation | Random | SinglePoint]
End
Generator
- Type:
Block
- GUI name:
Starting point generator:
- Description:
A Generator used to produce x0 starting points for the optimizers.
ExploreExploit
- Type:
Block
- Description:
Blends a randomly generated point with the location of an existing optimizer, based on the time progress through the optimization. The optimizer is chosen based on a weighted roulette selection based on their function value. Early in the optimization optimizers are started randomly, and later they are started near previously found good minima.
Focus
- Type:
Float
- Default value:
1.0
- Description:
The blend parameter between random point and incumbent points. Used as follows: p=(f_calls / max_f_calls) ** focus
MaxFunctionCalls
- Type:
Integer
- Description:
Maximum function calls allowed for the optimization, at and beyond this point there is a 100% chance that a previously evaluated point will be returned by the generator. If the optimization is not limited by the number of function calls, provide an estimate.
Perturbation
- Type:
Block
- Description:
Randomly generates parameter vectors from a multivariate normal distribution around the starting parameters.
StandardDeviation
- Type:
Float
- Default value:
0.2
- Description:
Standard deviation of the multivariate normal distribution. Used here to control how wide the generator should explore around the starting parameters.
Type
- Type:
Multiple Choice
- Default value:
SinglePoint
- Options:
[Incumbent, ExploreExploit, Perturbation, Random, SinglePoint]
- GUI name:
Starting points generator
- Description:
Algorithm used to pick starting points for the optimizers. Available options: • Incumbent: Optimizers will be started at the best point seen thus far by any optimizer. First point is random. • ExploreExploit: Early starting points are random, but later points are closer to good minima. • Perturbation: Each starting point is a drawn from a multivariate Gaussian distribution centred at the initial parameter set. • Random: Optimizers are started at random locations in parameter space. • SinglePoint: All optimizers are started at the initial parameter values.
6.2.5.2. Optimizer selector¶
If you have multiple Optimizer
blocks, then when a new Optimizer is started
it will be selected according to the rule defined by the OptimizerSelector
which follows the general pattern:
OptimizerSelector
Chain
Thresholds integer_list
End
Type [Cycle | Random | Chain]
End
OptimizerSelector
- Type:
Block
- GUI name:
Selection between optimizer types:
- Description:
If multiple Optimizers are included, then this block must be included and configures the Selector which will choose between them.
Chain
- Type:
Block
- Description:
Start different optimizers at different points in time based on the number of function evaluations used.
Thresholds
- Type:
Integer List
- Description:
List of loss function evaluation thresholds which switch to the next optimizer in the list. If there are n optimizers available, then this list should have n-1 thresholds.
Type
- Type:
Multiple Choice
- Default value:
Cycle
- Options:
[Cycle, Random, Chain]
- GUI name:
Select optimizer by
- Description:
Name of the algorithm selecting between optimizers. Available options: • Cycle (Default): Sequential loop through available optimizers. • Random: Optimizers are selected randomly from the available options. • Chain: Time-based progression through the list of available optimizers. The next option will be started once a certain number of loss function evaluations have been used.
6.2.5.3. Control optimizers spawning¶
ControlOptimizerSpawning
MaxEvaluations integer
MaxOptimizers integer
End
ControlOptimizerSpawning
- Type:
Block
- Description:
Control the spawning of optimizers. Note, this is different from ExitConditions. These simply stop new optimizers from spawning, but leave existing ones untouched. ExitConditions shutdown active optimizers and stop the optimization.
MaxEvaluations
- Type:
Integer
- GUI name:
– n loss function evaluations
- Description:
No new optimizers will be started after this number of function evaluations has been used. Note, this is different from the equivalent exit condition which would terminate existing optimizers rather than simply not allowing new ones to spawn.
MaxOptimizers
- Type:
Integer
- GUI name:
– n optimizers started
- Description:
No new optimizers will be started after this number has been spawned. Note, this is different from the equivalent exit condition which would terminate existing optimizers rather than simply not allowing new ones to spawn.