Welcome to WAGGON: WAssrestein Global Gradient-free OptimisatioN
![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
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, 2024.[arxiv] [ECAI 2024 Proceedings]
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 is an example of surrogate optimisation.
import waggon
from waggon.optim import SurrogateOptimiser
from waggon.acquisitions import WU
from waggon.surrogates.gan import WGAN_GP as GAN
from waggon.test_functions import three_hump_camel
func = three_hump_camel()
surr = GAN()
acqf = WU()
opt = SurrogateOptimiser(func=func, surr=surr, acqf=acqf)
opt.optimise()
waggon.utils.display()
Support