RoBO Wrapper for Oríon


This wrapper provides access through Oríon to several Bayesian optimization algorithms in the library RoBO.

This orion.algo plugin was generated with Cookiecutter along with @Epistimio’s cookiecutter-orion.algo template.

Installation

The RoBO wrapper is currently only supported on Linux.

Before installing RoBO, make sure you have libeigen and swig installed. On ubuntu, you can install them with apt-get

$ sudo apt-get install libeigen3-dev swig

One of the dependencies of RoBO does not declare its dependencies and therefore we need to install these dependencies first. The order of dependencies in requirements.txt reflects this order. To install them sequentially, use the following command

$ curl -s https://git.io/JLnCA | grep -v "^#" | xargs -n 1 -L 1 pip install

Finally, you can install this package using PyPI

$ pip install orion.algo.robo

Contribute or Ask

Do you have a question or issues? Do you want to report a bug or suggest a feature? Name it! Please contact us by opening an issue in our repository below and checkout Oríon’s contribution guidelines:

Start by starring and forking our Github repo!

Thanks for the support!

Citation

If you use this wrapper for your publications, please cite both RoBO and Oríon. Please also cite the papers of the algorithms you used, such as DNGO or BOHAMIANN. See the documentation of the algorithms to find corresponding original papers.

License

Distributed under the terms of the BSD-3-Clause license, orion.algo.robo is free and open source software.

RoBO Gaussian Process

experiment:
    algorithms:
        RoBO_GP:
            seed: 0
            n_initial_points: 20
            maximizer: 'random'
            acquisition_func: 'log_ei'
            normalize_input: True
            normalize_output: False

RoBO Gaussian Process with MCMC

experiment:
    algorithms:
        RoBO_GP_MCMC:
            seed: 0
            n_initial_points: 20
            maximizer: 'random'
            acquisition_func: 'log_ei'
            normalize_input: True
            normalize_output: False
            chain_length: 2000
            burnin_steps: 2000

RoBO Random Forest

experiment:
    algorithms:
        RoBO_RandomForest:
            seed: 0
            n_initial_points: 20
            maximizer: 'random'
            acquisition_func: 'log_ei'
            num_trees: 30
            do_bootstrapping: True
            n_points_per_tree: 0
            compute_oob_error: False
            return_total_variance: True

RoBO DNGO

experiment:
    algorithms:
        RoBO_DNGO:
            seed: 0
            n_initial_points: 20
            maximizer: 'random'
            acquisition_func: 'log_ei'
            normalize_input: True
            normalize_output: False
            chain_length: 2000
            burnin_steps: 2000
            batch_size: 10
            num_epochs: 500
            learning_rate: 1e-2
            adapt_epoch: 5000

RoBO BOHAMIANN

experiment:
    algorithms:
        RoBO_BOHAMIANN:
            seed: 0
            n_initial_points: 20
            maximizer: 'random'
            acquisition_func: 'log_ei'
            normalize_input: True
            normalize_output: False
            burnin_steps: 2000
            sampling_method: "adaptive_sghmc"
            use_double_precision: True
            num_steps: null
            keep_every: 100
            learning_rate: 1e-2
            batch_size: 20
            epsilon: 1e-10
            mdecay: 0.05
            verbose: False