Max-value entropy search, multi-fidelity (cost-aware) optimization
This release adds the popular Max-value Entropy Search (MES) acquisition function, as well as support for multi-fidelity Bayesian optimization via both the Knowledge Gradient (KG) and MES.
Compatibility
New Features
- Add cost-aware KnowledgeGradient (
qMultiFidelityKnowledgeGradient) for multi-fidelity optimization (#292). - Add
qMaxValueEntropyandqMultiFidelityMaxValueEntropymax-value entropy search acquisition functions (#298). - Add
subset_outputfunctionality to (most) models (#324). - Add outcome transforms and input transforms (#321).
- Add
outcome_transformkwarg to model constructors for automatic outcome transformation and un-transformation (#327). - Add cost-aware utilities for cost-sensitive acquisiiton functions (#289).
- Add
DeterminsticModelandDetermisticPosteriorabstractions (#288). - Add
AffineFidelityCostModel(f838eac). - Add
project_to_target_fidelityandexpand_trace_observationsutilities for use in multi-fidelity optimization (1ca12ac).
Performance Improvements
- New
prune_baselineoption for pruningX_baselineinqNoisyExpectedImprovement(#287). - Do not use approximate MLL computation for deterministic fitting (#314).
- Avoid re-evaluating the acquisition function in
gen_candidates_torch(#319). - Use CPU where possible in
gen_batch_initial_conditionsto avoid memory issues on the GPU (#323).
Bug fixes
- Properly register
NoiseModelAddedLossTerminHeteroskedasticSingleTaskGP(671c93a). - Fix batch mode for
MultiTaskGPyTorchModel(#316). - Honor
propagate_gradsargument infantasizeofFixedNoiseGP(#303). - Properly handle
diagarg inLinearTruncatedFidelityKernel(#320).
Other changes
- Consolidate and simplify multi-fidelity models (#308).
- New license header style (#309).
- Validate shape of
best_finqExpectedImprovement(#299). - Support specifying observation noise explicitly for all models (#256).
- Add
num_outputsproperty to theModelAPI (#330). - Validate output shape of models upon instantiating acquisition functions (#331).