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.