EmuKit / emukit

A Python-based toolbox of various methods in decision making, uncertainty quantification and statistical emulation: multi-fidelity, experimental design, Bayesian optimisation, Bayesian quadrature, etc.
https://emukit.github.io/emukit/
Apache License 2.0
605 stars 128 forks source link

2-stage acquisition optimization support #256

Open apaleyes opened 5 years ago

apaleyes commented 5 years ago

This issue surfaced from conversation with @henrymoss .

Emukit does not support 2-stage optimization procedures. For example, consider the following scenario: a multifidelity function f(x,z) where z is the fidelity, that is being optimized the following way: x = argmax acq1(x) z = argmax acq2(x*, z)

A couple of multifidelity methods based on UCB are using this, and it is quite common to compare against them, so having their implementations might be useful.

apaleyes commented 5 years ago

@henrymoss can you link a couple of those papers please?

henrymoss commented 5 years ago

These three consider multi-fidelity extensions of UCB that rely on a two-stage acquisition function:

Also the FASTCV example of https://papers.nips.cc/paper/5086-multi-task-bayesian-optimization.pdf has 2-stage acquisition function.