The ensmallen library for flexible numerical optimization
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 https://ensmallen.org and is distributed under the permissive BSD license.
- Publication:
-
arXiv e-prints
- Pub Date:
- August 2021
- DOI:
- 10.48550/arXiv.2108.12981
- arXiv:
- arXiv:2108.12981
- Bibcode:
- 2021arXiv210812981C
- Keywords:
-
- Computer Science - Mathematical Software;
- Computer Science - Software Engineering;
- Mathematics - Optimization and Control;
- 65K10;
- 68N99;
- G.4;
- G.1.3;
- G.1.6
- E-Print:
- Journal of Machine Learning Research, Vol. 22, No. 166, 2021