/mtgp_sampler

Experiment repo for "Bayesian Optimization with High-Dimensional Outputs"

Primary LanguagePythonApache License 2.0Apache-2.0

Bayesian Optimization with High Dimensional Outputs

This is the experimental code repository for the paper Bayesian Optimization with High Dimensional Outputs (NeurIPS 2021) by Wesley Maddox, Max Balandat, Andrew Gordon Wilson, Eytan Bakshy.

NOTE

This repository contains experimental code for reproducibility, but we would strongly suggest that you use the botorch.models.KroneckerMultiTaskGP and botorch.models.HigherOrderGP model classes in BoTorch. The Kronecker linear algebra has itself been built into GPyTorch as well.

You can see these tutorials with the HOGP and the MTGP respectively.

Note that we cannot at this point release the SCBO codebase as well.

Citation

@inproceedings{maddox2021bayesian,
  title={Bayesian Optimization with High-Dimensional Outputs},
  author={Maddox, Wesley and Balandat, Maximilian and Wilson, Andrew Gordon and Bakshy, Eytan},
  booktitle={Thirty-Fifth Conference on Neural Information Processing Systems},
  year={2021}
}

Experimental comments

To use, please install botorch master, gpytorch master.

For the CBO experiments on Hartmann-5DEmbedding, you need to install: https://github.com/facebookresearch/ContextualBO

For the optics + HOGP experiments, you need to install: https://github.com/dmitrySorokin/interferobotProject

Main Text Figures

Figure 2: contextualbo_experiments/post_timing.py

Figure 3: contextualbo_experiments/contextual_full.py

Figure 4: mtgp_experiments/constrained_mobo.py (use --problem={c2dtlz2,osy}

Figure 5,6: not provided

Figure 7 a-c: hogp_experiments/hogp_composite_function.py (use --problem={environmental, pde, maveric1})

Figure 7d: hogp_experiments/hogp_optics.py (use --problem={optics})

Appendix Figures

A.1: notebooks/hogp_example_workbook.ipynb

A.2: notebooks/matherons_rule_example_plot.ipynb

A.3: contextualbo_experiments/post_timing.py

A.4: contextualbo_experiments/contextual_full.py

A.5: contextualbo_experiments/cbo_experiment.py

A.6: not provided, collected from timing logs of SCBO runs

A.7-9: notebooks/hogp_output_plotting.ipynb