Flexible numerical optimization with ensmallen

03/09/2020
by   Ryan R. Curtin, et al.
0

This report provides an introduction to the ensmallen numerical optimization library, as well as a deep dive into the technical details of how it works. The library provides a fast and flexible C++ framework for mathematical optimization of arbitrary user-supplied functions. A large set of pre-built optimizers is provided, including many variants of Stochastic Gradient Descent and Quasi-Newton optimizers. Several types of objective functions are supported, including differentiable, separable, constrained, and categorical objective functions. Implementation of a new optimizer requires only one method, while a new objective function requires typically only one or two C++ methods. Through internal use of C++ template metaprogramming, ensmallen provides support for arbitrary user-supplied callbacks and automatic inference of unsupplied methods without any runtime overhead. Empirical comparisons show that ensmallen outperforms other optimization frameworks (such as Julia and SciPy), sometimes by large margins. The library is available at https://ensmallen.org and is distributed under the permissive BSD license.

READ FULL TEXT
research
08/30/2021

The ensmallen library for flexible numerical optimization

We overview the ensmallen numerical optimization library, which provides...
research
10/22/2018

ensmallen: a flexible C++ library for efficient function optimization

We present ensmallen, a fast and flexible C++ library for mathematical o...
research
11/17/2017

A generic and fast C++ optimization framework

The development of the mlpack C++ machine learning library (http://www.m...
research
08/06/2023

Bandicoot: C++ Library for GPU Linear Algebra and Scientific Computing

This report provides an introduction to the Bandicoot C++ library for li...
research
11/22/2016

Limbo: A Fast and Flexible Library for Bayesian Optimization

Limbo is an open-source C++11 library for Bayesian optimization which is...
research
06/10/2022

Flexible Differentiable Optimization via Model Transformations

We introduce DiffOpt.jl, a Julia library to differentiate through the so...
research
10/15/2019

DP-MAC: The Differentially Private Method of Auxiliary Coordinates for Deep Learning

Developing a differentially private deep learning algorithm is challengi...

Please sign up or login with your details

Forgot password? Click here to reset