Commit 4dec493f authored by Konstantinos Chatzilygeroudis's avatar Konstantinos Chatzilygeroudis Committed by GitHub
Browse files

Merge pull request #171 from resibots/New-readme [ci skip]

parents ac683a9e 1b9fca3c
limbo [![Build Status](]( limbo [![Build Status](](
===== =====
A lightweight framework for Bayesian and model-based optimization of black-box functions (C++11). A lightweight framework for Bayesian optimization of black-box functions (C++11) and, more generally, for data-efficient optimization. It is designed to be very fast and very flexible.
Documentation Documentation
------------- -------------
Documentation is available here: Documentation is available here:
Authors Authors
------ ------
- Antoine Cully (Imperial College): - Antoine Cully (Imperial College):
- Jean-Baptiste Mouret (Inria): - Jean-Baptiste Mouret (Inria):
- Konstantinos Chatzilygeroudis (Inria) - Konstantinos Chatzilygeroudis (Inria)
- Federico Allocati (Inria) - Federico Allocati (Inria)
Limbo is partly funded by the ResiBots ERC Project (
Main features Main features
------------- -------------
- Bayesian optimization based on Gaussian processes - Implementation of the classic algorithms (Bayesian optimization, many kernels, likelihood maximization, etc.)
- Generic framework (template-based), which allows easy customization for testing original ideas - Modern C++-11
- Can exploit multicore computers - Generic framework (template-based / policy-based design), which allows for easy customization, to test novel ideas
- Experimental support for some multi-objective algorithms - Experimental framework that allows user to easily test variants of experiments, compare treatments, submit jobs to clusters (OAR scheduler), etc.
- High performance (in particular, Limbo can exploit multicore computers via Intel TBB and vectorize some operations via Eigen3)
Main references - Purposely small to be easily maintained and quickly understood
Scientific articles that use Limbo
- **General introduction:** Brochu, E., Cora, V. M., & De Freitas, N. (2010). A tutorial on Bayesian optimization of expensive cost functions, with application to active user modeling and hierarchical reinforcement learning. *arXiv preprint arXiv:1012.2599*. --------------------------------
Cully, A., Clune, J., Tarapore, D., & Mouret, J. B. (2015). Robots that can adapt like animals. *Nature*, 521(7553), 503-507.
- **Gaussian Processes (GP)**: Rasmussen, C. A, Williams C. K. I. (2006). /Gaussian Processes for Machine Learning./ MIT Press.
- **Optimizing hyperparameters:** Blum, M., & Riedmiller, M. (2013). Optimization of Gaussian Process Hyperparameters using Rprop. In *European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning*. Research project that use Limbo
- **Parego (Multi-objective optimization):** Knowles, J. (2006). ParEGO: A hybrid algorithm with on-line landscape approximation for expensive multiobjective optimization problems. *Evolutionary Computation, IEEE Transactions on*, 10(1), 50-66. - Resibots. ERC Starting Grant:
- PAL. H2020 EU project:
- **CMA-ES (inner optimization):** Auger, A., & Hansen, N. (2005). A restart CMA evolution strategy with increasing population size. In *Evolutionary Computation, 2005. The 2005 IEEE Congress on* (Vol. 2, pp. 1769-1776). IEEE. \ No newline at end of file
- **Expected hypervolume improvement (multi-objective optimization):** Hupkens, I., Emmerich, M. T. M., Deutz A. H. (2014). Faster Computation of Expected Hypervolume Improvement. arXiv:
Other libraries
Limbo is a framework for our research that is voluntarily kept small. It is designed to be very fast and flexible, but it does not aim at covering every possible use case for Bayesian optimization.
If you need a more full-featured library, check:
- BayesOpt:
- libGP (no optimization):
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment