ガウス過程
ガウス過程回帰(Gaussian Process regression、別名 Kriging)は、ガウス過程(GP)を使った非パラメトリック回帰手法です。 訓練点の間を確率論的に補間し、予測の不確実性も同時に定量化できます。 Tunny Dashboard は egobox-gp クレート(v0.36、Apache-2.0)を使用しており、SMT サロゲートモデリングツールキットの Rust 移植版です。
2 つのスパース GP バリアントが選択できます: GP-FITC と GP-VFE。 どちらもアーキテクチャ、ハイパーパラメータ探索、計算量はまったく同一で、学習時に使う周辺尤度の下界の種類のみが異なります(FITC と VFE の違いを参照)。
概要
GP-FITC と GP-VFE はどちらも egobox の Sparse GP(FITC または VFE 近似)を内部で使用します。
| オプション | 近似手法 | 誘導点数 M |
|---|---|---|
| GP-FITC | FITC | min(N, 100) — 下記参照 |
| GP-VFE | VFE | min(N, 100) — 下記参照 |
誘導点の選択: N ≤ 100 のとき誘導点 = 訓練点(Z = X)となり、FITC/VFE はノイズ推定付きの厳密 GP と数学的に等価になります。 N > 100 のとき M = 100 個の誘導点を k-means セントロイド(決定論的シード)で選択します。 モデルは全 N 点で学習し、サブサンプリングは行いません。 多目的サロゲート最適化では、誘導点をパレートフロント側に偏らせ、非劣 trial に集中させることで、フロントを改善する領域でサロゲートが最も正確になるようにできます。
実測学習時間(N = 10,000): GP-FITC ≈ 2.4 秒、GP-VFE ≈ 2.0 秒(release ビルド)。 これらは開発環境での計測による参考値であり、環境やデータによって変動します。
ガウス過程の基礎
定義
ガウス過程は、任意の有限点集合 上の関数値が多変量正規分布に従うことを仮定する確率過程です:
- : 平均関数(Tunny Dashboard では を仮定)
- : カーネル関数(データ点間の類似度を表す共分散関数)
予測(事後分布)
訓練データ が与えられたとき、新しい点 に対する事後分布は:
予測(平均、分散)はバッチで計算されます。 95% 信頼帯 = 平均 ± 1.96·σ。
ARD Matérn 5/2 カーネル
カーネル関数
| パラメータ | 意味 |
|---|---|
| シグナル標準偏差(関数の振幅スケール) | |
| 次元 d の長さスケール(大きいほど滑らか) | |
| 観測ノイズ標準偏差 |
ARD(Automatic Relevance Determination): 次元ごとに独立な長さスケール を持つことで、重要な次元(小さい )と無関係な次元(大きい )を自動的に識別する仕組みです。
RBF ではなく Matérn 5/2 を選ぶ理由
| カーネル | 滑らかさ | 特徴 |
|---|---|---|
| RBF(Gaussian) | C∞(無限微分可能) | データから遠い領域で不確実性を過小評価しやすい |
| Matérn 5/2 | C²(2 回微分可能) | 工学・ハイパーパラメータ最適化の現実的な滑らかさに合致 |
スパース GP: 誘導点
N 個の訓練点をすべてカーネル求解に使う代わりに、M 個(M ≪ N)の代表点 を媒介変数として導入します:
FITC は誘導変数 を条件としたとき各訓練点が独立であると仮定します:
主要な行列:
| 行列 | サイズ | 内容 |
|---|---|---|
| K_ZZ | M × M | 誘導点間のカーネル行列 |
| K_XZ | N × M | 訓練点と誘導点間のカーネル行列 |
Q 行列(低ランク近似):
FITC ダイアゴナル行列 Λ:
Woodbury 恒等式により、高コストな N×N 逆行列を M×M 演算に削減できます:
主要コスト: O(N · M²)。
FITC と VFE の違い
FITC と VFE はどちらも同じ M×M 計算形式に帰着しますが、ハイパーパラメータ学習時に最大化する目的関数が異なります:
| 基準 | 目的関数 | ノイズ推定の傾向 |
|---|---|---|
| FITC | FITC 周辺尤度近似 | データに密着した積極的なノイズ推定 |
| VFE | Variational Free Energy(ELBO) | 真の GP 周辺尤度の真の下界;やや保守的なノイズ推定 → 滑らかなフィット |
VFE の目的関数:
トレース項は誘導点近似によって失われた情報量へのペナルティであり、FITC にはこの項がありません。
実用的なベンチマーク(ノイズなし関数、N = 100、M = 100;開発環境での計測による参考値であり、環境やデータによって変動します): GP-FITC R² ≈ 0.88、GP-VFE R² ≈ 0.76 です。 VFE はわずかにフィットを犠牲にして、より原理的な下界を実現します。 ノイズのあるデータでは両者はほぼ一致します。
使い分けの目安:
- GP-FITC:デフォルト。クリーンまたは軽度ノイズデータで最良のフィット。まずこちらを選びます。
- GP-VFE:GP-FITC の曲面が過学習気味、スパイク状に見える場合。VFE の保守的なノイズ推定がより滑らかな曲面を生み出します。
観測ノイズ分散
等分散ノイズ分散 はカーネルハイパーパラメータと同時に推定されます。 下限は正規化 y 単位で 1e-6 です(数値失敗時は 1e-3 で再試行します)。 これにより共分散行列の正定値性が保たれます。
ハイパーパラメータ最適化
egobox は選択した目的関数(FITC 尤度または VFE ELBO)を、勾配不要の COBYLA オプティマイザと 10 点マルチスタート(決定論的: 固定グリッド、固定シード)を用いて最大化します。
最適化変数は です。 対数空間で最適化するため、すべてのパラメータは明示的な制約なしに正値を保ちます。
データ正規化
GP はハイパーパラメータの初期値 (長さスケール )を前提としているため、 と が 程度のスケールでないと最適化が適切に収束しません。
- X: 各次元を [0,1] にスケーリング(min/max 正規化)
- Y: Z スコア正規化(平均 0、標準偏差 1)
- グリッド予測を逆変換して元スケールに戻します
計算量
| 処理 | 計算量 | N=10000, M=100 の概算 |
|---|---|---|
| FITC/VFE カーネル行列 | O(N·M²) | 1×10⁸ ops |
| Cholesky 分解(M×M) | O(M³) | 1×10⁶ ops |
| グリッド予測(50×50) | O(2500·M) | 2.5×10⁵ ops |
目標: 10,000ms 以内(release ビルド)。 実測(N = 10,000): GP-FITC ≈ 2.4 秒、GP-VFE ≈ 2.0 秒(開発環境での計測による参考値であり、環境やデータによって変動します)。
R² の見方
| R² | 対応 |
|---|---|
| ≥ 0.8 | 良好なフィットです。曲面は信頼できます。 |
| < 0.5 | フィット不良。Random Forest または LightGBM に切り替えるか、N を増やします。 |
特性・限界
強み:
- データが少なくても高品質な補間(N=20 程度でも機能します)
- 滑らかな曲面(Matérn 5/2 の C² 連続性)
- ARD により各次元の重要度を自動推定
- 全 N 点で学習し、データのサブサンプリングは行いません(egobox-gp バックエンド)
- 95% 信頼帯による不確実性の可視化
弱み:
- N > 100 では M = 100 の誘導点上限によりコストを抑えますが近似誤差が生じます
- GP-FITC はノイズが多いデータで過学習しやすい(その場合は GP-VFE を使用)
- COBYLA マルチスタートが局所最適解に収束する場合があります
使用場面の目安
目的関数の形が...
線形に近い ───────────────────────────────────→ Ridge(最速)
非線形・不連続 ──────────────────────────────→ LightGBM または Random Forest
滑らかな非線形(デフォルト) ─────────────────→ GP-FITC(最高品質・デフォルト)
滑らかな非線形・曲面が過学習気味 ────────────→ GP-VFE(より滑らか・保守的)
不連続・多領域の応答 ────────────────────────→ GP-MOE(gaussian-process-moe.md 参照)- N < 50 の Study では GP-FITC が最も信頼性の高い補間を提供します
- なら曲面はデータをよく説明できています
参考文献
- Rasmussen, C. E., & Williams, C. K. I. (2006). Gaussian Processes for Machine Learning. MIT Press. https://gaussianprocess.org/gpml/
- Snelson, E., & Ghahramani, Z. (2006). Sparse Gaussian Processes using Pseudo-inputs. NeurIPS 18.(FITC) https://papers.nips.cc/paper/2857-sparse-gaussian-processes-using-pseudo-inputs
- Titsias, M. K. (2009). Variational Learning of Inducing Variables in Sparse Gaussian Processes. AISTATS 2009.(VFE) https://proceedings.mlr.press/v5/titsias09a.html