English

PyBADS: Fast and robust black-box optimization in Python

Machine Learning 2023-06-28 v1 Machine Learning

Abstract

PyBADS is a Python implementation of the Bayesian Adaptive Direct Search (BADS) algorithm for fast and robust black-box optimization (Acerbi and Ma 2017). BADS is an optimization algorithm designed to efficiently solve difficult optimization problems where the objective function is rough (non-convex, non-smooth), mildly expensive (e.g., the function evaluation requires more than 0.1 seconds), possibly noisy, and gradient information is unavailable. With BADS, these issues are well addressed, making it an excellent choice for fitting computational models using methods such as maximum-likelihood estimation. The algorithm scales efficiently to black-box functions with up to D20D \approx 20 continuous input parameters and supports bounds or no constraints. PyBADS comes along with an easy-to-use Pythonic interface for running the algorithm and inspecting its results. PyBADS only requires the user to provide a Python function for evaluating the target function, and optionally other constraints. Extensive benchmarks on both artificial test problems and large real model-fitting problems models drawn from cognitive, behavioral and computational neuroscience, show that BADS performs on par with or better than many other common and state-of-the-art optimizers (Acerbi and Ma 2017), making it a general model-fitting tool which provides fast and robust solutions.

Cite

@article{arxiv.2306.15576,
  title  = {PyBADS: Fast and robust black-box optimization in Python},
  author = {Gurjeet Sangra Singh and Luigi Acerbi},
  journal= {arXiv preprint arXiv:2306.15576},
  year   = {2023}
}

Comments

7 pages, 1 figure. Documentation is available at https://acerbilab.github.io/pybads/ and source code is available at https://github.com/acerbilab/pybads

R2 v1 2026-06-28T11:15:50.477Z