LoginSignup
9
0

GMMのMstepの更新式について

Last updated at Posted at 2023-12-12

はじめに

NEC デジタルテクノロジー開発研究所 Advent Calendar 2023 12日目の記事です。
入社当時に計算した混合ガウス分布の計算について当時のノートを掘り起こして記事にします。

本掲載について

本記事ではクラスタリングアルゴリズムの一種である混合ガウス分布のMstepで用いられる対数尤度関数を最大化する平均${\boldsymbol \mu}_k$、分散共分散行列${\boldsymbol \Sigma}_k$、混合係数$\pi_k$が以下の式で与えられることを確認します。データ数をN、次元をD、クラスター数をKとします。

\begin{align}
{\boldsymbol \mu}_k &= \dfrac{1}{N_k}\sum_{n=1}^{N}r_{nk}{\boldsymbol x}_k\tag{1}\\
{\boldsymbol \Sigma}_k&=\dfrac{1}{N_k}\sum_{n=1}^{N}r_{nk}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T\tag{2}\\
\pi_k &=\dfrac{N_k }{N}\tag{3}
\end{align}

対数尤度関数Lと負担率$r_{nk}$は以下の式の形とします。

\begin{align}
L &= \sum_{n=1}^{N} \mathrm{ln}\Bigl(\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)\Bigr)\tag{4}\\
r_{nk} &= \dfrac{\pi_k {\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}\tag{5}
\end{align}

(1)(2)(3)に出てくる$N_k$は各クラスターにあるデータ数の期待値で

N_k = \sum_{n=1}^{N}r_{nk}

また混合係数$\pi_k$についてkについて和を取ると

\sum_{n=1}^{N}\pi_k=1

となります。

平均の計算

対数尤度関数を最大にする平均${\boldsymbol \mu}_k$は

\begin{align}
\dfrac{\partial L}{\partial \boldsymbol{\mu}_k} =0\tag{6}
 \end{align}

を満たします。左辺を具体的に計算すると

\begin{align}
\dfrac{\partial L}{\partial \boldsymbol{\mu}_k} &=\dfrac{\partial L}{\partial \boldsymbol{\mu}_k}\sum_{n=1}^{N} \mathrm{ln}\Bigl(\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)\Bigr)\\
 &=\sum_{n=1}^{N}\dfrac{\dfrac{\partial L}{\partial \boldsymbol{\mu}_k} \sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}\\
&=\sum_{n=1}^{N}\dfrac{\pi_k \dfrac{\partial}{\partial \boldsymbol{\mu}_k}{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}\tag{7}
 \end{align}

となります。分子に注目すると

 \begin{align}
\dfrac{\partial}{\partial \boldsymbol{\mu}_k}{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k) &= \dfrac{\partial}{\partial \boldsymbol{\mu}_k}\dfrac{\exp \Bigl(-{\tiny \dfrac{1}{2}}( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) \Bigr)}{\sqrt{(2\pi)^{K}|{\boldsymbol \Sigma}_k|}}\\
&= \dfrac{1}{\sqrt{(2\pi)^{K}|{\boldsymbol \Sigma}_k|}}\dfrac{\partial}{\partial \boldsymbol{\mu}_k}\exp \Bigl(-{\tiny \dfrac{1}{2}}( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) \Bigr)\\
&= -\dfrac{1}{2}\dfrac{\exp \Bigl(-{\tiny \dfrac{1}{2}}( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) \Bigr)}{\sqrt{(2\pi)^{K}|{\boldsymbol \Sigma}_k|}}\dfrac{\partial}{\partial \boldsymbol{\mu}_k} \Bigl(( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) \Bigr)\\
&= -\dfrac{1}{2}{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)\dfrac{\partial}{\partial \boldsymbol{\mu}_k}\Bigl(( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) \Bigr)\\
ここの計算は長いので{\mathrm {Appendix}.1}に書きます。\\
&= -\dfrac{1}{2}{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)(-2{\boldsymbol  \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k))\\
&= {\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k){\boldsymbol  \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)\tag{8}
\end{align}

(7)(8)より

\begin{align}
\dfrac{\partial L}{\partial \boldsymbol{\mu}_k}&=\sum_{n=1}^{N}\dfrac{\pi_k \dfrac{\partial}{\partial \boldsymbol{\mu}_k}{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}\\
&=\sum_{n=1}^{N}\dfrac{\pi_k {\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k){\boldsymbol  \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}\\
&={\boldsymbol  \Sigma_k}^{-1}\sum_{n=1}^{N}r_{nk}({\boldsymbol x}_n-{\boldsymbol \mu}_k)\tag{9}
\end{align}

途中で負担率の式(5)を用いた。
(6)(9)より

\begin{align}
{\boldsymbol  \Sigma_k}^{-1}\sum_{n=1}^{N}r_{nk}({\boldsymbol x}_n-{\boldsymbol \mu}_k)=0
\end{align}

左から${\boldsymbol \Sigma_k}$をかけて

\begin{align}
\sum_{n=1}^{N}r_{nk}({\boldsymbol x}_n-{\boldsymbol \mu}_k)=0
\end{align}
\begin{align}
\sum_{n=1}^{N}r_{nk}({\boldsymbol x}_n-{\boldsymbol \mu}_k)&=\sum_{n=1}^{N}r_{nk}{\boldsymbol x}_k-{\boldsymbol \mu}_k\sum_{n=1}^{N}r_{nk}\\
&=0
\end{align}
\begin{align}
{\boldsymbol \mu}_k = \dfrac{\sum_{n=1}^{N}r_{nk}{\boldsymbol x}_k}{\sum_{n=1}^{N}r_{nk}}
= \dfrac{1}{N_k}\sum_{n=1}^{N}r_{nk}{\boldsymbol x}_k
\end{align}

となり平均の式の形(1)を得る。

分散共分散行列

対数尤度関数を最大化する${\boldsymbol \Sigma}_k $は${\boldsymbol \mu}_k $と同様に

\begin{align}
\dfrac{\partial L}{\partial {\boldsymbol \Sigma}_k} =0\tag{10}
 \end{align}

を満たします。左辺を具体的に計算すると

\begin{align}
\dfrac{\partial L}{\partial \boldsymbol{\Sigma}_k} &=\dfrac{\partial L}{\partial \boldsymbol{\Sigma}_k}\sum_{n=1}^{N} \mathrm{ln}\Bigl(\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)\Bigr)\\
 &=\sum_{n=1}^{N}\dfrac{\dfrac{\partial L}{\partial \boldsymbol{\Sigma}_k} \sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}\\
&=\sum_{n=1}^{N}\dfrac{\pi_k \dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}\tag{11}
 \end{align}

分子に注目して

 \begin{align}
\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k) &=\dfrac{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k) \\
&={\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)\dfrac{ {{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}^{'}}{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)} \\
&={\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\mathrm{ln}({{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}) \\
&={{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\mathrm{ln}  \Bigl(\dfrac{\exp (-{\tiny{\dfrac{1}{2}}}( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) )}{\sqrt{(2\pi)^{K}|{\boldsymbol \Sigma}_k|}}\Bigr)\\
&={{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k} \Bigl({\mathrm {ln}}\exp\Bigl(-{\tiny{\dfrac{1}{2}}}( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) \Bigr)-{\mathrm {ln}}(\sqrt{\tiny{(2\pi)^{K}|{\boldsymbol \Sigma}_k|}})\Bigr)\\
&={{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k} \Bigl(-{\tiny{\dfrac{1}{2}}}( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) )-{\mathrm {ln}}(\sqrt{\tiny{(2\pi)^{K}|{\boldsymbol \Sigma}_k|}})\Bigr)\\
&={{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k} \Bigl(-{\tiny{\dfrac{1}{2}}}( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) )-{\tiny\dfrac{1}{2}}{\mathrm {ln}}({(2\pi)^{K}|{\boldsymbol \Sigma}_k|})\Bigr)\\
&=-\dfrac{1}{2}{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k} \Bigl(( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) )+{\mathrm {ln}}({(2\pi)^{K}|{\boldsymbol \Sigma}_k|})\Bigr)\\
&=-\dfrac{1}{2}{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\Bigl(\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\Bigl( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)\Bigr)+\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\Bigl({\mathrm {ln}}({(2\pi)^{K}|{\boldsymbol \Sigma}_k|})\Bigr)\Bigr)\\
&=-\dfrac{1}{2}{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\Bigl(\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\Bigl( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)\Bigr)+\dfrac{\partial }{\partial \boldsymbol{\Sigma}_k}\Bigl({\mathrm {ln}}({(2\pi)^{K}|{\boldsymbol \Sigma}_k|})\Bigr)\Bigr)\\
&=-\dfrac{1}{2}{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\Bigl(\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\Bigl( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)\Bigr)+\dfrac{\partial }{\partial \boldsymbol{\Sigma}_k}\Bigl({\mathrm {ln}}({(2\pi)^{K}})+{\mathrm {ln}}(|{\boldsymbol \Sigma}_k|)\Bigr)\Bigr)\\
&=-\dfrac{1}{2}{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\Bigl(\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\Bigl( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)\Bigr)+\dfrac{\partial }{\partial \boldsymbol{\Sigma}_k}\Bigl({\mathrm {ln}}(|{\boldsymbol \Sigma}_k|)\Bigr)\Bigr)\\
&=-\dfrac{1}{2}{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}\Bigl(\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\Bigl( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)\Bigr)+\dfrac{1}{|{\boldsymbol \Sigma}_k|}\dfrac{\partial |{\boldsymbol \Sigma}_k|}{\partial \boldsymbol{\Sigma}_k}\Bigr)\\
&ここの計算は長いので\mathrm {Appendix2}、\mathrm {Appendix3}で説明します。\\
&=-\dfrac{1}{2}{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}(-{\boldsymbol \Sigma}_k^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}_k^{-1}+({\boldsymbol \Sigma}_k^{T})^{-1})\tag{12}
\end{align}

(11)(12)から

\begin{align}
\dfrac{\partial L}{\partial \boldsymbol{\Sigma}_k} &=\sum_{n=1}^{N}\dfrac{\pi_k {\tiny \dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}}{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}\\
&=-\dfrac{1}{2}\sum_{n=1}^{N}\dfrac{\pi_k{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}(-{\boldsymbol \Sigma}_k^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}_k^{-1}+({\boldsymbol \Sigma}_k^{T})^{-1})\\
&=-\dfrac{1}{2}\sum_{n=1}^{N}r_{nk}(-{\boldsymbol \Sigma}_k^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}_k^{-1}+({\boldsymbol \Sigma}_k^{T})^{-1})\\
&=-\dfrac{1}{2}\sum_{n=1}^{N}r_{nk}(-{\boldsymbol \Sigma}_k^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}_k^{-1}+{\boldsymbol \Sigma}_k^{-1})\\
&=-\dfrac{1}{2}{\boldsymbol \Sigma}_k^{-1}\sum_{n=1}^{N}r_{nk}(-({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}_k^{-1}+{\boldsymbol I})\tag{13}
 \end{align}

(13)について-2倍して左右から${\boldsymbol \Sigma}_k$をかけて

\begin{align}
\sum_{n=1}^{N}r_{nk}(-({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T+{\boldsymbol \Sigma}_k)=0
 \end{align}

となる。
これを満たす${\boldsymbol \Sigma}_k$が大数尤度関数を最大にする${\boldsymbol \Sigma}_k$である。変形して

\begin{align}
\sum_{n=1}^{N}r_{nk}{\boldsymbol \Sigma}_k&=\sum_{n=1}^{N}r_{nk}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T\\
 {\boldsymbol \Sigma}_k\sum_{n=1}^{N}r_{nk}&=\sum_{n=1}^{N}r_{nk}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T\\
\sum_{n=1}^{N}r_{nk}&=N_kであるから\\
 {\boldsymbol \Sigma}_kN_k&=\sum_{n=1}^{N}r_{nk}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T
 \end{align}

よって

\begin{align}
 {\boldsymbol \Sigma}_k&=\dfrac{1}{N_k}\sum_{n=1}^{N}r_{nk}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^T
\end{align}

(2)を得ます。

混合係数

対数尤度関数Lを最大化する${\pi}_k$を求めます。

\sum_{n=1}^{N}\pi_k=1

なのでラグランジュの未定乗数を$\lambda$として

\begin{align}
G = L + \lambda\Bigl(\sum_{k=1}^{K}\pi_k-1\Bigr)
\end{align}

両辺を$\pi_k$で微分して

\begin{align}
\dfrac{\partial }{\partial \pi_k} G &=\dfrac{\partial }{\partial \pi_k} L + \dfrac{\partial }{\partial \pi_k}\lambda\Bigl(\sum_{k=1}^{K}\pi_k-1\Bigr)\\
&=\dfrac{\partial }{\partial \pi_k} L + \dfrac{\partial }{\partial \pi_k}\lambda\Bigl(\sum_{k=1}^{K}\pi_k-1\Bigr)\\
&=\dfrac{\partial }{\partial \pi_k} \sum_{n=1}^{N} \mathrm{ln}\Bigl(\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)\Bigr) + \dfrac{\partial }{\partial \pi_k}\lambda\Bigl(\sum_{k=1}^{K}\pi_k-1\Bigr)\\
&= \sum_{n=1}^{N}\dfrac{{\tiny{\dfrac{\partial L}{\partial \pi_k}}}\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)} + \lambda\\
&分子の{\tiny{\dfrac{\partial L}{\partial \pi_k}}}\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)について展開して微分すると残る項は\\
&{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)だけなので\\
&=\sum_{n=1}^{N}\dfrac{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)} + \lambda\\
&=\dfrac{\pi_k}{\pi_k}\sum_{n=1}^{N}\dfrac{{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_k,{\boldsymbol  \Sigma}_k)}{\sum_{j=1}^{K}\pi_j{\mathcal{N}}({\boldsymbol x}_n|{\boldsymbol \mu}_j,{\boldsymbol  \Sigma}_j)} + \lambda\\
&r_{nk}の更新式(5)より\\
&=\dfrac{1}{\pi_k}\sum_{n=1}^{N}r_{nk} + \lambda\\
&=\dfrac{N_k}{\pi_k} + \lambda
\end{align}

Lが最大のとき

\begin{align}
\dfrac{N_k}{\pi_k} + \lambda=0\\
N_k+ \lambda\pi_k =0\tag{14}
\end{align}

クラスターで総和を取れば

\begin{align}
\sum_{k=1}^{K}\dfrac{N_k}{\pi_k} + \sum_{k=1}^{K}\lambda=0\\
\sum_{k=1}^{K}N_k + \lambda\sum_{k=1}^{K}\pi_k=0\\
N + \lambda =0\\
\lambda =-N\tag{15}
\end{align}

(14)(15)から

\pi_k =\dfrac{N_k }{N}

と(3)を得る。

結び

師走に書いた記事ということもありいくつかtypoがあると思います。見つけた場合はコメントで教えていただけると幸いです。

Appendix1

本節では$\dfrac{\partial}{\partial \boldsymbol{\mu}_k}\Bigl(( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) \Bigr)$の計算を行う。そのための準備として
まず${\boldsymbol \Sigma}_k$を

\begin{align}
{\boldsymbol  \Sigma}_k=\begin{pmatrix}
\sigma_{11} & \cdots & \sigma_{1i} & \cdots & \sigma_{1D}\\
\vdots & \ddots & & & \vdots \\
\sigma_{i1} & & \sigma_{ii} & & \sigma_{iD} \\
\vdots & & & \ddots & \vdots \\
\sigma_{D1} & \cdots & \sigma_{Di} & \cdots & \sigma_{DD}
\end{pmatrix}
\end{align}

とする。

${\boldsymbol  \Sigma}_k^{-1}$は
\begin{align}
{\boldsymbol  \Sigma}_k^{-1}=\begin{pmatrix}
\overline\sigma_{11} & \cdots & \overline\sigma_{1i} & \cdots & \overline\sigma_{1D}\\
\vdots & \ddots & & & \vdots \\
\overline\sigma_{i1} & & \overline\sigma_{ii} & & \overline\sigma_{iD} \\
\vdots & & & \ddots & \vdots \\
\overline\sigma_{D1} & \cdots & \overline\sigma_{Di} & \cdots & \overline\sigma_{DD}
\end{pmatrix}
\end{align}

となる。$( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}$を具体的に書くと

\begin{align}
( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma}^{-1} = \Bigl(\sum_{i=1}^{D}\overline\sigma_{i1}(x_{ni}-\mu_{ki}),\cdots,\sum_{i=1}^{D}\overline\sigma_{iD}(x_{ni}-\mu_{ki})
\Bigr)
\end{align}
\begin{align}
( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma}^{-1}( {\boldsymbol x}_k-{\boldsymbol \mu}_k) = \sum_{i=1}^{D}\sum_{j=1}^{D}\overline\sigma_{ij}(x_{ni}-\mu_{ki})(x_{nj}-\mu_{kj})
\end{align}

ここで計算の説明のため一度$f =( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)$とする。

\begin{align}
\dfrac{\partial}{\partial \boldsymbol{\mu}_k}\Bigl(( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) \Bigr) = \Bigl(\dfrac{\partial f}{\partial \mu_{k1}},\cdots,\dfrac{\partial f}{\partial \mu_{kl}},\cdots,\dfrac{\partial f}{\partial \mu_{kD}}\Bigr)
\end{align}
\begin{align}
\dfrac{\partial f}{\partial \mu_{kl}} &= \dfrac{\partial }{\partial \mu_{kl}}\Bigl(\sum_{i=1}^{D}\sum_{j=1}^{D}\overline\sigma_{ij}(x_{ni}-\mu_{ki})(x_{nj}-\mu_{kj})\Bigr)\\
&= \sum_{i=1}^{D}\sum_{j=1}^{D}\overline\sigma_{ij}(x_{ni}-\mu_{ki})\dfrac{\partial }{\partial \mu_{kl}}(x_{nj}-\mu_{kj})+\sum_{i=1}^{D}\sum_{j=1}^{D}\overline\sigma_{ij}(x_{nj}-\mu_{kj})\dfrac{\partial }{\partial \mu_{kl}}(x_{ni}-\mu_{ki})\\
&= \sum_{i=1}^{D}\overline\sigma_{il}(x_{ni}-\mu_{ki})\dfrac{\partial }{\partial \mu_{kl}}(x_{nl}-\mu_{kl})+\sum_{j=1}^{D}\overline\sigma_{lj}(x_{nj}-\mu_{kj})\dfrac{\partial }{\partial \mu_{kl}}(x_{nl}-\mu_{kl})\\
&= -\sum_{i=1}^{D}\overline\sigma_{il}(x_{ni}-\mu_{ki})-\sum_{j=1}^{D}\overline\sigma_{lj}(x_{nj}-\mu_{kj})\\
&分散共分散行列は対称行列で\overline\sigma_{il}=\overline\sigma_{li}より\\
&= -\sum_{i=1}^{D}\overline\sigma_{il}(x_{ni}-\mu_{ki})-\sum_{j=1}^{D}\overline\sigma_{jl}(x_{nj}-\mu_{kj})\\
&= -2\sum_{i=1}^{D}\overline\sigma_{il}(x_{ni}-\mu_{ki})
\end{align}

よって

\begin{align}
\dfrac{\partial}{\partial \boldsymbol{\mu}_k}\Bigl(( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol  \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k) \Bigr) &= \Bigl(\dfrac{\partial f}{\partial \mu_{k1}},\cdots,\dfrac{\partial f}{\partial \mu_{kl}},\cdots,\dfrac{\partial f}{\partial \mu_{kD}}\Bigr)\\
&= \Bigl(-2\sum_{i=1}^{D}\overline\sigma_{i1}(x_{ni}-\mu_{ki}),\cdots,-2\sum_{i=1}^{D}\overline\sigma_{iD}(x_{ni}-\mu_{ki})\Bigr)\\
&=-2{\boldsymbol  \Sigma}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)
\end{align}

Appendix2

右辺第二項の計算
Appendix1と同様に${\boldsymbol \Sigma}_k$を

\begin{align}
{\boldsymbol  \Sigma}_k=\begin{pmatrix}
\sigma_{11} & \cdots & \sigma_{1i} & \cdots & \sigma_{1D}\\
\vdots & \ddots & & & \vdots \\
\sigma_{i1} & & \sigma_{ii} & & \sigma_{iD} \\
\vdots & & & \ddots & \vdots \\
\sigma_{D1} & \cdots & \sigma_{Di} & \cdots & \sigma_{DD}
\end{pmatrix}
\end{align} 

とする。
行列式$|{\boldsymbol \Sigma}_k|$の${\boldsymbol \Sigma}_k$による微分は

\begin{align}
\dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial {\boldsymbol  \Sigma}_k}=\begin{pmatrix}
\dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial \overline\sigma_{11}} & \cdots & \dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial\overline\sigma_{1i}} & \cdots & \dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial\overline\sigma_{1D}}\\
\vdots & \ddots & & & \vdots \\
\dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial\overline\sigma_{i1}} & & \dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial\overline\sigma_{ii}} & & \dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial\overline\sigma_{iD}} \\
\vdots & & & \ddots & \vdots \\
\dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial\overline\sigma_{D1}} & \cdots & \dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial\overline\sigma_{Di}} & \cdots & \dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial\overline\sigma_{DD}}\tag{16}
\end{pmatrix}
\end{align}

となる。
${\boldsymbol \Sigma}k$の(i,j)成分における余因子を${\boldsymbol \Sigma}{k,ij}$として

\begin{align}
\dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial {\boldsymbol  \Sigma}_k}=
\begin{pmatrix}
{\boldsymbol  \Sigma}_{k,11} & \cdots & {\boldsymbol  \Sigma}_{k,i1} & \cdots & {\boldsymbol  \Sigma}_{k,D1}\\
\vdots & \ddots & & & \vdots \\
{\boldsymbol  \Sigma}_{k,i1} & & {\boldsymbol  \Sigma}_{k,ii} & & {\boldsymbol  \Sigma}_{k,Di} \\
\vdots & & & \ddots & \vdots \\
{\boldsymbol  \Sigma}_{k,D1} & \cdots & {\boldsymbol  \Sigma}_{k,Di} & \cdots & {\boldsymbol  \Sigma}_{k,DD}\tag{17}
\end{pmatrix}
\end{align} 

${\boldsymbol \Sigma}_k$の因子行列を$\tilde{{\boldsymbol \Sigma}}_k$とすると余因子行列の定義から

\begin{align} 
\tilde{{\boldsymbol  \Sigma}}_k=\begin{pmatrix}
{\boldsymbol  \Sigma}_{k,11} & \cdots & {\boldsymbol  \Sigma}_{k,1i} & \cdots & {\boldsymbol  \Sigma}_{k,1D}\\
\vdots & \ddots & & & \vdots \\
{\boldsymbol  \Sigma}_{k,1i} & & {\boldsymbol  \Sigma}_{k,ii} & & {\boldsymbol  \Sigma}_{k,iD} \\
\vdots & & & \ddots & \vdots \\
{\boldsymbol  \Sigma}_{k,1D} & \cdots & {\boldsymbol  \Sigma}_{k,iD} & \cdots & {\boldsymbol  \Sigma}_{k,DD}
\end{pmatrix}
\end{align}

であるから(17)は余因子行列の転置行列を用いて

\begin{align} 
\dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial {\boldsymbol  \Sigma}_k}={\tilde{{\boldsymbol  \Sigma}}_k}^{T}
\end{align}  

逆行列は余因子行列と行列式を用いて

\begin{align}
{\boldsymbol  \Sigma}_k^{-1}=\dfrac{\tilde{{\boldsymbol  \Sigma}}_k}{|{\boldsymbol  \Sigma}_k|}
\end{align}                                                                           

で表されるので

\begin{align}
\dfrac{\partial |{\boldsymbol  \Sigma}_k|}{\partial {\boldsymbol  \Sigma}_k}&=(|{\boldsymbol  \Sigma}_k|{\boldsymbol  \Sigma}_k^{-1})^{T}\\
&=|{\boldsymbol  \Sigma}_k|({\boldsymbol  \Sigma}_k^{-1})^{T}
\end{align}

と書ける。

Appendix3

右辺第1項の計算

\begin{align}
\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\Bigl(( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)\Bigr)\\
\end{align}

二次形式と行列のトレースから

\begin{align}
{\boldsymbol x}^{T}A{\boldsymbol x}={\mathrm {Tr}}(A{\boldsymbol x}{\boldsymbol x}^{T})
\end{align}

であるから

\begin{align}
( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)&={\mathrm {Tr}}({\boldsymbol \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^{T})\\
\end{align}

と変形できる。
よって

\begin{align}
\dfrac{\partial}{\partial A}{\mathrm {Tr}}(A^{-1}B) = -(A^{-1}BA^{-1})^{T}
\end{align}
\begin{align}
\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\Bigl(( {\boldsymbol x}_k-{\boldsymbol \mu}_k)^T{\boldsymbol \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)\Bigr)&=\dfrac{\partial}{\partial \boldsymbol{\Sigma}_k}\Bigl({\mathrm {Tr}}({\boldsymbol \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^{T})\Bigr)\\
&=-({\boldsymbol \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^{T}{\boldsymbol \Sigma_k}^{-1})^{T}\\
&=-({\boldsymbol \Sigma_k}^{-1}({\boldsymbol x}_n-{\boldsymbol \mu}_k)({\boldsymbol x}_n-{\boldsymbol \mu}_k)^{T}{\boldsymbol \Sigma_k}^{-1})
\end{align}

参考文献

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0