Composite Bayesian Optimization with Multi-Task Gaussian Processes
Composite Bayesian Optimization with Multi-Task Gaussian Processes
In this tutorial, we'll be describing how to perform multi-task Bayesian optimization over composite functions. In these types of problems, there are several related outputs, and an overall easy to evaluate objective function that we wish to maximize.
Multi-task Bayesian Optimization was first proposed by Swersky et al, NeurIPS, '13 in the context of fast hyper-parameter tuning for neural network models; however, we demonstrate a more advanced use-case of composite Bayesian optimization where the overall function that we wish to optimize is a cheap-to-evaluate (and known) function of the outputs. In general, we expect that using more information about the function should yield improved performance when attempting to optimize it, particularly if the metric function itself is quickly varying.
See the composite BO tutorial w/ HOGP for a more technical introduction. In general, we suggest using MTGPs for unstructured task outputs and the HOGP for matrix / tensor structured outputs.
We will use a Multi-Task Gaussian process
(MTGP)
with an ICM kernel to model all of the outputs in this problem. MTGPs can be easily
accessed in Botorch via the botorch.models.KroneckerMultiTaskGP
model class (for the
"block design" case of fully observed outputs at all inputs). Given tasks (outputs)
and data points, they assume that the responses,
are distributed as and