Choosing an Acquisition Function¶
This guide helps you select the right acquisition function for your
experimental campaign. All are available via perfusio.bed.acquisitions.build_acquisition.
Decision Tree¶
Are you optimising more than one objective?
├── Yes → use qNEHVI (default) or qNParEGO (fast alternative)
└── No → continue
│
├── Batch size q > 1?
│ ├── Yes → qLogEI (recommended) or qEI
│ └── No → continue
│
├── Noisy observations?
│ ├── Yes → LogEI (numerically robust)
│ └── No → EI or PI
│
└── Exploration emphasis?
├── Yes → UCB with high β
└── No → EI (balanced explore/exploit)
Quick Reference¶
Acquisition |
When to use |
Limitations |
|---|---|---|
|
Default single-obj |
Can underperform near optimum |
|
Noisy / near-optimal |
Slightly more compute |
|
Conservative campaigns |
Greedy; can stall |
|
Heavy exploration |
β requires tuning |
|
Parallel (q>1) batches |
Slow for large q |
|
Parallel + noisy |
Best default for q>1 |
|
Parallel exploration |
β tuning needed |
|
Multi-obj noiseless |
Slow for m>3 |
|
Multi-obj noisy |
Slower than qEHVI |
|
Multi-obj, fast |
Scalarisation bias |
Recommended Defaults¶
Single-run selection:
LogEIBatch (q=4):
qLogEITwo objectives:
qNEHVIThree or more objectives:
qNParEGO(HV computation becomes expensive)