Bayesian Optimization Tutorial
Bayesian optimization is a powerful tool for optimizing time-consuming-to-evaluate non-convex derivative-free objective functions. It is widely used for tuning hyperparameters in deep neural networks and has wider applications including engineering design, materials and drug discovery, and tuning e-commerce systems and online markets with A/B testing. It uses a machine learning predictive method, often Gaussian process regression, to model the objective function and an acquisition function to guide the choice of points at which to evaluate the objective.
The tutorials and short course below introduce these methods in python using the BoTorch BayesOpt library.
Tutorial Articles:
4-Day Short Course
Day 1, Gaussian Process Regression:
Day 2, Gaussian Process Regression in BoTorch
Day 3, Expected Improvement (in pure python & BoTorch)
Day 4, Grey-box Bayesian Optimization
Packages to install for labs: