サロゲートモデル
本章では、Tunny Dashboard が提供するサロゲートモデルについて紹介します。
サロゲートモデルは試行データに関数を当てはめ、密なグリッド上で目的関数を予測して応答曲面(PDP チャート 2D)を可視化します。 実際に評価した試行は探索空間の中では飛び飛びにしか存在しないため、点をそのまま眺めても目的関数の傾向はつかみにくくなります。 試行の間を関数で埋めることで、パラメータを動かしたときに目的関数がどう変化するかを面として読み取れるようになります。
モデル比較
| モデル | 速度 | 非線形 | 用途 |
|---|---|---|---|
| Ridge | < 100 ms | なし | 線形な応答、任意の N |
| Random Forest | < 2,000 ms | あり | 非線形 / 不連続 / ノイジー |
| GP-FITC | < 10,000 ms | あり | 滑らかな非線形、任意の N — デフォルト GP |
| GP-VFE | < 10,000 ms | あり | 滑らかな非線形、任意の N — 保守的、より滑らかなフィット |
| GP-MOE | < 30,000 ms | あり | 不連続 / レジームスイッチ / 多峰性 |
GP バリアント(GP-FITC、GP-VFE、GP-MOE)はすべて egobox-gp / egobox-moe(Apache-2.0)を使用し、M = min(N, 100) 誘導点を使います。 N ≤ 100 の場合、数学的にはノイズ推定付きの厳密 GP と等価になります。 誘導点を 100 個で頭打ちにすることで、試行数が増えても N×N の逆行列計算を避けられ、学習コストが N に対して線形にしか伸びません。
Random Forest は LightGBM の Random Forest モードをバックエンドとして使用します。 ヒストグラムベースの分割により、試行数が多くても学習が高速に済むためです。
モデル選択の目安
どのモデルを使うかは、応答の形をどう見込むかで決まります。 見込みが立たない場合は、まず Ridge のようなもっとも軽いモデルで全体の傾向をつかみ、R² が低ければ表現力の高いモデルに切り替えるのが手早い進め方です。
flowchart TD
shape{"応答の形は?"}
shape -- "線形" --> ridge["Ridge(最速)"]
shape -- "非線形 / ノイジー / 不連続" --> rf["Random Forest<br/>(LightGBM RF バックエンド)"]
shape -- "滑らかな非線形" --> smooth{"滑らかな非線形"}
smooth -- "デフォルト" --> gpfitc["GP-FITC"]
smooth -- "曲面が過学習気味・スパイク状" --> gpvfe["GP-VFE<br/>(より滑らか・保守的)"]
smooth -- "不連続 / 多領域" --> gpmoe["GP-MOE"]
R² の解釈
全モデルが訓練データに対する R² を報告します。 高いほど良いですが、訓練セット R² は過学習で膨らむことがあります。 訓練に使ったデータそのものでモデルを評価しているので、データに合わせ込みすぎたモデルほど R² が高く出ます。
| R² | 対応 |
|---|---|
| ≥ 0.8 | モデルの当てはまりが良好です;曲面は信頼できます |
| < 0.5 | より表現力の高いモデルへ切り替えます |
そのため R² は「曲面が信頼できないかどうか」を見分ける下限の目安として使い、高い値をもって精度が保証されたとは考えないでください。 モデルを切り替えても R² が上がらない場合は、試行数そのものが足りていない可能性もあります。