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 $D \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.
翻译:PyBADS是贝叶斯自适应直接搜索(BADS)算法的Python实现,用于快速且鲁棒的黑箱优化(Acerbi and Ma 2017)。BADS是一种优化算法,旨在高效解决目标函数粗糙(非凸、非平滑)、轻度昂贵(例如函数评估需要超过0.1秒)、可能含有噪声且缺乏梯度信息的困难优化问题。BADS能够良好地应对这些挑战,使其成为通过最大似然估计等方法拟合计算模型的优秀选择。该算法可高效扩展至具有高达约$D=20$个连续输入参数的黑箱函数,并支持有界或无约束条件。PyBADS提供了一个易于使用的Python风格接口,用于运行算法并检查其结果。PyBADS仅要求用户提供用于评估目标函数的Python函数,以及可选的约束条件。在人工测试问题以及来自认知、行为与计算神经科学的大型真实模型拟合问题上的广泛基准测试表明,BADS的性能与许多常见和最新优化器相当或更优(Acerbi and Ma 2017),使其成为一种提供快速鲁棒解决方案的通用模型拟合工具。