This repository contains the source code to perform Geometry-aware Bayesian Optimization (GaBO) and High-Dimensional Geometry-aware Bayesian Optimization (HD-GaBO) on Riemannian manifolds.
This code runs with Python>=3.6. It requires the following packages:
- numpy
- scipy
- matplotlib
- pymanopt
- torch
- gpytorch
- botorch
To install GaBOtorch, first clone the repository and install the related packages, as explained below.
pip install numpy scipy matplotlib pymanopt torch gpytorch botorch
Finally, from the GaBOtorch folder, run
pip install -e .
The following examples are available in GaBOtorch:
Sphere manifold | |
---|---|
sphere_kernels | This example shows the use of different kernels for the hypershere manifold S^n , used for Gaussian process regression. |
sphere_gaussian_kernel_parameters | This example shows the experimental selection of parameters for the Sphere Gaussian kernel. |
SPD manifold | |
---|---|
spd_kernels | This example shows the use of different kernels for the SPD manifold, used for Gaussian process regression |
spd_gaussian_kernel_parameters | This example shows the experimental selection of parameters for the SPD Affine-Invariant Gaussian kernel. |
Benchmark examples | |
---|---|
gabo_sphere | This example shows the use of Geometry-aware Bayesian optimization (GaBO) on the sphere S2 to optimize the Ackley function. |
bo_euclidean_sphere | This example shows the use of Euclidean Bayesian optimization on the sphere S2 to optimize the Ackley function. |
Constrained benchmark examples | |
---|---|
gabo_sphere_bound_constraints | This example shows the use of Geometry-aware Bayesian optimization (GaBO) on the sphere S2 to optimize the Ackley function. In this example, the search domain is bounded and represents a subspace of the manifold. |
gabo_sphere_equality_constraints | This example shows the use of Euclidean Bayesian optimization on the sphere S2 to optimize the Ackley function. In this example, the parameters must satisfy equality constraints and the search space represents a subspace of the manifold. |
gabo_sphere_equality_constraints | This example shows the use of Euclidean Bayesian optimization on the sphere S2 to optimize the Ackley function. In this example, the parameters must satisfy inequality constraints and the search space represents a subspace of the manifold. |
Benchmark examples | |
---|---|
gabo_spd | This example shows the use of Geometry-aware Bayesian optimization (GaBO) on the SPD manifold S2_++ to optimize the Ackley function. |
bo_cholesky_spd | This example shows the use of Cholesky Bayesian optimization on the SPD manifold S2_++ to optimize the Ackley function. An Euclidean BO is applied on the Cholesky decomposition of the SPD matrices. |
bo_euclidean_spd | This example shows the use of Euclidean Bayesian optimization on the SPD manifold S2_++ to optimize the Ackley function. |
Benchmark examples | |
---|---|
hd_gabo_sphere | This example shows the use of High-Dimensional Geometry-aware Bayesian optimization (HD-GaBO) to optimize the Ackley function on a latent sphere S2 embedded in the sphere S5. |
Benchmark examples | |
---|---|
hd_gabo_spd | This example shows the use of High-Dimensional Geometry-aware Bayesian optimization (HD-GaBO) to optimize the Rosenbrock function on a latent SPD manifold S2_++ embedded in the SPD manifold S5_++. |
If you found GaBOtorch useful, we would be grateful if you cite the following references:
[1] N. Jaquier, L. Rozo, S. Calinon, and M. Bürger (2019). Bayesian Optimization meets Riemannian Manifolds in Robot Learning. In Conference on Robot Learning (CoRL).
[2] N. Jaquier, and L. Rozo (2020). High-dimensional Bayesian Optimization via Nested Riemannian Manifolds. In Neural Information Processing Systems (NeurIPS).
@inproceedings{Jaquier19GaBO,
author="Jaquier, N and Rozo, L. and Calinon, S. and B\"urger, M.",
title="Bayesian Optimization meets Riemannian Manifolds in Robot Learning",
booktitle="In Conference on Robot Learning (CoRL)",
year="2019",
pages=""
}
@inproceedings{Jaquier20HDGaBO,
author="Jaquier, N and Rozo, L.",
title="High-dimensional Bayesian Optimization via Nested Riemannian Manifolds",
booktitle="Neural Information Processing Systems (NeurIPS)",
year="2020",
pages=""
}