Multi-Objective Bayesian Optimization with Gaussian Processes and adaptive noise
Project description
🎯 Multi-Objective Bayesian Optimization (MOBO)
A modular Python library for multi-objective Bayesian optimization using Gaussian Processes (GP) and BoTorch, with optional support for adaptive noise modeling.
📦 Features
- ✔️ Multi-objective optimization with EHVI / ALT-EI
- ✔️ Independent GP models per objective
- ✔️ Adaptive noise learning using a neural
NoiseNet - ✔️ Pareto front extraction and visualization
- ✔️ Hypervolume logging per step
- ✔️ Easy-to-extend architecture for experiments
📁 Project Structure
mo_bayes_opt/ ├── models/ # GPModel, NoiseNet, GPTrainer ├── acquisition/ # Acquisition function optimization ├── core/ # BO loop & objective functions ├── utils/ # Logging, visualization ├── experiments/ # Example experiments ├── data/ # Hypervolume log storage
🚀 Quick Start
1. Install Dependencies
pip install -r requirements.txt
2. Run Example Optimization
def joint_objective(x):
x1 = x[:, 0]
x2 = x[:, 1]
interaction = torch.sin(5 * torch.pi * x1 * x2)
f1 = ((x[:, :3] * torch.sin(3 * torch.pi * x[:, :3])).sum(dim=-1) + 0.5 * interaction)
f2 = (((1 - x[:, 3:]) * torch.cos(3 * torch.pi * x[:, 3:])).sum(dim=-1) - 0.3 * interaction)
return torch.stack([f1, f2], dim=-1)
bo = MultiObjectiveBO(
objective_fn=joint_objective,
input_dim=3,
bounds=torch.tensor([[0.0] * 3, [1.0] * 3]),
ref_point=torch.tensor([0.0, 0.0]),
strategy="EHVI",
use_adaptive_noise=False
)
hypervolumes = bo.run(num_repeats=1, num_queries=100)
3. Output
Console: Logs trial progress and hypervolume
File: data/hypervolume_log.csv containing hypervolume progression
📈 Visualization
Use plot_pareto(train_y, trial, step) to visualize the Pareto front at a given step.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mo_bayes_opt-0.1.0.tar.gz.
File metadata
- Download URL: mo_bayes_opt-0.1.0.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6c8002e847eb2b90381fc1182dda53c81dbf4f86fab77c56c756499b5bdcf4b
|
|
| MD5 |
5d04c7754a59e5dd4822b2593b0e19e7
|
|
| BLAKE2b-256 |
db3a2bfdb8f59e5056fd129efd8295747d5da248432b92151055a43b25ab494d
|
File details
Details for the file mo_bayes_opt-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mo_bayes_opt-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
072a66ed9679b2e357a19c49f8c47dcbcdfcd07fd83c01d736453d57d38ed2b6
|
|
| MD5 |
d2d4b3e25c7a941bb55327ec1cd81307
|
|
| BLAKE2b-256 |
526d50ec7b25ca58f4347ae68abd8f168d847652bd65c3239aa9e1c20d424529
|