ベイズ最適化(Bayesian Optimization)とは、過去の評価結果を活用して次に試すべきハイパーパラメータを賢く選択する効率的な探索手法です。評価コストの高い関数の最適化に特に有効で、少ない試行回数で良い解を見つけることができます。
仕組み
ベイズ最適化は、目的関数(モデルの性能)を近似するサロゲートモデル(通常はガウス過程)を構築し、獲得関数(Expected Improvement など)を用いて「探索(未知の領域を調べる)」と「活用(有望な領域を深堀る)」のバランスを取りながら次の探索点を選択します。
| ひとことで言うと | これまでの結果から次に試すべき値を予測して、効率よく探索する方法。 |
|---|---|
| 何がうれしいか | 少ない試行回数で良い設定にたどり着ける。学習1回が重いときに有効。 |
| 注意点 | 仕組みが複雑で、探索自体にも計算コストがかかる。 |
実用的なツール
Optuna(Python)、Hyperopt、Bayesian Optimization、BoTorch/Axなどのライブラリが利用可能です。特にOptunaは使いやすいAPIと高い性能で広く普及しています。
1何点か試す初期の実験データ
▶
2傾向を予測どの辺が良さそうか推定
▶
3次の候補を選ぶ有望かつ未探索の点
▶
4試して記録予測を更新
↺ 2〜4をくり返し、少ない回数で最良に近づく
適用場面
1回の評価に時間がかかるモデル(深層学習など)のチューニングに特に有効です。少ない試行回数で高い性能を達成できるため、計算資源の節約にもつながります。