ベイズ最適化ケーススタディ

少ない実験でコンクリート配合を最適化する pool-based ベイズ最適化を、 GP・獲得関数のコアまで自前実装し、素朴法との比較・現実要因(ノイズ/バッチ/較正)まで検証。

データ: UCI Concrete Compressive Strength(1030×8) ・ 実装: 自前 GP / 獲得関数 + ハイブリッド検証(sklearn / モンテカルロ) ・ コード: src/00–06 ・ 解説: docs/A0–A5

図から言える3つの主張

1

固定条件では BO が少ない追加実験で最適点に到達

固定候補プール・seed 0 の比較では、初期8点から3実験で最適配合(強度82.60)を特定。Random / 空間充填は同じ試行では到達しなかった。

2

ただし優位は問題依存 — 「いつ効くか」を言える

低ノイズ・低次元では BO の空間充填に対する差は中程度(+6MPa)。観測ノイズ下ではincumbent 設計を誤ると空間充填に肉薄/逆転する。「BO は万能」ではないと実データで示した。

3

自前実装を別実装・数値計算と照合し、落とし穴を診断できる

GP↔sklearn(数値許容差内)、EI↔モンテカルロ(400万)、較正曲線で妥当性を点検。さらにベースライン設計の孤立点バイアスや予測区間の過信を自分で見つけて直した。

A0 — 問題設定

少ない試作でコンクリート強度を最大化する配合を探す。公開データ(Concrete 1030×8)を仮想実験室とし、初期8点から残り1022点を「答えを伏せた候補」に。出発点 best_init=66.95、天井 82.60、埋める gap=+15.65。

埋めるべき伸びしろ(gap +15.65)
埋めるべき伸びしろ(gap +15.65)
初期8点は8次元を薄くしか覆えない
初期8点は8次元を薄くしか覆えない

A1 — GP代理モデル

配合→強度を「予測 μ ± 不確かさ s」で返すガウス過程を自前実装。周辺尤度最大化でハイパラを学習し、sklearn と LML・予測を数値許容差内で照合(LML差 6e-8 以下、RMSE 2.6e-6 以下)。

事後分布: 観測点で締まり、未知域で太る
事後分布: 観測点で締まり、未知域で太る
カーネル: 距離が離れるほど相関が落ちる
カーネル: 距離が離れるほど相関が落ちる

A2 — 獲得関数

μ,s を「次に試す価値」に畳む EI/UCB/PI を閉形式で自前実装。EI 閉形式はモンテカルロ積分(400万)と一致=導出の実証。同じ事後でも獲得関数ごとに選ぶ点が違う(PI 保守/EI・UCB 探索寄り)。

同じ事後でも獲得関数ごとに「次の1点」が違う
同じ事後でも獲得関数ごとに「次の1点」が違う
xi/kappa が探索・活用を制御
xi/kappa が探索・活用を制御

A3 — 逐次BOループ

GP再fit→EIでプール上の次点選択→評価→反復。EI/UCB/PI とも わずか3反復で天井 82.60 に到達(1022候補の0.3%)=強いサンプル効率。

逐次BOは3反復で gap を埋める
逐次BOは3反復で gap を埋める

A4 — ベースライン比較

20種の初期分割で BO / Random / 空間充填(maximin)を平均±1σ比較。BO 81.0(到達60%) > 空間充填 74.8(0%) > Random 70.2(0%)。この固定候補プール・seed 0 の試行では、最適点に届いたのは適応的な BO だけ。(連続LHS→最近傍スナップの孤立点バイアスを診断し maximin に修正。)

BO > 空間充填 > Random。最適点に届くのは BO のみ
BO > 空間充填 > Random。最適点に届くのは BO のみ

A5a — 観測ノイズ

y_obs=y_true+N(0,σ²) を注入。仮説「ノイズ下で BO 優位が広がる」は反証: 素朴EI(incumbent=観測最大)は σ≳7 で空間充填に負け、noise-aware(incumbent=事後平均)は頑健。だが BO の優位は狭まる(空間充填はノイズ不変で強い)。

ノイズ下: incumbent の設計が決定的
ノイズ下: incumbent の設計が決定的

A5b — バッチ提案

Kriging Believer で1ラウンドに q 点(仮観測=事後平均でばらけさせる)。q=5 は 20→4 ラウンド(5倍速)、代償は序盤の点あたり効率。20点で収束。

バッチ: ラウンド数 vs 点あたり効率のトレードオフ
バッチ: ラウンド数 vs 点あたり効率のトレードオフ

A5c — キャリブレーション

予測区間の信頼性曲線。名目95%での実測被覆は、観測を正しく予測(s_obs) 92% でほぼ較正、ノイズ加算を忘れると76% で過信。モデル誤設定でも軽度過信。

ノイズ加算を忘れると過信(対角より下)
ノイズ加算を忘れると過信(対角より下)