からっぽのしょこ

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

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

はじめに

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

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

【前節の内容】

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

3.3.0 1次元ガウスモデルの生成モデルの導出

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

生成過程の設定

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

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

 各観測データ  x_n は、実数値をとる。

 \displaystyle
x_n \in \mathbb{R}

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

 \displaystyle
\mathbf{X}
    = \{x_1, x_2, \cdots, x_N\}

 各観測データ  x_n は、パラメータ  \mu, \lambda のガウス分布に従い独立に生成されるとする。

 \displaystyle
\begin{align}
p(x_n \mid \mu, \lambda)
   &= \mathcal{N}(x_n \mid \mu, \lambda^{-1})
\tag{3.47, 3.64, 3.80}\\
   &= \sqrt{
          \frac{\lambda}{2 \pi}
      }
      \exp \Bigl(
          - \frac{\lambda}{2}
            (x_n - \mu)^2
      \Bigr)
\\
x_n
   &\sim
      \mathcal{N}(\mu, \lambda^{-1})
\end{align}

  \mu, \lambda を生成分布のパラメータと呼ぶ。データの生成分布を観測モデルや尤度関数とも呼ぶ。
  \mu は平均パラメータ、 \lambda = \sigma^{-2} = \frac{1}{\sigma^2} は精度パラメータなので、 \mu は実数値、 \lambda は正の実数値を満たす必要がある。

 \displaystyle
\mu \in \mathbb{R}
,\ 
\lambda \in \mathbb{R}^{+}

  \sigma = \lambda^{-\frac{1}{2}} = \frac{1}{\sqrt{\lambda}} は標準偏差パラメータ、 \sigma^2 = \lambda^{-1} = \frac{1}{\lambda} は分散パラメータなので、それぞれ正の実数値を満たす必要がある。

 \displaystyle
\sigma \in \mathbb{R}^{+}
,\ 
\sigma^2 \in \mathbb{R}^{+}

 正の実数値を  \sigma \gt 0 とも表記する。

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

平均が未知の場合

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

 \displaystyle
\begin{align}
p(\mu \mid m, \lambda_{\mu})
   &= \mathcal{N}(\mu \mid m, \lambda_{\mu})
\tag{3.48}\\
   &= \sqrt{
          \frac{\lambda_{\mu}}{2 \pi}
      }
      \exp \Bigl(
          - \frac{\lambda_{\mu}}{2}
            (\mu - m)^2
      \Bigr)
\\
\mu
   &\sim
      \mathcal{N}(m, \lambda_{\mu})
\end{align}

  m, \lambda_{\mu} を生成分布の超パラメータと呼ぶ。パラメータのパラメータを超パラメータ(ハイパーパラメータ)と言う。下付き文字の  \mu は、平均パラメータ  \mu の為のパラメータであることを示しているだけで、数学的な意味はない。
  m は平均パラメータ、 \lambda_{\mu} は精度パラメータ(分散パラメータ  \sigma^2 の逆数)なので、 m は実数値、 \lambda_{\mu} は正の実数値を満たす必要がある。

 \displaystyle
m \in \mathbb{R}
,\ 
\lambda_{\mu} \gt 0

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

精度が未知の場合

 精度パラメータ  \lambda が未知の場合、 \lambda は、パラメータ  a, b のガンマ分布に従い生成されるとする。

 \displaystyle
\begin{align}
p(\lambda \mid a, b)
   &= \mathrm{Gamma}(\lambda \mid a, b)
\tag{3.65}\\
   &= \frac{b^a}{\Gamma(a)}
      \lambda^{a-1}
      \exp(- b \lambda)
\\
\lambda
   &\sim
      \mathrm{Gamma}(a, b)
\end{align}

  a は形状パラメータ、 b は尺度パラメータなので、それぞれ正の値を満たす必要がある。

 \displaystyle
a \gt 0
,\ 
b \gt 0

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

平均・精度が未知の場合

 平均パラメータ  \mu と精度パラメータ  \lambda が未知の場合、 \mu, \lambda は、パラメータ  m, \beta, a, b のガウス・ガンマ分布に従い生成されるとする。

 \displaystyle
\begin{align}
p(\mu, \lambda \mid m, \beta, a, b)
   &= \mathrm{NG}(\mu, \lambda \mid m, \beta, a, b)
\\
   &= \mathcal{N}(\mu \mid m, (\beta \lambda)^{-1})
      \mathrm{Gamma}(\lambda \mid a, b)
\tag{3.81}\\
   &= \sqrt{\frac{\beta \lambda}{2 \pi}}
      \exp \Bigl(
          - \frac{\beta \lambda}{2}
            (\mu - m)^2
      \Bigr)
      \frac{b^a}{\Gamma(a)}
      \lambda^{a-1}
      \exp(- b \lambda)
\\
\mu
   &\sim
      \mathcal{N}(m, (\beta \lambda)^{-1})
\\
\lambda
   &\sim
      \mathrm{Gamma}(a, b)
\end{align}

  m はガウス分布の平均パラメータ、 \beta は係数として用いて  \lambda_{\mu} = \beta \lambda を精度パラメータとするので、 m は実数値、 \beta は正の実数値を満たす必要がある。

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

  a はガンマ分布の形状パラメータ、 b は尺度パラメータなので、それぞれ正の値を満たす必要がある。

 \displaystyle
a \gt 0
,\ 
b \gt 0

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

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

スポンサードリンク

尤度関数の導出

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

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

 \displaystyle
\begin{aligned}
p(\mathbf{X} \mid \mu, \lambda)
   &= p(x_1, x_2, \cdots, x_N \mid \mu, \lambda)
\\
   &= p(x_1 \mid \mu, \lambda)
      p(x_2 \mid \mu, \lambda)
      \cdots
      p(x_N \mid \mu, \lambda)
\\
   &= \prod_{n=1}^N
          p(x_n \mid \mu, \lambda)
\end{aligned}

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


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

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

生成モデルの導出

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

平均が未知の場合

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

 \displaystyle
\begin{align}
p(\mathbf{X}, \mu, \lambda, m, \lambda_{\mu})
   &= p(\mathbf{X} \mid \mu, \lambda)
      p(\mu \mid m, \lambda_{\mu})
      p(\lambda)
      p(m)
      p(\lambda_{\mu})
\\
   &= \left\{ \prod_{n=1}^N
          p(x_n \mid \mu, \lambda)
      \right\}
      p(\lambda)
      p(\mu \mid m, \lambda_{\mu})
      p(m)
      p(\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}, \mu, \lambda, m, \lambda_{\mu})
   &= p(\mathbf{X}, \mu, \lambda \mid m, \lambda_{\mu})
      p(m, \lambda_{\mu})
\\
   &= p(\mathbf{X} \mid \mu, \lambda, m, \lambda_{\mu})
      p(\mu, \lambda \mid m, \lambda_{\mu})
      p(m, \lambda_{\mu})
\\
   &= p(\mathbf{X} \mid \mu, \lambda)
      p(\mu, \lambda \mid m, \lambda_{\mu})
      p(m, \lambda_{\mu})
\end{aligned}

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

 \displaystyle
\begin{aligned}
p(\mu, \lambda \mid m, \lambda_{\mu})
   &= p(\mu \mid m, \lambda_{\mu})
      p(\lambda \mid m, \lambda_{\mu})
\\
   &= p(\mu \mid m, \lambda_{\mu})
      p(\lambda)
\end{aligned}

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

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

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

精度が未知の場合

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

 \displaystyle
\begin{align}
p(\mathbf{X}, \mu, \lambda, a, b)
   &= p(\mathbf{X} \mid \mu, \lambda)
      p(\mu)
      p(\lambda \mid a, b)
      p(a)
      p(b)
\\
   &= \left\{ \prod_{n=1}^N
          p(x_n \mid \mu, \lambda)
      \right\}
      p(\mu)
      p(\lambda \mid a, b)
      p(a)
      p(b)
\tag{2}
\end{align}

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


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

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

 \displaystyle
\begin{aligned}
p(\mathbf{X}, \mu, \lambda, a, b)
   &= p(\mathbf{X}, \mu, \lambda \mid a, b)
      p(a, b)
\\
   &= p(\mathbf{X} \mid \mu, \lambda, a, b)
      p(\mu, \lambda \mid a, b)
      p(a, b)
\\
   &= p(\mathbf{X} \mid \mu, \lambda)
      p(\mu, \lambda \mid a, b)
      p(a, b)
\end{aligned}

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

 \displaystyle
\begin{aligned}
p(\mu, \lambda \mid a, b)
   &= p(\mu \mid a, b)
      p(\lambda \mid a, b)
\\
   &= p(\mu)
      p(\lambda \mid a, b)
\end{aligned}

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

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

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

平均・精度が未知の場合

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

 \displaystyle
\begin{align}
p(\mathbf{X}, \mu, \lambda, m, \beta, a, b)
   &= p(\mathbf{X} \mid \mu, \lambda)
      p(\mu \mid \lambda, m, \beta)
      p(\lambda \mid a, b)
      p(m)
      p(\beta)
      p(a)
      p(b)
\\
   &= \left\{ \prod_{n=1}^N
          p(x_n \mid \mu, \lambda)
      \right\}
      p(\mu \mid \lambda, m, \beta)
      p(\lambda \mid a, b)
      p(m)
      p(\beta)
      p(a)
      p(b)
\tag{3}
\end{align}

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


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

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

 \displaystyle
\begin{aligned}
p(\mathbf{X}, \mu, \lambda, m, \beta, a, b)
   &= p(\mathbf{X}, \mu, \lambda \mid m, \beta, a, b)
      p(m, \beta, a, b)
\\
   &= p(\mathbf{X} \mid \mu, \lambda, m, \beta, a, b)
      p(\mu, \lambda \mid m, \beta, a, b)
      p(m, \beta, a, b)
\\
   &= p(\mathbf{X} \mid \mu, \lambda)
      p(\mu, \lambda \mid m, \beta, a, b)
      p(m, \beta, a, b)
\end{aligned}

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

 \displaystyle
\begin{aligned}
p(\mu, \lambda \mid m, \beta, a, b)
   &= p(\mu \mid \lambda, m, \beta, a, b)
      p(\lambda \mid m, \beta, a, b)
\\
   &= p(\mu \mid \lambda, m, \beta)
      p(\lambda \mid a, b)
\end{aligned}

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

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

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

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

スポンサードリンク

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

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

平均が未知の場合

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

 \displaystyle
\begin{align}
p(\mathbf{X}, \mu, \lambda, m, \lambda_{\mu})
   &= p(\mathbf{X} \mid \mu, \lambda)
      p(\mu \mid m, \lambda_{\mu})
      p(m)
      p(\lambda_{\mu})
      p(\lambda)
\\
   &= \left\{ \prod_{n=1}^N
          p(x_n \mid \mu, \lambda)
      \right\}
      p(\mu \mid m, \lambda_{\mu})
      p(m)
      p(\lambda_{\mu})
      p(\lambda)
\tag{1}
\end{align}

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

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

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

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

精度が未知の場合

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

 \displaystyle
\begin{align}
p(\mathbf{X}, \mu, \lambda, a, b)
   &= p(\mathbf{X} \mid \mu, \lambda)
      p(\mu)
      p(\lambda \mid a, b)
      p(a)
      p(b)
\\
   &= \left\{ \prod_{n=1}^N
          p(x_n \mid \mu, \lambda)
      \right\}
      p(\mu)
      p(\lambda \mid a, b)
      p(a)
      p(b)
\tag{2}
\end{align}

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

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

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

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

平均・精度が未知の場合

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

 \displaystyle
\begin{align}
p(\mathbf{X}, \mu, \lambda, m, \beta, a, b)
   &= p(\mathbf{X} \mid \mu, \lambda)
\\
   &\quad * 
      p(\mu \mid \lambda, m, \beta)
      p(m)
      p(\beta)
\\
   &\quad * 
      p(\lambda \mid a, b)
      p(a)
      p(b)
\\
   &= \left\{ \prod_{n=1}^N
          p(x_n \mid \mu, \lambda)
      \right\}
\\
   &\quad * 
      p(\mu \mid \lambda, m, \beta)
      p(m)
      p(\beta)
\\
   &\quad * 
      p(\lambda \mid a, b)
      p(a)
      p(b)
\tag{3}
\end{align}

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

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

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

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

参考文献

おわりに

 更新順はちぐはぐですが手元の修正作業では一応進んでいます。
 このモデルのように複数のパターンがあるときに、1つの記事にまとめるのと個別の記事に分けるのと、どちらの方が分かりやすくなるのかいつも悩みます。今回はまとめることにしましたが、別の機会には分けたくなるかもしれません。
 本やこれまでの書き方(前回の更新)から変えて今回の加筆修正では、分布の条件部分にハイパラ類を明示的に書くようにしました。(個々の式展開は判別しにくくなったかと思いますが、)別パターンとの比較がしやすくなったかと思います。ということで、この記事内でも話が行ったり来たりしますが、3パターンを一覧的に並べることにしました。

 このブログでは、書けるものは(愚直に丁寧に)書いておいた方が分かった気にならない理解の助けになる、という方針で運営されております。私の理解が進むと記事の内容が増えていきます。
 読むのが大変なのって書くのも(それと修正するのが)大変なんですっ。

 2025年11月16日は、ukkaのメジャーデビュー3周年の記念日です。

 メジャーデビュー3周年ですが、結成からだと10周年のグループです。おめでとうございます!!!私が追い始めてからはそろそろ2年が経とうかという頃です(たぶん)。
 今年はリリイベで生パフォーマンスを観ることができました。来年は合同ライブなんかで観る機会があるといいな。

【次節の内容】

  • 数式読解編

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

www.anarchive-beta.com


  • スクラッチ実装編

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

www.anarchive-beta.com

(Python版は準備中です)

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