ベイズ最適化とガウス過程による代理モデル
ベイズ最適化は、評価コストが高い関数の最適化を効率的に行う手法です。ガウス過程を代理モデルとして使用し、獲得関数に基づいて次の評価点を決定します。
ベイズ最適化の基本枠組み
ベイズ最適化は以下の要素から構成されます:
- 代理モデル:ガウス過程による目的関数の確率的モデル
- 獲得関数:次の評価点を決定する基準(Expected Improvement等)
- 最適化ループ:観測→モデル更新→次点決定の反復
この手法により、少ない評価回数で効率的な最適化が可能になります。
Step 1: 問題設定の整理
- 観測データ:$(x_1, f(x_1)) = (0, 1.0)$, $(x_2, f(x_2)) = (1, 0.5)$
- カーネル関数:RBF(ガウス)カーネル
- カーネルパラメータ:$\sigma^2 = 1$(信号分散), $\gamma = 1$(長さスケール逆数)
- 予測点:$x^* = 0.5$
Step 2: RBFカーネル関数の定義
RBF(Radial Basis Function)カーネルは:
$k(x, x') = \sigma^2 \exp\left(-\gamma (x - x')^2\right)$
パラメータの意味:
- $\sigma^2$:信号の分散(関数値の変動幅)
- $\gamma$:長さスケールの逆数($\ell = 1/\sqrt{2\gamma}$)
Step 3: カーネル行列の計算
観測点間のカーネル行列 $\mathbf{K}$:
$\mathbf{K} = \begin{pmatrix} k(x_1, x_1) & k(x_1, x_2) \\ k(x_2, x_1) & k(x_2, x_2) \end{pmatrix}$
各要素の計算:
- $k(0, 0) = 1 \exp(-1 \cdot (0-0)^2) = 1$
- $k(0, 1) = 1 \exp(-1 \cdot (0-1)^2) = e^{-1} ≈ 0.3679$
- $k(1, 0) = k(0, 1) = e^{-1} ≈ 0.3679$
- $k(1, 1) = 1 \exp(-1 \cdot (1-1)^2) = 1$
$\mathbf{K} = \begin{pmatrix} 1 & e^{-1} \\ e^{-1} & 1 \end{pmatrix} = \begin{pmatrix} 1 & 0.3679 \\ 0.3679 & 1 \end{pmatrix}$
Step 4: 予測点と観測点間のカーネルベクトル
$\mathbf{k}_* = \begin{pmatrix} k(x^*, x_1) \\ k(x^*, x_2) \end{pmatrix} = \begin{pmatrix} k(0.5, 0) \\ k(0.5, 1) \end{pmatrix}$
各要素の計算:
- $k(0.5, 0) = 1 \exp(-1 \cdot (0.5-0)^2) = e^{-0.25} ≈ 0.7788$
- $k(0.5, 1) = 1 \exp(-1 \cdot (0.5-1)^2) = e^{-0.25} ≈ 0.7788$
$\mathbf{k}_* = \begin{pmatrix} 0.7788 \\ 0.7788 \end{pmatrix}$
Step 5: ガウス過程の事後平均の公式
ガウス過程回帰における事後平均は:
$\mu(x^*) = \mathbf{k}_*^T \mathbf{K}^{-1} \mathbf{f}$
ここで:
- $\mathbf{f} = (f(x_1), f(x_2))^T = (1.0, 0.5)^T$:観測値ベクトル
- $\mathbf{K}^{-1}$:カーネル行列の逆行列
Step 6: カーネル行列の逆行列計算
2×2行列の逆行列公式:
$\mathbf{K}^{-1} = \frac{1}{\det(\mathbf{K})} \begin{pmatrix} 1 & -e^{-1} \\ -e^{-1} & 1 \end{pmatrix}$
行列式の計算:
$\det(\mathbf{K}) = 1 \cdot 1 - e^{-1} \cdot e^{-1} = 1 - e^{-2} = 1 - 0.1353 = 0.8647$
$\mathbf{K}^{-1} = \frac{1}{0.8647} \begin{pmatrix} 1 & -0.3679 \\ -0.3679 & 1 \end{pmatrix} = \begin{pmatrix} 1.1565 & -0.4254 \\ -0.4254 & 1.1565 \end{pmatrix}$
Step 7: 事後平均の計算
$\mu(x^*) = \mathbf{k}_*^T \mathbf{K}^{-1} \mathbf{f}$
$= \begin{pmatrix} 0.7788 & 0.7788 \end{pmatrix} \begin{pmatrix} 1.1565 & -0.4254 \\ -0.4254 & 1.1565 \end{pmatrix} \begin{pmatrix} 1.0 \\ 0.5 \end{pmatrix}$
中間計算:
$\mathbf{K}^{-1} \mathbf{f} = \begin{pmatrix} 1.1565 & -0.4254 \\ -0.4254 & 1.1565 \end{pmatrix} \begin{pmatrix} 1.0 \\ 0.5 \end{pmatrix}$
$= \begin{pmatrix} 1.1565 \times 1.0 + (-0.4254) \times 0.5 \\ (-0.4254) \times 1.0 + 1.1565 \times 0.5 \end{pmatrix}$
$= \begin{pmatrix} 1.1565 - 0.2127 \\ -0.4254 + 0.5783 \end{pmatrix} = \begin{pmatrix} 0.9438 \\ 0.1529 \end{pmatrix}$
最終計算:
$\mu(0.5) = 0.7788 \times 0.9438 + 0.7788 \times 0.1529$
$= 0.7788 \times (0.9438 + 0.1529) = 0.7788 \times 1.0967 = 0.8537$
Step 8: ベイズ最適化の獲得関数
主要な獲得関数
| 獲得関数 | 定義 | 特徴 |
|---|
| Expected Improvement (EI) | $E[\max(f(x) - f_{best}, 0)]$ | 改善への期待値 |
| Upper Confidence Bound (UCB) | $\mu(x) + \beta \sigma(x)$ | 楽観的な上界 |
| Probability of Improvement (PI) | $P(f(x) > f_{best})$ | 改善確率 |
| Entropy Search | 情報エントロピーベース | 情報理論的 |