henrymoss / BOSS

Bayesian Optimisation for String Spaces
Apache License 2.0
24 stars 6 forks source link

BOSS Package

This is a package for performing Bayesian Optimization over String Spaces (BOSS). It accompanies https://arxiv.org/pdf/2010.00979.pdf and provides notebooks to recreate all the experiments.

The code is built upon the emukit Bayesian optimization library. We recommend following their tutorials to get started (https://github.com/emukit/emukit/tree/master/notebooks)

We currently support the following spaces:

1) unconstrained strings of fixed-length 2) locally-constrained strings of fixed-length 3) strings of varied length following constraints given by a context-free grammar 4) a candidate set of strings of varied length

and provide implementations for the following surrogate models:

1) Gaussian process with a linear kernel applied to a one-hot-encoding of strings 2) Gaussian process with an RBF kernel applied to a bag-of-ngrams representation of strings 3) Gaussian process with an SSK kernel 4) Gaussian process with a split SSK kernel (for scaling SSK to long strings) 5) Random search

We also provide GPU support for string kernel GPs through GPflow. For an example see Open In Colab