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
Random search
# Specification for the random search optimiser
optimiser:
# Optimiser name (mandatory)
name: random
#
# (Optional) Additional hyperparameters for the optimiser.
# Given values are the default ones.
# ---------------------------------------------------------------------------
#
# Sampling method to use for the random numbers. Possible options:
# - uniform: uniform sampling
# - normal: normal distribution, centered around the best value, and with
# decreasing standard deviation throughout the iterative process.
# - sobol: Sobol sequence sampling
sampling: uniform
#
# Seed for the random number generators.
seed: 1
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