【べいずさいてきか】
ベイズ最適化 とは?
最終更新:
💡 試した結果と不確かさから、次の候補を選ぶ
過去に試した入力と結果から確率モデルを作り、次に評価する候補を選ぶ最適化の方法。評価に時間や費用がかかる問題に使い、良さそうな候補と不確かな候補を考慮する。機械学習の設定探索は応用例の一つ。
📌 このページのポイント
- 過去の評価結果から、目的関数の予測モデルを作る
- 獲得関数が、予測値と不確かさをもとに次の候補を選ぶ
- 候補を実際に評価し、その結果でモデルを更新する
- 少ない評価を目指すが、結果や効率は問題と設定による
ベイズ最適化は、何を探す方法?
入力を変えたときの結果を見て、良い値を出す入力を探すんだ。例えば学習の設定を変えて性能を比べる場合に使える。実験の条件など、機械学習以外の評価が高価な問題にも使えるよ
試していない点は、どうやって考えるの?
過去の入力と結果から、目的関数を代わりに予測するモデルを作るよ。これをサロゲートモデルと呼ぶ。ガウス過程はその一例で、予測の平均値だけでなく不確かさも扱う。予測は実際の評価結果とは分けるんだ
獲得関数って、何をするの?
次に評価する候補の良さを計算する関数だよ。値を大きくする問題なら、EIは今の最良値からの改善の期待値、UCBは予測平均と重みを付けた不確かさを使う。有望な場所と、まだ情報が少ない場所の両方を考えるんだ
Optunaを使えば、必ずこの方法になる?
ランダムサーチより、必ず少ない試行で成功する?
保証ではないよ。1回の評価が高価な問題で試行を節約することを目指すけれど、変数の数、モデルの仮定、観測のばらつき、並列実行などが効く。モデルを作る計算時間も含め、予算と問題に合わせて比較するんだ
まとめ:ざっくりこれだけ覚えればOK!
「ベイズ最適化」って出てきたら「過去の結果と不確かさを使い、次に試す候補を選ぶ方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Bayesian Optimization」 = ベイズ的な最適化
💬 Bayesianはベイズ推論に基づくという意味だよ。観測した結果を使って目的関数についての確率的な見方を更新し、次の評価に活かすんだ