はじめに
『ベイズ推論による機械学習入門』の学習時のノートです。基本的な内容は「数式の行間を読んでみた」とそれを「RとPythonで組んでみた」になります。「数式」と「プログラム」から理解するのが目標です。
この記事は、4.4.2項の内容です。「観測モデルを平均と精度行列が未知の多次元ガウス混合分布(多変量正規混合分布)」、「事前分布をガウス・ウィシャート分布」とする混合モデルをギブスサンプリングにより推論します。
省略してある内容等ありますので、本とあわせて読んでください。初学者な自分が理解できるレベルまで落として書き下していますので、分かる人にはかなりくどくなっています。同じような立場の人のお役に立てれば幸いです。
【実装編】
www.anarchive-beta.com
www.anarchive-beta.com
【他の節一覧】
www.anarchive-beta.com
【この節の内容】
4.4.2 ギブスサンプリング
ギブスサンプリングを用いて、ガウス混合モデルの事後分布$p(\mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi} | \mathbf{X})$から潜在変数$\mathbf{S}$とパラメータ$\boldsymbol{\mu},\ \boldsymbol{\Lambda},\ \boldsymbol{\pi}$をサンプルするアルゴリズムを導出する。
・潜在変数の条件付き分布の導出
始めに、潜在変数$\mathbf{S}$をサンプルするための条件付き分布($\mathbf{S}$の事後分布)$p(\mathbf{S} | \mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})$を求めていく。
観測データ$\mathbf{X}$に加えて、パラメータ$\boldsymbol{\mu},\ \boldsymbol{\Lambda},\ \boldsymbol{\pi}$が観測された(サンプルされた)としたとき、$\mathbf{S}$の条件付き分布は
$$
\begin{align}
p(\mathbf{S} | \mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})
&= \frac{
p(\mathbf{X}, \mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})
}{
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})
}
\\
&\propto
p(\mathbf{X}, \mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})
\\
&= p(\mathbf{X} | \mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda})
p(\mathbf{S} | \boldsymbol{\pi})
p(\boldsymbol{\mu}, \boldsymbol{\Lambda})
p(\boldsymbol{\pi})
\\
&\propto
p(\mathbf{X} | \mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda})
p(\mathbf{S} | \boldsymbol{\pi})
\\
&= \prod_{n=1}^N
p(\mathbf{x}_n | \mathbf{s}_n, \boldsymbol{\mu}, \boldsymbol{\Lambda})
p(\mathbf{s}_n | \boldsymbol{\pi})
\tag{4.90}\\
&= \prod_{n=1}^N
\left\{
\prod_{k=1}^K
\mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1})^{s_{n,k}}
\right\}
\mathrm{Cat}(\mathbf{s}_n | \boldsymbol{\pi})
\end{align}
$$
で求められる。4.4.1項「ガウス混合モデル」で確認した各変数の生成過程(依存関係)に従い項を分解している。また、適宜$\mathbf{S}$に影響しない項を省略して比例関係に注目する。省略した部分については、最後に正規化することで対応できる。
$n$番目の潜在変数(ある1つのデータのクラスタ)$\mathbf{s}_n$の条件付き分布の具体的な形状を明らかにしていく。対数をとって指数部分の計算を分かりやすくすると、前の項は
$$
\begin{align}
\ln p(\mathbf{x}_n | \mathbf{s}_n, \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k)
&= \sum_{k=1}^K
s_{n,k} \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1})
\\
&= \sum_{k=1}^K
s_{n,k} \left\{
- \frac{1}{2}
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\boldsymbol{\Lambda}_k
(\mathbf{x}_n - \boldsymbol{\mu}_k)
- \frac{1}{2}
\ln |\boldsymbol{\Lambda}_k^{-1}|
- \frac{D}{2}
\ln 2 \pi
\right\}
\\
&= \sum_{k=1}^K
s_{n,k} \left\{
- \frac{1}{2}
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\boldsymbol{\Lambda}_k
(\mathbf{x}_n - \boldsymbol{\mu}_k)
+ \frac{1}{2}
\ln |\boldsymbol{\Lambda}_k|
\right\}
+ \mathrm{const.}
\tag{4.91}
\end{align}
$$
となる。ここで、2行目の最後の項の$\pi$は混合比率ではなく円周率である。$\sum_{k=1}^K s_{n,k} = 1$なので、$\sum_{k=1}^K - s_{n,k} \frac{D}{2} \ln 2 \pi = - \frac{D}{2} \ln 2 \pi$となり$\mathbf{s}_n$の影響を受けなくなるので$\mathrm{const.}$に含める。また、行列式の性質$|\mathbf{A}^{-1}| = |\mathbf{A}|^{-1}$、自然対数の性質$\ln x^{-1} = - \ln x$より、$\ln |\boldsymbol{\Lambda}_k^{-1}| = - \ln |\boldsymbol{\Lambda}_k|$である。
後の項は
$$
\begin{align}
\ln p(\mathbf{s}_n | \boldsymbol{\pi})
&= \ln \mathrm{Cat}(\mathbf{s}_n | \boldsymbol{\pi})
\\
&= \ln \prod_{k=1}^K
\pi_k^{s_{n,k}}
\\
&= \sum_{k=1}^K
s_{n,k}
\ln \pi_k
\tag{4.35}
\end{align}
$$
となる。
よって、式(4.91)と式(4.35)を$n$番目のデータに関する項を取り出した式(4.90)に代入すると
$$
\begin{align}
\ln p(\mathbf{s}_n | \mathbf{x}_n, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})
&= \ln p(\mathbf{x}_n | \mathbf{s}_n, \boldsymbol{\mu}, \boldsymbol{\Lambda})
+ \ln p(\mathbf{s}_n | \boldsymbol{\pi})
+ \mathrm{const.}
\tag{4.90'}\\
&= \sum_{k=1}^K
s_{n,k} \left\{
- \frac{1}{2}
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\boldsymbol{\Lambda}_k
(\mathbf{x}_n - \boldsymbol{\mu}_k)
+ \frac{1}{2}
\ln |\boldsymbol{\Lambda}_k|
\right\}
+ \sum_{k=1}^K
s_{n,k}
\ln \pi_k
+ \mathrm{const.}
\\
&= \sum_{k=1}^K
s_{n,k} \left\{
- \frac{1}{2}
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\boldsymbol{\Lambda}_k
(\mathbf{x}_n - \boldsymbol{\mu}_k)
+ \frac{1}{2}
\ln |\boldsymbol{\Lambda}_k|
+ \ln \pi_k
\right\}
+ \mathrm{const.}
\tag{4.92}
\end{align}
$$
となる。適宜$\mathbf{s}_n$に影響しない項を$\mathrm{const.}$にまとめている。
式(4.92)について
$$
\eta_{n,k}
\propto
\exp \left\{
- \frac{1}{2}
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\boldsymbol{\Lambda}_k
(\mathbf{x}_n - \boldsymbol{\mu}_k)
+ \frac{1}{2}
\ln |\boldsymbol{\Lambda}_k|
+ \ln \pi_k
\right\}
\tag{4.94}
$$
とおき
$$
\ln p(\mathbf{s}_n | \mathbf{x}_n, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})
= \sum_{k=1}^K
s_{n,k} \ln \eta_{n,k}
+ \mathrm{const.}
$$
さらに$\ln$を外し、$\sum_{k=1}^K \eta_{n,k} = 1$となるように正規化する($\mathrm{const.}$を正規化項に置き換える)と
$$
p(\mathbf{s}_n | \mathbf{x}_n, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})
= \prod_{k=1}^K
\eta_{n,k}^{s_{n,k}}
= \mathrm{Cat}(\mathbf{s}_n | \boldsymbol{\eta}_n)
$$
$\mathbf{s}_n$の条件付き分布は、$\boldsymbol{\eta}_n = (\eta_{n,1}, \eta_{n,2}, \cdots, \eta_{n,K})$を持つカテゴリ分布になることが分かる。
・パラメータの条件付き分布の導出
次に、パラメータ$\boldsymbol{\mu},\ \boldsymbol{\Lambda},\ \boldsymbol{\pi}$の(同時)条件付き分布($\boldsymbol{\mu},\ \boldsymbol{\Lambda},\ \boldsymbol{\pi}$の事後分布)$p(\boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi} | \mathbf{X}, \mathbf{S})$から、各パラメータをサンプルするため条件付き分布$p(\boldsymbol{\mu} | \boldsymbol{\Lambda}, \mathbf{X}, \mathbf{S}),\ p(\boldsymbol{\Lambda} | \mathbf{X}, \mathbf{S}),\ p(\boldsymbol{\pi} | \mathbf{X}, \mathbf{S})$を求めていく。
観測データ$\mathbf{X}$に加えて、潜在変数$\mathbf{S}$が観測された(サンプルされた)としたとき、$\boldsymbol{\mu},\ \boldsymbol{\Lambda},\ \boldsymbol{\pi}$の条件付き分布は
$$
\begin{align}
p(\boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi} | \mathbf{X}, \mathbf{S})
&= \frac{
p(\mathbf{X}, \mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})
}{
p(\mathbf{X}, \mathbf{S})
}
\\
&\propto
p(\mathbf{X}, \mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi})
\\
&= p(\mathbf{X} | \mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda})
p(\boldsymbol{\mu} | \boldsymbol{\Lambda})
p(\boldsymbol{\Lambda})
p(\mathbf{S} | \boldsymbol{\pi})
p(\boldsymbol{\pi})
\tag{4.95}\\
&= \left\{
\prod_{n=1}^N
p(\mathbf{x}_n | \mathbf{s}_n, \boldsymbol{\mu}, \boldsymbol{\Lambda})
\right\}
\left\{
\prod_{k=1}^K
p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k)
p(\boldsymbol{\Lambda}_k)
\right\}
\left\{
\prod_{n=1}^N
p(\mathbf{s}_n | \boldsymbol{\pi})
\right\}
p(\boldsymbol{\pi})
\\
&= \left\{
\prod_{n=1}^N \prod_{k=1}^K
\mathcal{N}(
\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1}
)^{s_{n,k}}
\right\}
\left\{
\prod_{k=1}^K
\mathcal{N}(\boldsymbol{\mu}_k | \mathbf{m}, (\beta \boldsymbol{\Lambda}_k)^{-1})
\mathcal{W}(\boldsymbol{\Lambda}_k | \nu, \mathbf{W})
\right\}
\left\{
\prod_{n=1}^N
\mathrm{Cat}(\mathbf{s}_n | \boldsymbol{\pi})
\right\}
\mathrm{Dir}(\boldsymbol{\pi} | \boldsymbol{\alpha})
\end{align}
$$
で求められる。こちらも生成過程に従い項を分解して、$\boldsymbol{\mu},\ \boldsymbol{\Lambda},\ \boldsymbol{\pi}$に影響しない項を省く。
また、左辺の(同時)条件付き分布は
$$
\begin{aligned}
p(\boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi} | \mathbf{X}, \mathbf{S})
&= p(\boldsymbol{\mu} | \boldsymbol{\Lambda}, \mathbf{X}, \mathbf{S})
p(\boldsymbol{\Lambda} | \mathbf{X}, \mathbf{S})
p(\boldsymbol{\pi} | \mathbf{X}, \mathbf{S})
\\
&= \left\{
\prod_{k=1}^K
p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k, \mathbf{X}, \mathbf{S})
p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S})
\right\}
p(\boldsymbol{\pi} | \mathbf{X}, \mathbf{S})
\end{aligned}
$$
と分解できる。
この式を用いて、$\boldsymbol{\mu},\ \boldsymbol{\Lambda},\ \boldsymbol{\pi}$それぞれの条件付き分布の具体的な形状を明らかにしていく。
・平均パラメータの条件付き分布
式(4.95)の対数をとって、$\boldsymbol{\mu},\ \boldsymbol{\Lambda}$に関して整理する($\boldsymbol{\mu},\ \boldsymbol{\Lambda}$に影響しない項を$\mathrm{const.}$にまとめる)と
$$
\begin{align}
\ln p(\boldsymbol{\mu} | \boldsymbol{\Lambda}, \mathbf{X}, \mathbf{S})
+ \ln p(\boldsymbol{\Lambda} | \mathbf{X}, \mathbf{S})
&= \ln p(\mathbf{X} | \mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda})
+ \ln p(\boldsymbol{\mu} | \boldsymbol{\Lambda})
+ \ln p(\boldsymbol{\Lambda})
- \ln p(\boldsymbol{\pi} | \mathbf{X}, \mathbf{S})
+ \mathrm{const.}
\\
&= \sum_{n=1}^N \sum_{k=1}^K
s_{n,k}
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1}) \\
&\qquad
+ \sum_{k=1}^K
\ln \mathcal{N}(\boldsymbol{\mu}_k | \mathbf{m}, (\beta \boldsymbol{\Lambda}_k)^{-1})
+ \sum_{k=1}^K
\ln \mathcal{W}(\boldsymbol{\Lambda}_k | \nu, \mathbf{W})
+ \mathrm{const.}
\\
&= \sum_{k=1}^K \Biggl\{
\sum_{n=1}^N
s_{n,k}
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1})
\Biggr. \\
&\qquad \Biggl.
+ \ln \mathcal{N}(\boldsymbol{\mu}_k | \mathbf{m}, (\beta \boldsymbol{\Lambda}_k)^{-1})
+ \ln \mathcal{W}(\boldsymbol{\Lambda}_k | \nu, \mathbf{W})
\Biggr\}
+ \mathrm{const.}
\tag{4.96}
\end{align}
$$
となる。$\ln p(\boldsymbol{\pi} | \mathbf{X}, \mathbf{S})$は左辺から移項したものである。
$\boldsymbol{\mu},\ \boldsymbol{\Lambda}$の(対数をとった同時)条件付き分布(4.96)からクラスタ$k$に関係する項を取り出して、$\boldsymbol{\mu}_k$に関して整理する($\boldsymbol{\mu}_k$に影響しない項を$\mathrm{const.}$にまとめる)と
$$
\begin{align}
\ln p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k, \mathbf{X}, \mathbf{S})
&= \ln \prod_{n=1}^N
p(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k)^{s_{n,k}}
+ \ln p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k)
- \ln p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S})
+ \mathrm{const.}
\\
&= \sum_{n=1}^N
s_{n,k}
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1})
+ \ln \mathcal{N}(\boldsymbol{\mu}_k | \mathbf{m}, (\beta \boldsymbol{\Lambda}_k)^{-1})
+ \mathrm{const.}
\\
&= \sum_{n=1}^N
- \frac{1}{2} s_{n,k} \Bigl\{
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\boldsymbol{\Lambda}_k
(\mathbf{x}_n - \boldsymbol{\mu}_k)
+ \ln |\boldsymbol{\Lambda}_k^{-1}|
+ D \ln 2 \pi
\Bigr\} \\
&\qquad
- \frac{1}{2} \Bigl\{
(\boldsymbol{\mu}_k - \mathbf{m})^{\top}
\beta \boldsymbol{\Lambda}_k
(\boldsymbol{\mu}_k - \mathbf{m})
+ \ln |(\beta \boldsymbol{\Lambda}_k)^{-1}|
+ D \ln 2 \pi
\Bigr\}
+ \mathrm{const.}
\\
&= \sum_{n=1}^N
- \frac{1}{2} s_{n,k} \Bigl\{
\mathbf{x}_n^{\top} \boldsymbol{\Lambda}_k \mathbf{x}_n
- 2 \boldsymbol{\mu}_k^{\top} \boldsymbol{\Lambda}_k \mathbf{x}_n
+ \boldsymbol{\mu}_k^{\top} \boldsymbol{\Lambda}_k \boldsymbol{\mu}_k
\Bigr\} \\
&\qquad
- \frac{1}{2} \Bigl\{
\boldsymbol{\mu}_k^{\top} \beta \boldsymbol{\Lambda}_k \boldsymbol{\mu}_k
- 2 \boldsymbol{\mu}_k^{\top} \beta \boldsymbol{\Lambda}_k \mathbf{m}
+ \mathbf{m}^{\top} \beta \boldsymbol{\Lambda}_k \mathbf{m}
\Bigr\}
+ \mathrm{const.}
\\
&= - \frac{1}{2} \left\{
- 2 \boldsymbol{\mu}_k^{\top} \boldsymbol{\Lambda}_k
\sum_{n=1}^N s_{n,k} \mathbf{x}_n
+ \boldsymbol{\mu}_k^{\top}
\sum_{n=1}^N s_{n,k}
\boldsymbol{\Lambda}_k \boldsymbol{\mu}_k
+ \boldsymbol{\mu}_k^{\top} \beta \boldsymbol{\Lambda}_k \boldsymbol{\mu}_k
- 2 \boldsymbol{\mu}_k^{\top} \beta \boldsymbol{\Lambda}_k \mathbf{m}
\right\}
+ \mathrm{const.}
\\
&= - \frac{1}{2} \left\{
\boldsymbol{\mu}_k^{\top} \left(
\sum_{n=1}^N s_{n,k}
+ \beta
\right)
\boldsymbol{\Lambda}_k \boldsymbol{\mu}_k
- 2 \boldsymbol{\mu}_k^{\top} \boldsymbol{\Lambda}_k \left(
\sum_{n=1}^N s_{n,k} \mathbf{x}_n
+ \beta \mathbf{m}
\right)
\right\}
+ \mathrm{const.}
\tag{4.97}
\end{align}
$$
となる。$\ln p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S})$は左辺から移項したものである。また、$\sum_{n=1}^N s_{n,k}$はスカラである。
式(4.97)は式の形から多次元ガウス分布であることが分かる。そこで、$\boldsymbol{\mu}_k$の条件付き分布を平均$\hat{\mathbf{m}}$、精度$\hat{\beta}_k \boldsymbol{\Lambda}_k$の$D$次元ガウス分布
$$
p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k, \mathbf{X}, \mathbf{S})
= \mathcal{N}(\boldsymbol{\mu}_k | \hat{\mathbf{m}}, (\hat{\beta}_k \boldsymbol{\Lambda}_k)^{-1})
$$
とおく。この式の対数をとり、$\boldsymbol{\mu}_k$に関して整理すると
$$
\begin{aligned}
p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k, \mathbf{X}, \mathbf{S})
&= - \frac{1}{2} \Bigl\{
(\boldsymbol{\mu}_k - \hat{\mathbf{m}}_k)^{\top}
\hat{\beta}_k \boldsymbol{\Lambda}_k
(\boldsymbol{\mu}_k - \hat{\mathbf{m}}_k)
+ \ln |(\hat{\beta}_k \boldsymbol{\Lambda}_k)^{-1}|
+ D \ln 2 \pi
\Bigr\}
\\
&= - \frac{1}{2} \Bigl\{
\boldsymbol{\mu}_k^{\top} \hat{\beta}_k \boldsymbol{\Lambda}_k \boldsymbol{\mu}_k
- 2 \boldsymbol{\mu}_k^{\top} \hat{\beta}_k \boldsymbol{\Lambda}_k \hat{\mathbf{m}}_k
\Bigr\}
+ \mathrm{const.}
\end{aligned}
$$
となる。
したがって、式(4.97)との対応関係から、精度パラメータの係数は
$$
\hat{\beta}_k
= \sum_{n=1}^N s_{n,k}
+ \beta
\tag{4.99.b}
$$
となり、また
$$
\hat{\beta}_k \hat{\mathbf{m}}_k
= \sum_{n=1}^N s_{n,k} \mathbf{x}_n
+ \beta \mathbf{m}
$$
なので、両辺を$\hat{\beta}_k$で割ると、平均パラメータは
$$
\hat{\mathbf{m}}_k
= \frac{
\sum_{n=1}^N s_{n,k} \mathbf{x}_n
+ \beta \mathbf{m}
}{
\hat{\beta}_k
}
\tag{4.99.a}
$$
と求められる。
・精度パラメータの条件付き分布
同様に、式(4.96)からクラスタ$k$に関係する項を取り出して、$\boldsymbol{\Lambda}_k$に関して整理すると
$$
\begin{aligned}
p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S})
&= \ln \prod_{n=1}^N
p(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k)^{s_{n,k}}
+ \ln p(\boldsymbol{\mu} | \boldsymbol{\Lambda})
+ \ln p(\boldsymbol{\Lambda})
- \ln p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k, \mathbf{X}, \mathbf{S})
+ \mathrm{const.}
\\
&= \sum_{n=1}^N
s_{n,k}
\ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1})
+ \ln \mathcal{N}(\boldsymbol{\mu}_k | \mathbf{m}, (\beta \boldsymbol{\Lambda}_k)^{-1})
+ \ln \mathcal{W}(\boldsymbol{\Lambda}_k | \nu, \mathbf{W})
- \ln \mathcal{N}(\boldsymbol{\mu}_k | \hat{\mathbf{m}}_k, (\hat{\beta}_k \boldsymbol{\Lambda})^{-1})
+ \mathrm{const.}
\\
&= \sum_{n=1}^N
- \frac{1}{2} s_{n,k} \Bigl\{
(\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top}
\boldsymbol{\Lambda}_k
(\mathbf{x}_n - \boldsymbol{\mu}_k)
+ \ln |\boldsymbol{\Lambda}_k^{-1}|
+ D \ln 2 \pi
\Bigr\} \\
&\qquad
- \frac{1}{2} \Bigl\{
(\boldsymbol{\mu}_k - \mathbf{m})^{\top}
\beta \boldsymbol{\Lambda}_k
(\boldsymbol{\mu}_k - \mathbf{m})
+ \ln |(\beta \boldsymbol{\Lambda}_k)^{-1}|
+ D \ln 2 \pi
\Bigr\} \\
&\qquad
+ \frac{\nu - D - 1}{2}
\ln |\boldsymbol{\Lambda}_k|
- \frac{1}{2}
\mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda}_k)
+ \ln C_{\mathcal{W}}(\nu, \mathbf{W}) \\
&\qquad
+ \frac{1}{2} \Bigl\{
(\boldsymbol{\mu}_k - \hat{\mathbf{m}}_k)^{\top}
\hat{\beta}_k \boldsymbol{\Lambda}_k
(\boldsymbol{\mu}_k - \hat{\mathbf{m}}_k)
+ \ln |(\hat{\beta}_k \boldsymbol{\Lambda}_k)^{-1}|
+ D \ln 2 \pi
\Bigr\}
+ \mathrm{const.}
\end{aligned}
$$
となる。$\ln p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k, \mathbf{X}, \mathbf{S})$は左辺から移項したものである。さらに、括弧を展開すると
$$
\begin{align}
p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S})
&= \sum_{n=1}^N
- \frac{1}{2} s_{n,k} \Bigl\{
\mathbf{x}_n^{\top} \boldsymbol{\Lambda}_k \mathbf{x}_n
- 2 \boldsymbol{\mu}_k^{\top} \boldsymbol{\Lambda}_k \mathbf{x}_n
+ \boldsymbol{\mu}_k^{\top} \boldsymbol{\Lambda}_k \boldsymbol{\mu}_k
- \ln |\boldsymbol{\Lambda}_k|
\Bigr\} \\
&\qquad
- \frac{1}{2} \Bigl\{
\boldsymbol{\mu}_k^{\top} \beta \boldsymbol{\Lambda}_k \boldsymbol{\mu}_k
- 2 \boldsymbol{\mu}_k^{\top} \beta \boldsymbol{\Lambda}_k \mathbf{m}
+ \mathbf{m}^{\top} \beta \boldsymbol{\Lambda}_k \mathbf{m}
- D \ln \beta
- \ln |\boldsymbol{\Lambda}_k|
\Bigr\} \\
&\qquad
+ \frac{\nu - D - 1}{2}
\ln |\boldsymbol{\Lambda}_k|
- \frac{1}{2}
\mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda}_k) \\
&\qquad
+ \frac{1}{2} \left\{
\boldsymbol{\mu}_k^{\top} \left(
\sum_{n=1}^N s_{n,k} + \beta
\right)
\boldsymbol{\Lambda}_k \boldsymbol{\mu}_k
- 2 \boldsymbol{\mu}_k \boldsymbol{\Lambda}_k \left(
\sum_{n=1}^N s_{n,k} \mathbf{x}_n + \beta \mathbf{m}
\right)
+ \hat{\mathbf{m}}_k^{\top} \hat{\beta}_k \boldsymbol{\Lambda}_k \hat{\mathbf{m}}_k
- D \ln \hat{\beta}
- \ln |\boldsymbol{\Lambda}_k|
\right\}
+ \mathrm{const.}
\\
&= - \frac{1}{2} \left\{
\sum_{n=1}^N s_{n,k} \mathbf{x}_n^{\top} \boldsymbol{\Lambda}_k \mathbf{x}_n
+ \mathbf{m}^{\top} \beta \boldsymbol{\Lambda}_k \mathbf{m}
- \hat{\mathbf{m}}_k^{\top} \hat{\beta}_k \boldsymbol{\Lambda}_k \hat{\mathbf{m}}_k
\right\}
+ \frac{\sum_{n=1}^N s_{n,k}}{2}
\ln |\boldsymbol{\Lambda}_k| \\
&\qquad
+ \frac{\nu - D - 1}{2}
\ln |\boldsymbol{\Lambda}_k|
- \frac{1}{2}
\mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda}_k)
+ \mathrm{const.}
\\
&= - \frac{1}{2} \left\{
\mathrm{Tr} \left(
\sum_{n=1}^N s_{n,k} \mathbf{x}_n \mathbf{x}_n^{\top} \boldsymbol{\Lambda}_k
\right)
+ \mathrm{Tr}(
\beta \mathbf{m} \mathbf{m}^{\top} \boldsymbol{\Lambda}_k
)
- \mathrm{Tr}(
\hat{\beta}_k \hat{\mathbf{m}}_k \hat{\mathbf{m}}_k^{\top} \boldsymbol{\Lambda}_k
)
\right\} \\
&\qquad
+ \frac{\sum_{n=1}^N s_{n,k} + \nu - D - 1}{2}
\ln |\boldsymbol{\Lambda}_k|
- \frac{1}{2}
\mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda}_k)
+ \mathrm{const.}
\\
&= \frac{
\sum_{n=1}^N s_{n,k}
+ \nu - D - 1
}{
2
}
\ln |\boldsymbol{\Lambda}_k| \\
&\qquad
- \frac{1}{2} \mathrm{Tr} \left\{
\left(
\sum_{n=1}^N s_{n,k} \mathbf{x}_n \mathbf{x}_n^{\top}
+ \beta \mathbf{m} \mathbf{m}^{\top}
- \hat{\beta}_k \hat{\mathbf{m}}_k \hat{\mathbf{m}}^{\top}
+ \mathbf{W}^{-1}
\right)
\boldsymbol{\Lambda}_k
\right\}
+ \mathrm{const.}
\tag{4.101}
\end{align}
$$
【途中式の途中式】
- 行列式の性質$|\mathbf{A}^{-1}| = |\mathbf{A}|^{-1}$、$|c \mathbf{A}| = c^D |\mathbf{A}|$より、変形する。また、式(4.99)を一部の項に代入する。
- 式を整理する。
- 「3.4.3:多次元ガウス分布の学習と予測:平均・精度が未知の場合」で確認した$\mathbf{x}^{\top} \boldsymbol{\Lambda} \mathbf{x} = \mathrm{Tr}(\mathbf{x} \mathbf{x}^{\top} \boldsymbol{\Lambda})$の関係を用いて、それぞれ項を変形する。
- トレースの性質$\mathrm{Tr}(\mathbf{A} + \mathbf{B}) = \mathrm{Tr}(\mathbf{A}) + \mathrm{Tr}(\mathbf{B})$より、項をまとめる。
となる。適宜$\boldsymbol{\Lambda}_k$に影響しない項を$\mathrm{const.}$にまとめている。
式(4.101)について
$$
\begin{aligned}
\hat{\mathbf{W}}_k^{-1}
&= \sum_{n=1}^N
s_{n,k} \mathbf{x}_n \mathbf{x}_n^{\top}
+ \beta \mathbf{m} \mathbf{m}^{\top}
- \hat{\beta}_k \hat{\mathbf{m}}_k \hat{\mathbf{m}}^{\top}
+ \mathbf{W}^{-1}
\\
\hat{\nu}_k
&= \sum_{n=1}^N s_{n,k}
+ \nu
\end{aligned}
\tag{4.103}
$$
とおき
$$
\ln p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S})
= \frac{\hat{\nu}_k - D - 1}{2}
\ln |\boldsymbol{\Lambda}_k|
- \frac{1}{2}
\mathrm{Tr}(\hat{\mathbf{W}}_k^{-1} \boldsymbol{\Lambda}_k)
+ \mathrm{const.}
$$
さらに$\ln$を外し、$\mathrm{const.}$を正規化項に置き換える(正規化する)と
$$
p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S})
= C_{\mathcal{W}}(\hat{\nu}_k, \hat{\mathbf{W}}_k)
|\boldsymbol{\Lambda}_k|^{\frac{\hat{\nu}_k - D - 1}{2}}
\exp \left\{
- \frac{1}{2}
\mathrm{Tr}(\hat{\mathbf{W}}_k^{-1} \boldsymbol{\Lambda}_k)
\right\}
= \mathcal{W}(\boldsymbol{\Lambda}_k | \hat{\nu}_k, \hat{\mathbf{W}}_k)
$$
$\boldsymbol{\Lambda}_k$の条件付き分布は、パラメータ$\hat{\mathbf{W}}_k$を持つ自由度$\hat{\nu}_k$のウィシャート分布になることが分かる。
・混合比率の条件付き分布
最後に、$\boldsymbol{\mu},\ \boldsymbol{\Lambda},\ \boldsymbol{\pi}$の条件付き分布(4.95)を$\boldsymbol{\pi}$に関して整理すると、「4.3.2:ポアソン混合モデルにおける推論:ギブスサンプリング」の式(4.43)と同じ式になるので、$\boldsymbol{\pi}$の条件付き分布は4.3.2項で導出した
$$
p(\boldsymbol{\pi} | \mathbf{X}, \mathbf{S})
= C_D(\boldsymbol{\alpha})
\prod_{k=1}^K
\pi_k^{\hat{\alpha}_k-1}
= \mathrm{Dir}(\boldsymbol{\pi} | \hat{\boldsymbol{\alpha}})
$$
パラメータ$\hat{\boldsymbol{\alpha}} = (\hat{\alpha}_1, \hat{\alpha}_2, \cdots, \hat{\alpha}_K)$を持つディリクレ分布になることが分かる。
また、超パラメータ$\hat{\alpha}_k$の計算式(更新式)は
$$
\hat{\alpha}_k
= \sum_{n=1}^N s_{n,k} + \alpha_k
\tag{4.45}
$$
である。
参考文献
- 須山敦志『ベイズ推論による機械学習入門』(機械学習スタートアップシリーズ)杉山将監修,講談社,2017年.
おわりに
3章に比べて構造が少し入り組みますがやっていることは変わらないので、3.4節と難易度はそう変わりません。この記事の内容が難しければ、同様の内容をより細かく解説しているので3.4.3項も参考にしてください。
【次節の内容】
www.anarchive-beta.com