paulknysh/blackbox

A Python module for parallel optimization of expensive black-box functions

何を解決するか

計算コストが高い評価が必要な「ブラックボックス」関数のグローバル最小値を探索する方法を提供します。たとえば、ニューラルネットワークのハイパーパラメータ調整や複雑なシミュレーションに使用される関数です。

動作方法

このモジュールは、ターゲット関数、定義された探索領域(パラメータの範囲)、および関数呼び出しの総予算を受け取ります。関数呼び出しをバッチに分割し、マルチコアCPUやクラスタ上で並列で評価することで、探索を最適化します。ユーザーはデフォルトの multiprocessing.Pool を使用するか、Dask や ipyparallel などのカスタム並列エンジンを提供できます。

対象ユーザー

下位の数学的関数が不明または複雑すぎて導出できない、時間のかかるプロセスのパラメータ最適化が必要な開発者や研究者です。

特徴

  • 並列実行: 関数評価をバッチ化することで、マルチコアCPUやクラスタにスケーリング可能。
  • 柔軟な実行: カスタム並列エンジン(例: Dask, ipyparallel, pathos)をコール可能エグゼキューター経由でサポート。
  • ミニマルAPI: 最適化を開始するには、関数、探索領域、予算の3つだけが必要。

関連

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