Copyright Tristan Fauvel (2021) This software is distributed under the MIT License. Please refer to the file LICENCE.txt included for details
BO_toolbox is a Matlab toolbox for Bayesian optimization, with a focus on binary and preferential Bayesian optimization. It is based on GP_toolbox (https://github.com/TristanFauvel/GP_toolbox).
Simply add BO_toolbox to your Matlab path
The code is divided into 5 main parts:
- Active learning
- Standard BO
- Binary BO
- Preferential BO
- Benchmarks analysis: some code to analyze synthetic experiments on benchmarks.
objective
: objective functiontask
: whether the goal is to maximize the 'max'identification
: identification stepmaxiter
: number of iterationnopt
: number of time steps before starting using the specificied acquisition function.ninit
:update_period
hyps_update
: wether allall
hyperparameters should be updated, only the kernel hyperparameters (cov
), the mean (mean
) ornone
.acquisition_fun
: acquisition function.ns
noise
: amount of noise in function evaluation (for standard BO)
For each type of optimization problem, you can create an optimization object using either standard_BO
, binary_BO
, preferential_BO
, active_learning
. The surrogate model is a Gaussian process.
BKG()
: Binary knowledge gradientEI_Tesch()
: Binary Expected improvement, as defined by Tesch et al (2013)TS_binary
: Thompson samplingrandom_acquisition
: selects inputs uniformly at random
bivariate_EI
: Bivariate Expected Improvement (Nielsen et al, 2015).Brochu_EI
: Expected Improvement (Brochu et al, 2010))Dueling UCB
: Dueling Upper Credible Bound, as defined by (Benavoli et al, 2020)kernelselfsparring
: KernelSelfSparring (Sui et al, 2017)EIIG
: EIIG (Benavoli et al, 2020)DTS
: Duel Thompson Sampling (Gonzalez et al, 2017)Thomspon_challenge
: Dueling Thompson (Benavoli et al 2020).PKG
: preferential knowledge gradientMUC
: maximally uncertain challenge (Fauvel & Chalk, 2021)
Active learning for GP classification and preference learning models.
BALD
: Bayesian Active Learning by Disagreement (Houlsby et al, 2011)
If you use this software, please reference it as follows : Tristan Fauvel (2021) BO_toolbox, a Matlab toolbox for Bayesian optimization.