ベイズ最適化は、ブラックボックス目的関数の大域的最適化のための逐次設計戦略です。これは、評価コストが高い場合に特に有用であり、限られた評価回数で最適解を見つけることを目指します。この手法は、目的関数の事前分布を仮定し、観測データに基づいて事後分布を更新することで、次に評価すべき点を賢く選択します。
歴史
ベイズ最適化のルーツは1960年代から1970年代に遡ります。ハロルド・J・クシュナーらは、ノイズの多い関数の極値を見つけるための方法を開発しました。1998年には、ドナルド・R・ジョーンズ、マティアス・ショーナウ、ウィリアム・J・ウェルチが、EGO(効率的グローバル最適化)アルゴリズムを導入しました。これは、クリギングモデル(ガウス過程)と期待改善量の基準を組み合わせたもので、高価な関数の最適化における画期的な成果でした。この研究は、その後のベイズ最適化の分野を確立し、広く知られるきっかけとなりました。
その後、このフレームワークは、ノイズの多い観測、制約条件、並列評価、複数の目的関数、高次元空間など、より広範な問題に対応できるように拡張されました。これらの拡張により、ベイズ最適化はより実用的な問題に適用可能となりました。
問題設定
標準的な単一目的のベイズ最適化問題では、探索空間上の関数 f(x) を最小化(または最大化)することを目指します。一般性を失うことなく、最大化問題は -f(x) を最小化することで扱えます。探索空間は、連続的な領域や離散的な集合など、問題に応じて定義されますが、最も標準的な定式化は連続的な低次元から中程度の次元の問題に適用されます。探索空間の次元が増加するにつれて、問題は難しくなり、評価点はまばらになります。
問題は、ノイズのない評価(決定論的)またはノイズの多い評価(確率的)として分類できます。ノイズの多い評価では、観測値にランダムな誤差が含まれます。現実世界の応用では、シミュレーションや物理実験のコストが高いため、評価回数を最小限に抑えることが重要です。ベイズ最適化は、このような状況で特に威力を発揮します。
基本手法
ほとんどのベイズ最適化アルゴリズムは、以下の逐次手順に従います。
- 初期設計: 初期の観測点を選択します。典型的な方法としては、空間充填設計(ラテン超方格法やランダムサンプリングなど)が用いられます。
- 代理モデルの構築: 観測データに基づいて、目的関数の代理モデル(サロゲートモデル)を構築します。これは、目的関数の挙動を確率的に予測するモデルであり、予測値と不確実性の両方を提供します。
- 獲得関数の最適化: 獲得関数(インフィル基準とも呼ばれる)を定義し、これを最大化する次の評価点を選択します。獲得関数は、代理モデルの予測に基づいて、探索(不確実性の高い領域を評価)と活用(予測値の良い領域を評価)のバランスを取ります。一般的な獲得関数には、期待改善量(EI)、信頼上限(UCB)、改善確率(PI)などがあります。
- 評価と更新: 選択された点で目的関数を評価し、その結果を観測データに追加します。その後、代理モデルを更新し、ステップ3に戻ります。
- 終了条件: あらかじめ設定された評価回数に達するか、収束条件を満たすまで、ステップ3と4を繰り返します。
このループにより、ベイズ最適化は、少ない評価回数で効率的に大域的最適解を探索します。
確率モデル
ベイズ最適化の中心となるのは、確率モデル、特にガウス過程回帰(GPR)です。GPRは、任意の点集合における関数値が共同でガウス分布に従うと仮定する柔軟なモデルです。GPRは、観測データに基づいて、未評価の点における関数の予測平均と予測分散(不確実性)を提供します。この不確実性の定量化が、獲得関数の設計において重要です。
他の確率モデルとしては、ランダムフォレストやニューラルネットワークを用いる手法もありますが、特に高次元や複雑な関数に対しては、深層学習を用いた手法も研究されています。これらのモデルは、目的関数の代理として機能し、獲得関数の計算に必要な予測と不確実性を提供します。
拡張と応用
ベイズ最適化は、様々な拡張が提案されており、多くの分野で応用されています。
- 並列・バッチ最適化: 現代の計算環境(GPUクラスタやクラウド)を活用するために、複数の評価点を同時に選択する手法が開発されています。
- 高次元問題への対応: ベイズ最適化は高次元問題では困難な場合がありますが、次元削減や変数選択などの手法と組み合わせることで、その適用範囲を広げる研究が進められています。
- 応用分野: 機械学習のハイパーパラメータ最適化、実験計画(化学、物理学、創薬など)、シミュレーションの設計最適化、ロボット制御など、幅広い分野で応用されています。
限界と今後の展望
ベイズ最適化は強力な手法ですが、いくつかの限界もあります。特に、非常に高次元の問題や、複雑で非定常な関数に対しては、性能が低下する可能性があります。しかし、これらの限界を克服するための研究が現在も活発に行われており、多くの拡張が開発されています。ベイズ最適化は、計算コストの高いブラックボックス最適化問題に対する主要なアプローチとして、今後も発展を続けると考えられています。