Flexible numerical optimization with ensmallen

要約

このレポートでは、ensmallen 数値最適化ライブラリの紹介と、その仕組みの技術的な詳細について詳しく説明します。
このライブラリは、ユーザーが指定した任意の関数を数学的に最適化するための、高速で柔軟な C++ フレームワークを提供します。
確率的勾配降下法や準ニュートン オプティマイザーの多くのバリエーションを含む、事前に構築されたオプティマイザーの大規模なセットが提供されています。
微分可能、分離可能、制約付き、カテゴリカル目的関数など、いくつかのタイプの目的関数がサポートされています。
新しいオプティマイザーの実装に必要なメソッドは 1 つだけですが、新しい目的関数に必要な C++ メソッドは通常 1 つまたは 2 つだけです。
ensmallen は、C++ テンプレート メタプログラミングの内部使用を通じて、実行時のオーバーヘッドを発生させずに、ユーザー指定の任意のコールバックと、指定されていないメソッドの自動推論のサポートを提供します。
経験的な比較によると、ensmallen は他の最適化フレームワーク (Julia や SciPy など) よりもパフォーマンスが優れており、場合によっては大差を付けています。
このライブラリは https://ensmallen.org で入手でき、寛容な BSD ライセンスの下で配布されます。

要約(オリジナル)

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.

arxiv情報

著者 Ryan R. Curtin,Marcus Edel,Rahul Ganesh Prabhu,Suryoday Basak,Zhihao Lou,Conrad Sanderson
発行日 2023-11-15 14:51:17+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.LG, cs.MS, cs.SE, math.OC パーマリンク