The ensmallen library for flexible numerical optimization

Ryan R. Curtin,Marcus Edel,Rahul Ganesh Prabhu,Suryoday Basak,Zhihao Lou,Conrad Sanderson
2024-02-09
Abstract:We overview the ensmallen numerical optimization library, which provides a flexible C++ framework for mathematical optimization of user-supplied objective functions. Many types of objective functions are supported, including general, differentiable, separable, constrained, and categorical. A diverse set of pre-built optimizers is provided, including Quasi-Newton optimizers and many variants of Stochastic Gradient Descent. The underlying framework facilitates the implementation of new optimizers. Optimization of an objective function typically requires supplying only one or two C++ functions. Custom behavior can be easily specified via callback functions. Empirical comparisons show that ensmallen outperforms other frameworks while providing more functionality. The library is available at <a class="link-external link-https" href="https://ensmallen.org" rel="external noopener nofollow">this https URL</a> and is distributed under the permissive BSD license.
Mathematical Software,Software Engineering,Optimization and Control
What problem does this paper attempt to address?