ベイズ最適化 は、評価にコストがかかり、凸型でなく、解析式がない目的関数の大域的最適値を見つけるために使用される確率的モデルベースの最適化手法です。ハイパーパラメータ調整、設計最適化、実験制御など、目的関数の評価に時間、リソース、計算の面でコストがかかる分野に広く適用されています。
ベイズ最適化の仕組み
- サロゲートモデル:
- ベイズ最適化では代理確率モデルを使用します。一般的には ガウスプロセス (GP)、観測データ(関数の評価)に基づいて目的関数を近似します。サロゲートモデルは、平均と不確実性の両方の推定値を与えることで、可能な関数値の確率分布を示します。
- アクイジション機能:
- 獲得関数は、探査(不確実性の高い領域の検索)と開発(目標値の向上が見込まれる領域の検索)のバランスを取ることにより、次に評価するポイントを決定します。一般的なアクイジション関数には以下が含まれます。
- 期待される改善 (EI): 目的関数の改善が期待されるポイントを選択します。
- 改善の確率 (PI): 現在のベストバリューを上回る可能性が高いポイントを選択します。
- 上側信頼限界 (UCB): 予測平均値と不確実性が高いポイントに優先順位を付けます。
- 反復プロセス:
- ベイズ最適化は以下を交互に行います。
- アクイジション関数に基づいて評価するポイントを選択します。
- 新しいデータポイントでサロゲートモデルを更新します。
- 停止基準 (最大反復回数、予算、希望精度など) が満たされるまで繰り返す。
ベイズ最適化の主な機能
- サンプル効率:
- 以前の評価を将来の評価の指針として活用することで、最適なものを見つけるために必要な目的関数評価の数を最小限に抑えることができます。
- 不確実性の定量化:
- サロゲートモデルは予測の信頼区間を提供するため、不確実性の高い地域を情報に基づいて調査できます。
- ブラックボックス関数への適用性:
- ノイズの多い関数、不連続な関数、または解析形式を持たない関数に適しています。
- 高い計算コストの正当化:
- シミュレーション、実験、複雑なモデルトレーニングなど、各機能の評価にコストがかかるシナリオに最適です。
ベイズ最適化の応用
- ハイパーパラメータチューニング:
- ニューラルネットワーク、SVM、ランダムフォレストなどのアルゴリズムのハイパーパラメーターを最適化するために機械学習で使用されます。のようなフレームワーク オプチューナ、 スペアミント、および GPyOpt この目的でベイズ最適化を実装します。
- 実験デザイン:
- 物理実験(材料科学や化学など)の構成を最適化して、最小限の試行で結果を最大化するのに役立ちます。
- A/B テスト:
- マーケティングや製品設計における実験的バリアントの選択をガイドし、成果を効率的に最適化します。
- ロボット工学と制御:
- ロボットの制御パラメータの調整や軌跡の最適化に使用されます。
- ポートフォリオ最適化:
- リスクとリターンのバランスを取ることで投資ポートフォリオを最適化するために金融分野に応用されています。
- ニューラルアーキテクチャの設計:
- 効率的なディープラーニングモデルを見つけるためのニューラルアーキテクチャ検索 (NAS) をガイドします。
- 強化学習:
- 強化学習タスク、特に費用のかかるシミュレーションのシナリオにおけるポリシーを最適化します。
- 化学と創薬:
- 目的の特性に最適な分子配置または反応条件を見つけます。
ベイズ最適化の利点
- 効率的なサンプリング:
- 評価するポイントをインテリジェントに選択することで、網羅的な検索の必要性を減らします。
- 柔軟性:
- 高次元、ノイズ、ブラックボックス最適化問題に適用できます。
- 情報に基づいた意思決定:
- サロゲートモデルの確率的性質により、不確実性主導型の探索が可能になります。
- グローバル最適化:
- 複数の局所的最小値をもつ関数で大域最適値を求めるのに効果的です。