はじめに
『パターン認識と機械学習』の独学時のまとめです。一連の記事は「数式の行間埋め」または「R・Pythonでの実装」からアルゴリズムの理解を補助することを目的としています。本とあわせて読んでください。
この記事は、9.3.1項の内容です。多次元混合ガウス分布(多変量混合正規分布)の定義の確認と多次元混合ガウス分布に対するEMアルゴリズムによる最尤推定を導出します。
【前節の内容】
重複する内容は省略したので、こちらの記事も参考にしてください。
www.anarchive-beta.com
【他の節一覧】
www.anarchive-beta.com
【この節の内容】
9.3.1 混合ガウス分布再訪
9.2.2項では、観測データ集合$\mathbf{X} = \{\mathbf{x}_1, \mathbf{x}_2, \cdots, \mathbf{x}_N\}$、$\mathbf{x}_n^{\top} = (x_{n1}, x_{n2}, \cdots, x_{nD})$のみが与えられた下での(不完全データ集合の場合の)対数尤度関数の最大化を考えた。この項では、離散潜在変数$\mathbf{Z} = \{\mathbf{z}_1, \mathbf{z}_2, \cdots, \mathbf{z}_N\}$、$\mathbf{z}_n^{\top} = (z_{n1}, z_{n2}, \cdots, z_{nK})$も与えられていると仮定した下での(完全データ集合の場合の)対数尤度関数の最大化を考える。
・対数尤度の確認
完全データ集合$\{\mathbf{X}, \mathbf{Z}\}$に関する尤度関数(同時分布)は、定義式(9.10)(9.11)より、次のように分解できる。
$$
\begin{align}
p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
&= \prod_{n=1}^N
p(\mathbf{x}_n, \mathbf{z}_n | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
\\
&= \prod_{n=1}^N
p(\mathbf{x}_n | \mathbf{z}_n, \boldsymbol{\mu}, \boldsymbol{\Sigma})
p(\mathbf{z}_n | \boldsymbol{\pi})
\\
&= \prod_{n=1}^N
\prod_{k=1}^K
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)^{z_{nk}}
\prod_{k=1}^K
\pi_k^{z_{nk}}
\\
&= \prod_{n=1}^N \prod_{k=1}^K
\pi_k^{z_{nk}}
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)^{z_{nk}}
\tag{9.35}\\
&= \prod_{n=1}^N \prod_{k=1}^K \Bigl\{
\pi_k
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}^{z_{nk}}
\end{align}
$$
よって、完全データ対数尤度関数は次の式になる。
$$
\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
= \sum_{n=1}^N \sum_{k=1}^K
z_{nk} \Bigl\{
\ln \pi_k
+ \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}
\tag{9.36}
$$
この対数尤度を最大化する各パラメータを求めていく。
・混合係数の最尤解の導出(1)
まずは、完全データ対数尤度(9.36)を最大化する混合係数$\boldsymbol{\pi}$を求めていく。
$\boldsymbol{\pi}$には総和が1という制約条件(9.9)があるため、ラグランジュ未定乗数法を用いて対数尤度に制約条件を含めた式を立てて$F(\boldsymbol{\pi})$とおく。
$$
\begin{aligned}
F(\boldsymbol{\pi})
&= \ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
+ \lambda \left(
\sum_{k=1}^K \pi_k - 1
\right)
\\
&= \sum_{n=1}^N \sum_{k=1}^K
z_{nk} \Bigl\{
\ln \pi_k
+ \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}
+ \lambda \left(
\sum_{k=1}^K \pi_k - 1
\right)
\end{aligned}
$$
$F(\boldsymbol{\pi})$を$\pi_k$に関して微分する。
$$
\begin{aligned}
\frac{\partial F(\boldsymbol{\pi})}{\partial \pi_k}
&= \sum_{n=1}^N \left\{
\frac{\partial}{\partial \pi_k}
\sum_{k=1}^K
z_{nk} \ln \pi_k
+ \frac{\partial}{\partial \pi_k}
\sum_{k=1}^K
z_{nk} \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\right\}
+ \frac{\partial}{\partial \pi_k}
\lambda \left(
\sum_{k=1}^K \pi_k - 1
\right)
\\
&= \sum_{n=1}^N
z_{nk} \frac{1}{\pi_k}
+ \lambda
\end{aligned}
$$
---------- ここから補足 ----------
1つ目の因子は、対数の微分$\ln x = \frac{1}{x}$より、$\frac{\partial}{\partial \pi_k} z_{nk} \ln \pi_k = z_{nk} \frac{1}{\pi_k}$となる。また、$k$以外の項は、$\frac{\partial}{\partial \pi_k} z_{nj} \ln \pi_j = 0$である。
2つ目の因子は、$\pi_k$を含まないため0となる。
3つ目の因子は、$k$番目の項が$\frac{\partial}{\partial \pi_k} \lambda \pi_k = \lambda$となり、他の項は0になる。
---------- ここまで ----------
$F(\boldsymbol{\pi})$の微分を0とおき、$\pi_k$に関して解く。
$$
\begin{aligned}
\frac{\partial F(\boldsymbol{\pi})}{\partial \pi_k}
= \frac{1}{\pi_k}
\sum_{n=1}^N z_{nk}
+ \lambda
&= 0
\\
\Leftrightarrow
\lambda \pi_k
&= - \sum_{n=1}^N z_{nk}
\end{aligned}
$$
両辺で$k$について和をとる。
$$
\begin{aligned}
\lambda
\sum_{k=1}^K \pi_k
&= - \sum_{n=1}^N \sum_{k=1}^K z_{nk}
\\
\Leftrightarrow
\lambda
&= - N
\end{aligned}
$$
これを1つ上の式に代入すると、$\pi_k$の最尤解が得られる。
$$
\begin{aligned}
- N \pi_k
&= - \sum_{n=1}^N z_{nk}
\\
\Leftrightarrow
\pi_k
&= \frac{1}{N}
\sum_{n=1}^N z_{nk}
\end{aligned}
$$
$\sum_{n=1}^N z_{nk}$はクラスタ$k$を割り当てられたデータ数である。つまり、クラスタ$k$が割り当てられる確率$\pi_k$の最尤解は、実際にクラスタ$k$が割り当てられた割合になる。ちなみに、不完全データ(9.2.2項)の場合は、$\pi_k = \frac{1}{N} \sum_{n=1}^N \gamma(z_{nk})$であり、クラスタ$k$が割り当てられるデータ数の期待値$\sum_{n=1}^N \gamma(z_{nk})$によって決まった。
他のクラスタ$k = 1, \cdots, K$についても同様に求められる。
しかし、実際は潜在変数$\mathbf{Z}$を観測できない。$\mathbf{Z}$に関して得られる情報は$\mathbf{Z}$の事後分布だけである。そこで、$\mathbf{Z}$の事後分布による対数関数の期待値を考えることにする。
・潜在変数の事後分布による対数尤度関数の期待値の導出
潜在変数$\mathbf{Z}$の事後分布による完全データ対数尤度の期待値を求めていく。
$\mathbf{Z}$の事後分布は、事前分布を式(9.10)、尤度を式(9.11)、周辺分布を式(9.12)としてベイズの定理を用いて求める。
$$
\begin{align}
p(\mathbf{Z} | \mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
&= \frac{
p(\mathbf{X} | \mathbf{Z}, \boldsymbol{\mu}, \boldsymbol{\Sigma})
p(\mathbf{Z} | \boldsymbol{\pi})
}{
\sum_{\mathbf{Z}}
p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
}
\\
&= \prod_{n=1}^N
\frac{
p(\mathbf{x}_n | \mathbf{z}_n, \boldsymbol{\mu}, \boldsymbol{\Sigma})
p(\mathbf{z}_n | \boldsymbol{\pi})
}{
\sum_{\mathbf{z}_n}
p(\mathbf{x}_n | \mathbf{z}_n, \boldsymbol{\mu}, \boldsymbol{\Sigma})
p(\mathbf{z}_n | \boldsymbol{\pi})
}
\\
&= \prod_{n=1}^N
\frac{
\prod_{k=1}^K \Bigl\{
\pi_k
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}^{z_{nk}}
}{
\sum_{\mathbf{z}_n}
\prod_{k=1}^K \Bigl\{
\pi_k
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}^{z_{nk}}
}
\tag{9.38}
\end{align}
$$
この分布を用いて対数尤度の期待値を求める。
対数尤度の期待値は、離散確率分布の期待値の定義式(1.33)より、次の式で求められる。
$$
\begin{align}
\sum_{\mathbf{Z}}
p(\mathbf{Z} | \mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
&= \sum_{\mathbf{Z}}
p(\mathbf{Z} | \mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
\sum_{n=1}^N \sum_{k=1}^K
z_{nk} \Bigl\{
\ln \pi_k
+ \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}
\\
\Leftrightarrow
\mathbb{E}_{p(\mathbf{Z} | \mathbf{X})} [
\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
]
&= \mathbb{E}_{p(\mathbf{Z} | \mathbf{X})} \left[
\sum_{n=1}^N \sum_{k=1}^K
z_{nk} \Bigl\{
\ln \pi_k
+ \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}
\right]
\\
&= \sum_{n=1}^N \sum_{k=1}^K
\mathbb{E}_{p(\mathbf{z}_n | \mathbf{x}_n)} [
z_{nk}
] \Bigl\{
\ln \pi_k
+ \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}
\tag{1}
\end{align}
$$
この式に含まれる$\mathbb{E}_{p(\mathbf{z}_n | \mathbf{x}_n)} [z_{nk}]$を求める。
$$
\begin{aligned}
\mathbb{E}_{p(\mathbf{z}_n | \mathbf{x}_n)} [z_{nk}]
&= \sum_{\mathbf{z}_n}
z_{nk}
p(\mathbf{z}_n | \mathbf{x}_n, \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
\\
&= \frac{
\sum_{\mathbf{z}_n}
z_{nk}
\prod_{k'=1}^K \Bigl\{
\pi_{k'}
p(\mathbf{x}_n | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
\Bigr\}^{z_{nk'}}
}{
\sum_{\mathbf{z}_n}
\prod_{k'=1}^K \Bigl\{
\pi_{k'}
p(\mathbf{x}_n | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
\Bigr\}^{z_{nk'}}
}
\end{aligned}
$$
分母は、式(9.12)より、混合分布の式に置き替えられる。
$$
\mathbb{E}_{p(\mathbf{z}_n | \mathbf{x}_n)} [z_{nk}]
= \frac{
\sum_{\mathbf{z}_n}
z_{nk}
\prod_{k'=1}^K \Bigl\{
\pi_{k'}
p(\mathbf{x}_n | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
\Bigr\}^{z_{nk'}}
}{
\sum_{k'=1}^K
\pi_{k'}
p(\mathbf{x}_n | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
}
$$
分子は、$\mathbf{z}_n$に関する全ての組み合わせの和$\sum_{\mathbf{z}_n}$を展開すると
$$
\begin{aligned}
\sum_{\mathbf{z}_n}
z_{nk}
\prod_{k'=1}^K \Bigl\{
\pi_{k'}
p(\mathbf{x}_n | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
\Bigr\}^{z_{nk'}}
&= \sum_{\mathbf{z}_n} z_{nk} \Bigl\{
\Bigl(
\pi_1 \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1)
\Bigr)^{z_{n1}}
\cdots
\Bigl(
\pi_{k'} \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
\Bigr)^{z_{nk'}}
\cdots
\Bigl(
\pi_K \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_K, \boldsymbol{\Sigma}_K)
\Bigr)^{z_{nK}}
\Bigr\}
\\
&= 0
* \Bigl(
\pi_1 \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1)
\Bigr)^1
\cdots
\Bigl(
\pi_{k'} \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
\Bigr)^0
\cdots
\Bigl(
\pi_K \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_K, \boldsymbol{\Sigma}_K)
\Bigr)^0 \\
&\qquad
\vdots \\
&\qquad
+ 1
* \Bigl(
\pi_1 \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1)
\Bigr)^0
\cdots
\Bigl(
\pi_{k'} \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
\Bigr)^1
\cdots
\Bigl(
\pi_K \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_K, \boldsymbol{\Sigma}_K)
\Bigr)^0 \\
&\qquad
\vdots \\
&\qquad
+ 0
* \Bigl(
\pi_1 \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1)
\Bigr)^0
\cdots
\Bigl(
\pi_{k'} \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
\Bigr)^0
\cdots
\Bigl(
\pi_K \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_K, \boldsymbol{\Sigma}_K)
\Bigr)^1
\\
&= \pi_k \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\end{aligned}
$$
となり(たぶん?)、$k' = k$の因子のみが残る。
$$
\mathbb{E}_{p(\mathbf{z}_n | \mathbf{x}_n)} [z_{nk}]
= \frac{
\pi_k
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
}{
\sum_{k'=1}^K
\pi_{k'}
p(\mathbf{x}_n | \boldsymbol{\mu}_{k'}, \boldsymbol{\Sigma}_{k'})
}
= \gamma(z_{nk})
\tag{9.39}
$$
$z_{nk} = 1$となる期待値$\mathbb{E}_{p(\mathbf{z}_n | \mathbf{x}_n)} [z_{nk}]$は負担率の定義式(9.13)になる。
よって、式(1)に代入すると、対数尤度の期待値が得られる。
$$
\mathbb{E}_{p(\mathbf{Z} | \mathbf{X})} [
\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})
]
= \sum_{n=1}^N \sum_{k=1}^K
\gamma(z_{nk}) \Bigl\{
\ln \pi_k
+ \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}
\equiv L
\tag{9.40}
$$
この式を$L$とおく。
完全データ対数尤度の期待値$L$を最大化する各パラメータを求めていく。
・平均の最尤解の導出
対数尤度の期待値$L$を最大化する平均パラメータ$\boldsymbol{\mu}$を求めていく。
$L$を$\boldsymbol{\mu}_k$に関して微分する。
$$
\begin{aligned}
\frac{\partial L}{\partial \boldsymbol{\mu}_k}
&= \sum_{n=1}^N \left\{
\frac{\partial}{\partial \boldsymbol{\mu}_k}
\sum_{k=1}^K
\gamma(z_{nk})
\ln \pi_k
+ \frac{\partial}{\partial \boldsymbol{\mu}_k}
\sum_{k=1}^K
\gamma(z_{nk})
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\right\}
\\
&= \sum_{n=1}^N
\frac{\gamma(z_{nk})}{\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}
\frac{\partial}{\partial \boldsymbol{\mu}_k}
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\end{aligned}
$$
前の因子は、$\boldsymbol{\mu}_k$を含まないので0になる。後の因子は、対数をとった関数の微分$\ln f(x) = \frac{f'(x)}{f(x)}$を行った。
多次元ガウス分布の微分は、対数微分法$f'(x) = f(x) \ln f(x)$を用いて求める。
$$
\frac{\partial}{\partial \boldsymbol{\mu}_k}
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
= \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\frac{\partial}{\partial \boldsymbol{\mu}_k}
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
$$
対数をとった多次元ガウス分布の$\boldsymbol{\mu}_k$に関する微分は、9.2.2項で求めた次の式である。
$$
\frac{\partial}{\partial \boldsymbol{\mu}_k}
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
= \boldsymbol{\Sigma}_k^{-1}
(\mathbf{x}_n - \boldsymbol{\mu}_k)
$$
それぞれ代入すると、対数尤度の期待値の微分$\frac{\partial L}{\partial \boldsymbol{\mu}_k}$は9.2.2項のときと同じ式になる。
$$
\begin{aligned}
\frac{\partial L}{\partial \boldsymbol{\mu}_k}
&= \sum_{n=1}^N
\frac{\gamma(z_{nk})}{\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\boldsymbol{\Sigma}_k^{-1}
(\mathbf{x}_n - \boldsymbol{\mu}_k)
\\
&= \boldsymbol{\Sigma}_k^{-1}
\sum_{n=1}^N
\gamma(z_{nk})
(\mathbf{x}_n - \boldsymbol{\mu}_k)
\end{aligned}
$$
したがって、$\frac{\partial L}{\partial \boldsymbol{\mu}_k}$を0とおき、$\boldsymbol{\mu}_k$に関して解くと、9.2.2項と同じ手順で最尤解が得られる。
$$
\boldsymbol{\mu}_k
= \frac{1}{N_k}
\sum_{n=1}^N
\gamma(z_{nk}) \mathbf{x}_n
\tag{9.17}
$$
他のクラスタについても同様に求められる。
・共分散行列の最尤解の導出
同様に、対数尤度の期待値$L$を最大化する共分散行列$\boldsymbol{\Sigma}$を求めていく。
$L$を$\boldsymbol{\Sigma}_k$に関して微分する。
$$
\begin{aligned}
\frac{\partial L}{\partial \boldsymbol{\Sigma}_k}
&= \sum_{n=1}^N \left\{
\frac{\partial}{\partial \boldsymbol{\Sigma}_k}
\sum_{k=1}^K
\gamma(z_{nk})
\ln \pi_k
+ \frac{\partial}{\partial \boldsymbol{\Sigma}_k}
\sum_{k=1}^K
\gamma(z_{nk})
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\right\}
\\
&= \sum_{n=1}^N
\frac{\gamma(z_{nk})}{\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}
\frac{\partial}{\partial \boldsymbol{\Sigma}_k}
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\\
&= \sum_{n=1}^N
\frac{\gamma(z_{nk})}{\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\frac{\partial}{\partial \boldsymbol{\Sigma}_k}
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\end{aligned}
$$
対数をとった多次元ガウス分布の$\boldsymbol{\Sigma}_k$に関する微分は、9.2.2項で求めた次の式である。
$$
\frac{\partial}{\partial \boldsymbol{\Sigma}_k}
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
= - \frac{1}{2}
\boldsymbol{\Sigma}_k^{-1} \Bigl\{
\mathbf{I}
- (\mathbf{x}_n - \boldsymbol{\mu}_k)
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\boldsymbol{\Sigma}_k^{-1}
\Bigr\}
$$
代入すると、対数尤度の期待値の微分$\frac{\partial L}{\partial \boldsymbol{\Sigma}_k}$は9.2.2項のときと同じ式になる。
$$
\begin{aligned}
\frac{\partial L}{\partial \boldsymbol{\Sigma}_k}
&= \sum_{n=1}^N
\gamma(z_{nk}) \left(
- \frac{1}{2}
\boldsymbol{\Sigma}_k^{-1}
\right) \Bigl\{
\mathbf{I}
- (\mathbf{x}_n - \boldsymbol{\mu}_k)
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\boldsymbol{\Sigma}_k^{-1}
\Bigr\}
\end{aligned}
$$
したがって、$\frac{\partial L}{\partial \boldsymbol{\Sigma}_k}$を0とおき、$\boldsymbol{\Sigma}_k$に関して解くと、9.2.2項と同じ手順で最尤解が得られる。
$$
\boldsymbol{\Sigma}_k
= \frac{1}{N_k}
\sum_{n=1}^N
\gamma(z_{nk})
(\mathbf{x}_n - \boldsymbol{\mu}_k)
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\tag{9.19}
$$
他のクラスタに付いても同様に求められる。
・混合係数の最尤解の導出(2)
最後に、対数尤度の期待値$L$を最大化する混合係数を求めていく。
完全データ対数尤度のときと同様に、ラグランジュ未定乗数法を用いて$L$に制約条件を含めた式を立てる。
$$
\begin{aligned}
F(\boldsymbol{\pi})
&= L
+ \lambda \left(
\sum_{k=1}^K \pi_k - 1
\right)
\\
&= \sum_{n=1}^N \sum_{k=1}^K
\gamma(z_{nk}) \Bigl\{
\ln \pi_k
+ \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\Bigr\}
+ \lambda \left(
\sum_{k=1}^K \pi_k - 1
\right)
\end{aligned}
$$
$F(\boldsymbol{\pi})$を$\boldsymbol{\pi}_k$に関して微分する。
$$
\begin{aligned}
\frac{\partial F(\boldsymbol{\pi})}{\partial \pi_k}
&= \sum_{n=1}^N \left\{
\frac{\partial}{\partial \pi_k}
\sum_{k=1}^K
\gamma(z_{nk}) \ln \pi_k
+ \frac{\partial}{\partial \pi_k}
\sum_{k=1}^K
\gamma(z_{nk}) \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)
\right\}
+ \frac{\partial}{\partial \pi_k}
\lambda \left(
\sum_{k=1}^K \pi_k - 1
\right)
\\
&= \sum_{n=1}^N
\gamma(z_{nk}) \frac{1}{\pi_k}
+ \lambda
\end{aligned}
$$
$\frac{\partial F(\boldsymbol{\pi})}{\partial \pi_k}$は9.2.2項のときと同じ式(9.21)と同じ式になる。
したがって、$\frac{\partial F(\boldsymbol{\pi})}{\partial \pi_k}$を0とおき、$\pi_k$に関して解くと、9.2.2項と同じ手順で最尤解が得られる。
$$
\pi_k
= \frac{1}{N}
\sum_{n=1}^N \gamma(z_{nk})
\tag{9.22}
$$
他のクラスタについても同様に求められる。
以上でパラメータ$\boldsymbol{\mu},\ \boldsymbol{\Sigma},\ \boldsymbol{\pi}$の最尤解が得られた。どのパラメータも不完全データ対数尤度を最大化する最尤解と一致するのを確認できた。
参考文献
- C.M.ビショップ著,元田 浩・他訳『パターン認識と機械学習 上下』,丸善出版,2012年.
おわりに
この項を読み始めたときに話の筋を読み違って躓いたけどまぁ何とか。