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