からっぽのしょこ

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

3.4.2:多次元ガウス分布の学習と予測:精度が未知の場合【緑ベイズ入門のノート】

はじめに

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

 この記事は、3.4.2項の内容です。「尤度関数を精度が未知の多次元ガウス分布(多変量正規分布)」、「事前分布をウィシャート分布」とした場合の「パラメータの事後分布」と「未観測値の予測分布」を導出します。

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

【実装編】

www.anarchive-beta.com

www.anarchive-beta.com

【前の節の内容】

www.anarchive-beta.com

【他の節一覧】

www.anarchive-beta.com

【この節の内容】

3.4.2 精度が未知の場合

 多次元ガウス分布に従うと仮定する$N$個の観測データ$\mathbf{X} = \{\mathbf{x}_1, \mathbf{x}_2, \cdots, \mathbf{x}_N\}$を用いて、精度パラメータ$\boldsymbol{\Lambda}$の事後分布と未観測データ$\mathbf{x}_{*}$の予測分布を求めていく。

・観測モデルの設定

 観測データ$\mathbf{X}$、平均パラメータ$\boldsymbol{\mu}$、未知の精度パラメータ(精度行列)$\boldsymbol{\Lambda}$をそれぞれ

$$ \mathbf{X} = \begin{bmatrix} x_{1,1} & x_{1,2} & \cdots & x_{1,D} \\ x_{2,1} & x_{2,2} & \cdots & x_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ x_{N,1} & x_{N,2} & \cdots & x_{N,D} \end{bmatrix} ,\ \boldsymbol{\mu} = \begin{bmatrix} \mu_1 \\ \mu_2 \\ \vdots \\ \mu_D \end{bmatrix} ,\ \boldsymbol{\Lambda} = \begin{bmatrix} \lambda_{1,1} & \lambda_{1,2} & \cdots & \lambda_{1,D} \\ \lambda_{2,1} & \lambda_{2,2} & \cdots & \lambda_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ \lambda_{D,1} & \lambda_{D,2} & \cdots & \lambda_{D,D} \end{bmatrix} $$

とする。ここで精度行列は、分散共分散行列$\boldsymbol{\Sigma}$の逆行列$\boldsymbol{\Lambda} = \boldsymbol{\Sigma}^{-1}$である(固有値のことじゃないよ)。

 尤度$p(\mathbf{X} | \boldsymbol{\Lambda})$を$D$次元のガウス分布

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

とし、$\boldsymbol{\Lambda}$の事前分布をウィシャート分布

$$ p(\boldsymbol{\Lambda}) = \mathcal{W}(\boldsymbol{\Lambda} | \nu, \mathbf{W}) \tag{3.112} $$

とする。ここで、$\nu$は自由度であり$\nu > D - 1$の値をとる。また、$\mathbf{W}$は(何?で)正定値行列である。

・事後分布の計算

 ますは、精度パラメータ$\boldsymbol{\Lambda}$の事後分布$p(\boldsymbol{\Lambda} | \mathbf{X})$を導出する。

 観測データ$\mathbf{X}$が与えられた下での$\boldsymbol{\Lambda}$の事後分布は、ベイズの定理を用いて

$$ \begin{aligned} p(\boldsymbol{\Lambda} | \mathbf{X}) &= \frac{ p(\mathbf{X} | \boldsymbol{\Lambda}) p(\boldsymbol{\Lambda}) }{ p(\mathbf{X}) } \\ &\propto p(\mathbf{X} | \boldsymbol{\Lambda}) p(\boldsymbol{\Lambda}) \\ &= \left\{ \prod_{n=1}^N p(\mathbf{x}_n | \boldsymbol{\Lambda}) \right\} p(\boldsymbol{\Lambda}) \\ &= \left\{ \prod_{n=1}^N \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1}) \right\} \mathcal{W}(\boldsymbol{\Lambda} | \nu, \mathbf{W}) \end{aligned} $$

となる。分母の$p(\mathbf{X})$は$\boldsymbol{\Lambda}$に影響しないため省略して、比例関係のみに注目する。省略した部分については、最後に正規化することで対応できる。

 この分布の具体的な形状を明らかにしていく。対数をとって指数部分の計算を分かりやすくして、$\boldsymbol{\Lambda}$に関して整理すると

$$ \begin{align} \ln p(\boldsymbol{\Lambda} | \mathbf{X}) &= \sum_{n=1}^N \ln \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1}) + \ln \mathcal{W}(\boldsymbol{\Lambda} | \nu, \mathbf{W}) + \mathrm{const.} \tag{3.113}\\ &= \sum_{n=1}^N - \frac{1}{2} \Bigl\{ (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} (\mathbf{x}_n - \boldsymbol{\mu}) + \ln |\boldsymbol{\Lambda}^{-1}| + D \ln 2 \pi \Bigr\} \\ &\qquad + \frac{\nu - D - 1}{2} \ln |\boldsymbol{\Lambda}| - \frac{1}{2} \mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda}) + \ln C_{\mathcal{W}}(\nu, \mathbf{W}) + \mathrm{const.} \\ &= \sum_{n=1}^N - \frac{1}{2} \Biggl\{ \mathrm{Tr} \Bigl( (\mathbf{x}_n - \boldsymbol{\mu}) (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} \Bigr) - \ln |\boldsymbol{\Lambda}| \Biggr\} \\ &\qquad + \frac{\nu - D - 1}{2} \ln |\boldsymbol{\Lambda}| - \frac{1}{2} \mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda}) + \mathrm{const.} \\ &= - \frac{1}{2} \mathrm{Tr} \left( \sum_{n=1}^N (\mathbf{x}_n - \boldsymbol{\mu}) (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} \right) + \frac{N}{2} \ln |\boldsymbol{\Lambda}| \\ &\qquad + \frac{\nu - D - 1}{2} \ln |\boldsymbol{\Lambda}| - \frac{1}{2} \mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda}) + \mathrm{const.} \\ &= \frac{N + \nu - D - 1}{2} \ln |\boldsymbol{\Lambda}| - \frac{1}{2} \mathrm{Tr} \left( \left\{ \sum_{n=1}^N (\mathbf{x}_n - \mu) (\mathbf{x}_n - \mu)^{\top} + \mathbf{W}^{-1} \right\} \boldsymbol{\Lambda} \right) + \mathrm{const.} \tag{3.114} \end{align} $$

【途中式の途中式】(クリックで展開)

  1. 尤度と事前分布に、それぞれ具体的な(対数をとった)確率分布の式を代入する。
  2. トレース$\mathrm{Tr}(\cdot)$を使って項を置き換える。また、$\boldsymbol{\Lambda}$と無関係な項を$\mathrm{const.}$にまとめる。

 行列式の性質$|\mathbf{A}^{-1}| = |\mathbf{A}|^{-1}$、自然対数の性質$\ln x^{-1} = - \ln x$より、$\ln |\boldsymbol{\Lambda}^{-1}| = - \ln |\boldsymbol{\Lambda}|$となる。

 計算を分かりやすくするため$(\mathbf{x}_n - \mu) = (x_{n1} - \mu_1, x_{n2} - \mu_2, \cdots, x_{n,D} - \mu_D) = (\tilde{x}_{n,1}, \tilde{x}_{n,2}, \cdots, \tilde{x}_{n,D})$として、$(\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} (\mathbf{x}_n - \boldsymbol{\mu})$は

$$ \begin{aligned} (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} (\mathbf{x}_n - \boldsymbol{\mu}) &= \begin{bmatrix} \tilde{x}_{n,1} & \tilde{x}_{n,2} & \cdots & \tilde{x}_{n,D} \end{bmatrix} \begin{bmatrix} \lambda_{1,1} & \lambda_{1,2} & \cdots & \lambda_{1,D} \\ \lambda_{2,1} & \lambda_{2,2} & \cdots & \lambda_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ \lambda_{D,1} & \lambda_{D,2} & \cdots & \lambda_{D,D} \end{bmatrix} \begin{bmatrix} \tilde{x}_{n,1} \\ \tilde{x}_{n,2} \\ \vdots \\ \tilde{x}_{n,D} \end{bmatrix} \\ &= \begin{bmatrix} \sum_{d=1}^D \tilde{x}_{n,d} \lambda_{d,1} & \sum_{d=1}^D \tilde{x}_{n,d} \lambda_{d,2} & \cdots & \sum_{d=1}^D \tilde{x}_{n,d} \lambda_{d,D} \end{bmatrix} \begin{bmatrix} \tilde{x}_{n,1} \\ \tilde{x}_{n,2} \\ \vdots \\ \tilde{x}_{n,D} \end{bmatrix} \\ &= \sum_{d=1}^D \sum_{d'=1}^D \tilde{x}_{n,d} \lambda_{d,d'} \tilde{x}_{n,d'} \end{aligned} $$

となる。続いて、$(\mathbf{x}_n - \boldsymbol{\mu}) (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda}$を考える。

$$ \begin{aligned} (\mathbf{x}_n - \boldsymbol{\mu}) (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} &= \begin{bmatrix} \tilde{x}_{n,1} \\ \tilde{x}_{n,2} \\ \vdots \\ \tilde{x}_{n,D} \end{bmatrix} \begin{bmatrix} \tilde{x}_{n,1} & \tilde{x}_{n,2} & \cdots & \tilde{x}_{n,D} \end{bmatrix} \begin{bmatrix} \lambda_{1,1} & \lambda_{1,2} & \cdots & \lambda_{1,D} \\ \lambda_{2,1} & \lambda_{2,2} & \cdots & \lambda_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ \lambda_{D,1} & \lambda_{D,2} & \cdots & \lambda_{D,D} \end{bmatrix} \\ &= \begin{bmatrix} \tilde{x}_{n,1}^2 & \tilde{x}_{n,1} \tilde{x}_{n,2} & \cdots & \tilde{x}_{n,1} \tilde{x}_{n,D} \\ \tilde{x}_{n,2} \tilde{x}_{n,1} & \tilde{x}_{n,2}^2 & \cdots & \tilde{x}_{n,2} \tilde{x}_{n,D} \\ \vdots & \vdots & \ddots & \vdots \\ \tilde{x}_{n,D} \tilde{x}_{n,1} & \tilde{x}_{n,D} \tilde{x}_{n,2} & \cdots & \tilde{x}_{n,D}^2 \end{bmatrix} \begin{bmatrix} \lambda_{1,1} & \lambda_{1,2} & \cdots & \lambda_{1,D} \\ \lambda_{2,1} & \lambda_{2,2} & \cdots & \lambda_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ \lambda_{D,1} & \lambda_{D,2} & \cdots & \lambda_{D,D} \end{bmatrix} \\ &= \begin{bmatrix} \sum_{d=1}^D \tilde{x}_{n,1} \tilde{x}_{n,d} \lambda_{d1} & \sum_{d=1}^D \tilde{x}_{n,1} \tilde{x}_{n,d} \lambda_{d2} & \cdots & \sum_{d=1}^D \tilde{x}_{n,1} \tilde{x}_{nd} \lambda_{d,D} \\ \sum_{d=1}^D \tilde{x}_{n,2} \tilde{x}_{n,d} \lambda_{d1} & \sum_{d=1}^D \tilde{x}_{n,2} \tilde{x}_{n,d} \lambda_{d2} & \cdots & \sum_{d=1}^D \tilde{x}_{n,2} \tilde{x}_{n,d} \lambda_{d,D} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{d=1}^D \tilde{x}_{n,D} \tilde{x}_{n,d} \lambda_{d,1} & \sum_{d=1}^D \tilde{x}_{nD} \tilde{x}_{n,d} \lambda_{d,2} & \cdots & \sum_{d=1}^D \tilde{x}_{n,D} \tilde{x}_{n,d} \lambda_{d,D} \end{bmatrix} \end{aligned} $$

$(\mathbf{x}_n - \boldsymbol{\mu}) (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda}$は、$D \times D$の正方行列になる。この行列の対角成分の和$\mathrm{Tr} \Bigl((\mathbf{x}_n - \boldsymbol{\mu}) (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda}\Bigr)$は

$$ \begin{aligned} \mathrm{Tr} \Bigl( (\mathbf{x}_n - \boldsymbol{\mu}) (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} \Bigr) &= \sum_{d=1}^D \tilde{x}_{n,1} \tilde{x}_{n,d} \lambda_{d,1} + \sum_{d=1}^D \tilde{x}_{n,2} \tilde{x}_{n,d} \lambda_{d,2} + \cdots + \sum_{d=1}^D \tilde{x}_{n,D} \tilde{x}_{n,d} \lambda_{d,D} \\ &= \sum_{d'=1}^D \sum_{d=1}^D \tilde{x}_{n,d'} \tilde{x}_{n,d} \lambda_{d,d'} \end{aligned} $$

となる。よって

$$ (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} (\mathbf{x}_n - \boldsymbol{\mu}) = \mathrm{Tr} \Bigl( (\mathbf{x}_n - \boldsymbol{\mu}) (\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} \Bigr) \tag{1} $$

であることが分かる。

  1. トレースの性質$\mathrm{Tr}(\mathbf{A}) + \mathrm{Tr}(\mathbf{B}) = \mathrm{Tr}(\mathbf{A} + \mathbf{B})$より、$\sum_{n=1}^N \mathrm{Tr}(\mathbf{C}_n) = \mathrm{Tr}(\sum_{n=1}^N \mathbf{C}_n)$となる。
  2. $\ln |\boldsymbol{\Lambda}|$と$\boldsymbol{\Lambda}$の項をそれぞれまとめて式を整理する。


となる。

 式(3.114)について

$$ \begin{aligned} \hat{\mathbf{W}} &= \sum_{n=1}^N (\mathbf{x}_n - \mu) (\mathbf{x}_n - \mu)^{\top} + \mathbf{W}^{-1} \\ \hat{\nu} &= N + \nu \end{aligned} \tag{3.116} $$

とおき

$$ \ln p(\boldsymbol{\Lambda} | \mathbf{X}) = \frac{\hat{\nu} - D - 1}{2} \ln |\boldsymbol{\Lambda}| - \frac{1}{2} \mathrm{Tr}(\hat{\mathbf{W}}^{-1} \boldsymbol{\Lambda}) + \mathrm{const.} $$

さらに$\ln$を外し、$\mathrm{const.}$を正規化項に置き換える(正規化する)と

$$ p(\boldsymbol{\Lambda} | \mathbf{X}) = \mathcal{W}(\boldsymbol{\Lambda} | \hat{\nu}, \hat{\mathbf{W}}) \tag{3.115} $$

事後分布は式の形状から、パラメータ$\hat{\nu},\ \hat{\mathbf{W}}$を持つウィシャート分布となることが分かる。
 また、式(3.116)が超パラメータ$\hat{\nu},\ \hat{\mathbf{W}}$の計算式(更新式)である。

 ちなみに、分散共分散行列$\boldsymbol{\Sigma}$の事後分布の場合は逆ウィシャート分布になる。

・予測分布の計算

 続いて、多次元ガウス分布に従う未観測データ$\mathbf{x}_{*} = (x_{*,1}, x_{*,2}, \cdots, x_{*,D})^{\top}$に対する予測分布を導出する。
 先に、事前分布(観測データによる学習を行っていない分布)$p(\mu)$を用いて、未学習の予測分布$p(\mathbf{x}_{*})$を求める。その結果を用いて、学習後の予測分布$p(\mathbf{x}_{*} | \mathbf{X})$を求める。

 1次元ガウス分布のときと同様に、パラメータ$\boldsymbol{\Lambda}$を周辺化(積分計算)して

$$ p(\mathbf{x}_{*}) = \int p(\mathbf{x}_{*} | \boldsymbol{\Lambda}) p(\boldsymbol{\Lambda}) d\boldsymbol{\Lambda} $$

予測分布を求めるのは避け、ベイズの定理を用いて

$$ p(\boldsymbol{\Lambda} | \mathbf{x}_{*}) = \frac{ p(\mathbf{x}_{*} | \boldsymbol{\Lambda}) p(\boldsymbol{\Lambda}) }{ p(\mathbf{x}_{*}) } $$

予測分布を求める。

 この式の両辺の対数をとり

$$ \ln p(\boldsymbol{\Lambda} | \mathbf{x}_{*}) = \ln p(\mathbf{x}_{*} | \boldsymbol{\Lambda}) + p(\boldsymbol{\Lambda}) - \ln p(\mathbf{x}_{*}) $$

予測分布に関して式を整理すると

$$ \ln p(\mathbf{x}_{*}) = \ln p(\mathbf{x}_{*} | \boldsymbol{\Lambda}) - \ln p(\boldsymbol{\Lambda} | \mathbf{x}_{*}) + \mathrm{const.} \tag{3.117} $$

となる。ただし、$\mathbf{x}_{*}$に影響しない$\ln p(\boldsymbol{\Lambda})$を$\mathrm{const.}$とおいた。
 この式から予測分布の具体的な式を計算する。

 $p(\boldsymbol{\Lambda} | \mathbf{x}_{*})$は、1つのデータ$\mathbf{x}_{*}$が与えられた下での$\boldsymbol{\Lambda}$の条件付き分布である。つまり$p(\boldsymbol{\Lambda} | \mathbf{x}_{*})$は、$N$個の観測データが与えられた下での事後分布$p(\boldsymbol{\Lambda} | \mathbf{X})$と同様の手順で求められる(同様のパラメータになる)。
 したがって、事後分布のパラメータ(3.116)を用いると、$p(\boldsymbol{\Lambda} | x_{*})$は$N = 1$より

$$ p(\mathbf{x}_{*} | \boldsymbol{\Lambda}) = \frac{1 + \nu - D - 1}{2} \ln |\boldsymbol{\Lambda}| - \frac{1}{2} \mathrm{Tr}(\tilde{\mathbf{W}}^{-1} \boldsymbol{\Lambda}) + \ln C_{\mathcal{W}}(1 + \nu, \tilde{\mathbf{W}}) = \mathcal{W}(\boldsymbol{\Lambda} | 1 + \nu, \tilde{\mathbf{W}}) \tag{3.118} $$

パラメータ$1 + \nu,\ \tilde{\mathbf{W}}$を持つウィシャート分布となる。ただし

$$ \tilde{\mathbf{W}}^{-1} = (\mathbf{x}_{*} - \mu) (\mathbf{x}_{*} - \mu)^{\top} + \mathbf{W}^{-1} \tag{3.119} $$

とおく。

 尤度(3.111)と式(3.118)を式(3.117)に代入して、$\mathbf{x}_{*}$に関して式を整理する。

$$ \begin{aligned} \ln p(\mathbf{x}_{*}) &= \ln \mathcal{N}(\mathbf{x}_{*} | \boldsymbol{\Lambda}) - \ln \mathcal{W}(\boldsymbol{\Lambda} | 1 + \nu, \tilde{\mathbf{W}}) + \mathrm{const.} \\ &= - \frac{1}{2} \Bigl\{ (\mathbf{x}_{*} - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} (\mathbf{x}_{*} - \boldsymbol{\mu}) + \ln |\boldsymbol{\Lambda}^{-1}| + D \ln 2 \pi \Bigr\} \\ &\qquad - \frac{1 + \nu - D - 1}{2} \ln |\boldsymbol{\Lambda}| + \frac{1}{2} \mathrm{Tr}(\tilde{\mathbf{W}}^{-1} \boldsymbol{\Lambda}) \\ &\qquad + \frac{1 + \nu}{2} \ln |\tilde{\mathbf{W}}| + \frac{(1 + \nu) D}{2} \ln 2 + \frac{D (D - 1)}{4} \ln \pi + \sum_{d=1}^D \ln \Gamma \Bigl(\frac{1 + \nu + 1 - d}{2} \Bigr) + \mathrm{const.} \\ &= - \frac{1}{2} (\mathbf{x}_{*} - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} (\mathbf{x}_{*} - \boldsymbol{\mu}) \\ &\qquad + \frac{1}{2} \mathrm{Tr} \Bigl( (\mathbf{x}_{*} - \mu) (\mathbf{x}_{*} - \mu)^{\top} \boldsymbol{\Lambda} + \mathbf{W}^{-1} \boldsymbol{\Lambda} \Bigr) \\ &\qquad + \frac{1 + \nu}{2} \ln \Bigl| \mathbf{W}^{-1} + (\mathbf{x}_{*} - \mu) (\mathbf{x}_{*} - \mu)^{\top} \Bigr|^{-1} + \mathrm{const.} \end{aligned} $$

適宜$\mathbf{x}_{*}$に影響しない項を$\mathrm{const.}$にまとめる。また2つ目から3つ目の式変形では、$|\tilde{\mathbf{W}}| = |\tilde{\mathbf{W}}^{-1}|^{-1}$として、$\tilde{\mathbf{W}}^{-1}$に式(3.119)を代入した。この式をさらに整理すると

$$ \begin{align} \ln p(\mathbf{x}_{*}) &= - \frac{1}{2} (\mathbf{x}_{*} - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} (\mathbf{x}_{*} - \boldsymbol{\mu}) \\ &\qquad + \frac{1}{2} \mathrm{Tr} \Bigl( (\mathbf{x}_{*} - \mu) (\mathbf{x}_{*} - \mu)^{\top} \boldsymbol{\Lambda} \Bigr) + \frac{1}{2} \mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda}) \\ &\qquad - \frac{1 + \nu}{2} \ln |\mathbf{W}^{-1}| \Bigl| \mathbf{I}_D + \mathbf{W} (\mathbf{x}_{*} - \mu) (\mathbf{x}_{*} - \mu)^{\top} \Bigr| + \mathrm{const.} \\ &= - \frac{1 + \nu}{2} \ln \Bigl| \mathbf{I}_1 + \{ \mathbf{W} (\mathbf{x}_{*} - \boldsymbol{\mu}) \}^{\top} (\mathbf{x}_{*} - \boldsymbol{\mu}) \Bigr| - \frac{1 + \nu}{2} \ln |\mathbf{W}^{-1}| + \mathrm{const.} \\ &= - \frac{1 + \nu}{2} \ln \Bigl\{ 1 + (\mathbf{x}_{*} - \boldsymbol{\mu})^{\top} \mathbf{W}^{\top} (\mathbf{x}_{*} - \boldsymbol{\mu}) \Bigr\} + \mathrm{const.} \\ &= - \frac{1 + \nu}{2} \ln \Bigl\{ 1 + (\mathbf{x}_{*} - \boldsymbol{\mu})^{\top} \mathbf{W} (\mathbf{x}_{*} - \boldsymbol{\mu}) \Bigr\} + \mathrm{const.} \tag{3.120} \end{align} $$

【途中式の途中式】

  1. トレースの項と行列式の項を分割する。
    • 2行目の項は、トレースの性質$\mathrm{Tr}(\mathbf{A}) + \mathrm{Tr}(\mathbf{B}) = \mathrm{Tr}(\mathbf{A} + \mathbf{B})$を用いる。
    • 3行目の項は、行列式の性質$|\mathbf{A} \mathbf{B}| = |\mathbf{A}| |\mathbf{B}|$と逆行列の性質$\mathbf{A} \mathbf{A}^{-1} = \mathbf{I}$を用いる。
  2. 式を整理する。
    • 事後分布の導出時の式(1)より、$(\mathbf{x}_n - \boldsymbol{\mu})^{\top} \boldsymbol{\Lambda} (\mathbf{x}_n - \boldsymbol{\mu}) = \mathrm{Tr} ((\mathbf{x}_n - \boldsymbol{\mu}) (\mathbf{x}_n - \boldsymbol{\mu})^{\top}\boldsymbol{\Lambda})$である。
    • $\mathbf{W} (\mathbf{x}_{*} - \boldsymbol{\mu})$を1つの行列とみると、$\mathbf{W} (\mathbf{x}_{*} - \mu) (\mathbf{x}_{*} - \mu)^{\top}$は$D \times 1$、$1 \times D$の行列の積である。そこで、行列式の性質$|\mathbf{I}_N + \mathbf{C}^{\top} \mathbf{D}| = |\mathbf{I}_M + \mathbf{C} \mathbf{D}^{\top}|$の変形を行う。
    • $a \ln x y = a (\ln x + \ln y) = a \ln x + a \ln y$の変形を行う。
  3. 行列式の中がスカラになるので、行列式の定義より$|a| = a$である。
  4. $(\mathbf{x}_{*} - \boldsymbol{\mu})^{\top} \mathbf{W}^{\top} (\mathbf{x}_{*} - \boldsymbol{\mu})$はスカラになるので転置できるため、$(\mathbf{A} \mathbf{B} \mathbf{C})^{\top} = \mathbf{C}^{\top} \mathbf{B}^{\top} \mathbf{A}^{\top}$の変形を行う。

となる。

 式(3.120)について

$$ \begin{aligned} \boldsymbol{\mu}_s &= \boldsymbol{\mu} \\ \boldsymbol{\Lambda}_s &= \nu_s \mathbf{W} \\ &= (1 - D + \nu) \mathbf{W} \\ \nu_s &= 1 - D + \nu \end{aligned} \tag{3.124} $$

とおき

$$ \ln \mathrm{St}(\mathbf{x} | \boldsymbol{\mu}_s, \boldsymbol{\Lambda}_s, \nu_s) = - \frac{\nu_s + D}{2} \ln \left\{ 1 + \frac{1}{\nu_s} (\mathbf{x}_{*} - \boldsymbol{\mu}_s)^{\top} \boldsymbol{\Lambda}_s (\mathbf{x}_{*} - \boldsymbol{\mu}_s) \right\} + \mathrm{const.} \tag{3.122} $$

さらに$\ln$を外し、$\mathrm{const.}$を正規化項に置き換える(正規化する)と

$$ p(\mathbf{x}_{*}) = \mathrm{St}(\mathbf{x}_{*} | \boldsymbol{\mu}_s, \boldsymbol{\Lambda}_s, \nu_s) \tag{3.123} $$

予測分布は式の形状から、パラメータ$\boldsymbol{\mu}_s,\ \boldsymbol{\Lambda}_s,\ \nu_s$を持つ多次元のスチューデントのt分布となることが分かる。
 また、式(3.124)が予測分布のパラメータ$\boldsymbol{\mu}_s,\ \boldsymbol{\Lambda}_s,\ \nu_s$の計算式(更新式)である。

 予測分布の計算に事前分布$p(\boldsymbol{\Lambda})$を用いることで、観測データによる学習を行っていない予測分布$p(\mathbf{x}_{*})$(のパラメータ$\boldsymbol{\mu}_s,\ \boldsymbol{\Lambda}_s,\ \nu_s$)を求めた。事後分布$p(\boldsymbol{\Lambda} | \mathbf{X})$を用いると、同様の手順で観測データ$\mathbf{X}$によって学習した予測分布$p(\mathbf{x}_{*} | \mathbf{X})$(のパラメータ$\boldsymbol{\mu}_s,\ \hat{\boldsymbol{\Lambda}}_s,\ \hat{\nu}_s$)を求められる。

 よって、$\boldsymbol{\Lambda}_s,\ \nu_s$を構成する事前分布のパラメータ$\nu,\ \mathbf{W}$を事後分布のパラメータ(3.116)に置き換えると

$$ \begin{aligned} \boldsymbol{\mu}_s &= \boldsymbol{\mu} \\ \hat{\boldsymbol{\Lambda}}_s &= (1 - D + \hat{\nu}) \hat{\mathbf{W}} \\ &= (1 - D + N + \nu) \left\{ \sum_{n=1}^N (\mathbf{x}_n - \mu) (\mathbf{x}_n - \mu)^{\top} + \mathbf{W}^{-1} \right\} \\ \hat{\nu}_s &= 1 - D + \hat{\nu} \\ &= 1 - D + N + \nu \end{aligned} $$

が得られる。したがって、予測分布はパラメータ$\boldsymbol{\mu}_s, \hat{\boldsymbol{\Lambda}}_s, \hat{\nu}_s$を持つ多次元のスチューデントのt分布となる。

$$ p(\mathbf{x}_{*}) = \mathrm{St}(\mathbf{x}_{*} | \boldsymbol{\mu}_s, \hat{\boldsymbol{\Lambda}}_s, \hat{\nu}_s) $$

 また、上の式が予測分布のパラメータの計算式 (更新式) である。

参考文献

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

おわりに

 やっぱり今はベイズ推論が楽しい!ところでスケール行列って何?

  • 2021/04/11:加筆修正しました。その際にRで実装編と記事を分割しました。


【次の節の内容】

www.anarchive-beta.com