5. ガウス過程回帰

5.1. 動機付け

(1.13) において、データ数とパラメータ数が等しい、すなわち \(\boldsymbol{\Phi}\) が正方行列となるケースを考える

(5.5)\[\begin{split}\boldsymbol{y} \equiv \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_N \end{pmatrix} = \begin{pmatrix} \phi_0(\boldsymbol{x}_1) & \phi_1(\boldsymbol{x}_1) & \cdots & \phi_{N-1}(\boldsymbol{x}_1) \\ \phi_0(\boldsymbol{x}_2) & \phi_1(\boldsymbol{x}_2) & \cdots & \phi_{N-1}(\boldsymbol{x}_2) \\ \vdots & \cdots & \cdots & \vdots \\ \phi_0(\boldsymbol{x}_N) & \phi_1(\boldsymbol{x}_N) & \cdots & \phi_{N-1}(\boldsymbol{x}_N) \\ \end{pmatrix} \begin{pmatrix} w_0 \\ w_1 \\ \vdots \\ w_{N-1} \end{pmatrix} \equiv \boldsymbol{\Phi}\boldsymbol{w} .\end{split}\]

さらに \(\boldsymbol{\Phi}\) が正則であるとして、上式を \(\boldsymbol{w}\) について解く

(5.6)\[\boldsymbol{w} = \boldsymbol{\Phi}^{-1} \boldsymbol{y} .\]

パラメータ \(\boldsymbol{w}\) に対する事前分布として

(5.7)\[p(\boldsymbol{w}) \propto \exp{\left(-\frac{\beta}{2}\boldsymbol{w}^\top\boldsymbol{w}\right)}\]

を考え、ここに式 (5.6) を代入すると次式が得られる

(5.8)\[\exp{\left(-\frac{\beta}{2}\boldsymbol{w}^\top\boldsymbol{w}\right)} = \exp{\left(-\frac{\beta}{2}\boldsymbol{y}^\top\boldsymbol{\Phi}^{-\top}\boldsymbol{\Phi}^{-1}\boldsymbol{y}\right)} = \exp{\left(-\frac{\beta}{2}\boldsymbol{y}^\top \left(\boldsymbol{\Phi}\boldsymbol{\Phi}^\top\right)^{-1}\boldsymbol{y}\right)} .\]

上式はパラメータ \(\boldsymbol{w}\) が消去され、代わりに \(\boldsymbol{y}\) に対する事前分布を与えた式となっている。式 (5.5) から

(5.9)\[\begin{split}\boldsymbol{\Phi}\boldsymbol{\Phi}^\top = \begin{pmatrix} \phi_0(\boldsymbol{x}_1) & \phi_1(\boldsymbol{x}_1) & \cdots & \phi_{N-1}(\boldsymbol{x}_1) \\ \phi_0(\boldsymbol{x}_2) & \phi_1(\boldsymbol{x}_2) & \cdots & \phi_{N-1}(\boldsymbol{x}_2) \\ \vdots & \cdots & \cdots & \vdots \\ \phi_0(\boldsymbol{x}_N) & \phi_1(\boldsymbol{x}_N) & \cdots & \phi_{N-1}(\boldsymbol{x}_N) \\ \end{pmatrix} \begin{pmatrix} \phi_0(\boldsymbol{x}_1) & \phi_0(\boldsymbol{x}_2) & \cdots & \phi_0(\boldsymbol{x}_N) \\ \phi_1(\boldsymbol{x}_1) & \phi_1(\boldsymbol{x}_2) & \cdots & \phi_1(\boldsymbol{x}_N) \\ \vdots & \cdots & \cdots & \vdots \\ \phi_{N-1}(\boldsymbol{x}_1) & \phi_{N-1}(\boldsymbol{x}_2) & \cdots & \phi_{N-1}(\boldsymbol{x}_N) \\ \end{pmatrix}\end{split}\]

であり、

(5.10)\[k(\boldsymbol{x}_i, \boldsymbol{x}_j) \equiv \sum_{n=0}^{N-1} \phi_n(\boldsymbol{x}_i) \phi_n(\boldsymbol{x}_j)\]

という関数を定義して、これを要素とする行列を

(5.11)\[\begin{split}\boldsymbol{K} \equiv \begin{pmatrix} k(\boldsymbol{x}_1, \boldsymbol{x}_1) & k(\boldsymbol{x}_1, \boldsymbol{x}_2) & \cdots & k(\boldsymbol{x}_1, \boldsymbol{x}_N) \\ k(\boldsymbol{x}_2, \boldsymbol{x}_1) & k(\boldsymbol{x}_2, \boldsymbol{x}_2) & \cdots & k(\boldsymbol{x}_2, \boldsymbol{x}_N) \\ \vdots & \cdots & \cdots & \vdots \\ k(\boldsymbol{x}_N, \boldsymbol{x}_1) & k(\boldsymbol{x}_N, \boldsymbol{x}_2) & \cdots & k(\boldsymbol{x}_N, \boldsymbol{x}_N) \\ \end{pmatrix}\end{split}\]

と置くと、\(\boldsymbol{y}\) の事前分布は次のように書ける

(5.12)\[p(\boldsymbol{y}) = \frac{1}{\sqrt{(2\pi)^N\left| K \right|}} \exp{\left( -\frac{1}{2} \boldsymbol{y}^\top \boldsymbol{K}^{-1} \boldsymbol{y} \right)} .\]

以上より、パラメータ\(\boldsymbol{w}\) を経由することなく、 \(\boldsymbol{y}\) についての確率分布を直接的に扱う定式化の可能性が示唆される。そうすることで、基底関数やパラメータの数の増大で計算が困難になる、いわゆる「次元の呪い」からの解放される事になる。

5.2. ガウス過程との関係

いま、多数の(あるいは連続的な)データから、任意に \(N\) 個のデータを取り出すことを考える

(5.13)\[\{y_1, y_2, \dots, y_N\} .\]

この\(N\) 個のデータの同時分布が、式 (5.12) のような多変量ガウス分布であるとき、これは「ガウス過程」と呼ばれる確率過程の定義そのものになっている。もちろん今はデータのラベルに時間の意味はないが、この対応から、式 (5.12) の確率分布を利用した回帰は「ガウス過程回帰」と呼ばれる。

5.3. 出力にノイズがある場合

出力データにノイズがあり、次のような形でデータが生成される場合を考える

(5.14)\[\boldsymbol{t} = \boldsymbol{y} + \boldsymbol{\varepsilon} .\]

\(\boldsymbol{y}\) が与えられた時の \(\boldsymbol{t}\) の分布を

(5.15)\[p(\boldsymbol{t} | \boldsymbol{y}) = \frac{1}{\sqrt{(2\pi)^N(\sigma_\varepsilon^2)^N}} \exp{\left( -\frac{1}{2\sigma_\varepsilon^2} (\boldsymbol{t}-\boldsymbol{y})^\top (\boldsymbol{t}-\boldsymbol{y}) \right)}\]

でモデル化するとき、\(\boldsymbol{t}\) の周辺分布は

(5.16)\[p(\boldsymbol{t}) = \int p(\boldsymbol{t} | \boldsymbol{y}) p(\boldsymbol{y}) d\boldsymbol{y}\]

と計算される。これを (5.12) および (5.15) を用いて計算すると

(5.17)\[p(\boldsymbol{t}) = \frac{1}{\sqrt{(2\pi)^N\left| \boldsymbol{K} + \beta^{-1}\boldsymbol{I} \right|}} \exp{\left( -\frac{1}{2} \boldsymbol{t}^\top \left( \boldsymbol{K} + \beta^{-1}\boldsymbol{I} \right)^{-1} \boldsymbol{t} \right)}\]

が得られる。これは、共分散行列を

(5.18)\[\boldsymbol{K} \longrightarrow \boldsymbol{K} + \beta^{-1}\boldsymbol{I}\]

と置き換えれば (5.12) と本質的には同じものであることがわかる。

5.4. 予測分布

いま、\(N_1\) 個の入出力データのセットがあるとして、新たな \(N\) 個の入力と対応する出力を

(5.19)\[\begin{split}\boldsymbol{X} &\equiv \{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \dots, \boldsymbol{x}_{N}\} ,\\\\ \boldsymbol{t} &\equiv \{t_{1}, t_{2}, \dots, t_{N}\}\end{split}\]

と表し、入出力がそろっている \(N_1\) 個の(既知の)データを

(5.20)\[\begin{split}\boldsymbol{X}_{N_1} &\equiv \{\boldsymbol{x}_{N+1}, \boldsymbol{x}_{N+2}, \dots, \boldsymbol{x}_{N+N_1}\} ,\\\\ \boldsymbol{t}_{N_1} &\equiv \{t_{N+1}, t_{N+2}, \dots, t_{N+N_1}\} \\\end{split}\]

と表すことにする。関数 \(k(\boldsymbol{x}, \boldsymbol{x}')\) の形も与えられているとして、 共分散行列をブロック行列の形で以下のように定義する

(5.21)\[\begin{split}\begin{pmatrix} \boldsymbol{K}_{NN} & \boldsymbol{K}_{NN_1} \\ \boldsymbol{K}_{N_1N} & \boldsymbol{K}_{N_1N_1} \\ \end{pmatrix} \equiv \begin{pmatrix} k(\boldsymbol{x}_1, \boldsymbol{x}_1) & \cdots & k(\boldsymbol{x}_1, \boldsymbol{x}_{N}) & \cdots & k(\boldsymbol{x}_1, \boldsymbol{x}_{N+N_1}) \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ k(\boldsymbol{x}_N, \boldsymbol{x}_1) & \cdots & k(\boldsymbol{x}_N, \boldsymbol{x}_{N}) & \cdots & k(\boldsymbol{x}_N, \boldsymbol{x}_{N+N_1}) \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ k(\boldsymbol{x}_{N+N_1}, \boldsymbol{x}_1) & \cdots & k(\boldsymbol{x}_{N+N_1}, \boldsymbol{x}_N) & \cdots & k(\boldsymbol{x}_{N+N_1}, \boldsymbol{x}_{N+N_1}) \\ \end{pmatrix} .\end{split}\]

ここで \(\boldsymbol{t}\)\(\boldsymbol{t_{N_1}}\) の同時分布を考える。指数部の中身だけ書き出すと

(5.22)\[\begin{split}-\frac{1}{2} \left( \boldsymbol{t}^\top \;\; \boldsymbol{t}_{N_1}^\top \right) \begin{pmatrix} \boldsymbol{K}_{N N} & \boldsymbol{K}_{N N_1} \\ \boldsymbol{K}_{N_1 N} & \boldsymbol{K}_{N_1 N_1} \\ \end{pmatrix}^{-1} \begin{pmatrix} \boldsymbol{t} \\ \boldsymbol{t}_{N_1} \\ \end{pmatrix} \equiv -\frac{1}{2} \left( \boldsymbol{t}^\top \;\; \boldsymbol{t}_{N_1}^\top \right) \begin{pmatrix} \boldsymbol{L}_{N N} & \boldsymbol{L}_{N N_1} \\ \boldsymbol{L}_{N_1 N} & \boldsymbol{L}_{N_1 N_1} \\ \end{pmatrix} \begin{pmatrix} \boldsymbol{t} \\ \boldsymbol{t}_{N_1} \\ \end{pmatrix} .\end{split}\]

ここで、共分散行列の逆行列(精度行列)の各ブロックは、ブロック行列の逆行列の公式を用いれば次のようになる

\[\begin{split}\boldsymbol{L}_{NN} &= \left( \boldsymbol{K}_{NN} -\boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{K}_{N_1N} \right)^{-1} ,\\\\ \boldsymbol{L}_{NN_1} &= -\left( \boldsymbol{K}_{NN} -\boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{K}_{N_1N} \right)^{-1} \boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1} ,\\\\ \boldsymbol{L}_{N_1N} &= -\boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{K}_{N_1N} \left( \boldsymbol{K}_{NN} -\boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{K}_{N_1N} \right)^{-1} ,\\\\ \boldsymbol{L}_{N_1N_1} &= \boldsymbol{K}^{-1}_{N_1N_1} - \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{K}_{N_1N} \left( \boldsymbol{K}_{NN} -\boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{K}_{N_1N} \right)^{-1} \boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1}\end{split}\]

となる。これらを用いて (5.22) は次のように書ける

\[\begin{split}-\frac{1}{2} \left( \boldsymbol{t}^\top \;\; \boldsymbol{t}_{N_1}^\top \right) \begin{pmatrix} \boldsymbol{L}_{N N} & \boldsymbol{L}_{N N_1} \\ \boldsymbol{L}_{N_1 N} & \boldsymbol{L}_{N_1 N_1} \\ \end{pmatrix} \begin{pmatrix} \boldsymbol{t} \\ \boldsymbol{t}_{N_1} \\ \end{pmatrix} &= -\frac{1}{2} \left( \boldsymbol{t}^\top \boldsymbol{L}_{NN} \boldsymbol{t} + \boldsymbol{t}^\top \boldsymbol{L}_{NN_1} \boldsymbol{t}_{N_1} + \boldsymbol{t}_{N_1}^\top \boldsymbol{L}_{N_1N} \boldsymbol{t} + \boldsymbol{t}_{N_1}^\top \boldsymbol{L}_{N_1N_1} \boldsymbol{t}_{N_1} \right) \\ &= -\frac{1}{2} \left( \boldsymbol{t}^\top + \boldsymbol{t}_{N_1}^\top \boldsymbol{L}_{N_1N} \boldsymbol{L}^{-1}_{NN} \right) \boldsymbol{L}_{NN} \left( \boldsymbol{t} + \boldsymbol{L}^{-1}_{NN} \boldsymbol{L}_{NN_1} \boldsymbol{t}_{N_1} \right) -\frac{1}{2} \boldsymbol{t}_{N_1}^\top \left( \boldsymbol{L}_{N_1N_1} - \boldsymbol{L}_{N_1N} \boldsymbol{L}^{-1}_{NN} \boldsymbol{L}_{NN_1} \right) \boldsymbol{t}_{N_1} .\end{split}\]

\(\boldsymbol{K}\) に戻して式を整理する

\[\begin{split}\boldsymbol{L}_{N_1N} \boldsymbol{L}^{-1}_{NN} &= -\boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{K}_{N_1N} ,\\ \\ \boldsymbol{L}^{-1}_{NN} \boldsymbol{L}_{NN_1} &= \left( \boldsymbol{L}_{N_1N} \boldsymbol{L}^{-1}_{NN} \right)^\top = -\boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1} ,\\ \\ \boldsymbol{L}_{N_1N_1} - \boldsymbol{L}_{N_1N} \boldsymbol{L}^{-1}_{NN} \boldsymbol{L}_{NN_1} &= \boldsymbol{K}^{-1}_{N_1N_1} .\\\end{split}\]

以上をまとめると

(5.23)\[\begin{split}-\frac{1}{2} \left( \boldsymbol{t}^\top \;\; \boldsymbol{t}_{N_1}^\top \right) \begin{pmatrix} \boldsymbol{L}_{N N} & \boldsymbol{L}_{N N_1} \\ \boldsymbol{L}_{N_1 N} & \boldsymbol{L}_{N_1 N_1} \\ \end{pmatrix} \begin{pmatrix} \boldsymbol{t}\\ \boldsymbol{t}_{N_1}\\ \end{pmatrix} &= -\frac{1}{2} \left( \boldsymbol{t}^\top - \boldsymbol{t}_{N_1}^\top \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{K}_{N_1N} \right) \boldsymbol{L}_{NN} \left( \boldsymbol{t} -\boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{t}_{N_1} \right) -\frac{1}{2} \boldsymbol{t}_{N_1}^\top \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{t}_{N_1}\end{split}\]

となる。確率の同時分布と条件付き分布の関係式

(5.24)\[p(\boldsymbol{t}, \boldsymbol{t}_{N_1}) = p(\boldsymbol{t} | \boldsymbol{t}_{N_1}) p(\boldsymbol{t}_{N_1})\]

より、

(5.25)\[p(\boldsymbol{t} | \boldsymbol{t}_{N_1}) \propto \exp{ \left( -\frac{1}{2} \left( \boldsymbol{t}^\top - \boldsymbol{t}_{N_1}^\top \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{K}_{N_1N} \right) \boldsymbol{L}_{NN} \left( \boldsymbol{t} -\boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{t}_{N_1} \right) \right) }\]

が得られ、これが求めようとしていた \(\boldsymbol{t}_{N_1}\) が既知である状況での、\(\boldsymbol{t}\) の条件付き確率分布となる。

5.5. 予測関数

(5.25) より、平均

(5.26)\[\boldsymbol{m} \equiv \boldsymbol{K}_{NN_1} \boldsymbol{K}^{-1}_{N_1N_1} \boldsymbol{t}_{N_1}\]

が、(5.19) の入力に対する出力の予測となり、(5.25) は、その誤差を与える事になる。式 (5.26) を書き下すと次のようになる

(5.27)\[\begin{split}\begin{pmatrix} m(\boldsymbol{x}_{1}) \\ m(\boldsymbol{x}_{2}) \\ \vdots \\ m(\boldsymbol{x}_{N}) \\ \end{pmatrix} = \begin{pmatrix} \sum_{i=N+1}^{N+N_1} \sum_{j=N+1}^{N+N_1} k(\boldsymbol{x}_{1}, \boldsymbol{x}_i) k^{-1}(\boldsymbol{x}_i, \boldsymbol{x}_j) t(\boldsymbol{x}_j) \\ \sum_{i=N+1}^{N+N_1} \sum_{j=N+1}^{N+N_1} k(\boldsymbol{x}_{2}, \boldsymbol{x}_i) k^{-1}(\boldsymbol{x}_i, \boldsymbol{x}_j) t(\boldsymbol{x}_j) \\ \vdots \\ \sum_{i=N+1}^{N+N_1} \sum_{j=N+1}^{N+N_1} k(\boldsymbol{x}_{N}, \boldsymbol{x}_i) k^{-1}(\boldsymbol{x}_i, \boldsymbol{x}_j) t(\boldsymbol{x}_j) \end{pmatrix}\end{split}\]

となる。これは「平均」として得られる関数の予測が

(5.28)\[m(\boldsymbol{x}) = \sum_{i=1}^{N_1} c_i k(\boldsymbol{x}, \boldsymbol{x}_i)\]

という形で表せることを示している。ここで

(5.29)\[c_i \equiv \sum_{j=1}^{N_1} k^{-1}(\boldsymbol{x}_i, \boldsymbol{x}_j) t(\boldsymbol{x}_j)\]

とおき、また既知データの添え字を \(1, 2, \dots, N_1\) と振り直した。式 (5.28) は「再生核ヒルベルト空間」というものと密接な関係がある。 詳細はヒルベルト空間の項に譲り、ここでは主要な結果を列挙するだけにとどめる。

再生核(定義)

関数 \(f(x)\) と、ヒルベルト空間の要素としての \(f\) をあまり区別せず、おおらかに定義を述べると、

\[\int k(x,x') f(x') dx' = f(x)\]

となるような関数 \(k(x,x')\) を「再生核」と呼ぶ。

ムーア・アロンシャインの定理

正定値対称な関数 \(k(x,x')\) があれば、これに付随するヒルベルト空間(再生核ヒルベルト空間)が一意に定まる

Representer定理

次のような正則化項付きの損失関数を考える

\[L = E\left[ (x_1, y_1, f(x_1)), (x_2, y_2, f(x_2)), \dots, (x_N, y_N, f(x_N)) \right] + \Phi(\|f\|^2) ,\]

ここで正則化項 \(\Phi\) は単調増加関数であるとする。このとき、上式を最小化する \(f(x)\) は、次の形に書ける

\[f(x) = \sum_{i=1}^N c_i k(x, x_i) .\]