https://github.com/depshad/gp_augmentation_bo
Uncertainty-aware Labelled Augmentations for High Dimensional Latent Space Bayesian Optimisation
https://github.com/depshad/gp_augmentation_bo
bayesian-optimization botorch gaussian-processes pytorch
Last synced: 4 months ago
JSON representation
Uncertainty-aware Labelled Augmentations for High Dimensional Latent Space Bayesian Optimisation
- Host: GitHub
- URL: https://github.com/depshad/gp_augmentation_bo
- Owner: depshad
- Created: 2021-12-20T15:38:40.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-11T06:16:49.000Z (over 3 years ago)
- Last Synced: 2024-12-31T00:36:06.974Z (6 months ago)
- Topics: bayesian-optimization, botorch, gaussian-processes, pytorch
- Language: Python
- Homepage:
- Size: 2.29 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Uncertainty-aware Labelled Augmentations for High Dimensional Latent Space Bayesian Optimisation
Paper : https://openreview.net/pdf?id=C7pY5Wjwk0d
## Abstract
Black-box optimization problems are ubiquitous and of importance in many critical areas of science and engineering. Bayesian optimisation (BO) over the past
years has emerged as one of the most successful techniques for optimising expensive black-box objectives. However, efficient scaling of BO to high-dimensional
settings has proven to be extremely challenging. Traditional strategies based on projecting high-dimensional input data to a lower-dimensional manifold, such as
Variational autoencoders (VAE) and Generative adversarial networks (GAN) have improved BO performance in high-dimensional regimes, but their dependence on
excessive labeled input data has been widely reported. In this work, we target the data-greedy nature of deep generative models by constructing uncertainty-aware
task-specific labeled data augmentations using Gaussian processes (GPs). Our approach outperforms existing state-of-the-art methods on machine learning tasks
and demonstrates more informative data representation with limited supervision.## Code
### Calculate_objective.py
Create inital data points for bayesian optimisation.
Set sort_points to True to get the highest valued initial data points to run subsequent optimisation.
#### Usage
```shell script
python ./MNIST_Norm_Task/scripts/Calculate_objective.py --dataset_path 'mnist_x.npy' \
--label_path 'mnist_y.npy' \
--save_dir 'path to save the initial data for BO' \
--sort_points 'True'
```### GP_augment_norm_task.py
#### Attributes
To run desired experiments, set appropriate flags (GP_aug_flag, naive_aug_flag, etc.) to True as the argument.More implementation details can be found in the code itself.
result_dir : Directory to save results
data_val_path : File path for validation data
data_dir : Directory which contains the initial data points
vae_model : File path for pretrained vae model
#### Usage
```shell scriptpython ./MNIST_Norm_Task/scripts/GP_augment_norm_task.py --result_dir 'path to save results' \
--data_val_path 'Created in Calculate_objective script' \
--data_dir 'Directory path for inital data points' \
--vae_model 'pretained vae model' \
--naive_aug_flag 'True'```