最適化アルゴリズム

ベイズ最適化 べいずさいてきか

ベイズ最適化ガウス過程ハイパーパラメータ最適化獲得関数TPE自動機械学習
ベイズ最適化について教えて

簡単に言うとこんな感じ!

過去の試行結果から「次にどこを試せば良さそうか」を賢く予測しながら最適値を探す手法だよ。「探索(未知の場所を試す)」と「活用(良さそうな場所を深掘り)」のバランスを取りながら、少ない試行回数で最良の設定を見つけられるんだ!


ベイズ最適化とは

ベイズ最適化(Bayesian Optimization) は、評価コストが高い目的関数(ブラックボックス関数)を少ない試行回数で効率的に最適化するアルゴリズムです。ハイパーパラメータチューニングのように「1回の評価(学習)に数時間かかる」場面で特に効果を発揮します。

アイデアは「過去の試行結果を使って目的関数の形を予測(サロゲートモデルで近似)し、次に試すべき点を賢く選ぶ」というものです。探索にはガウス過程(GP)TPE(Tree-structured Parzen Estimator) などのサロゲートモデルが使われます。

どこを次に試すかは獲得関数(Acquisition Function) が決めます。「まだ調べていない未知の領域を探索する(Exploration)」と「すでに良い値が出ている周辺を重点的に試す(Exploitation)」のトレードオフを数学的に管理します。


ベイズ最適化の流れ

1. 初期点をランダムサンプリングして評価

2. サロゲートモデル(GP・TPEなど)を現在の観測点でフィット

3. 獲得関数を最大化する次の探索点を決定

4. その点で実際に目的関数を評価

5. 観測点を追加して 2. へ戻る

(設定した試行回数または時間に達したら終了)
要素役割代表的な手法
サロゲートモデル目的関数の形を近似ガウス過程(GP)、ランダムフォレスト、TPE
獲得関数次の探索点を決定EI(期待改善量)、UCB(上信頼限界)

歴史と背景

  • 1970年代:Mockusらが最適化へのベイズアプローチを提案
  • 2012年:Snoekら「Practical Bayesian Optimization of Machine Learning Algorithms」でDNNのチューニングへの応用を示す
  • 2015年:BergstraらがTPEを提案し、ガウス過程より高次元の探索が可能に
  • 2019年OptunaがデフォルトサンプラーとしてTPEを採用し、実務での使いやすさが向上

ベイズ最適化 vs 他の探索手法

手法試行回数計算コスト高次元への対応
グリッドサーチ多い高い苦手(次元の呪い)
ランダムサーチ中程度低いまあまあ
ベイズ最適化(GP)少ない中程度10〜20次元程度まで
ベイズ最適化(TPE)少ない低め100次元以上も対応
CMA-ES中程度低い連続値に強い

実務での活用シーン

シーンベイズ最適化の効果
大規模モデルのハイパーパラメータ最適化数十回の試行で数百回分の成果
製造業のプロセス最適化実験コスト削減
新薬候補の探索膨大な化合物空間の効率的探索
A/Bテストの設計試行コストを最小化しながら最適値を発見

関連用語