からっぽのしょこ

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

3.2.1:ベルヌーイ分布の学習と予測の導出【緑ベイズ入門のノート】

はじめに

 『ベイズ推論による機械学習入門』の学習時のノートです。「数式の行間を読んでみた」とそれを「RとPythonで組んでみた」によって、「数式」と「プログラム」から理解するのが目標です。
 省略してある内容等ありますので、本とあわせて読んでください。

 この記事では、「尤度関数をベルヌーイ分布」、「事前分布をベータ分布」とした場合の「パラメータの事後分布」と「未観測値の予測分布」を導出します。

【実装編】

www.anarchive-beta.com

www.anarchive-beta.com

【他の節の内容】

www.anarchive-beta.com

【この節の内容】

3.2.1 ベルヌーイ分布の学習と予測

 尤度関数をベルヌーイ分布(Bernoulli Distribution)、事前分布をベータ分布(Beta Distribution)とするモデルに対するベイズ推論を導出する。
 ベルヌーイ分布については「ベルヌーイ分布の定義式 - からっぽのしょこ」、ベータ分布については「ベータ分布の統計量の導出 - からっぽのしょこ」を参照のこと。

尤度関数の確認

 ベルヌーイ分布に従うと仮定する$N$個の観測データ$\mathbf{X} = \{x_1, x_2, \cdots, x_N\}$を用いて、パラメータ$\mu$の事後分布と未観測データ$x_{*}$の予測分布を求めていく。
 まずは、尤度関数を確認する。

 $\mathbf{X}$の各データが独立に発生しているとの仮定の下で、尤度$p(\mathbf{X} | \mu)$は

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

と分解できる。
 各データ$x_n$は、0か1の2値をとる。また$\mu$は、$x_n = 1$となる確率を表すパラメータで、$0 \leq \mu \leq 1$である。

事後分布の計算

 次に、パラメータ$\mu$の事後分布$p(\mu | \mathbf{X})$を導出する。

 $\mathbf{X}$が与えられた下での$\mu$の事後分布は、ベイズの定理より

$$ \begin{align} p(\mu | \mathbf{X}) &= \frac{ p(\mathbf{X} | \mu) p(\mu) }{ p(\mathbf{X}) } \\ &= \frac{ \left\{ \prod_{n=1}^N p(x_n | \mu) \right\} p(\mu) }{ p(\mathbf{X}) } \\ &= \frac{ \left\{ \prod_{n=1}^N \mathrm{Bern}(x_n | \mu) \right\} \mathrm{Beta}(\mu | a, b) }{ p(\mathbf{X}) } \\ &\propto \left\{ \prod_{n=1}^N \mathrm{Bern}(x_n | \mu) \right\} \mathrm{Beta}(\mu | a, b) \tag{3.12} \end{align} $$

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

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

$$ \begin{align} \ln p(\mu | \mathbf{X}) &= \ln \prod_{n=1}^N \mathrm{Bern}(x_n | \mu) + \ln \mathrm{Beta}(\mu | a, b) - \ln p(\mathbf{X}) \\ &= \sum_{n=1}^N \ln \mathrm{Bern}(x_n | \mu) + \ln \mathrm{Beta}(\mu | a, b) + \mathrm{const.} \\ &= \sum_{n=1}^N \ln \left\{ \mu^{x_n} (1 - \mu)^{1-x_n} \right\} + \ln \left\{ C_B(a, b) \mu^{a-1} (1 - \mu)^{b-1} \right\} + \mathrm{const.} \\ &= \sum_{n=1}^N \left\{ x_n \ln \mu + (1 - x_n) \ln(1 - \mu) \right\} + \ln C_B(a, b) + (a - 1) \ln \mu + (b - 1) \ln (1 - \mu) + \mathrm{const.} \\ &= \sum_{n=1}^N x_n \ln \mu + \left(N - \sum_{n=1}^N x_n\right) \ln(1 - \mu) + (a - 1) \ln \mu + (b - 1) \ln (1 - \mu) + \mathrm{const.} \\ &= \left( \sum_{n=1}^N x_n + a - 1 \right) \ln \mu + \left( N - \sum_{n=1}^N x_n + b - 1 \right) \ln (1 - \mu) + \mathrm{const.} \tag{3.13} \end{align} $$

【途中式の途中式】

  1. 式(3.12)の下から2行目の関係を用いている。
  2. $\mu$に影響しない$- \ln p(\mathbf{X})$を$\mathrm{const.}$とおく。

 総乗部分の対数をとると、自然対数の性質$\ln x y = \ln x + \ln y$より

$$ \begin{aligned} \ln p(\mathbf{X} | \mu) &= \ln \prod_{n=1}^N p(x_n | \mu) \\ &= \ln \Bigl\{ p(x_1 | \mu) * p(x_2 | \mu) * \cdots * p(x_N | \mu) \Bigr\} \\ &= \ln p(x_1 | \mu) + \ln p(x_2 | \mu) + \cdots + \ln p(x_N | \mu) \\ &= \sum_{n=1}^N \ln p(x_n | \mu) \end{aligned} $$

総和になる。

  1. 尤度と事前分布に、それぞれ具体的な確率分布の式を代入する。
  2. それぞれ対数をとる。$\ln x^a = a \ln x$である。
  3. $\sum_{n=1}^N$に関する括弧を展開し、また$\mu$に影響しない$\ln C_B(a, b)$を$\mathrm{const.}$にまとめる。
  4. $\mu$と$1 - \mu$の項をそれぞれまとめて式を整理する。

となる。

 式(3.13)について

$$ \begin{aligned} \hat{a} &= \sum_{n=1}^N x_n + a \\ \hat{b} &= N - \sum_{n=1}^N x_n + b \end{aligned} \tag{3.15} $$

とおき

$$ \ln p(\mu | \mathbf{X}) = (\hat{a} - 1) \ln \mu + (\hat{b} - 1) \ln (1 - \mu) + \mathrm{const.} $$

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

$$ p(\mu | \mathbf{X}) = C_B(\hat{a}, \hat{b}) \mu^{\hat{a} - 1} (1 - \mu)^{\hat{b} - 1} = \mathrm{Beta}(\mu | \hat{a}, \hat{b}) \tag{3.14} $$

事後分布は式の形状から、パラメータ$\hat{a},\ \hat{b}$を持つベータ分布であることが分かる。
 また、式(3.15)が超パラメータ$\hat{a},\ \hat{b}$の計算式(更新式)である。

予測分布の計算

 続いて、ベルヌーイ分布に従う未観測のデータ$x_{*}$に対する予測分布を導出する。

事前分布による予測分布

 事前分布(観測データによる学習を行っていない分布)$p(\mu)$を用いて、パラメータ$\mu$を周辺化することで予測分布$p(x_{*})$となる。

$$ \begin{align} p(x_{*}) &= \int p(x_{*} | \mu) p(\mu) d\mu \\ &= \int \mathrm{Bern}(x_{*} | \mu) \mathrm{Beta}(\mu | a, b) d\mu \\ &= \int \mu^{x_{*}} (1 - \mu)^{1-x_{*}} C_B(a, b) \mu^{a-1} (1 - \mu)^{b-1} d\mu \\ &= C_B(a, b) \int \mu^{x_{*}+a-1} (1 - \mu)^{1-x_{*}+b-1} d\mu \tag{3.16} \end{align} $$

 $\mu$と$1 - \mu$の項をまとめて積分部分に注目すると、パラメータ$x_{*} + a,\ 1 - x_{*} + b$を持つ正規化項のないベータ分布の形をしている。
 これはベータ分布の正規化項の逆数に変形できる(そもそもこの部分の逆数が正規化項である。詳しくは「ベータ分布の統計量の導出 - からっぽのしょこ」を参照のこと)。

$$ \int \mu^{x_{*}+a-1} (1 - \mu)^{1-x_{*}+b-1} d\mu = \frac{1}{C_B(x_{*} + a, 1 - x_{*} + b)} \tag{3.17} $$

 これを式(3.16)に代入すると、予測分布は

$$ p(x_{*}) = \frac{C_B(a, b)}{C_B(x_{*} + a, x_{*} + b)} $$

となる。
 さらにベータ分布の正規化項(2.42)を用いると

$$ \begin{align} p(x_{*}) &= C_B(a, b) \frac{1}{C_B(x_{*} + a, x_{*} + b)} \\ &= \frac{ \Gamma(a + b) }{ \Gamma(a) \Gamma(b) } \frac{ \Gamma(x_{*} + a) \Gamma(1 - x_{*} + b) }{ \Gamma(x_{*} + a + 1 - x_{*} + b) } \\ &= \frac{ \Gamma(a + b) }{ \Gamma(a) \Gamma(b) } \frac{ \Gamma(x_{*} + a) \Gamma(1 - x_{*} + b) }{ \Gamma(a + b + 1) } \\ &= \frac{ \Gamma(a + b) }{ \Gamma(a) \Gamma(b) } \frac{ \Gamma(x_{*} + a) \Gamma(1 - x_{*} + b) }{ (a + b) \Gamma(a + b) } \\ &= \frac{ \Gamma(x_{*} + a) \Gamma(1 - x_{*} + b) }{ \Gamma(a) \Gamma(b) (a + b) } \tag{3.18} \end{align} $$

となる。ガンマ関数の性質$\Gamma(x + 1) = x \Gamma(x)$を用いている。

 $x_{*}$は0か1しかとらないため、場合分けしてこの式を整理する。$x_{*} = 1$のとき

$$ \begin{align} p(x_{*} = 1) &= \frac{ \Gamma(1 + a) \Gamma(1 - 1 + b) }{ \Gamma(a) \Gamma(b) (a + b) } \tag{3.18'}\\ &= \frac{ a \Gamma(a) \Gamma(b) }{ \Gamma(a) \Gamma(b) (a + b) } \\ &= \frac{a}{a + b} \tag{3.19} \end{align} $$

となる。また$x_{*} = 0$のとき

$$ \begin{align} p(x_{*} = 0) &= \frac{ \Gamma(0 + a) \Gamma(1 - 0 + b) }{ \Gamma(a) \Gamma(b) (a + b) } \tag{3.18'}\\ &= \frac{ \Gamma(a) b \Gamma(b) }{ \Gamma(a) \Gamma(b) (a + b) } \\ &= \frac{b}{a + b} \tag{3.20} \end{align} $$

となる。これは

$$ \frac{b}{a + b} = 1 - \frac{a}{a + b} $$

と置き換えられる。

 従って、$x^0 = 1$であることを利用して式(3.19)と式(3.20)をまとめると、式(3.18)は

$$ \begin{aligned} p(x_{*}) &= \Bigl( \frac{a}{a + b} \Bigr)^{x_{*}} \Bigl( \frac{b}{a + b} \Bigr)^{1-x_{*}} \\ &= \Bigl( \frac{a}{a + b} \Bigr)^{x_{*}} \Bigl( 1 - \frac{a}{a + b} \Bigr)^{1-x_{*}} \end{aligned} $$

と書き換えられる。($x_{*} = 0$のとき前の項が1となり、$x_{*} = 1$のとき後ろの項が1となるので、それぞれ式(3.20)と式(3.19)が成り立つ。)

 この式について

$$ \mu_{*} = \frac{a}{a + b} $$

とおくと

$$ p(x_{*}) = \mu_{*}^{x_{*}} (1 - \mu_{*})^{1-x_{*}} = \mathrm{Bern}(x_{*} | \mu_{*}) \tag{3.21} $$

予測分布は式の形状から、パラメータ$\mu_{*}$を持つベルヌーイ分布であることが分かる。ちなみに、$\frac{a}{a + b}$はベータ分布$\mathrm{Beta}(\mu | a, b)$の期待値$\mathbb{E}[\mu]$である。

事後分布による予測分布

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

 そこで、$\mu_{*}$を構成する事前分布のパラメータ$a,\ b$について、事後分布のパラメータ(3.15)に置き換えたものを$\hat{\mu}_{*}$とおくと

$$ \begin{aligned} \hat{\mu}_{*} &= \frac{\hat{a}}{\hat{a} + \hat{b}} \\ &= \frac{ \sum_{n=1}^N x_n + a }{ \sum_{n=1}^N x_n + a + N - \sum_{n=1}^N x_n + b } \\ &= \frac{\sum_{n=1}^N x_n + a}{N + a + b} \end{aligned} $$

となり、予測分布

$$ p(x_{*} | \mathbf{X}) = \hat{\mu}_{*}^{x_{*}} (1 - \hat{\mu}_{*})^{1-x_{*}} = \mathrm{Bern}(x_{*} | \hat{\mu}_{*}) \tag{3.22} $$

が得られる。
 また上の式が、予測分布のパラメータ$\hat{\mu}_{*}$の計算式(更新式)である。

参考文献

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

おわりに

 ずっと辞書的に使っていた須山ベイズ本の精読を始めました。

 実装編とで口調が変わることに深い意味はありません。正直ですます調の方が書きやすいです。

 暫く続きます。宜しくお願いします。

 2020年2月19日は、モーニング娘。'20森戸知沙希ちゃん二十歳の誕生日!!!

Enjoy!

  • 2020/03/04:加筆修正しました。
  • 2020/02/19:加筆修正して、Rで実装編とは記事を分割しました。ブログ投稿から丁度一年後に更新することになるとは。


【次の節の内容】

www.anarchive-beta.com