機械学習基礎理論独習

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

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

PRML演習問題 9.7(基本) www

問題

混合ガウスモデルに関する完全データ対数尤度関数(9.36)を最大化することは、
各混合要素について独立に平均と共分散をその混合要素に対応するデータ点集合にあてはめ、
かつ混合係数を各グループに属するデータの数の割合に一致させるという結果になることを示せ。

参照

\begin{eqnarray}
\ln p({\bf X},{\bf Z}|{\boldsymbol\mu},{\bf\Sigma},{\boldsymbol\pi})=\sum_{n=1}^N\sum_{k=1}^Kz_{nk}(\ln\pi_k+\ln{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k))\tag{9.36}
\end{eqnarray}

解答

最初に、\{{\boldsymbol\mu}_k,{\bf\Sigma}_k\}に関する最大化を考えます。
完全データの尤度関数を考えているので、本問題に関してはz_{nk}は観測されているとします。
z_{nk}が観測されているとすると、データがどのクラスに属しているか分かるので、クラスkに割り当てられたデータの集合を{\bf X}_kと定義します。
\{{\boldsymbol\mu}_k,{\bf\Sigma}_k\}に関する最大化を考えているので、式(1)\pi_kの項を無視します。

この時、完全データ対数尤度関数は以下のように表せます。

\begin{eqnarray}
\ln p({\bf X},{\bf Z}|{\boldsymbol\mu},{\bf\Sigma},{\boldsymbol\pi})=\sum_{k=1}^K\sum_{{\bf x}\in{\bf X}_k}\ln{\mathcal N}({\bf x}|{\boldsymbol\mu}_k,{\bf\Sigma}_k)\tag{1}
\end{eqnarray}

完全データ対数尤度関数を\{{\boldsymbol\mu}_k,{\bf\Sigma}_k\}に関して最大化することは、
(1)より、\displaystyle\sum_{{\bf x}\in{\bf X}_k}\ln{\mathcal N}({\bf x}|{\boldsymbol\mu}_k,{\bf\Sigma}_k)\{{\boldsymbol\mu}_k,{\bf\Sigma}_k\}に関して最大化することと等価です。
これは、各混合要素について独立に平均と共分散をその混合要素に対応するデータ点集合にあてはめていることになります。

次に、\pi_kに関する最大化を考えます。
\pi_kに関する最大化を考えているので、式(1)\{{\boldsymbol\mu}_k,{\bf\Sigma}_k\}の項を無視します。

\displaystyle\sum_{k=1}^K\pi_k=1\Leftrightarrow\displaystyle\sum_{k=1}^K\pi_k-1=0の制約の下で最大化します。
この時ラグランジュ関数Lは以下のようになります。

\begin{eqnarray}
L&=&\ln p({\bf X},{\bf Z}|{\boldsymbol\mu},{\bf\Sigma},{\boldsymbol\pi})+\lambda\left(\sum_{j=1}^K\pi_j-1\right)\\
&=&\sum_{n=1}^N\sum_{k=1}^Kz_{nk}\ln\pi_k+\lambda\left(\sum_{j=1}^K\pi_j-1\right)\tag{2}\\
\end{eqnarray}

L\pi_k微分して=0とおきます。

\begin{eqnarray}
&&\frac{\partial}{\partial\pi_k}L=0\\
&&\Leftrightarrow\frac{\partial}{\partial\pi_k}\sum_{n=1}^N\sum_{j=1}^Kz_{nj}\ln\pi_j+\lambda\frac{\partial}{\partial\pi_k}\left(\sum_{j=1}^K\pi_{j}-1\right)=0\\
&&\Leftrightarrow\sum_{n=1}^N\frac{z_{nk}}{\pi_k}+\lambda=0\\
&&\Leftrightarrow\sum_{n=1}^Nz_{nk}=-\pi_k\lambda\tag{3}
\end{eqnarray}

(3)において、全てのkについて足し合わせると、以下の式が成り立ちます。

\begin{eqnarray}
&&\sum_{k=1}^K\sum_{n=1}^Nz_{nk}=\sum_{k=1}^K\left(-\pi_k\lambda\right)\\
&&\Leftrightarrow \sum_{n=1}^N\sum_{k=1}^Kz_{nk}=-\sum_{k=1}^K\pi_k\lambda\\
&&\Leftrightarrow \sum_{n=1}^N1=-1\cdot\lambda\\
&&\Leftrightarrow N=-\lambda\tag{4}
\end{eqnarray}

(4)を式(3)に代入して、\pi_kについて整理すると、次の式が成り立ちます。

\begin{eqnarray}
\pi_k=\frac{1}{N}\sum_{n=1}^Nz_{nk}\tag{5}\\
\end{eqnarray}

\displaystyle\sum_{n=1}^Nz_{nk}は、クラスkに属するデータ点の数を表すので、
(5)は混合係数\pi_kはクラスkに属する割合を示しています。
よって、完全データ対数尤度関数を\pi_kに関して最大化することは、
混合係数を各グループに属するデータの数の割合に一致させるという結果になります。

目次へ戻る