A multifidelity Gaussian process models observations from multiple fidelity levels through their correlations. Low-fidelity observations reduce uncertainty, while high-fidelity observations anchor predictions of the objective. section 9.2.2
A BoTorch workflow proceeds as follows:
- Store each observation with an additional fidelity column. section 9.2.2
- Initialize SingleTaskMultiFidelityGP with the fidelity-column index. section 9.2.2
- Train by maximizing the likelihood with ExactMarginalLogLikelihood and fit_gpytorch_mll(). section 9.2.2
- Add the requested fidelity to test inputs before computing predictive means and confidence regions. section 9.2.2
Correlation controls uncertainty
A GP trained only on low-fidelity observations is less uncertain when the correlation value is 0.9 than when it is 0.5. With both fidelities, mean predictions pass through high-fidelity observations while low-fidelity data still reduces uncertainty. section 9.2.2
from botorch.models.gp_regression_fidelity import SingleTaskMultiFidelityGP #1 model = SingleTaskMultiFidelityGP( train_x_full, train_y, data_fidelity=1) #2
Inspect the minimal model-construction call, including the fidelity-column argument. section 9.2.2
with torch.no_grad(): #1
pred_dist = model(torch.vstack([xs, torch.ones_like(xs)]).T) #2
pred_mean = pred_dist.mean #3
pred_lower, pred_upper = pred_dist.confidence_region() #4
Inspect fidelity-specific prediction and extraction of the predictive mean and confidence region. section 9.2.2
