からっぽのしょこ

読んだら書く!書いたら読む!読書読読書読書♪同じ事は二度調べ(たく)ない

4.4.2:ガウス混合モデルのギブスサンプリング【緑ベイズ入門のノート】

はじめに

 『ベイズ推論による機械学習入門』の学習時のノートです。基本的な内容は「数式の行間を読んでみた」とそれを「RとPythonで組んでみた」になります。「数式」と「プログラム」から理解するのが目標です。

 この記事は4.4.2項の内容です。平均、精度行列が未知の多次元ガウス分布(多変量正規分布)を観測モデルとする混合モデルの近似事後分布のパラメータをギブスサンプリングにより推論します。

 省略してある内容等ありますので、本と併せて読んでください。初学者な自分が理解できるレベルまで落として書き下していますので、分かる人にはかなりくどくなっています。同じような立場の人のお役に立てれば幸いです。

【実装編】

www.anarchive-beta.com

www.anarchive-beta.com

【前節の内容】

www.anarchive-beta.com

【他の節一覧】

www.anarchive-beta.com

【この節の内容】

4.4.2 ギブスサンプリング

 平均、精度行列が未知の多次元ガウス分布を観測モデルとする混合モデルの事後分布に対する、ギブスサンプリングによる近似推論を導出する。

・モデルの設定

 クラスタ数を$K$として、各クラスタの平均パラメータを$\boldsymbol{\mu} = \{\boldsymbol{\mu}_1, \boldsymbol{\mu}_2, \cdots, \boldsymbol{\mu}_K\}$、精度行列パラメータを$\boldsymbol{\Lambda} = \{\boldsymbol{\Lambda}_1, \boldsymbol{\Lambda}_2, \cdots, \boldsymbol{\Lambda}_K\}$とまとめて表記する。このときクラスタ$k$における観測モデルを、平均パラメータ$\boldsymbol{\mu}_k$、精度行列パラメータ$\boldsymbol{\Lambda}_k$を持つ$D$次元のガウス分布とする。

$$ p(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k) = \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1}) \tag{4.84} $$

 ここに潜在変数$\mathbf{S} = \{\mathbf{s}_1, \mathbf{s}_2, \cdots, \mathbf{s}_N\}$を導入すると、ガウス混合モデルは

$$ p(\mathbf{x}_n | \mathbf{s}_n, \boldsymbol{\mu}, \boldsymbol{\Lambda}) = \prod_{k=1}^K \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1})^{s_{n,k}} \tag{4.85} $$

となる。

 また全てのクラスタのパラメータ$\boldsymbol{\mu}_k,\ \boldsymbol{\Lambda}_k$の共通の事前分布にガウス・ウィシャート分布を仮定する。

$$ \begin{align} p(\boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k) &= \mathrm{NW}( \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k | \mathbf{m}, \beta, \nu, \mathbf{W} ) \\ &= \mathcal{N}(\boldsymbol{\mu}_k | \mathbf{m}, (\beta \boldsymbol{\Lambda}_k)^{-1}) \mathcal{W}(\boldsymbol{\Lambda}_k | \nu, \mathbf{W}) \tag{4.86} \end{align} $$

 ここで$\nu$は自由度で$\nu > D - 1$の値をとり、$\mathbf{W}$は$D \times D$の行列である。

・潜在変数のサンプリング

 まずは、潜在変数$\mathbf{S}$をサンプルすることを考える。

 パラメータ$\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} \end{align} $$

で求められる。

 次にこの分布の具体的な形状を明らかにしていく。対数をとって指数部分の計算を分かりやすくすると、前の項は式(4.85)より

$$ \begin{align} \ln p(\mathbf{x}_n | \mathbf{s}_n, \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k) &= \ln \prod_{k=1}^K \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1})^{s_{n,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| \right\} + \mathrm{const.} \tag{4.91} \end{align} $$

となる。

 後の項は、4.3節で求めた

$$ \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.90)から$n$番目のデータに関して取り出して、それぞれ代入すると

$$ \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.} \\ &= \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} $$

となる。

 この式について

$$ \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} = \ln \mathrm{Cat}(\mathbf{s}_n | \boldsymbol{\eta}_n) $$

となる。ただし

$$ \boldsymbol{\eta}_n = (\eta_{n,1}, \eta_{n,2}, \cdots, \eta_{n,K}) ,\ \sum_{k=1}^K \eta_{n,k} = 1 $$

である。

 従って各データの潜在変数$\mathbf{s}_n$は、パラメータ$\boldsymbol{\eta}_n$を持つカテゴリ分布からサンプルできる。

$$ \mathbf{s}_n \sim \mathrm{Cat}(\mathbf{s}_n | \boldsymbol{\eta}_n) \tag{4.93} $$


・パラメータのサンプリング

 次に、パラメータ$\boldsymbol{\mu}, \boldsymbol{\Lambda}$をサンプルすることを考える。

 潜在変数$\mathbf{S}$が全てサンプルされた状態でのパラメータの条件付き分布は、同時分布に対してベイズの定理を用いて

$$ \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(\mathbf{S} | \boldsymbol{\pi}) p(\boldsymbol{\pi}) \tag{4.95} \end{align} $$

で求められる。

 $\boldsymbol{\mu},\ \boldsymbol{\Lambda}$に関わる前2つの項は、式(4.85)、(4.86)より

$$ \begin{align} \ln p(\mathbf{X} | \mathbf{S}, \boldsymbol{\mu}, \boldsymbol{\Lambda}) p(\boldsymbol{\mu}, \boldsymbol{\Lambda}) &= \ln \prod_{n=1}^N \prod_{k=1}^K p(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda})^{s_{n,k}} + \ln \prod_{k=1}^K p(\boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k | \mathbf{m}, \beta, \nu, \mathbf{W}) \\ &= \sum_{n=1}^N \sum_{k=1}^K s_{n,k} \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1}) + \sum_{k=1}^K \ln \mathrm{NW}(\boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k | \mathbf{m}, \beta, \nu, \mathbf{W}) \\ &= \sum_{k=1}^K \left\{ \sum_{n=1}^N s_{n,k} \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1}) + \ln \mathrm{NW}(\boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k | \mathbf{m}, \beta, \nu, \mathbf{W}) \right\} \tag{4.69}\\ &= \sum_{k=1}^K \left\{ \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}) \right\} \end{align} $$

となる。

 また左辺の事後分布は

$$ \begin{aligned} p(\boldsymbol{\mu}, \boldsymbol{\Lambda}, \boldsymbol{\pi} | \mathbf{X}, \mathbf{S}) &= p(\boldsymbol{\mu}, \boldsymbol{\Lambda} | \mathbf{X}, \mathbf{S}) p(\boldsymbol{\pi} | \mathbf{X}, \mathbf{S}) \\ &= \prod_{k=1}^K \Bigl\{ p(\boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S}) \Bigr\} p(\boldsymbol{\pi} | \mathbf{X}, \mathbf{S}) \\ &= \prod_{k=1}^K \Bigl\{ p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k, \mathbf{X}, \mathbf{S}) p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S}) \Bigr\} p(\boldsymbol{\pi} | \mathbf{X}, \mathbf{S}) \end{aligned} $$

と分解できる。

 よってパラメータの事後分布(4.95)からクラスタ$k$に関する項を取り出して、$\boldsymbol{\mu}_k$に関して整理すると

$$ \begin{align} p(\boldsymbol{\mu}_k | \boldsymbol{\Lambda}_k, \mathbf{X}, \mathbf{S}) &= \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| \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| \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} \Bigl\{ - 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} \Bigr\} + \mathrm{const.} \\ &= - \frac{1}{2} \left\{ \boldsymbol{\mu}_k^{\top} \Bigl( \sum_{n=1}^N s_{n,k} + \beta \Bigr) \boldsymbol{\Lambda}_k \boldsymbol{\mu}_k - 2 \boldsymbol{\mu}_k^{\top} \boldsymbol{\Lambda}_k \Bigl( \sum_{n=1}^N s_{n,k} \mathbf{x}_n + \beta \mathbf{m} \Bigr) \right\} + \mathrm{const.} \tag{4.97} \end{align} $$

となる。(右辺に移項した)$p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S})$などは、$\boldsymbol{\mu}_k$に影響しないため$\mathrm{const.}$に含んでいる。また$\sum_{n=1}^N s_{n,k}$はスカラである。

 式の形から$\boldsymbol{\mu}_k$の事後分布は、多次元ガウス分布になることが分かる。そこで次のようにおき

$$ 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}| \Bigr\} + \mathrm{const.} \\ &= - \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 + \hat{\mathbf{m}}_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} $$

となり、また平均パラメータは

$$ \begin{align} \hat{\beta}_k \hat{\mathbf{m}}_k &= \sum_{n=1}^N s_{n,k} \mathbf{x}_n + \beta \mathbf{m} \\ \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} \end{align} $$

と求められる。

 従ってクラスタ$k$における観測モデルの平均パラメータ$\boldsymbol{\mu}_k$は、パラメータ$\hat{\mathbf{m}},\ \hat{\beta} \boldsymbol{\Lambda}_k$を持つ$D$次元のガウス分布からサンプルできる。

$$ \boldsymbol{\mu}_k \sim \mathcal{N}(\boldsymbol{\mu}_k | \hat{\mathbf{m}}_k, (\hat{\beta}_k \boldsymbol{\Lambda}_k)^{-1}) $$


 同様に、精度パラメータの条件付き分布を求める。式(4.95)の両辺を$\boldsymbol{\Lambda}_k$に関して整理して、具体的な式に置き換え

$$ \begin{aligned} p(\boldsymbol{\Lambda}_k | \mathbf{X}, \mathbf{S}) &= \sum_{n=1}^N s_{n,k} \ln p(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k^{-1}) + \ln p(\boldsymbol{\mu}_k, \boldsymbol{\Lambda}_k) - 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} (\mathbf{x}_n - \boldsymbol{\mu}_k)^{\top} \boldsymbol{\Lambda}_k (\mathbf{x}_n - \boldsymbol{\mu}_k) + \frac{\sum_{n=1}^N s_{n,k}}{2} \ln |\boldsymbol{\Lambda}_k| \\ &\qquad - \frac{1}{2} (\boldsymbol{\mu}_k - \mathbf{m})^{\top} \beta \boldsymbol{\Lambda}_k (\boldsymbol{\mu}_k - \mathbf{m}) + \frac{1}{2} \ln |\beta \boldsymbol{\Lambda}_k| \\ &\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} (\boldsymbol{\mu}_k - \hat{\mathbf{m}}_k)^{\top} \hat{\beta}_k \boldsymbol{\Lambda}_k (\boldsymbol{\mu}_k - \hat{\mathbf{m}}_k) + \frac{1}{2} \ln |\hat{\beta}_k \boldsymbol{\Lambda}_k| + \mathrm{const.} \end{aligned} $$

括弧を展開すると

$$ \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 \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\} \\ &\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) \\ &\qquad + \frac{1}{2} \left\{ \boldsymbol{\mu}_k^{\top} \Bigl(\sum_{n=1}^N s_{n,k} + \beta\Bigr) \boldsymbol{\Lambda}_k \boldsymbol{\mu}_k - 2 \boldsymbol{\mu}_k \boldsymbol{\Lambda}_k \Bigl(\sum_{n=1}^N s_{n,k} \mathbf{x}_n + \beta \mathbf{m}\Bigr) + \hat{\mathbf{m}}_k^{\top} \hat{\beta}_k \boldsymbol{\Lambda}_k \hat{\mathbf{m}}_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\} \\ &\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{1}{2} \left\{ \mathrm{Tr}\Bigl( \sum_{n=1}^N s_{n,k} \mathbf{x}_n \mathbf{x}_n^{\top} \boldsymbol{\Lambda}_k \Bigr) + \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} \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} $$

【途中式の途中式】

  1. 式(A.15)より、$\ln |\beta \boldsymbol{\Lambda}_k| = \ln \beta^D |\boldsymbol{\Lambda}_k| = \ln \beta^D + \ln |\boldsymbol{\Lambda}_k|$となる。$\ln |\hat{\beta}_k \boldsymbol{\Lambda}_k|$についても同様にすると、$\ln |\boldsymbol{\Lambda}_k|$の項がキャンセルされる。また式(4.99)を代入する。
  2. 式を整理する。
  3. 3.4.3項の事後分布の導出で確認した$\mathbf{x}_n^{\top} \boldsymbol{\Lambda}_k \mathbf{x}_n = \mathrm{Tr}(\mathbf{x}_n \mathbf{x}_n^{\top} \boldsymbol{\Lambda}_k)$の関係を用いて、それぞれ項を変形する。
  4. 式(A.12)より、項をまとめる。


となる。適宜$\boldsymbol{\Lambda}_k$に影響しない項を$\mathrm{const.}$にまとめている。

 式の形から$\boldsymbol{\Lambda}_k$の事後分布は、ウィシャート分布になることが分かる。そこで

$$ \begin{align} \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 \tag{4.103} \end{align} $$

とおくと

$$ \begin{aligned} \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) + \ln C_{\mathcal{W}}(\hat{\nu}_k, \hat{\mathbf{W}}_k) \\ &= \ln \mathcal{W}(\boldsymbol{\Lambda}_k | \hat{\nu}_k, \hat{\mathbf{W}}_k) \end{aligned} $$

となる。

 従って$\boldsymbol{\Lambda}_k$は、パラメータ$\hat{\mathbf{W}}_k$を持つ自由度$\hat{\nu}_k$のウィシャート分布からサンプリングできる。

$$ \boldsymbol{\Lambda}_k \sim \mathcal{W}(\boldsymbol{\Lambda}_k | \hat{\nu}_k, \hat{\mathbf{W}}_k) \tag{4.102} $$


 最後に、クラスタの混合比率$\boldsymbol{\pi}$のサンプリングに関しては、ガウス混合モデルにおける$\boldsymbol{\pi}$に関する項がポアソン混合モデルのときと同じであるため、4.3.2項で導出した条件付き分布(4.44)となる。

参考文献

  • 須山敦志『ベイズ推論による機械学習入門』(機械学習スタートアップシリーズ)杉山将監修,講談社,2017年.

おわりに

 3章に比べて構造が少し入り組みますがやっていることは変わらないので、3.4節と難易度は変わりません。この記事の内容が難しければ、同様の内容をより細かく解説しているので3.4.3項もご参考ください。

【次節の内容】続く