Skip to content

Bayesian Optimization for black-box constrained problems with GP surrogate models based on trieste.

License

Notifications You must be signed in to change notification settings

cornelius-braun/constrainedBO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Constrained Bayesian Optimization

Implementation of Bayesian Optimization (BO) with Gaussian Process (GP) surrogates based on GPFlow and trieste.

This code is for constrained global optimization, that attempts to find the minimum value of a black-box function in a given number of iterations. More on the algorithm of BO can be found here.

This repository focuses on constrained BO, where the constraints are black-box functions as well. To learn the unknown feasible region, each constraint is modelled using a separate (GP).

This technique is particularly suited for optimization of functions, situations where the balance between exploration and exploitation is important. An unknown constraint could be the run-time of a machine learning of which the hyperparameters are being tuned.

Quick start

See below for a quick guide on how to use the software.

from skopt.space import Space
from constrained_bo import ConstrainedBO
from examples import Ackley

# define the problem
bench = Ackley()
space = Space(bench.bounds)

# generate some initial samples
n_init = 8
init_X = Space(space).rvs(random_state=1, n_samples=n_init)

# define optimizer
optimizer = ConstrainedBO(optimization_problem=bench,
                          init_X=init_X,
                          space=space)

# run the optimization
result = optimizer.minimize(n_calls=40, verbose=True)

About

Bayesian Optimization for black-box constrained problems with GP surrogate models based on trieste.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages