機械学習基礎理論独習

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

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

確率的主成分分析

主成分分析の復習

さらっと主成分分析を復習しておきます。
データ集合 \{{\bf x}_n\},\ n=1,\ldots,N,\ {\bf x}_n\in{\mathbb R}^D の共分散行列 \bf S固有値 \lambda_n固有ベクトル {\bf u}_n を求めます。
固有値の大きい順に M個選び、その固有値に対応する固有ベクトルとデータとの内積を取ったものが、
次元削減されたデータ \{({\bf x}_n^\top{\bf u}_1,\ldots,{\bf x}_n^\top{\bf u}_M)^\top\} となります。

確率的主成分分析の導入

確率的主成分分析を定式化するには、 まず主部分空間に対応する潜在変数 \bf z を明示的に導入します。

潜在変数 \bf z 上の事前分布は、平均 \bf 0 で共分散行列が単位行列ガウス分布

\begin{eqnarray}
p({\bf z})={\mathcal N}({\bf z}|{\bf 0},{\bf I}) \tag{1}
\end{eqnarray}

で与えられます。

潜在変数 \bf z の値で条件付けられた観測変数 \bf x についての条件付き分布もまたガウス分布で、

\begin{eqnarray}
p({\bf x}|{\bf z})={\mathcal N}({\bf x}|{\bf W}{\bf z}+{\boldsymbol\mu},\sigma^2{\bf I}) \tag{2}
\end{eqnarray}

のような形を持ちます。

生成モデルの観点から解釈する

(1),(2) を生成モデルの観点(どのようにデータが生成するか)から説明します。
まずは、式 (1) に従う M 次元の潜在変数 {\bf z} をサンプリングします。
その {\bf z} に 線形変換を施した D 次元の観測変数 {\bf x} をサンプリングします。

\begin{eqnarray}
{\bf x}={\bf W}{\bf z}+{\boldsymbol\mu}+{\boldsymbol\epsilon}\tag{3}
\end{eqnarray}

(3){\boldsymbol\epsilon}D 次元の平均が \bf 0 で共分散行列が \sigma^2{\bf I}ガウス分布に従うノイズの変数です。

さらに具体例として、2 次元のデータ空間と 1 次元の潜在変数空間を考えたときの、データ生成モデルと
しての確率的主成分分析モデルの説明が図 1 です。
最初に潜在変数 \widehat{z} の値を事前分布 p(z) からひとつ抽出し、
次に {\bf x} の値を、平均 {\bf w}\widehat{z}+{\boldsymbol\mu}、共分散行列 \sigma^2{\bf I} の等方的なガウス分布(赤の円)から抽出することにより、
観測データ点 \bf x を生成します。

1
f:id:olj611:20211108054946p:plain:w500

周辺分布p({\bf x}) を求める

尤度関数を計算する際に必要なので、先に、p({\bf x})=p({\bf x}|{\bf W},{\boldsymbol\mu},\sigma^2) を求めます。

p({\bf z}),p({\bf x}|{\bf z})ガウス分布なので、p({\bf x})ガウス分布です。
以下の公式が使えます。

ーーーーーー↓ここから公式ーーーーーー

\begin{eqnarray}
p({\bf x})={\mathcal N}({\bf x}|{\boldsymbol\mu},{\bf \Lambda}^{-1})\tag{4}
\end{eqnarray}

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

が与えられている時

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

が成り立つ。

ーーーーーー↑ここまで公式ーーーーーー

公式 (4),(5),(6) を用いると、次式が成り立ちます。

\begin{eqnarray}
p({\bf x})={\mathcal N}({\bf x}|{\boldsymbol\mu},{\bf C})\tag{7}
\end{eqnarray}

ここで、D\times D 共分散行列は {\bf C} は次のように定義されます。

\begin{eqnarray}
{\bf C}={\bf W}{\bf W}^\top+\sigma^2{\bf I}\tag{8}
\end{eqnarray}

事後分布 p({\bf x}|{\bf z}) を求める

事後分布 p({\bf x}|{\bf z}) は以下のようになります。

\begin{eqnarray}
p({\bf z}|{\bf x})={\mathcal N}({\bf z}|{\bf M}^{-1}{\bf W}^\top({\bf x}-{\boldsymbol\mu}),\sigma^2{\bf M})\tag{9}
\end{eqnarray}

ただし、

\begin{eqnarray}
{\bf M}={\bf W}^\top{\bf W}+\sigma^2{\bf I}\tag{10}
\end{eqnarray}

です。

(9) の導出については、PRML演習問題 12.8(標準) wwwを参照してください。

尤度関数

観測変数のデータ点の集合 {\bf X}=\{{\bf x}_n\}\ (i=1,\ldots,N) が与えられた下で、確率的主成分分析モデルは図 2 に示すような有向グラフで記述できます。

2
f:id:olj611:20211108055617p:plain:w300

尤度関数は以下のようになります。

\begin{eqnarray}
p({\bf X}|{\boldsymbol\mu},{\bf W},\sigma^2)&=&\prod_{n=1}^Np({\bf x}_n|{\bf W},{\boldsymbol\mu},\sigma^2)\\
&=&\prod_{n=1}^N{\mathcal N}({\bf x}_n|{\boldsymbol\mu},{\bf C})\tag{11}
\end{eqnarray}

対数尤度関数は以下のようになります。

\begin{eqnarray}
\ln p({\bf X}|{\boldsymbol\mu},{\bf W},\sigma^2)&=&\sum_{n=1}^N\ln{\mathcal N}({\bf x}_n|{\boldsymbol\mu},{\bf C})\\
&=&-\frac{ND}{2}\ln(2\pi)-\frac{N}{2}\ln|{\bf C}|-\frac{1}{2}\sum_{n=1}^N({\bf x}_n-{\boldsymbol\mu})^\top{\bf C}^{-1}({\bf x}_n-{\boldsymbol\mu})\tag{12}
\end{eqnarray}

偉人の名言

f:id:olj611:20211108094524p:plain:h300
作曲の95%は、過去の遺産を糧にしています。
作曲家自身の「発明」は、せいぜい1、2%程度で、最大5%といったところ。
作曲の大部分は過去の作品の引用です。
坂本龍一

参考文献

パターン認識機械学習 下巻 p286-290

参考リンク

Matrix Calculus

目次へ戻る