GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

fmfn

BayesianOptimization – ガウスプロセスによるグローバル最適化のPython実装

投稿日:

ガウスプロセスによるグローバル最適化のPython実装。

ベイジアン最適化

ガウスプロセスによるベイジアングローバル最適化のPure Python実装。

pip install bayesian-optimization

これは、ベイジアン推論とガウスプロセスに基づいて構築された拘束されたグローバル最適化パッケージであり、未知関数の最大値を可能な限り少ない回数で見つけることを試みます。 この手法は、探査と開発のバランスが重要な高コスト機能の最適化に特に適しています。

クイックスタート

examplesフォルダでは、メソッドとこのパッケージの動作を把握することができます:

  • このノートブックをチェックアウトするには、この方法の仕組みを一歩一歩視覚化してください。
  • このスクリプトを読むと、このパッケージの基本的な機能に慣れることができます。
  • 探検と搾取のバランスとその制御方法を例示したこのノートブックの調査。
  • このパッケージを使用して相互検証とベイジアン最適化を使用してML推定値のパラメータを調整する方法の例については、これらのスクリプト( sklearnxgboost )を参照してください。

どのように機能するのですか?

ベイジアン最適化は、最適化する関数を最もよく説明する関数の事後分布(ガウス過程)を構築することによって機能します。 観測数が増えるにつれて、事後分布が改善され、以下の図に示すように、アルゴリズムはパラメータ空間のどの領域を探索する価値があるのか​​、探索できないのかがより確実になります。

何度も反復処理を繰り返すうちに、アルゴリズムはターゲット機能について何がわかっているかを考慮して、探査と開発のニーズを調和させます。 各ステップで、既知のサンプル(以前に探索された点)にガウスプロセスが適合し、探査戦略(UCB(上の信頼限界)またはEI(期待される改善)など)と組み合わされた事後分布が、 (次のgifを参照してください)次のポイントを調べる必要があります。

このプロセスは、最適な組み合わせに近いパラメータの組み合わせを見つけるために必要なステップ数を最小限に抑えるように設計されています。 これを行うために、この方法は、依然として難しい問題ではあるが、(計算上の意味で)安価であり、一般的なツールを使用することができるプロキシ最適化問題(取得関数の最大値を見つけること)を使用する。 したがって、ベイジアン最適化は、最適化される関数をサンプリングすることが非常に高価な作業である場合に最も適切です。 このメソッドの適切な議論については、参考文献を参照してください。

このプロジェクトは積極的に進められています。バグや訂正が必要なものがあれば教えてください。

インストール

インストール

最新のリリースでは、次のコマンドを実行します。

pip install bayesian-optimization

出血エッジバージョンは、次のものとともにインストールできます。

pip install git+https://github.com/fmfn/BayesianOptimization.git

必要に応じて、それを複製してsetup.pyファイルを実行することもできます。 Githubからコピーを取得し、すべての依存関係をインストールするには、次のコマンドを使用します。

git clone https://github.com/fmfn/BayesianOptimization.git
cd BayesianOptimization
python setup.py install

依存関係

  • ナンシー
  • Scipy
  • シキット学習

参考文献:







-fmfn
-, , , ,

執筆者: