drahnreb / BOSS

Bayesian Optimisation for String Spaces

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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/amzn/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

About

Bayesian Optimisation for String Spaces

License:Apache License 2.0


Languages

Language:Python 62.4%Language:Jupyter Notebook 37.6%