からっぽのしょこ

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

3.4.0:多次元ガウスモデルの生成モデルの導出【緑ベイズ入門のノート】

はじめに

 『ベイズ推論による機械学習入門』(MLSシリーズ)の独学時のノートです。各種のモデルやアルゴリズムについて「数式・プログラム・図」を用いて解説します。
 本の補助として読んでください。

 この記事では、多次元ガウス分布に対するベイズ推論で登場する数式の行間を埋めます。

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

3.4.0 多次元ガウスモデルの生成モデルの導出

 多次元ガウスモデル(multivariate Gaussian model)の定義(仮定)を確認する。多次元ガウスモデルでは、生成分布を多次元ガウス分布(Gaussian distribution・多変量正規分布・multivariate Normal distribution)、事前分布を3つのパターンに応じて多次元ガウス分布、ウィシャート分布(Wishart distribution)、ガウス・ウィシャート分布(Gaussian-Wishart distribution)とする。
 多次元ガウス分布については「多次元ガウス分布の定義式 - からっぽのしょこ」、ウィシャート分布については「ウィシャート分布の定義式 - からっぽのしょこ」、ガウス・ウィシャート分布については「準備中」を参照のこと。

生成過程の設定

 まずは、多次元ガウスモデルの生成過程(generative process)を数式で確認する。

 観測データ数を  N、データ番号(インデックス)を  n \in \{1, 2, \dots, N\} とする。
 データの次元数を  D、次元番号を  d \in \{1, 2, \dots, D\} とする。

 各観測データ  \mathbf{x}_n は、 D 次元ベクトル(  D 個の要素で1つのデータ)

 \displaystyle
\mathbf{x}_n
    = \begin{bmatrix}
          x_{n,1} \\
          x_{n,2} \\
          \vdots \\
          x_{n,D}
      \end{bmatrix}

であり、各要素  x_{n,d} は、実数値をとる。

 \displaystyle
x_{n,d} \in \mathbb{R}

  N 個の観測データをまとめて、観測データ集合  \mathbf{X} として扱う。

 \displaystyle
\mathbf{X}
    = \{\mathbf{x}_1, \mathbf{x}_2, \cdots, \mathbf{x}_N\}

 または、観測データ  \mathbf{X} を、 N D 列の行列として扱う。

 \displaystyle
\mathbf{X}
    = \begin{bmatrix}
          \mathbf{x}_1^{\top} \\
          \mathbf{x}_2^{\top} \\
          \vdots \\
          \mathbf{x}_N^{\top}
      \end{bmatrix}
    = \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}

 各観測データ  \mathbf{x}_n は、パラメータ  \boldsymbol{\mu}, \boldsymbol{\Lambda} のガウス分布に従い独立に生成されるとする。

 \displaystyle
\begin{align}
p(\mathbf{x}_n \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
   &= \mathcal{N}(\mathbf{x}_n \mid \boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1})
\tag{3.96, 3.111}\\
   &= \sqrt{
          \frac{|\boldsymbol{\Lambda}|}{(2 \pi)^D}
      }
      \exp \Bigl(
          - \frac{1}{2}
            (\mathbf{x}_n - \boldsymbol{\mu})^{\top}
            \boldsymbol{\Lambda}
            (\mathbf{x}_n - \boldsymbol{\mu})
      \Bigr)
\\
\mathbf{x}_n
   &\sim
      \mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Lambda}^{-1})
\end{align}

  \boldsymbol{\mu}, \boldsymbol{\Lambda} を生成分布のパラメータと呼ぶ。データの生成分布を観測モデルや尤度関数とも呼ぶ。
  \boldsymbol{\mu} はガウス分布の平均パラメータ(  D 次元の平均ベクトル)、 \boldsymbol{\Lambda} = \boldsymbol{\Sigma}^{-1} は精度パラメータ(  D D 列の精度行列・分散共分散行列  \boldsymbol{\Sigma} の逆行列)

 \displaystyle
\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{\Lambda} は正定値行列であり、 \boldsymbol{\mu} の各要素  \mu_d は実数値、 \boldsymbol{\Lambda} の各対角要素  \lambda_{d,d} は正の実数値、非対角要素  \lambda_{i,j} は実数値を満たす必要がある。

 \displaystyle
\mu_d \in \mathbb{R}
,\ 
\lambda_{d,d} \in \mathbb{R}^{+}
,\ 
\lambda_{i,j} \in \mathbb{R}
    \quad (i \neq j)

  \boldsymbol{\Sigma} = \boldsymbol{\Lambda}^{-1} は共分散パラメータ(  D D 列の分散共分散行列)

 \displaystyle
\boldsymbol{\Sigma}
    = \begin{bmatrix}
          \sigma_{1,1} & \sigma_{1,2} & \cdots & \sigma_{1,D} \\
          \sigma_{2,1} & \sigma_{2,2} & \cdots & \sigma_{2,D} \\
          \vdots & \vdots & \ddots & \vdots \\
          \sigma_{D,1} & \sigma_{D,2} & \cdots & \sigma_{D,D}
      \end{bmatrix}
    = \begin{bmatrix}
          \sigma_1^2 & \sigma_{1,2} & \cdots & \sigma_{1,D} \\
          \sigma_{2,1} & \sigma_2^2 & \cdots & \sigma_{2,D} \\
          \vdots & \vdots & \ddots & \vdots \\
          \sigma_{D,1} & \sigma_{D,2} & \cdots & \sigma_D^2
      \end{bmatrix}

なので、 \boldsymbol{\Sigma} は正定値行列であり、各対角要素  \sigma_{d,d} = \sigma_d^2 は正の実数値、非対角要素  \sigma_{i,j} は実数値を満たす必要がある。

 \displaystyle
\sigma_d \in \mathbb{R}^{+}
,\ 
\sigma_d^2 \in \mathbb{R}^{+}
,\ 
\sigma_{i,j} \in \mathbb{R}
    \quad (i \neq j)

  \mu_d x_d (次元  d )の期待値、 \sigma_d^2 = \lambda_{d,d}^{-\frac{1}{2}} = \frac{1}{\sqrt{\lambda_{d,d}}} x_d の標準偏差、 \sigma_d^2 = \lambda_{d,d}^{-1} = \frac{1}{\lambda_{d,d}} x_d の分散、 \sigma_{i,d} x_i, x_j の共分散、 \lambda_{d,d} = \sigma_d^{-2} = \frac{1}{\sigma_d^2} x_d の精度を表す。
 正の実数値を  \sigma_d \gt 0 とも表記する。

 事前分布に関しては、3つのパターン(平均が未知・精度が未知・平均と精度が未知)に応じて設定する。

平均が未知の場合

 平均パラメータ  \boldsymbol{\mu} が未知の場合、 \boldsymbol{\mu} は、パラメータ  \mathbf{m}, \boldsymbol{\Lambda}_{\mu} のガウス分布に従い生成されるとする。

 \displaystyle
\begin{align}
p(\boldsymbol{\mu} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
   &= \mathcal{N}(\boldsymbol{\mu} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu}^{-1})
\tag{3.97}\\
   &= \sqrt{
          \frac{|\boldsymbol{\Lambda}_{\mu}|}{(2 \pi)^D}
      }
      \exp \Bigl(
          - \frac{1}{2}
            (\boldsymbol{\mu} - \mathbf{m})^{\top}
            \boldsymbol{\Lambda}_{\mu}
            (\boldsymbol{\mu} - \mathbf{m})
      \Bigr)
\\
\boldsymbol{\mu}
   &\sim
      \mathcal{N}(\mathbf{m}, \boldsymbol{\Lambda}_{\mu}^{-1})
\end{align}

  \mathbf{m}, \boldsymbol{\Lambda}_{\mu} を生成分布の超パラメータと呼ぶ。パラメータのパラメータを超パラメータ(ハイパーパラメータ)と言う。下付き文字の  \mu は、平均パラメータ  \boldsymbol{\mu} の為のパラメータであることを示しているだけで、数学的な意味はない。
  \mathbf{m} は平均パラメータ(  D 次元の平均ベクトル)、 \boldsymbol{\Lambda}_{\mu} は精度パラメータ(  D D 列の精度行列)

 \displaystyle
\mathbf{m}
    = \begin{bmatrix}
          m_1 \\
          m_2 \\
          \vdots \\
          m_D
      \end{bmatrix}
,\ 
\boldsymbol{\Lambda}_{\mu}
    = \begin{bmatrix}
          \lambda_{\mu,1,1} & \lambda_{\mu,1,2} & \cdots & \lambda_{\mu,1,D} \\
          \lambda_{\mu,2,1} & \lambda_{\mu,2,2} & \cdots & \lambda_{\mu,2,D} \\
          \vdots & \vdots & \ddots & \vdots \\
          \lambda_{\mu,D,1} & \lambda_{\mu,D,2} & \cdots & \lambda_{\mu,D,D}
      \end{bmatrix}

なので、 \boldsymbol{\Lambda}_{\mu} は正定値行列であり、 \mathbf{m} の各要素  m_d は実数値、 \boldsymbol{\Lambda}_{\mu} の各対角要素  \lambda_{\mu,d,d} は正の実数値、非対角要素  \lambda_{\mu,i,j} は実数値を満たす必要がある。

 \displaystyle
m_d \in \mathbb{R}
,\ 
\lambda_{\mu,d,d} \in \mathbb{R}^{+}
,\ 
\lambda_{\mu,i,j} \in \mathbb{R}
    \quad (i \neq j)

 ガウス分布の確率変数は、ガウス分布の平均パラメータの条件を満たす。

精度が未知の場合

 精度パラメータ  \boldsymbol{\Lambda} が未知の場合、 \boldsymbol{\Lambda} は、パラメータ  \nu, \mathbf{W} のウィシャート分布に従い生成されるとする。

 \displaystyle
\begin{align}
p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
   &= \mathcal{W}(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
\\
   &= \left(
          |\mathbf{W}|^{\frac{\nu}{2}}
          2^{\frac{\nu D}{2}}
          \pi^{\frac{D (D-1)}{4}}
          \prod_{d=1}^D
              \Gamma \Bigl(
                  \frac{\nu + 1-d}{2}
              \Bigr)
      \right)^{-1}
      |\boldsymbol{\Lambda}|^{\frac{\nu - D-1}{2}}
      \exp \Bigl(
          - \frac{1}{2}
            \mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda})
      \Bigr)
\\
\boldsymbol{\Lambda}
   &\sim
      \mathcal{W}(\nu, \mathbf{W})
\end{align}

  \nu は自由度パラメータ、 \mathbf{W} は尺度パラメータ(  D D 列のスケール行列)

 \displaystyle
\mathbf{W}
    = \begin{bmatrix}
          w_{1,1} & w_{1,2} & \cdots & w_{1,D} \\
          w_{2,1} & w_{2,2} & \cdots & w_{2,D} \\
          \vdots & \vdots & \ddots & \vdots \\
          w_{D,1} & w_{D,2} & \cdots & w_{D,D}
      \end{bmatrix}

なので、 \nu D-1 より大きい実数値、 \mathbf{W} は正定値行列を満たす必要がある。

 \displaystyle
\nu \gt D - 1

 ウィシャート分布の確率変数は、ガウス分布の精度パラメータの条件を満たす。

平均・精度が未知の場合

 平均パラメータ  \boldsymbol{\mu} と精度パラメータ  \boldsymbol{\Lambda} が未知の場合、 \boldsymbol{\mu}, \boldsymbol{\Lambda} は、パラメータ  \mathbf{m}, \beta, \nu, \mathbf{W} のガウス・ウィシャート分布に従い生成されるとする。

 \displaystyle
\begin{align}
p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \beta, \nu, \mathbf{W})
   &= \mathrm{NW}(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \beta, \nu, \mathbf{W})
\\
   &= \mathcal{N}(\boldsymbol{\mu} \mid \mathbf{m}, (\beta \boldsymbol{\Lambda})^{-1})
      \mathcal{W}(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
\tag{3.125}\\
   &= \sqrt{
          \frac{|\beta \boldsymbol{\Lambda}|}{(2 \pi)^D}
      }
      \exp \Bigl(
          - \frac{1}{2}
            (\boldsymbol{\mu} - \mathbf{m})^{\top}
            \beta \boldsymbol{\Lambda}
            (\boldsymbol{\mu} - \mathbf{m})
      \Bigr)
\\
   &\quad * 
      \left(
          |\mathbf{W}|^{\frac{\nu}{2}}
          2^{\frac{\nu D}{2}}
          \pi^{\frac{D (D-1)}{4}}
          \prod_{d=1}^D
              \Gamma \Bigl(
                  \frac{\nu + 1-d}{2}
              \Bigr)
      \right)^{-1}
      |\boldsymbol{\Lambda}|^{\frac{\nu - D-1}{2}}
      \exp \Bigl(
          - \frac{1}{2}
            \mathrm{Tr}(\mathbf{W}^{-1} \boldsymbol{\Lambda})
      \Bigr)
\\
\boldsymbol{\mu}
   &\sim
      \mathcal{N}(\mathbf{m}, (\beta \boldsymbol{\Lambda})^{-1})
\\
\boldsymbol{\Lambda}
   &\sim
      \mathcal{W}(\nu, \mathbf{W})
\end{align}

  \mathbf{m} は平均パラメータ(  D 次元の平均ベクトル)、 \beta は係数として用いて  \boldsymbol{\Lambda}_{\mu} = \beta \boldsymbol{\Lambda} を精度パラメータ(  D D 列の精度行列)

 \displaystyle
\mathbf{m}
    = \begin{bmatrix}
          m_1 \\
          m_2 \\
          \vdots \\
          m_D
      \end{bmatrix}
,\ 
\beta \boldsymbol{\Lambda}
    = \begin{bmatrix}
          \beta \lambda_{1,1} & \beta \lambda_{1,2} & \cdots & \beta \lambda_{1,D} \\
          \beta \lambda_{2,1} & \beta \lambda_{2,2} & \cdots & \beta \lambda_{2,D} \\
          \vdots & \vdots & \ddots & \vdots \\
          \beta \lambda_{D,1} & \beta \lambda_{D,2} & \cdots & \beta \lambda_{D,D}
      \end{bmatrix}

とするので、 m_d は実数値、 \beta は正の実数値を満たす必要がある。

 \displaystyle
m_d \in \mathbb{R}
,\ 
\beta \gt 0

  \nu は自由度パラメータ、 \mathbf{W} は尺度パラメータ(  D D 列のスケール行列)

 \displaystyle
\mathbf{W}
    = \begin{bmatrix}
          w_{1,1} & w_{1,2} & \cdots & w_{1,D} \\
          w_{2,1} & w_{2,2} & \cdots & w_{2,D} \\
          \vdots & \vdots & \ddots & \vdots \\
          w_{D,1} & w_{D,2} & \cdots & w_{D,D}
      \end{bmatrix}

なので、 \nu D-1 より大きい実数値、 \mathbf{W} は正定値行列を満たす必要がある。

 \displaystyle
\nu \gt D - 1

 ガウス・ウィシャート分布の確率変数は、ガウス分布の平均パラメータと精度パラメータの条件を満たす。

 以上で、ガウスモデルの生成過程(定義・仮定)を確認した。生成過程は、変数やパラメータ間の依存関係であり、生成モデルや推論アルゴリズムの導出でも用いる。

尤度関数の確認

 次は、多次元ガウスモデルの尤度関数(likelihood function)を数式で確認する。パラメータが与えられたときのデータの生成確率(観測された全ての変数の同時確率)を尤度と呼ぶ。

 パラメータ  \boldsymbol{\mu}, \boldsymbol{\Lambda} が与えられた(条件とする)下での観測データ  \mathbf{X} の生成確率は、生成過程(依存関係)に従い次のように変形できる。

 \displaystyle
\begin{aligned}
p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
   &= p(\mathbf{x}_1, \mathbf{x}_2, \cdots, \mathbf{x}_N \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
\\
   &= p(\mathbf{x}_1 \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      p(\mathbf{x}_2 \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      \cdots
      p(\mathbf{x}_N \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
\\
   &= \prod_{n=1}^N
          p(\mathbf{x}_n \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
\end{aligned}

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


  •  N 個のデータは独立に生成されることから、観測データ集合  \mathbf{X} の生成確率は、各データ  \mathbf{x}_n の生成確率の積に分解できる。

 生成分布(3.96)を用いた式が得られた。

生成モデルの導出

 続いて、多次元ガウスモデルの生成モデル(generative model)を数式で確認する。観測・潜在変数やパラメータを全て確率変数とみなした結合分布(同時分布)を生成モデルと呼ぶ。

平均が未知の場合

 平均パラメータ  \boldsymbol{\mu} が未知の場合、観測変数  \mathbf{X}、パラメータ  \boldsymbol{\mu}, \boldsymbol{\Lambda}、超パラメータ  \mathbf{m}, \boldsymbol{\Lambda}_{\mu} をそれぞれ確率変数とする結合分布は、生成過程(依存関係)に従い次のように分解できる。

 \displaystyle
\begin{align}
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      p(\boldsymbol{\mu} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\boldsymbol{\Lambda})
      p(\mathbf{m})
      p(\boldsymbol{\Lambda}_{\mu})
\\
   &= \left\{ \prod_{n=1}^N
          p(\mathbf{x}_n \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      \right\}
      p(\boldsymbol{\mu} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\boldsymbol{\Lambda})
      p(\mathbf{m})
      p(\boldsymbol{\Lambda}_{\mu})
\tag{1}
\end{align}

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


 依存関係のない場合は独立性  p(x, y) = p(x) p(y)、依存関係のある場合は乗法定理  p(x, y) = p(x \mid y) p(y) により、式を変形していく。

  • 1: 変数やパラメータごとの項に分割する。

 依存関係のある変数、パラメータ、超パラメータの項を分割する。

 \displaystyle
\begin{aligned}
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
   &= p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\mathbf{m}, \boldsymbol{\Lambda}_{\mu})
\\
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda}, \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\mathbf{m}, \boldsymbol{\Lambda}_{\mu})
\\
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\mathbf{m}, \boldsymbol{\Lambda}_{\mu})
\end{aligned}

  \mathbf{X} \mathbf{m}, \boldsymbol{\Lambda}_{\mu} は無関係なので条件から省ける。
 さらに2つ目の項の、独立なパラメータ  \boldsymbol{\mu}, \boldsymbol{\Lambda} の項を分割する。

 \displaystyle
\begin{aligned}
p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
   &= p(\boldsymbol{\mu} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\boldsymbol{\Lambda} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
\\
   &= p(\boldsymbol{\mu} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\boldsymbol{\Lambda})
\end{aligned}

  \boldsymbol{\Lambda} \mathbf{m}, \boldsymbol{\Lambda}_{\mu} は無関係なので条件から省ける。
 3つ目の項の、独立な超パラメータ  \mathbf{m}, \boldsymbol{\Lambda}_{\mu} の項を分割する。

 \displaystyle
p(\mathbf{m}, \boldsymbol{\Lambda}_{\mu})
    = p(\mathbf{m})
      p(\boldsymbol{\Lambda}_{\mu})
  • 2: 全データに関する  \mathbf{X} の項を、各データに関する  \mathbf{x}_n の項の積に分解する。

 1データレベルに項を分解した。

精度が未知の場合

 精度パラメータ  \boldsymbol{\Lambda} が未知の場合、観測変数  \mathbf{X}、パラメータ  \boldsymbol{\mu}, \boldsymbol{\Lambda}、超パラメータ  \nu, \mathbf{W} をそれぞれ確率変数とする結合分布は、生成過程(依存関係)に従い次のように分解できる。

 \displaystyle
\begin{align}
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \nu, \mathbf{W})
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      p(\boldsymbol{\mu})
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\nu)
      p(\mathbf{W})
\\
   &= \left\{ \prod_{n=1}^N
          p(\mathbf{x}_n \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      \right\}
      p(\boldsymbol{\mu})
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\nu)
      p(\mathbf{W})
\tag{2}
\end{align}

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


  • 1: 変数やパラメータごとの項に分割する。

 依存関係のある変数、パラメータ、超パラメータの項を分割する。

 \displaystyle
\begin{aligned}
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \nu, \mathbf{W})
   &= p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\nu, \mathbf{W})
\\
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda}, \nu, \mathbf{W})
      p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\nu, \mathbf{W})
\\
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\nu, \mathbf{W})
\end{aligned}

  \mathbf{X} \nu, \mathbf{W} は無関係なので条件から省ける。
 さらに2つ目の項の、独立なパラメータ  \boldsymbol{\mu}, \boldsymbol{\Lambda} の項を分割する。

 \displaystyle
\begin{aligned}
p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \nu, \mathbf{W})
   &= p(\boldsymbol{\mu} \mid \nu, \mathbf{W})
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
\\
   &= p(\boldsymbol{\mu})
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
\end{aligned}

  \boldsymbol{\mu} \nu, \mathbf{W} は無関係なので条件から省ける。
 3つ目の項の、独立な超パラメータ  \nu, \mathbf{W} の項を分割する。

 \displaystyle
p(\nu, \mathbf{W})
    = p(\nu)
      p(\mathbf{W})
  • 2: 全データに関する  \mathbf{X} の項を、各データに関する  \mathbf{x}_n の項の積に分解する。

 1データレベルに項を分解した。

平均・精度が未知の場合

 平均パラメータ  \boldsymbol{\mu} と精度パラメータ  \boldsymbol{\Lambda} が未知の場合、観測変数  \mathbf{X}、パラメータ  \boldsymbol{\mu}, \boldsymbol{\Lambda}、超パラメータ  \mathbf{m}, \beta, \nu, \mathbf{W} をそれぞれ確率変数とする結合分布は、生成過程(依存関係)に従い次のように分解できる。

 \displaystyle
\begin{align}
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \mathbf{m}, \beta, \nu, \mathbf{W})
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      p(\boldsymbol{\mu} \mid \boldsymbol{\Lambda}, \mathbf{m}, \beta)
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\mathbf{m})
      p(\beta)
      p(\nu)
      p(\mathbf{W})
\\
   &= \left\{ \prod_{n=1}^N
          p(\mathbf{x}_n \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      \right\}
      p(\boldsymbol{\mu} \mid \boldsymbol{\Lambda}, \mathbf{m}, \beta)
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\mathbf{m})
      p(\beta)
      p(\nu)
      p(\mathbf{W})
\tag{3}
\end{align}

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


  • 1: 変数やパラメータごとの項に分割する。

 依存関係のある変数、パラメータ、超パラメータの項を分割する。

 \displaystyle
\begin{aligned}
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \mathbf{m}, \beta, \nu, \mathbf{W})
   &= p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \beta, \nu, \mathbf{W})
      p(\mathbf{m}, \beta, \nu, \mathbf{W})
\\
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda}, \mathbf{m}, \beta, \nu, \mathbf{W})
      p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \beta, \nu, \mathbf{W})
      p(\mathbf{m}, \beta, \nu, \mathbf{W})
\\
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \beta, \nu, \mathbf{W})
      p(\mathbf{m}, \beta, \nu, \mathbf{W})
\end{aligned}

  \mathbf{X} \mathbf{m}, \beta, \nu, \mathbf{W} は無関係なので条件から省ける。
 さらに2つ目の項の、依存関係のあるパラメータ  \boldsymbol{\mu}, \boldsymbol{\Lambda} の項を分割する。

 \displaystyle
\begin{aligned}
p(\boldsymbol{\mu}, \boldsymbol{\Lambda} \mid \mathbf{m}, \beta, \nu, \mathbf{W})
   &= p(\boldsymbol{\mu} \mid \mathbf{m}, \beta, \nu, \mathbf{W})
      p(\boldsymbol{\Lambda} \mid \mathbf{m}, \beta, \nu, \mathbf{W})
\\
   &= p(\boldsymbol{\mu} \mid \mathbf{m}, \beta)
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
\end{aligned}

  \boldsymbol{\mu} \nu, \mathbf{W} \boldsymbol{\Lambda} \mathbf{m}, \beta はそれぞれ無関係なので条件から省ける。
 3つ目の項の、独立な超パラメータ  \mathbf{m}, \beta, \nu, \mathbf{W} の項を分割する。

 \displaystyle
p(\mathbf{m}, \beta, \nu, \mathbf{W})
    = p(\mathbf{m})
      p(\beta)
      p(\nu)
      p(\mathbf{W})
  • 2: 全データに関する  \mathbf{X} の項を、各データに関する  \mathbf{x}_n の項の積に分解する。

 1データレベルに項を分解した。

 それぞれの式自体が変数やパラメータ間の依存関係を表している。

グラフィカルモデルの確認

 最後は、多次元ガウスモデルの生成モデルをグラフィカルモデル表現(graphical model representation)で確認する。グラフィカルモデルについては1.5節を参照のこと。

平均が未知の場合

 平均パラメータ  \boldsymbol{\mu} が未知で精度パラメータ  \boldsymbol{\Lambda} が既知の場合、多次元ガウスモデルの生成モデルは、次の式に分解できた。

 \displaystyle
\begin{align}
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      p(\boldsymbol{\mu} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\mathbf{m})
      p(\boldsymbol{\Lambda}_{\mu})
      p(\boldsymbol{\Lambda})
\\
   &= \left\{ \prod_{n=1}^N
          p(\mathbf{x}_n \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      \right\}
      p(\boldsymbol{\mu} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu})
      p(\mathbf{m})
      p(\boldsymbol{\Lambda}_{\mu})
      p(\boldsymbol{\Lambda})
\tag{1}
\end{align}

 この式をグラフィカルモデルにすると、次の図になる。

多次元ガウスモデルのグラフィカルモデル:平均が未知の場合

 「  \mathbf{m} \to \boldsymbol{\mu} 」と「  \boldsymbol{\Lambda}_{\mu} \to \boldsymbol{\mu} 」が、生成分布の平均パラメータの事前分布  p(\boldsymbol{\mu} \mid \mathbf{m}, \boldsymbol{\Lambda}_{\mu}) に対応し、事前分布(のパラメータ)に従ってパラメータ  \boldsymbol{\mu} が生成されることを示している。
 「  \boldsymbol{\mu} \to \mathbf{x}_n 」と「  \boldsymbol{\Lambda} \to \mathbf{x}_n 」が、生成分布(のパラメータ)に従って各データ  \mathbf{x}_n が生成されることを示している。

 「  N 」のプレートが、 \prod_{n=1}^N に対応し、 N 個の観測データ  \mathbf{x}_n が繰り返し生成されることを示している。
 「  \boldsymbol{\Lambda} 」のノードの塗りつぶしが、精度パラメータが既知であることを示している。

精度が未知の場合

 平均パラメータ  \boldsymbol{\mu} が既知で精度パラメータ  \boldsymbol{\Lambda} が未知の場合、モデルの生成モデルは、次の式に分解できた。

 \displaystyle
\begin{align}
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \nu, \mathbf{W})
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      p(\boldsymbol{\mu})
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\nu)
      p(\mathbf{W})
\\
   &= \left\{ \prod_{n=1}^N
          p(\mathbf{x}_n \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      \right\}
      p(\boldsymbol{\mu})
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\nu)
      p(\mathbf{W})
\tag{2}
\end{align}

 この式をグラフィカルモデルにすると、次の図になる。

多次元ガウスモデルのグラフィカルモデル:精度が未知の場合

 「  \nu \to \boldsymbol{\Lambda} 」と「  \mathbf{W} \to \boldsymbol{\Lambda} 」が、生成分布の精度パラメータの事前分布  p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W}) に対応し、事前分布(のパラメータ)に従ってパラメータ  \boldsymbol{\Lambda} が生成されることを示している。

 「  \boldsymbol{\mu} 」のノードの塗りつぶしが、平均パラメータが既知であることを示している。

平均・精度が未知の場合

 平均パラメータ  \boldsymbol{\mu} と精度パラメータ  \boldsymbol{\Lambda} が未知の場合、モデルの生成モデルは、次の式に分解できた。

 \displaystyle
\begin{align}
p(\mathbf{X}, \boldsymbol{\mu}, \boldsymbol{\Lambda}, \mathbf{m}, \beta, \nu, \mathbf{W})
   &= p(\mathbf{X} \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
\\
   &\quad * 
      p(\boldsymbol{\mu} \mid \boldsymbol{\Lambda}, \mathbf{m}, \beta)
      p(\mathbf{m})
      p(\beta)
\\
   &\quad * 
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\nu)
      p(\mathbf{W})
\\
   &= \left\{ \prod_{n=1}^N
          p(\mathbf{x}_n \mid \boldsymbol{\mu}, \boldsymbol{\Lambda})
      \right\}
\\
   &\quad * 
      p(\boldsymbol{\mu} \mid \boldsymbol{\Lambda}, \mathbf{m}, \beta)
      p(\mathbf{m})
      p(\beta)
\\
   &\quad * 
      p(\boldsymbol{\Lambda} \mid \nu, \mathbf{W})
      p(\nu)
      p(\mathbf{W})
\tag{3}
\end{align}

 この式をグラフィカルモデルにすると、次の図になる。

多次元ガウスモデルのグラフィカルモデル:平均・精度が未知の場合

 「  \mathbf{m} \to \boldsymbol{\mu} 」と「  \beta \to \boldsymbol{\mu} 」に加えて「  \boldsymbol{\Lambda} \to \boldsymbol{\mu} 」が、生成分布の平均パラメータの事前分布  p(\boldsymbol{\mu} \mid \boldsymbol{\Lambda}, \mathbf{m}, \beta) に対応し、平均パラメータの事前分布(のパラメータ)と精度パラメータに従ってパラメータ  \boldsymbol{\mu} が生成されることを示している。

 この記事では、多次元ガウスモデルで用いる記号や定義を確認した。次の記事では、多次元ガウスモデルに対するベイズ推論を導出する。

参考文献

おわりに

 この記事の投稿日は、このブログの開設7周年の日でした。何かしら記事を投稿しようと思うも作業中のものがなかったので、急遽書いたのがこの記事です。
 今日から8年目に突入です。さすがに褒めてほしいです。ついでに広めてほしいです(自分ではできないので)。あとそろそろいいかげんに収益化したいです(でも面倒臭い)、、万年赤字なんですこのブログ。。。
 これからもよろしくお願いします。

 そして!12月1日は、Juice=Juiceの元メンバーの宮本佳林さんのお誕生日です。先ほど公開されたライブ映像をどうぞ♪

 おめでとうございます!ソロでも精力的に活動を続けてくれてありがとうございます。
 この方の誕生日に合わせてこのブログを開設しました。そういう縁なので、皆さん1曲聴いていってください。

 ちなみに、勉強のやる気はあるのですが、ブログ周りのアレコレの作業のやる気が不足しております。地道に頑張ります。

【次節の内容】

  • 数式読解編

 ガウスモデルに対するベイズ推論を数式で確認します。

www.anarchive-beta.com


  • スクラッチ実装編

 ガウスモデルの生成モデルをプログラムで確認します。

www.anarchive-beta.com

(Python版は準備中です)

 本や記事の表記などとは対応していませんが、必要な内容は概ね上の記事で書いているので、参考にしてください。