Welcome to WAGGON: WAssrestein Global Gradient-free OptimisatioN
WAGGON
is a python library of black box gradient-free optimisation. Currently, the library contains implementations of optimisation methods based on Wasserstein uncertainty and baseline approaches from the following papers:
- Tigran Ramazyan, Mikhail Hushchyn and Denis Derkach. "Global Optimisation of Black-Box Functions with Generative Models in the Wasserstein Space." Arxiv abs/2407.1117 (2024). [arxiv]
Implemented methods
- Wasserstein Uncertainty Global Optimisation (WU-GO)
- Bayesian optimisation: via Expected Improvement (EI), Lower and Upper Confidence Bounds (LCB, UCB)
Installation
pip install waggon
or
git clone https://github.com/hse-cs/waggon
cd waggon
pip install -e
Basic usage
(See more examples in the documentation.)
The following code snippet (does this and that)
import waggon
from waggon.acquisitions import WU
from waggon.optim import SurrogateOptimiser
from waggon.surrogates.gan import WGAN_GP as GAN
from waggon.test_functions import three_hump_camel
# initialise the function to be optimised
func = three_hump_camel()
# initialise the surrogate to carry out optimisation
surr = GAN()
# initialise optimisation acquisition function
acqf = WU()
# initialise optimiser
opt = SurrogateOptimiser(func=func, surr=surr, acqf=acqf)
# run optimisation
opt.optimise()
# visualise optimisation results
waggon.utils.display()
Support
- Home: https://github.com/hse-cs/waggon
- Documentation: https://hse-cs.github.io/waggon
- For any usage questions, suggestions and bugs please use the issue page.