ガウス過程

はじめに

今回は、回帰を行う1手法であるガウス過程についてまとめる。

ガウス過程とは

いま、入力値\vec{x}に対し次式で定義される関数y(\vec{x})を考える。

(1)    \begin{equation*} y(\vec{x})=\vec{w}^{\;T}\vec{\phi}(\vec{x}) \end{equation*}

ここで、\vec{w}\vec{\phi}はともにM次元ベクトルであり、後者は入力値\vec{x}M次元特徴空間に射影する関数である。いま、N個の入力値・出力値のペア(\vec{x}_n,y_n),n=1,\cdots,Nが観測されたとする。これらを並べると以下の行列表記を得る。

(2)    \begin{eqnarray*} \vec{y}= \left( \begin{array}{l} y_1\\ \;\;\vdots \\ y_N \end{array} \right) &=& \left( \begin{array}{l} w_1\phi_1(\vec{x}_1)+w_2\phi_2(\vec{x}_1)+\cdots+w_M\phi_M(\vec{x}_1)\\ w_1\phi_1(\vec{x}_2)+w_2\phi_2(\vec{x}_2)+\cdots+w_M\phi_M(\vec{x}_2)\\ \hspace{2cm}\vdots \\ w_1\phi_1(\vec{x}_N)+w_2\phi_2(\vec{x}_N)+\cdots+w_M\phi_M(\vec{x}_N)\\ \end{array} \right) \\ &=& \left( \begin{array}{cccc} \phi_1(\vec{x}_1) & \phi_2(\vec{x}_1) & \ldots & \phi_M(\vec{x}_1) \\ \phi_1(\vec{x}_2) & \phi_2(\vec{x}_2) & \ldots & \phi_M(\vec{x}_2) \\ \vdots & \vdots & \ddots & \vdots \\ \phi_1(\vec{x}_N) & \phi_2(\vec{x}_N) & \ldots & \phi_M(\vec{x}_N) \\ \end{array} \right) \left( \begin{array}{c} w_1 \\ w_2 \\ \vdots \\ w_M \end{array} \right)\\ &=& \Phi\vec{w} \end{eqnarray*}

ただし、\Phi_{nm}=\phi_m(\vec{x}_n)とした。ここでパラメータ\vec{w}に対し次の事前分布を仮定する。

(3)    \begin{equation*} p(\vec{w}|\alpha)=\mathcal{N}(\vec{w}|\vec{0},\alpha^{-1}I_{M}) \end{equation*}

これは、平均\vec{0}、共分散行列\alpha^{-1}I_{M}を持つガウス分布である(I_{M}M\times Mの単位行列)。\vec{w}がガウス分布に従うので式(2)から\vec{y}もガウス分布に従う(証明略)。その平均値は

(4)    \begin{eqnarray*} {\bf E}(\vec{y}) &=&\int d\vec{w}\;p(\vec{w}|\alpha)\vec{y} \\ &=&\Phi \int d\vec{w}\;p(\vec{w}|\alpha)\vec{w} \\ &=&\vec{0} \end{eqnarray*}

となる。同様にその共分散行列は

(5)    \begin{eqnarray*} {\bf E}(\vec{y}\vec{y}^{\;T}) &=&\int d\vec{w}\;p(\vec{w}|\alpha)\vec{y}\vec{y}^{\;T}\\ &=&\Phi\left[\int d\vec{w}\;p(\vec{w}|\alpha)\vec{w}\vec{w}^{\;T}\right]\Phi^T \\ &=&\frac{1}{\alpha}\Phi\Phi^T \\ &\equiv&K \end{eqnarray*}

である。これはN\times Nの行列となる。Kの要素は次式で与えられる。

(6)    \begin{eqnarray*} K_{nm} &=&\frac{1}{\alpha}\sum_k\Phi_{nk}\Phi_{km}^T\\ &=&\frac{1}{\alpha}\sum_k\Phi_{nk}\Phi_{mk} \\ &=&\frac{1}{\alpha}\sum_k\phi_{k}(\vec{x}_n)\phi_{k}(\vec{x}_m) \\ &=&\frac{1}{\alpha}\vec{\phi}^{\;T}(\vec{x}_n)\vec{\phi}(\vec{x}_m) \\ &=&k(\vec{x}_n,\vec{x}_m) \end{eqnarray*}

k(\vec{x}_n,\vec{x}_m)はカーネルと呼ばれる量である。ここまでの議論から\vec{y}はガウス分布\mathcal{N}(\vec{y}|\vec{0},K)に従うことが分かる。
\vec{y}=(y(\vec{x}_1),\cdots,y(\vec{x}_N))^Tであるから、関数y(\vec{x})の分布がガウス関数に従うことになる。このような確率過程yをガウス過程と呼ぶ。

ガウス過程y(\vec{x})とは集合\left(y(\vec{x}_1),\cdots,y(\vec{x}_N)\right)の同時確率分布がN次元ガウス分布であるような過程のことである。

ここまでの説明では、モデル(1)と事前確率(3)を仮定してガウス過程を導いた。一般にガウス過程を用いて解析を行う際は、議論の一番最初でyをガウス過程と仮定し、その共分散行列にパラメータを持つ適当なカーネルを設定する(平均値の方は\vec{0}と置くことが多い)。そして、観測値を再現するパラメータを最尤法やベイズ推定で求める。

式(1)を用いた回帰の解法として、先のブログでも3つの手法を解説した。これらはいずれも写像\vec{\phi}(先のブログでは\vec{\phi}(\vec{x})=\vec{x})により変換されるM次元特徴空間内での計算を行う。一方、ガウス過程では、観測値の個数Nで決まる多次元空間内で計算が行われ(共分散行列KN\times Nの行列である)、写像\vec{\phi}の効果はカーネルを介して考慮されることになる。一般に、N\gg Mであることが多いのでガウス過程の方が計算量は多い。しかし、カーネルを介してさまざまな特徴空間を考慮することができるメリットがある。特にガウス関数型のカーネルの場合、それに対応する特徴空間は無限次元となる。このあたりの利点は、SVM(Support Vector Machine)でカーネルを導入する際の利点と同じである。

カーネル

カーネルを変えることで様々なガウス過程を作ることができる。この自由度の大きさがガウス過程の強みである。ただし、全く自由にカーネルを決めることができるわけではなく、以下の制約を満たさなければならない。

Kは正定値でなければならない。すなわち、任意のN次元ベクトル\vec{z}に対し\vec{z}^{\;T}K\vec{z}>0を満たさなければならない。

いま、\vec{x}を1次元としガウス過程yを実際に生成してみる。以下2つのカーネルを考える。

(7)    \begin{equation*} k(x_n,x_m)&=&\exp{\left(-\theta|x_n-x_m|\right)} \end{equation*}

(8)    \begin{equation*} k(x_n,x_m)&=&\exp{\left(-\frac{(x_n-x_m)^2}{2\sigma^2}\right)} \end{equation*}

プログラムの内容は以下の通り。

  1. [0,1]の間をN等分し、入力値\vec{x}=(x_1,\cdots,x_N)を作る。
  2. N\times NのカーネルKを作る。
  3. Kを共分散行列に、\vec{0}を平均値に持つN次元ガウス分布を作る。
  4. このガウス分布からN次元ベクトル\vec{y}を生成する。
  5. \vec{x}\vec{y}をプロットする。

コードは以下の通り。

式(7)のガウス過程は以下の通りである。このカーネルはブラウン運動を説明するために導入されたものである。


式(8)のガウス過程は以下の通りである。

いずれの図においても5つの過程をプロットした。これらは互いに独立に生成された5つのガウス過程である。実際に観測値の回帰を行う際は、観測値を再現しそうな曲線が高い確率で、再現しそうにない曲線は低い確率で下図のように生成されることになる(ここから引用した)。図中のばつ印は観測値を、薄い青色の曲線の群がガウス過程から生成された曲線である。濃い青の曲線は曲線群の平均値である。

まとめ

今回は、ガウス過程の入り口を解説した。最近、ディープニューラルネットワーク(DNN)をガウス過程として構築する論文が発表された。ここでは、ある極限においてDNNは厳密にガウス過程と等価となることが証明されている。以前取り上げたベイズ推定や今回のガウス過程と関連付けた深層学習の研究が盛んである。次回は具体的にガウス過程による回帰を行ってみたい。

参考文献

Kumada Seiya

Kumada Seiya

仕事であろうとなかろうと勉強し続ける、その結果”中身”を知ったエンジニアになれる

最近の記事

  • 関連記事
  • おすすめ記事
  • 特集記事

アーカイブ

カテゴリー

PAGE TOP