機械学習基礎理論独習

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

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

混合ガウス分布の最尤推定

混合ガウス分布とは

混合ガウス分布は以下の式で表されます。

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

混合ガウス分布は字の通り、ガウス分布を混合係数\pi_kで重みづけした和になっています。
混合係数は\sum_{k=1}^K\pi_k=1を満たしている必要があります。

例として、K=3の混合ガウス分布のイメージ図を以下に記します。

f:id:olj611:20210305113524p:plain:w480

潜在変数を潜り込ませる

K次元の2値確率変数{\bf z}を導入します。
これは1-of-K符号化を取るとします。z_k\in\{0,1\}かつ\sum_{k=1}^Kz_k=1を満たします。
例えば、{\bf z}\in\mathbb{R}^3だとすると、{\bf z}\in\{(1,0,0)^\top,(0,1,0)^\top,(0,0,1)^\top\}{\bf z}は3種類の値しかとりません。
z_2=1なら、z_1=z_3=0となるので、z_1,z_2,z_3いづれかが1になることが分かればよいということになります。

p(z_k=1)=\pi_kという確率分布を与えます。
すると、以下が成り立ちます。

\begin{eqnarray}
&&p({\bf z})=\prod_{k=1}^K\pi_k^{z_k}\tag{2}
\end{eqnarray}

また、{\bf z}の値が与えられた下での{\bf x}の条件付き分布は、
z_k=1であればk番目のガウス分布に従うため、以下の式が成り立ちます。

\begin{eqnarray}
&&p({\bf x}|z_k=1)=\mathcal{N}({\bf x}|{\boldsymbol\mu}_k,{\bf\Sigma}_k)\tag{3}
\end{eqnarray}

(2),(3)より

\begin{eqnarray}
&&p({\bf x}|{\bf z})=\prod_{k=1}^K\mathcal{N}({\bf x}|{\boldsymbol\mu}_k,{\bf\Sigma}_k)^{z_k}\tag{4}\\
\end{eqnarray}

となります。

周辺化することによりp({\bf x})を求めてみます。

\begin{eqnarray}
p({\bf x})&=&\sum_{\bf z}p({\bf z})p({\bf x}|{\bf z})\\
&=&\sum_{\bf z}\prod_{k=1}^K(\pi_k\mathcal{N}({\bf x}|{\boldsymbol\mu}_k,{\bf\Sigma}_k))^{z_k}\\
&=&\left(\pi_1\mathcal{N}({\bf x}|{\boldsymbol\mu}_1,{\bf\Sigma}_1)\right)^1+\left(\pi_2\mathcal{N}({\bf x}|{\boldsymbol\mu}_2,{\bf\Sigma}_2)\right)^0+\cdots+\left(\pi_K\mathcal{N}({\bf x}|{\boldsymbol\mu}_K,{\bf\Sigma}_K)\right)^0\\
  &+&\left(\pi_1\mathcal{N}({\bf x}|{\boldsymbol\mu}_1,{\bf\Sigma}_1)\right)^0+\left(\pi_2\mathcal{N}({\bf x}|{\boldsymbol\mu}_2,{\bf\Sigma}_2)\right)^1+\cdots+\left(\pi_K\mathcal{N}({\bf x}|{\boldsymbol\mu}_K,{\bf\Sigma}_K)\right)^0\\
  &+&\cdots\\
  &+&\left(\pi_1\mathcal{N}({\bf x}|{\boldsymbol\mu}_1,{\bf\Sigma}_1)\right)^0+\left(\pi_2\mathcal{N}({\bf x}|{\boldsymbol\mu}_2,{\bf\Sigma}_2)\right)^0+\cdots+\left(\pi_K\mathcal{N}({\bf x}|{\boldsymbol\mu}_K,{\bf\Sigma}_K)\right)^1\\
  &=&\pi_1\mathcal{N}({\bf x}|{\boldsymbol\mu}_1,{\bf\Sigma}_1)+\pi_2\mathcal{N}({\bf x}|{\boldsymbol\mu}_2,{\bf\Sigma}_2)+\cdots+\pi_K\mathcal{N}({\bf x}|{\boldsymbol\mu}_K,{\bf\Sigma}_K)\\
&=&\sum_{k=1}^K\pi_k\mathcal{N}({\bf x}|{\boldsymbol\mu}_k,{\bf\Sigma}_k)\tag{5}\\
\end{eqnarray}

(5)は混合ガウス分布の式(1)と一致するので潜在変数\bf zを潜り込ませてもよいことが分かります。

負担率

p(z_k=1|{\bf x})を負担率\gamma(z_k)と表現することにします。

\begin{eqnarray}
\gamma(z_k)\equiv p(z_k=1|{\bf x})&=&\frac{p(z_k=1)p({\bf x}|z_k=1)}{\displaystyle\sum_{j=1}^Kp(z_j=1)p({\bf x}|z_j=1)}\\
&=&\frac{\pi_k\mathcal{N}({\bf x}|{\boldsymbol\mu}_k,{\bf\Sigma}_k)}{\displaystyle\sum_{j=1}^K\pi_j\mathcal{N}({\bf x}|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}\tag{6}
\end{eqnarray}

K=3の時の負担率のイメージ図を以下に記します。

f:id:olj611:20210305120608p:plain:w480

混合ガウス分布モデルの確率変数

今回登場する確率変数の紹介です。
観測データを {\bf X}=\{{\bf x}_1,\ldots,{\bf x}_N\} とします。
潜在変数 {\bf Z}=\{{\bf z}_1,\ldots,{\bf z}_N\}を潜り込ませます。
混合ガウス分布のパラメータは
混合比率 {\boldsymbol\pi}=\{\pi_1,\ldots,\pi_K\},\sum_{k=1}^K\pi_k=1
ガウス分布の平均{\boldsymbol\mu}=\{{\boldsymbol\mu}_1,\ldots,{\boldsymbol\mu}_K\}
ガウス分布の共分散行列 {{\bf\Sigma}}=\{{\bf\Sigma}_1,\ldots,{\bf\Sigma}_K\}です。

今回の混合ガウス分布モデルのグラフィカルモデルを以下に記します。

f:id:olj611:20210305113904p:plain:w360

最尤推定

各データ点が混合ガウス分布から独立に生成されると仮定すると、尤度は以下のようになります。

\begin{eqnarray}
p({\bf X}|{\boldsymbol\pi},{\boldsymbol\mu},{\bf\Sigma})=\prod_{n=1}^N\sum_{k=1}^K\pi_k\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)\tag{7}
\end{eqnarray}

対数を取ります。

\begin{eqnarray}
\ln p({\bf X}|{\boldsymbol\pi},{\boldsymbol\mu},{\bf\Sigma})=\sum_{n=1}^N\ln\left(\sum_{k=1}^K\pi_k\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)\right)\tag{8}
\end{eqnarray}

(7)はlog-sumになっており、解析的解くことができません。
そこでEMアルゴリズムを適用します。

1.初期化

{\boldsymbol\pi},{\boldsymbol\mu},{\bf\Sigma}を初期化します。

2.Eステップ

負担率\gamma(z_{nk})を計算します。

\begin{eqnarray}
&&\gamma(z_{nk})=\frac{\pi_k\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)}{\sum_{k=1}^K\pi_j\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}\tag{8}\\
\end{eqnarray}

3.Mステップ

以下のMステップの全ての更新式で使う為、N_kを以下のようにおきます。

\begin{eqnarray}
N_k=\sum_{n=1}^N\gamma(z_{nk})\tag{9}
\end{eqnarray}

{\boldsymbol\mu}_kの更新式

準備として、\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{10}
\end{eqnarray}

(10)より以下の式が成り立ちます。

\begin{eqnarray}
\frac{\partial}{\partial{\boldsymbol\mu}_k}{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf \Sigma}_k)={\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf \Sigma}_k){\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)\tag{11}
\end{eqnarray}

(10)から式(11)を導くときに、以下の公式を用いました。

\begin{eqnarray}
(\ln f)'=\frac{f'}{f}\Leftrightarrow f'=f\cdot(\ln f)'\tag{12}
\end{eqnarray}

対数尤度を{\boldsymbol\mu}_k微分して={\bf 0}とおきます。

\begin{eqnarray}
&&\frac{\partial}{\partial{\boldsymbol\mu}_k}\sum_{n=1}^N\ln\left(\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)\right)={\bf 0}\\
&&\Leftrightarrow \sum_{n=1}^N\frac{\frac{\partial}{\partial{\boldsymbol\mu}_k}\left(\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)\right)}{\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j}={\bf 0}\\
&&\Leftrightarrow \sum_{n=1}^N\frac{\pi_k\frac{\partial}{\partial{\boldsymbol\mu}_k}{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)}{\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}={\bf 0}\\
&&\Leftrightarrow \sum_{n=1}^N\frac{\pi_k{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k){\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)}{\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}={\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{\sum_{n=1}^N\gamma(z_{nk}){\bf x}_n}{\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{13}
\end{eqnarray}

{\bf\Sigma}_kの更新式

{\bf\Sigma}_kの更新式の導出に使用する行列の微分やトレースの公式を書き出します。

\begin{eqnarray}
&&{\bf x}^\top{\bf A}{\bf x}={\rm Tr}({\bf A}{\bf x}{\bf x}^\top)\tag{14}\\
&&\frac{\partial}{\partial{\bf A}}\ln|{\bf A}|=({\bf A}^{-1})^\top\tag{15}\\
&&\frac{\partial}{\partial{\bf A}}{\rm Tr}({\bf A}^{-1}{\bf B})=-({\bf A}^{-1}{\bf B}{\bf A}^{-1})^\top\tag{16}\\
\end{eqnarray}

準備として、\frac{\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}\mathrm{Tr}\left({\bf\Sigma}_k^{-1}({\bf x}_n-{\boldsymbol\mu}_k)({\bf x}_n-{\boldsymbol\mu}_k)^\top\right)\tag{17}\\
\end{eqnarray}

(17)の変形に式(14)を用いました。
(17)に対数を取ります。

\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}({\bf\Sigma}_k^{-1})^\top+\frac{1}{2}\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{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{18}\\
\end{eqnarray}

(18)の変形には式(24),(25)を用いました。

(18)より、以下の式が成り立ちます。

\begin{eqnarray}
\frac{\partial}{\partial{\bf\Sigma}_k}{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)={\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)\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)\tag{19}
\end{eqnarray}

(18)から式(19)を導くときに、式(12)を用いました。

対数尤度を{\bf\Sigma}_k微分して={\bf O}とおきます。

\begin{eqnarray}
&&\frac{\partial}{\partial{\bf\Sigma}_k}\sum_{n=1}^N\ln\left(\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)\right)={\bf 0}\\
&&\Leftrightarrow \sum_{n=1}^N\frac{\frac{\partial}{\partial{\bf\Sigma}_k}\left(\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)\right)}{\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j}={\bf 0}\\
&&\Leftrightarrow \sum_{n=1}^N\frac{\pi_k\frac{\partial}{\partial{\bf\Sigma}_k}{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)}{\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}={\bf 0}\\
&&\Leftrightarrow \sum_{n=1}^N\frac{\pi_k{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)}{\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}
\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 0}\\
&&\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 0}\\
&&\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 0}\\
&&\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 0}\\
&&\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{20}
\end{eqnarray}

\pi_kの更新式

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

\begin{eqnarray}
&&&&G=\sum_{n=1}^N\ln\left(\sum_{j=1}^K\pi_j{\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_j},{\bf\Sigma}_j)\right)+\lambda\left(\sum_{j=1}^K\pi_j-1\right)\tag{21}\\
\end{eqnarray}

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

\begin{eqnarray}
&&\frac{\partial}{\partial\pi_k}G=0\\
&&\Leftrightarrow\frac{\partial}{\partial\pi_k}\sum_{n=1}^N\ln\left(\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)\right)+\frac{\partial}{\partial\pi_k}\lambda\left(\sum_{j'=1}^K\pi_{j'}-1\right)=0\\
&&\Leftrightarrow\sum_{n=1}^N\frac{\frac{\partial}{\partial\pi_k}\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}{\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}+\lambda=0\\
&&\Leftrightarrow\sum_{n=1}^N\frac{{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)}{\sum_{j=1}^K\pi_j{\mathcal N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}+\lambda=0\\
&&\Leftrightarrow\frac{1}{\pi_k}\sum_{n=1}^N\gamma(z_{nk})+\lambda=0\\
&&\Leftrightarrow\frac{N_k}{\pi_k}+\lambda=0\\
&&\Leftrightarrow N_k=-\lambda\pi_k\tag{22}
\end{eqnarray}

ところで、

\begin{eqnarray}
&&N=\sum_{k=1}^K N_k\tag{23}\\
\end{eqnarray}

が成り立ちます。式(22)を式(23)に代入します。

\begin{eqnarray}
&&N=\sum_{k=1}^K(-\lambda\pi_k)\\
&&\Leftrightarrow N=-\lambda\sum_{k=1}^K\pi_k\\
&&\Leftrightarrow\lambda=-N\tag{24}\\
\end{eqnarray}

(24)を式(22)に代入します。

\begin{eqnarray}
\pi_k=\frac{N_k}{N}\tag{25}\\
\end{eqnarray}

アルゴリズム

1.初期化
\pi_k,{\boldsymbol\mu}_k,{\bf\Sigma}_kを初期化します。(k=1,\ldots,K)

2.Eステップ
\gamma(z_{nk})を更新します。(n=1,\ldots,N,\ k=1,\ldots,K)

\begin{eqnarray}
&&\gamma(z_{nk})\leftarrow\frac{\pi_k\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_k,{\bf\Sigma}_k)}{\sum_{k=1}^K\pi_j\mathcal{N}({\bf x}_n|{\boldsymbol\mu}_j,{\bf\Sigma}_j)}\tag{26}\\
\end{eqnarray}

3.Mステップ
\pi_k,{\boldsymbol\mu}_k,{\bf\Sigma}_kを更新します。(k=1,\ldots,K)

\begin{eqnarray}
&&\pi_k\leftarrow\frac{N_k}{N}\tag{27}\\
&&{\boldsymbol\mu}_k\leftarrow\frac{1}{N_k}\sum_{n=1}^N\gamma(z_{nk}){\bf x}_n\tag{28}\\
&&{\bf\Sigma}_k\leftarrow\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{29}\\
\end{eqnarray}

ただし、

\begin{eqnarray}
&&N_k=\sum_{n=1}^N\gamma(z_{nk})\tag{30}\\
\end{eqnarray}

とします。

4.収束確認
対数尤度を再計算し、前回との差分があらかじめ設定していた収束条件を満たしていなければ2に戻り、満たしていれば終了します。

偉人の名言

f:id:olj611:20210912094309p:plain:w300
何かを得るためには、心でそれを思うことから始まる。
ブルース・リー

参考文献

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

動画

記事作成前に作った動画なので、内容が異なる可能性があります。

目次へ戻る