探索アルゴリズム#
探索アルゴリズム Algorithm は Solver の結果 \(f(x)\) を用いて
パラメータ空間 \(\mathbf{X} \ni x\) を探索し、 \(f(x)\) の最小化問題を解きます。
ODAT-SE では以下の探索アルゴリズムが利用できます。
各項目をクリックすると、入力パラメータや出力ファイルなどの詳細な使用方法を確認できます。
- 局所最適化アルゴリズムによる最適値探索 minsearch
Nelder-Mead法(シンプレックス法)による最適化を行います。勾配を使わない直接探索法で、少数のパラメータに対して高速に収束します。scipy を利用します。
- 大域最適化 global_search
scipy.optimize の大域最適化ルーチンによる探索を行います。差分進化法 (differential evolution)、shgo、direct が利用でき、候補点の評価を MPI により並列化できます(direct を除く)。scipy を利用します。
- mapper
パラメータ空間をグリッド状に分割し、すべての格子点で \(f(x)\) を評価します。MPI による並列化に対応しており、パラメータ空間の全体像を把握するのに適しています。
- ランダム探索 random_search
ランダムにパラメータを選んで目的関数を評価します。指定した範囲から一様乱数によりパラメータをサンプリングし、パラメータ空間の大域的な概観を把握するのに適しています。MPI による並列化に対応しています。
- ベイズ最適化 bayes
ベイズ最適化により探索を行います。ガウス過程回帰を用いて \(f(x)\) のサロゲートモデルを構築し、獲得関数に基づいて次の評価点を選択します。少数の評価回数で効率的に最適解を探索できます。physbo を利用します。
- テンソル列最適化 ttopt
テンソル列(テンソルトレイン)最適化により探索を行います。目的関数を大きなテンソルとしてモデル化し、交差近似に基づく勾配不要の手法で最小値を探索します。MPI による並列化に対応しています。
- レプリカ交換モンテカルロ法 exchange
レプリカ交換モンテカルロ法(パラレルテンパリング)により探索を行います。異なる温度のレプリカ間で配置を交換することで、局所解への捕捉を回避します。mpi4py を利用します。
- ポピュレーションアニーリングモンテカルロ法 pamc
ポピュレーションアニーリングモンテカルロ法により探索を行います。多数のレプリカ(ウォーカー)を徐々に冷却しながらリサンプリングすることで、効率的にパラメータ空間を探索します。