olokevin / local-bo-mpd

Bayesian optimization via maximizing probability of descent

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Local Bayesian optimization via maximizing probability of descent

This repository contains code for the paper Local Bayesian optimization via maximizing probability of descent. Our code implementation extends the GIBO's codebase, and more detail can be found in their repository.

Please consider citing our paper:

@inproceedings{nguyen2022local,
    title = {{Local Bayesian optimization via maximizing probability of descent}},
    author = {Nguyen, Quan and Wu, Kaiwen and Gardner, Jacob R.\ and Garnett, Roman},
    booktitle = {Advances in Neural Information Processing Systems},
    year = {2022}
}

Installation

Our implementation relies on mujoco-py 0.5.7 with MuJoCo Pro version 1.31. To install MuJoCo follow the instructions here: https://github.com/openai/mujoco-py.

Conda

Or you can create an anaconda environment called mpd using

conda env create -f environment.yaml
conda activate mpd

Usage

For experiments with synthetic test functions and reinforcement learning problems (e.g. MuJoCo) a command-line interface is supplied.

Synthetic Test Functions

First generate the needed data for the synthetic test functions.

python generate_data_synthetic_functions.py -c ./configs/synthetic_experiment/generate_data_default.yaml

Afterwards you can run for instance our method MPD on these test functions.

python run_synthetic_experiment.py -c ./configs/synthetic_experiment/mpd_default.yaml -cd ./configs/synthetic_experiment/generate_data_default.yaml

Reinforcement Learning

Run the MuJoCo swimmer environment with the proposed method MPD.

python run_rl_experiment.py -c ./configs/rl_experiment/mpd_default.yaml

Custom Objective Functions

Run the Rover trajectory planning function with the proposed method MPD.

python run_custom_experiment.py -c ./configs/custom_experiment/mpd_default.yaml

About

Bayesian optimization via maximizing probability of descent

License:MIT License


Languages

Language:Python 100.0%