機械学習基礎理論独習

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

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

PRML演習問題 13.7(基本)

問題

ガウス出力密度をもつ隠れマルコフモデルを考える。
ガウス分布の平均と共分散のパラメータについての関数 Q({\boldsymbol\theta},{\boldsymbol\theta}^{old}) の最大化が、
Mステップの方程式 (13.20)(13.21) を導くことを示せ。

参照

\begin{eqnarray}
{\boldsymbol\mu}_k=\frac{\displaystyle\sum_{n=1}^N\gamma(z_{nk}){\bf x}_n}{\displaystyle\sum_{n=1}^N\gamma(z_{nk})}\tag{13.20}
\end{eqnarray}
\begin{eqnarray}
{\bf\Sigma}_k=\displaystyle\frac{\displaystyle\sum_{n=1}^N\gamma(z_{nk})({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top}{\displaystyle\sum_{n=1}^N\gamma(z_{nk})}\tag{13.21}
\end{eqnarray}

解答

Q({\boldsymbol\theta},{\boldsymbol\theta}^{old}){\boldsymbol\mu},{\bf\Sigma}に関する最大化は、\displaystyle\sum_{n=1}^N\displaystyle\sum_{k=1}^K\gamma(z_{nk})\ln p({\bf x}_n|{\boldsymbol\phi}_k)のみについて行います。(他の項は無視します。)

(13.20)を示します。
{\boldsymbol\mu}に関して\displaystyle\sum_{n=1}^N\displaystyle\sum_{k=1}^K\gamma(z_{nk})\ln p({\bf x}_n|{\boldsymbol\phi}_k)を最大化します。
準備として、\displaystyle\frac{\partial}{\partial{\boldsymbol\mu}_k}\ln\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)を求めます。

\begin{eqnarray}
\frac{\partial}{\partial{\boldsymbol\mu}_k}\ln\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)&=&\frac{\partial}{\partial{\boldsymbol\mu}_k}\left(-\frac{1}{2}({\bf x}_n-{\boldsymbol\mu}_k)^\top{\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)\right)\\
&=&-\frac{1}{2}\frac{\partial}{\partial{\boldsymbol\mu}_k}\left({\bf x}_n^\top{\bf\Sigma}_k^{-1}{\bf x}_n-{\bf x}_n^\top{\bf\Sigma}_k^{-1}{\boldsymbol\mu}_k-{\boldsymbol\mu}_k^\top{\bf\Sigma}_k^{-1}{\bf x}_n+{\boldsymbol\mu}_k^\top{\bf\Sigma}_k^{-1}{\boldsymbol\mu}_k\right)\\
&=&-\frac{1}{2}\left(\frac{\partial}{\partial{\boldsymbol\mu}_k}{\bf x}_n^\top{\bf\Sigma}_k^{-1}{\bf x}_n-\frac{\partial}{\partial{\boldsymbol\mu}_k}{\bf x}_n^\top{\bf\Sigma}_k^{-1}{\boldsymbol\mu}_k-\frac{\partial}{\partial{\boldsymbol\mu}_k}{\boldsymbol\mu}_k^\top{\bf\Sigma}_k^{-1}{\bf x}_n+\frac{\partial}{\partial{\boldsymbol\mu}_k}{\boldsymbol\mu}_k^\top{\bf\Sigma}_k^{-1}{\boldsymbol\mu}_k\right)\\
&=&-\frac{1}{2}\left(-({\bf x}_n^\top{\bf\Sigma}_k^{-1})^\top-{\bf\Sigma}_k^{-1}{\bf x}_n+2{\bf\Sigma}_k^{-1}{\boldsymbol\mu}_k\right)\\
&=&-\frac{1}{2}\left(-{\bf\Sigma}_k^{-1}{\bf x}_n-{\bf\Sigma}_k^{-1}{\bf x}_n+2{\bf\Sigma}_k^{-1}{\boldsymbol\mu}_k\right)\\
&=&-\frac{1}{2}\left(2{\bf\Sigma}_k^{-1}({\boldsymbol\mu}_k-{\bf x}_n)\right)\\
&=&{\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)\tag{1}
\end{eqnarray}

{\mathcal{Q}}({\boldsymbol\theta},{\boldsymbol\theta}^{old}){\boldsymbol\mu}_k微分して={\bf 0}とおきます。

\begin{eqnarray}
&&\frac{\partial}{\partial{\boldsymbol\mu}_k}{\mathcal{Q}}({\boldsymbol\theta},{\boldsymbol\theta}^{old})={\bf 0}\\
&&\Leftrightarrow\frac{\partial}{\partial{\boldsymbol\mu}_k}\sum_{n=1}^N\sum_{j=1}^K\gamma(z_{nj})(\ln\pi_j+\ln{\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_j},{\bf\Sigma}_j)={\bf 0}\\
&&\Leftrightarrow\sum_{n=1}^N\sum_{j=1}^K\gamma(z_{nj})\frac{\partial}{\partial{\boldsymbol\mu}_k}(\ln\pi_j+\ln{\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_j},{\bf\Sigma}_j)={\bf 0}\\
&&\Leftrightarrow\sum_{n=1}^N\gamma(z_{nj})\frac{\partial}{\partial{\boldsymbol\mu}_k}{\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_k},{\bf\Sigma}_k)={\bf 0}\\
&&\Leftrightarrow {\bf\Sigma}_k^{-1}\sum_{n=1}^N\gamma(z_{nk})({\bf x}_n-{\boldsymbol\mu}_k)={\bf 0}\\
&&\Leftrightarrow \sum_{n=1}^N\gamma(z_{nk})({\bf x}_n-{\boldsymbol\mu}_k)={\bf 0}\\
&&\Leftrightarrow {\boldsymbol\mu}_k=\frac{\displaystyle\sum_{n=1}^N\gamma(z_{nk}){\bf x}_n}{\displaystyle\sum_{n=1}^N\gamma(z_{nk})}\\
&&\Leftrightarrow {\boldsymbol\mu}_k=\frac{1}{N_k}\sum_{n=1}^N\gamma(z_{nk}){\bf x}_n\tag{2}\\
\end{eqnarray}
(2)より、式(13.20)が示せました。

(13.21) を示します。
{\bf\Sigma}に関して\displaystyle\sum_{n=1}^N\displaystyle\sum_{k=1}^K\gamma(z_{nk})\ln p({\bf x}_n|{\boldsymbol\phi}_k)を最大化します。

準備として、\dfrac{\partial}{\partial{\bf\Sigma}_k}\ln{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)を求めます。

\begin{eqnarray}
\ln{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)&=&-\frac{D}{2}\ln2\pi-\frac{1}{2}\ln|{\bf\Sigma}_k|-\frac{1}{2}({\bf x}_n-{\boldsymbol\mu}_k)^\top{\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)\\
&=&-\frac{D}{2}\ln2\pi-\frac{1}{2}\ln|{\bf\Sigma}_k|-\frac{1}{2}{\rm Tr}\left( ({\bf x}_n-{\boldsymbol\mu}_k)^\top{\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)\right)\\
&=&-\frac{D}{2}\ln2\pi-\frac{1}{2}\ln|{\bf\Sigma}_k|-\frac{1}{2}\underbrace{{\rm Tr}\left({\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top\right)}_{{\rm Tr}({\bf AB})={\rm Tr}({\bf BA})}\tag{3}\\
\end{eqnarray}

(3) に対数を取ります。

\begin{eqnarray}
\frac{\partial}{\partial{\bf\Sigma}_k}\ln{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)&=&-\frac{1}{2}\frac{\partial}{\partial{\bf\Sigma}_k}\ln|{\bf\Sigma}_k|-\frac{1}{2}\frac{\partial}{\partial{\bf\Sigma}_k}\mathrm{Tr}\left({\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top\right)\\
&=&-\frac{1}{2}\underbrace{({\bf\Sigma}_k^{-1})^\top}_{\frac{\partial}{\partial{\bf A}}\ln|{\bf A}|=({\bf A}^{-1})^\top}+\frac{1}{2}\underbrace{\left({\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top{\bf\Sigma}_k^{-1}\right)^\top}_{\frac{\partial}{\partial{\bf A}}{\rm Tr}({\bf A}^{-1}{\bf B})=-({\bf A}^{-1}{\bf B}{\bf A}^{-1})^\top}\\
&=&-\frac{1}{2}{\bf\Sigma}_k^{-1}+\frac{1}{2}{\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top{\bf\Sigma}_k^{-1}\tag{4}\\
\end{eqnarray}

{\mathcal{Q}}({\boldsymbol\theta},{\boldsymbol\theta}^{old}){\bf\Sigma}_k微分して ={\bf O} とおきます。

\begin{eqnarray}
&&\frac{\partial}{\partial{\bf\Sigma}_k}{\mathcal{Q}}({\boldsymbol\theta},{\boldsymbol\theta}^{old})={\bf O}\\
&&\Leftrightarrow\frac{\partial}{\partial{\bf\Sigma}_k}\sum_{n=1}^N\sum_{j=1}^K\gamma(z_{nj})(\ln\pi_j+\ln{\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_j},{\bf\Sigma}_j))={\bf O}\\
&&\Leftrightarrow\sum_{n=1}^N\sum_{j=1}^K\gamma(z_{nj})\frac{\partial}{\partial{\bf\Sigma}_k}(\ln\pi_j+\ln{\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_j},{\bf\Sigma}_j))={\bf O}\\
&&\Leftrightarrow\sum_{n=1}^N\gamma(z_{nj})\frac{\partial}{\partial{{\bf\Sigma}_k}}{\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_k},{\bf\Sigma}_k)={\bf O}\\
&&\Leftrightarrow \sum_{n=1}^N\gamma(z_{nk})\left(-\frac{1}{2}{\bf\Sigma}_k^{-1}+\frac{1}{2}{\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top{\bf\Sigma}_k^{-1}\right)={\bf O}\\
&&\Leftrightarrow {\bf\Sigma}_k^{-1}\sum_{n=1}^N\gamma(z_{nk})\left({\bf I}-({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top{\bf\Sigma}_k^{-1}\right)={\bf O}\\
&&\Leftrightarrow \sum_{n=1}^N\gamma(z_{nk})\left({\bf I}-({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top{\bf\Sigma}_k^{-1}\right)={\bf O}\\
&&\Leftrightarrow \sum_{n=1}^N\gamma(z_{nk})=\sum_{n=1}^N\gamma(z_{nk})({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top{\bf\Sigma}_k^{-1}\\
&&\Leftrightarrow {\bf\Sigma}_k=\frac{1}{N_k}\sum_{n=1}^N\gamma(z_{nk})({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top\tag{5}\\
\end{eqnarray}

(5) より、式 (13.21) が示せました。

目次へ戻る