機械学習基礎理論独習

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

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

確率的主成分分析の最尤推定をEMアルゴリズムで解く

はじめに

確率的主成分分析の記事の続きです。
有向グラフを貼り付けておきます。

f:id:olj611:20211115171342p:plain:w300

{\boldsymbol\mu} の最尤解

EMアルゴリズムを適用する前に、{\boldsymbol\mu} は簡単に最尤解が解析的に求まるので、求めてしまいます。

確率的主成分分析モデルの対数尤度は、

\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{1}
\end{eqnarray}

でした。

確率的主成分分析モデルの対数尤度 (1) をパラメータ {\boldsymbol\mu} に対して最大化すると、

\begin{eqnarray}
{\boldsymbol\mu}_{\rm ML}=\bar{\bf x}\tag{2}
\end{eqnarray}

となります。
ただし、\bar{\bf x} はデータベクトルの平均です。
{\boldsymbol\mu}_{\rm ML} の導出については、PRML演習問題 12.9(基本) をご覧ください。

以下では、残りのパラメータ {\bf W},\sigma^2 を求めていくことになります。

Eステップ

EMアルゴリズムで解くので、完全対数尤度関数を考えます。
各データ点は独立だと仮定されているので、完全データの対数尤度関数は、

\begin{eqnarray}
\ln p({\bf X},{\bf Z}|{\boldsymbol\mu},{\bf W},\sigma^2)=\sum_{n=1}^N\left(\ln p({\bf x}_n|{\bf z}_n)+\ln p({\bf z}_n)\right)\tag{3}
\end{eqnarray}

となります。

p({\bf z}),p({\bf x}|{\bf z}),p({\bf z}|{\bf x}) は、以下で与えられるのでした。

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

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

\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{6}
\end{eqnarray}

(3) に潜在変数の事後分布 p({\bf z}|{\bf x}) の期待値を取ります。

\begin{eqnarray}
{\mathbb E}[\ln p({\bf X},{\bf Z}|{\boldsymbol\mu},{\bf W},\sigma^2)]=-\sum_{n=1}^N\Bigg(
\frac{D}{2}\ln(2\pi\sigma^2)+\frac{1}{2}{\rm Tr}({\mathbb E}[{\bf z}_n{\bf z}_n^\top])+\frac{1}{2\sigma^2}||{\bf x}_n-{\boldsymbol\mu}||^2\\
 -\frac{1}{\sigma^2}{\mathbb E}[{\bf z}_n]^\top{\bf W}^\top({\bf x}_n-{\boldsymbol\mu})+\frac{1}{2\sigma^2}{\rm Tr}({\mathbb E}[{\bf z}_n{\bf z}_n^\top]{\bf W}^\top{\bf W})+\frac{M}{2}\ln(2\pi)
\Bigg)\tag{7}
\end{eqnarray}

(7){\boldsymbol\mu} は最尤解の {\boldsymbol\mu}_{\rm ML}=\bar{\bf x} を用います。
(7) より、Eステップは、{\mathbb E}[{\bf z}_n],\ {\mathbb E}[{\bf z}_n{\bf z}_n^\top] を求めることに相当します。

\begin{eqnarray}
{\mathbb E}[{\bf z}_n]&=&{\mathbb E}_{p({\bf z}_n|{\bf x}_n)}[{\bf z}_n]\\
&=&{\bf M}^{-1}{\bf W}^\top({\bf x}_n-\bar{\bf x})\tag{8}
\end{eqnarray}

\begin{eqnarray}
{\mathbb E}[{\bf z}_n{\bf z}_n^\top]&=&{\mathbb E}_{p({\bf z}_n|{\bf x}_n)}[{\bf z}_n{\bf z}_n^\top]\\
&=&{\rm cov}_{p({\bf z}_n|{\bf x}_n)}[{\bf z}_n]+{\mathbb E}_{p({\bf z}_n|{\bf x}_n)}[{\bf z}_n]{\mathbb E}_{p({\bf z}_n|{\bf x}_n)}[{\bf z}_n]^\top\\
&=&\sigma^2{\bf M}+{\mathbb E}_{p({\bf z}_n|{\bf x}_n)}[{\bf z}_n]{\mathbb E}_{p({\bf z}_n|{\bf x}_n)}[{\bf z}_n]^\top\\
&=&\sigma^2{\bf M}+{\mathbb E}[{\bf z}_n]{\mathbb E}[{\bf z}_n]^\top\tag{9}
\end{eqnarray}

Mステップ

Mステップについては、以下のようになります。
導出については、PRML演習問題 12.15(標準) wwwを参照してください。

\begin{eqnarray}
{\bf W}_{\rm new}=\left(\sum_{n=1}^N({\bf x}_n-\bar{\bf x}){\mathbb E}[{\bf z}_n]^\top\right)\left(\sum_{n=1}^N{\mathbb E}[{\bf z}_n{\bf z}_n^\top]\right)^{-1}\tag{10}
\end{eqnarray}

\begin{eqnarray}
\sigma_{\rm new}^2=\frac{1}{ND}\sum_{n=1}^N\left(||{\bf x}_n-\bar{\bf x}||^2-2{\mathbb E}[{\bf z}_n]^\top{\bf W}_{\rm new}^\top({\bf x}_n-\bar{\bf x})+{\rm Tr}({\mathbb E}[{\bf z}_n{\bf z}_n^\top]{\bf W}_{\rm new}^\top{\bf W}_{\rm new})\right)\tag{11}
\end{eqnarray}

偉人の名言

f:id:olj611:20211115170909p:plain:h300
つらい道を避けないこと。自分の目指す場所にたどりつくためには進まなければ。
キャサリン・アン・ポーター

参考文献

パターン認識機械学習 p294-p297

目次へ戻る