MLMCBO is a library for the Multilevel Monte Carlo Bayesian Optimization method [to be linked to arxiv paper]. The package is based on the package BoTorch.
TL;DR Multilevel Monte Carlo accelerates nested Monte Carlo approximations (sometimes by several orders of magnitude). The current package leverages this technology to speed up the evaluation of lookahead acquisition functions for Bayesian optimization.
Installation Requirements
- BoTorch == 0.9.2
- Python >= 3.9 (BoTorch requirement)
- NumPy >= 1.18
- Pandas (for data savings)
At this development stage it is recommended to create a separate conda environment to minimize possible conflicts.
conda create --name mlmcbo python=3.11
conda activate mlmcbo
git clone https://github.com/Shangda-Yang/MLMCBO.git
cd MLMCBO
pip install -e .
File tests.py
in the tutorials
folder demonstrates basic usage of the MLMC q-Expected Improvement (qEI) acquisition functions:
- MC One-Step Lookahead EI
- MC One-Step Lookahead qEI
- MLMC One-Step Lookahead qEI
- MLMC Two-Step Lookahead qEI (beta)
File testWholeBo.py
in the same folder demonstrates an example of a whole BO algorithm using MLMC and MC for two-step look-ahead 1+2-EI and plots the results.
File testTwoEI.py
in the same folder demonstrates an example of a whole BO algorithm using MLMC and MC for three-step look-ahead 1-EI and plots the results.
=======
MLMCBO is licensed under the MIT License – see the LICENSE file for details.