gfo-project/Gradient-Free-Optimizers

Lightweight optimization with local, global, population-based and sequential techniques across mixed search spaces

何を解決するか

Gradient-Free-Optimizers (GFO) は、勾配が利用できない、または計算が困難な「ブラックボックス」関数を最適化するための統一された方法を提供します。これは、機械学習モデルのハイパーパラメータチューニング、シミュレーションの最適化、および入力と出力の関係が微分によって数学的に定義されていないエンジニアリング設計などのタスク向けに特別に設計されています。

仕組み

このライブラリは、ローカルサーチ、グローバルサーチ、集団ベース、および逐次モデルベースの手法(ベイズ最適化など)に分類される23種類の異なる最適化アルゴリズムに対して、一貫したAPIを提供します。ユーザーは、最大化する目的関数と、連続的な範囲、離散的なグリッド、カテゴリカルな選択肢、および SciPy 分布を混合できる探索空間を定義します。その後、オプティマイザーがパラメータを提案し、目的関数を評価し、最適なスコアを見つけるために反復を行います。

対象者

勾配ベースの手法に頼らずにハイパーパラメータを調整したり、複雑なシステムを最適化したりする必要があるデータサイエンティスト、MLエンジニア、および研究者です。また、依存関係のフットプリントが小さいため(NumPy と pandas のみを必要とする)、最小限の環境、コンテナ、または組み込みシステムで作業する開発者にも適しています。

ハイライト

  • Unified API: 1行のコードで23種類の異なるアルゴリズム(例:Hill Climbing、Bayesian、Particle Swarm)を切り替えることができます。
  • Mixed Search Spaces: 1つの探索において、連続的、離散的、カテゴリカル、および分布に基づいた次元を組み合わせることをサポートしています。
  • Built-in Caching: メモリシステムにより、コストの高い目的関数の冗長な評価を防ぎます。
  • Flexible Control: 手動のループ制御、早期終了基準、および無効な領域を避けるための制約サポートを含む「Ask/Tell」インターフェースが含まれています。
  • Lightweight: 最小限のコア依存関係により、他のツールのバックエンドとして統合しやすくなっています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト