Optimiser options

For the optimisation itself, several optimisation methods are implemented and available in piglot. The available optimisers and their hyperparameters, which have to be specified in the optimiser section of the .yaml configuration file, are presented below.

AOA

# Specification for the AOA optimiser

optimiser:
  # Optimiser name (mandatory)
  name: aoa
  # 
  # (Optional) Additional hyperparameters for the optimiser.
  # Given values are the default ones.
  # ---------------------------------------------------------------------------
  #
  # Population size.
  n_solutions: 10
  #
  # Non-negative parameter used to define the accuracy of the exploitation
  alpha: 5.0
  #
  # Non-negative control parameter to adjust the search process
  mu: 0.5
  #
  # Small parameter to avoid division by zero
  epsilon: 1e-12
  #
  # Seed for the random number generators.
  seed: 1
  #
  # Math Optimiser Accelerated function initial value
  MOA_start: 0.2
  #
  # Math Optimiser Accelerated function end value
  MOA_end: 1.0

BoTorch

# Specification for the BoTorch optimiser

optimiser:
  # Optimiser name (mandatory)
  name: botorch
  # 
  # (Optional) Additional hyperparameters for the optimiser.
  # Given values are the default ones.
  # ---------------------------------------------------------------------------
  #
  # Number of initial points to evaluate before starting the optimisation.
  # Note that the effective number of initial points is n_initial + 1, as the
  # initial guess is always evaluated.
  # Note: if using q > 1, these points will be evaluated in parallel.
  n_initial: 8
  #
  # Number of points to use for the test dataset. Disabled if set to 0.
  # Note: if using q > 1, these points will be evaluated in parallel.
  n_test: 0
  #
  # Acquisition function to use.
  # Available options: 'ucb', 'ei', 'pi', 'kg', 'qucb', 'qei', 'qpi', 'qkg'.
  # The 'q' prefix indicates the use of the q-batch version of the acquisition
  # function, normally evaluated with quasi-Monte Carlo methods.
  acquisition: ucb
  #
  # Beta parameter for the UCB acquisition function.
  beta: 1.0
  #
  # Whether to allow inference of the noise values of the objective.
  # Enable this option if the objective function is noisy or if you are 
  # experiencing numerical issues.
  noisy: False
  #
  # Number of q-batch evaluations to use for the acquisition function.
  # This allows generation of multiple candidate points per iteration,
  # which can be useful for parallel optimisation.
  # Can only be used with the 'q' prefix acquisition functions.
  q: 1
  #
  # Seed for the random number generators.
  seed: 1
  #
  # Load the dataset from a file.
  load_file: None
  #
  # Export the dataset to a file.
  export: None

DIRECT

# Specification for the DIRECT optimiser

optimiser:
  # Optimiser name (mandatory)
  name: direct
  # 
  # (Optional) Additional hyperparameters for the optimiser.
  # Given values are the default ones.
  # ---------------------------------------------------------------------------
  #
  # Parameter to preference exploitation over exploration.
  epsilon: 0

LIPO

# Specification for the LIPO optimiser

optimiser:
  # Optimiser name (mandatory)
  name: lipo
  # 
  # (Optional) Additional hyperparameters for the optimiser.
  # Given values are the default ones.
  # ---------------------------------------------------------------------------
  #
  # List of arguments to treat in log space.
  # 'auto' will automatically detect the arguments to treat in log space.
  log_args: 'auto'
  #
  # Parameters that are treated as flexible bounds.
  flexible_bounds: []
  #
  # Threshold to allow flexible bounds for the parameters.
  flexible_bound_threshold: -1.0
  #
  # Accuracy below which exploration will be prioritized vs exploitation
  epsilon: 0.0
  #
  # Seed for the random number generators.
  seed: None

SPSA

# Specification for the SPSA optimiser

optimiser:
  # Optimiser name (mandatory)
  name: spsa
  # 
  # (Optional) Additional hyperparameters for the optimiser.
  # Given values are the default ones.
  # ---------------------------------------------------------------------------
  #
  # Seed for the random number generators.
  seed: 1
  #
  # Method parameters. Refer to the documentation for more information.
  alpha: 0.602
  gamma: 0.101
  prob: 0.5
  #
  # Model parameters. Refer to the documentation for more information.
  # If not given, these are set acoording to internal heuristics.
  A: None
  a: None
  c: None

SPSA Adam

# Specification for the SPSA optimiser with Adam updates

optimiser:
  # Optimiser name (mandatory)
  name: spsa-adam
  # 
  # (Optional) Additional hyperparameters for the optimiser.
  # Given values are the default ones.
  # ---------------------------------------------------------------------------
  #
  # Seed for the random number generators.
  seed: 1
  #
  # Method parameters. Refer to the documentation for more information.
  alpha: 0.01
  beta1: 0.9
  beta2: 0.999
  epsilon: 1e-8
  gamma: 0.101
  prob: 0.5
  #
  # Model parameters. Refer to the documentation for more information.
  # If not given, these are set acoording to internal heuristics.
  c: None