LoginSignup
2
0

More than 3 years have passed since last update.

PRML 演習問題 2.9(難問) 解答

Last updated at Posted at 2020-06-05

 この記事では統計学・機械学習の教科書である、C. M. Bishop 著「パターン認識と機械学習」(略称:PRML)の演習問題を私が解いた結果を載せています。この本は私が所属する研究室の輪読会で現在扱われていて、勉強の一環として演習問題を解いています。

問題

この演習問題では、ディリクレ分布が正規化されていることを、帰納法によって証明する。ディリクレ分布で $M=2$ とした特殊な場合であるベータ分布が正規化されていることは、演習問題 $2.5$ ですでに示した。次に、ディリクレ分布が $M-1$ 変数の場合に正規化されているとの仮定の下、$M$ 変数でも正規化されていることを証明する。これにはまず、$M$ 変数のディリクレ分布から、$\sum_{k=1}^M \mu_k=1$ の制約を使って $\mu_M$ を除去して、ディリクレ分布を

p_M (\mu_1, ..., \mu_{M-1})
  = C_M
    \left( 
      \prod_{k=1}^{M-1} \mu_k^{\alpha_k - 1}
    \right)
    \left(
      1 - \sum_{j=1}^{M-1} \mu_j
    \right) ^ {\alpha_M - 1}

と書く。すると、あとは $C_M$ を表す式を求めればよい。これには、この式を、範囲に注意しつつ $\mu_{M-1}$ について積分し、さらに、この積分の範囲が $0$ から $1$ となるように変数を置換する。$C_{M-1}$ での結果が正しいと仮定して $(2.265)$ を用いて、$C_M$ の式を導出せよ。

示すべき命題

ディリクレ分布

{\rm Dir} (\boldsymbol{\mu} | \boldsymbol{\alpha})
  = C_M \prod_{k=1}^M \mu_k^{\alpha_k - 1}
  \tag{ex0.1}

の正規化定数が

C_M = \frac {\Gamma(\alpha_1 + \cdots + \alpha_K)}
            {\Gamma(\alpha_1) \cdots \Gamma(\alpha_K)}
  \tag{ex0.2}

であることを示せ。ただし $M=2$ の場合であるベータ分布では

\int_0^1 \mu^{a-1} (1 - \mu)^{b-1} d\mu
  = \frac {\Gamma(a) \Gamma(b)} {\Gamma(a + b)}
\tag{2.265}

であることは示されている。ゆえに、$\rm (ex0.2)$ が $C_{M-1}$ で成り立つと仮定して、$C_{M}$ でも成り立つことを示せばよい。

方針

数学的帰納法を使うために、$M-1$ 変数のディリクレ分布と $M$ 変数のディリクレ分布を行き来できる式があるとよい。

\begin{align}
& {\rm Dir} (\mu_1, ..., \mu_M | \beta_1, ..., \beta_M)
  & = & \ C_M \prod_{k=1}^M \mu_k^{\beta_k - 1}
  \tag{ex0.3} \\
& {\rm Dir} (\mu_1, ..., \mu_{M-1} | \gamma_1, ..., \gamma_{M-1})
  & = & \ C_{M-1} \prod_{k=1}^{M-1} \mu_k^{\gamma_k - 1}
  \tag{ex0.4} \\
\end{align}

この式をじっくり見ると、$\rm (ex0.3)$ から $\mu_M$ を積分して消す(周辺化する)ことで、$\rm (ex0.4)$ と同じ形になることが分かる。言い方を変えると、ディリクレ分布を周辺化した分布はディリクレ分布になるという性質がある。
ただし同時に、$\rm (ex0.3)$ を積分するとそのまま $\rm (ex0.4)$ が出てくるわけではないことに注意する。なぜなら、$\rm (ex0.3)$ のパラメータ $\beta_1, ..., \beta_M$ と $\rm (ex0.4)$ のパラメータ $\gamma_1, ..., \gamma_{M-1}$ には直接的な関係がないからだ。

ともあれ基本的な方針として、$M$ 変数のディリクレ分布から変数を1つ積分消去した式と、$M-1$ 変数のディリクレ分布と対応させることで、$C_{M-1}$ を使って $C_M$ を書き表せられれば良いことが分かる。
ただし、ディリクレ分布を積分するのはあまり単純ではないので、そのための準備が必要になる。

解答

証明 ディリクレ分布は以下の式で表される。

\begin{align}
{\rm Dir} (\boldsymbol{\mu} | \boldsymbol{\alpha})
  & = C_M \prod_{k=1}^M \mu_k^{\alpha_k - 1}
  \tag{ex1.1} \\
0 \leq \mu_k & \leq 1 \qquad (k = 1, ..., M)
  \tag{ex1.2} \\
\sum_{k=1}^M \mu_k & = 1
  \tag{ex1.3}
\end{align}

$\rm(ex1.1)$ の積分を行いたいのだが、それに先立って、扱いの難しい $\rm(ex1.3)$ の制約を使わない表記を考える。$\rm(ex1.3)$ は

\mu_M = 1 - \sum_{k=1}^{M-1} \mu_k  \tag{ex1.4}

と書ける。これを $\rm(ex1.1)$ に代入すると、$M$ 変数のディリクレ分布は

\begin{align}
p_M(\mu_1, ..., \mu_{M-1})
  & = C_M
      \left( \prod_{k=1}^{M-1} \mu_k^{\alpha_k - 1} \right)
      \left( 1 - \sum_{j=1}^{M-1} \mu_j \right) ^ {\alpha_M - 1}
  \tag{ex1.5} \\
0 \leq \mu_k & \leq 1 \qquad (k = 1, ..., M-1)
  \tag{ex1.6} \\
\sum_{k=1}^{M-1} \mu_k & \leq 1
  \tag{ex1.7}
\end{align}

と書き直すことができる。なお、変数の数は $M-1$ に減ったが、パラメータは依然 $\alpha_1, ..., \alpha_M$ の $M$ 個で構成されている。

この式を使うと、ディリクレ分布の積分は以下で表される。

\int_0^m p_M(\mu_1, ..., \mu_{M-1}) d \mu_{M-1}
\tag{ex1.8}

積分範囲の上限 $m$ は、$\rm (ex1.7)$ より以下で表される。

m = 1 - \sum_{k=1}^{M-2} \mu_k
\tag{ex1.9}

積分範囲を整理するため

\mu_{M-1}
  = m t
  = \left( 1 - \sum_{k=1}^{M-2} \mu_k \right) t \tag{ex1.10}

として $\mu_{M-1}$ を $t$ に変数変換する。すると、積分範囲 $[0, m]$ は $[0, 1]$ になる。また、$d \mu_{M-1} = m \ dt$ となる。これらを使うことで積分 $\rm (ex1.8)$ が計算可能になる。

\begin{align}
& \int_0^m p_M(\mu_1, ..., \mu_{M-1}) d \mu_{M-1} \\

= & \int_0^m
    C_M
    \left( \prod_{k=1}^{M-1} \mu_k^{\alpha_k - 1} \right)
    \left( 1 - \sum_{j=1}^{M-1} \mu_j \right) ^ {\alpha_M - 1}
    d \mu_{M-1} \\

= & \ C_M
    \left( \prod_{k=1}^{M-2} \mu_k^{\alpha_k - 1} \right)
    \int_0^m
    \mu_{M-1}^{\alpha_{M-1} - 1}
    \left( 1 - \sum_{j=1}^{M-2} \mu_j - \mu_{M-1} \right) ^ {\alpha_M - 1}
    d \mu_{M-1} \\

= & \ C_M
    \left( \prod_{k=1}^{M-2} \mu_k^{\alpha_k - 1} \right)
    \int_0^1
    m^{\alpha_{M-1} - 1}
    t^{\alpha_{M-1} - 1}
    \left(m - mt \right) ^ {\alpha_M - 1}
    m \ dt \\

= & \ C_M
    \left( \prod_{k=1}^{M-2} \mu_k^{\alpha_k - 1} \right)
    m ^ {\alpha_{M-1} + \alpha_{M} - 1}
    \int_0^1
    t^{\alpha_{M-1} - 1}
    \left(1 - t \right) ^ {\alpha_M - 1}
    \ dt \\

= & \ C_M
    \left( \prod_{k=1}^{M-2} \mu_k^{\alpha_k - 1} \right)
    \left( 1 - \sum_{k=1}^{M-2} \mu_k \right) ^ {\alpha_{M-1} + \alpha_{M} - 1}
    \frac {\Gamma(\alpha_{M+1}) \Gamma(\alpha_{M})}
          {\Gamma(\alpha_{M+1} + \alpha_{M})}
    \tag{ex1.11}
\end{align}

最後の行の積分の計算には $(2.265)$ が使われている。

$\rm (ex1.5)$ との類似性を比較すると、これは $M-1$ 個のパラメータを $\alpha_1, ..., \alpha_{M-2}, \alpha_{M-1} + \alpha_M$ に設定したディリクレ分布であることが分かる。これらの正規化定数を比較することで、以下の式が得られる。

\begin{align}
\frac {\Gamma(\alpha_{M-1}) \Gamma(\alpha_{M})}
      {\Gamma(\alpha_{M-1} + \alpha_{M})}
\ C_M
= & \frac {\Gamma(\alpha_1 + \cdots + \alpha_{M-2} + \alpha_{M-1} + \alpha_{M})}
          {\Gamma(\alpha_1) \cdots \Gamma(\alpha_{M-2})
           \Gamma(\alpha_{M-1} + \alpha_{M})} \\
C_M = & \frac {\Gamma(\alpha_1 + \cdots + \alpha_{M})}
              {\Gamma(\alpha_1) \cdots \Gamma(\alpha_{M})}
    \tag{ex1.12}
\end{align}

よって、題意は示された。(証明終)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0