機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

ガウス過程回帰モデル

ガウス過程回帰モデル

観測される目標変数の値に含まれるノイズを考えます。

\begin{eqnarray}
t_n=y_n+\epsilon_n\tag{1}
\end{eqnarray}

ここで、y_n=y({\bf x}_n)です。
\epsilon_nn番目の観測値に加えられるノイズで、それぞれの観測値に対して独立で、ガウス分布に従うとします。

\begin{eqnarray}
p(t_n|y_n)=\mathcal{N}(t_n|y_n,\beta^{-1})\tag{2}
\end{eqnarray}

ここで、\betaはノイズの精度を表す超パラメータです。
ノイズは各データ点に対して独立に決まるため、\mathbf{y}=(y_1,\ldots,y_N)^\topが与えられた下での
目標値\mathbf{t}=(t_1,\ldots,t_N)^\topの同時分布は以下の等方的なガウス分布に従います。

\begin{eqnarray}
p({\bf t}|{\bf y})=\mathcal{N}({\bf t}|{\bf y},\beta^{-1}{\bf I}_N)\tag{3}
\end{eqnarray}

ここで、{\bf I}_NN\times N単位行列です。
ガウス過程の定義より、周辺分布p({\bf y})は、平均が\bf 0で共分散がグラム行列\bf Kで与えられるガウス分布となります。

\begin{eqnarray}
p({\bf y})=\mathcal{N}({\bf y}|{\bf 0},{\bf K})\tag{4}
\end{eqnarray}

p({\bf t})は以下の公式を使えば、積分計算せずに求まります。

\begin{eqnarray}
&&p(\bf x) &=& \mathcal{N}(\mathbf x | \boldsymbol\mu, \mathbf\Lambda^{-1})\tag{5}\\
&&p(\bf y | \bf x) &=& \mathcal{N}(\mathbf y | \mathbf A \mathbf x + \mathbf b, \mathbf{L}^{-1}) \tag{6}\\
\end{eqnarray}

のとき、

\begin{eqnarray}
p(\mathbf y) = \mathcal{N}(\mathbf y | \mathbf A {\boldsymbol\mu} + \mathbf b , \mathbf{L}^{-1} + \mathbf A \mathbf \Lambda^{-1} \mathbf A^{\top}) \tag{7}
\end{eqnarray}

が成り立ちます。

{\bf\Lambda}^{-1}={\bf K},{\boldsymbol\mu}={\bf 0},{\bf A}={\bf I}_N,{\bf b}={\bf 0},{\bf L}^{-1}=\beta^{-1}{\bf I}のように当てはめると、以下が成り立ちます。

\begin{eqnarray}
p({\bf t})=\mathcal{N}({\bf t}|{\bf 0},{\bf C}_N)\tag{8}
\end{eqnarray}

ここで、{\bf C}_N=\beta^{-1}{\bf I}_N+{\bf K}です。

予測分布

訓練集合として入力{\bf x}_1,\ldots,{\bf x}_Nと、対応する{\bf t}_N=(t_1,\ldots,t_N)^\topが与えられているときに、
新しい入力ベクトル{\bf x}_{N+1}に対する目標変数t_{N+1}を予測したいものとします。
そのためには、p(t_{N+1}|{\bf t}_N,{\bf x}_1,\ldots,{\bf x}_N,{\bf x}_{N+1})を求めればよいです。
PRMLに倣って、表記を簡単にするために、{\bf x}_1,\ldots,{\bf x}_N,{\bf x}_{N+1}への依存を省略し、
p(t_{N+1}|{\bf t}_N,{\bf x}_1,\ldots,{\bf x}_N,{\bf x}_{N+1})p(t_{N+1}|{\bf t}_N)と書くことにします。

まず、p({\bf t}_{N+1})を求めます。{\bf t}_{N+1}=(t_1,\ldots,t_{N+1})^\topとします。
今までの議論同様に、以下の式が成り立ちます。

\begin{eqnarray}
p({\bf t}_{N+1})=\mathcal{N}({\bf t}_{N+1},{\bf 0},{\bf C}_{N+1})\tag{9}
\end{eqnarray}

ここで、

\begin{eqnarray}
&&{\bf C}_{N+1}=\begin{pmatrix}{\bf C}_N & {\bf k}\\ {\bf k^\top} & c\end{pmatrix}\tag{10}\\
&&{\bf k}=(k({\bf x}_1,{\bf x}_{N+1}),\cdots,k({\bf x}_N,{\bf x}_{N+1}))^\top\tag{11}\\
&&c=k({\bf x}_{N+1},{\bf x}_{N+1})+\beta^{-1}\tag{12}
\end{eqnarray}

です。

ここで以下の公式(条件付きガウス分布)を用います。

{\bf\Lambda}\equiv{\bf\Sigma}^{-1}とした、同時ガウス分布\mathcal{N}({\bf x}|{\boldsymbol\mu},{\bf\Sigma})があります。
{\bf x},{\boldsymbol\mu},{\bf\Sigma},{\bf\Lambda}は以下のようにブロック化されているとします。

\begin{eqnarray}
&&{\bf x}=\begin{pmatrix}{\bf x}_a\\{\bf x}_b\end{pmatrix},\ {\boldsymbol\mu}=\begin{pmatrix}{\boldsymbol\mu}_a\\{\boldsymbol\mu}_b\end{pmatrix},\ 
&&{\bf\Sigma}=\begin{pmatrix}{\bf\Sigma}_{aa}&{\bf\Sigma}_{ab}\\{\bf\Sigma}_{ba}&{\bf\Sigma}_{bb}\end{pmatrix},\
&&{\bf\Lambda}=\begin{pmatrix}{\bf\Lambda}_{aa}&{\bf\Lambda}_{ab}\\{\bf\Lambda}_{ba}&{\bf\Lambda}_{bb}\end{pmatrix}\tag{13}
\end{eqnarray}

この時、以下の条件付き分布の式が成り立ちます。

\begin{eqnarray}
&&p({\bf x}_a|{\bf x}_b)=\mathcal{N}({\bf x}_a|{\boldsymbol\mu}_{a|b},{\bf\Sigma}_{a|b})\tag{14}\\
&&{\boldsymbol\mu}_{a|b}={\boldsymbol\mu}_a+{\bf\Sigma}_{ab}{\bf\Sigma}_{bb}^{-1}({\bf x}_b-{\boldsymbol\mu}_b)\tag{15}\\
&&{\bf\Sigma}_{a|b}={\bf\Sigma}_{aa}-{\bf\Sigma}_{ab}{\bf\Sigma}_{bb}^{-1}{\bf\Sigma}_{ba}\tag{16}\\
\end{eqnarray}

{\bf x}_a=t_{N+1},{\bf x}_b={\bf t}_N,{\boldsymbol\mu}_a=0,{\boldsymbol\mu}_b={\bf 0},{\bf\Sigma}_{aa}=c,{\bf\Sigma}_{ab}={\bf k}^\top,{\bf\Sigma}_{ba}={\bf k},{\bf\Sigma}_{bb}={\bf C}と当てはめると、

\begin{eqnarray}
p(t_{N+1}|{\bf t}_N)=\mathcal{N}(t_{N+1}|{\bf k}^\top{\bf C}^{-1}{\bf t}_N,c-{\bf k}^\top{\bf C}^{-1}{\bf k})\tag{17}
\end{eqnarray}

となります。
(17)が予測分布です。

下図にガウス過程を適用した結果を示します。
一点鎖線は、ガウス過程による予測分布の平均を、そこから標準偏差の2倍までの領域が影の付いた領域で示しています。
右の方に行くに従って、不確かさが大きくなっていくことがわかります。
f:id:olj611:20210608062427p:plain:w400

偉人の名言

f:id:olj611:20210608054409p:plain:w300
もっとやれば、もっとできる
ウィリアム・ヘイズリット

参考文献

パターン認識機械学習 下巻 p17-22

動画

なし

目次へ戻る