からっぽのしょこ

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

ベータ分布の正規化項の導出

はじめに

 機械学習で登場する確率分布について色々な角度から理解したいシリーズです。

 この記事では、ベータ分布の正規化項を導出します。

【他の記事一覧】

www.anarchive-beta.com

【この記事の内容】

ベータ分布の正規化項の導出

 ベータ分布(Beta Distribution)の正規化項を導出します。正規化項は、正規化係数や規格化定数(normalization constant)などとも呼ばれます。ベータ分布については「ベータ分布の定義式 - からっぽのしょこ」を参照してください。

定義式の確認

 まずは、ベータ分布の定義式を確認します。

 ベータ分布は、ベータ関数を用いて、次の式で定義されます。

$$ \mathrm{Beta}(\phi | \alpha, \beta) = C_{\mathrm{Beta}}(\alpha, \beta) \phi^{\alpha-1} (1 - \phi)^{\beta-1} $$

 ここで、$C_{\mathrm{Beta}}(\alpha, \beta)$は正規化項、$\alpha, \beta$はパラメータです。確率変数は$0 < \phi < 1$の値をとり、パラメータは$\alpha > 0, \beta > 0$を満たす必要があります。
 また、確率分布を満たすには、確率変数がとり得る範囲で積分して1になる必要があります。

$$ \int_0^1 \mathrm{Beta}(\phi | \alpha, \beta) d\phi = 1 $$

 正規化項は、この条件を満たすための定数で、ベータ関数の逆数で定義されます。

$$ C_{\mathrm{Beta}}(\alpha, \beta) = \frac{ \Gamma(\alpha + \beta) }{ \Gamma(\alpha) \Gamma(\beta) } = \frac{1}{B(\alpha,\beta)} $$

 $\Gamma(x)$は、ガンマ関数です。詳しくは「ガンマ関数の性質の導出 - からっぽのしょこ」を参照してください。
 ベータ関数は、次の式で定義されます。

$$ B(\alpha,\beta) = \int_0^1 x^{\alpha-1} (1 - x)^{\beta-1} dx $$


 ベータ関数からベータ分布の正規化項を求めます。また、ベータ関数とガンマ関数の関係を求めます。

ベータ関数の積分計算

 次は、ベータ関数の計算を行い(変形して)正規化項を導出します。

ベータ関数の性質

 ベータ関数の計算を考えます。

$$ B(\alpha,\beta) = \int_0^1 x^{\alpha-1} (1 - x)^{\beta-1} dx $$

 部分積分を行うために、前の項を変形します。微分と積分は打ち消し合うので、$f(x) = \{\int f(x) dx\}'$より

$$ \begin{aligned} x^{\alpha-1} &= \left\{ \int x^{\alpha-1} dx \right\}' \\ &= \left\{ \frac{1}{\alpha} x^{\alpha} \right\}' \end{aligned} $$

で置き換えます。

$$ B(\alpha, \beta) = \int_0^1 \left\{ \frac{1}{\alpha} x^{\alpha} \right\}' (1 - x)^{\beta-1} dx $$

 後の項を微分すると、合成関数の微分$\{g(f(x))\}' = g'(f(x)) f'(x)$より

$$ \begin{aligned} \{(1 - x)^{\beta-1}\}' &= (\beta - 1) (1 - x)^{(\beta-1)-1} \{1 - x\}' \\ &= (\beta - 1) (1 - x)^{\beta-2} (- 1) \\ &= - (\beta - 1) (1 - x)^{\beta-2} \end{aligned} $$

となります。
 $\frac{1}{\alpha} x^{\alpha}$を$f(x)$、$\{\frac{1}{\alpha} x^{\alpha}\}'$を$f'(x)$、$(1 - x)^{\beta-1}$を$g(x)$、$- (\beta - 1) (1 - x)^{\beta-2}$を$g'(x)$として、部分積分$\int_a^b f'(x) g(x) dx = [f(x) g(x)]_a^b - \int_a^b f(x) g'(x) dx$を行います。

$$ \begin{aligned} B(\alpha, \beta) &= \left[ \frac{1}{\alpha} x^{\alpha} (1 - x)^{\beta-1} \right]_0^1 - \int_0^1 \frac{1}{\alpha} x^{\alpha} \Bigl\{ - (\beta - 1) (1 - x)^{\beta-2} \Bigr\} dx \\ &= \left[ \frac{1}{\alpha} x^{\alpha} (1 - x)^{\beta-1} \right]_0^1 + \frac{\beta - 1}{\alpha} \int_0^1 x^{\alpha} (1 - x)^{\beta-2} dx \end{aligned} $$

 $- \frac{\beta - 1}{\alpha}$は、$x$と無関係なので(積分に影響しないので)$\int$の外に出せます。
 前の因子について、定積分$[F(x)]_a^b = F(b) - F(a)$より、$x = 0$のとき$x^a = 0$、$x = 1$のとき$1 - x = 0$なので、0となり消えます。

$$ B(\alpha, \beta) = 0 - 0 + \frac{\beta - 1}{\alpha} \int_0^1 x^{\alpha} (1 - x)^{\beta-2} dx $$

 ベータ関数の定義式より、$\int$の因子を置き換えます。

$$ \begin{aligned} B(\alpha, \beta) &= \frac{\beta - 1}{\alpha} \int_0^1 x^{(\alpha+1)-1} (1 - x)^{(\beta-1)-1} dx \\ &= \frac{\beta - 1}{\alpha} B(\alpha + 1, \beta - 1) \end{aligned} $$

 ベータ関数の性質$B(\alpha, \beta) = \frac{\beta - 1}{\alpha} B(\alpha + 1, \beta - 1)$となるのが分かりました。

 同様に、$B(\alpha + 1, \beta - 1) = \frac{\beta - 2}{\alpha + 1} B(\alpha + 2, \beta - 2)$になるので置き替えます。

$$ B(\alpha, \beta) = \frac{\beta - 1}{\alpha} \frac{\beta - 2}{\alpha + 1} B(\alpha + 2, \beta - 2) \tag{1} $$

 ここからは、$\alpha, \beta$が離散値の場合と連続値の場合に分けて進めます。どちらも同じ結果になります(が、連続値の方は諦めました)。

離散値の場合

 先に、$\alpha, \beta$が離散値の場合を考えます。

 式(1)の変形をさらに、$B(\alpha + \beta - 2, \beta - (\beta - 2)) = \frac{\beta - (\beta - 1)}{\alpha + \beta - 2} B(\alpha + \beta - 1, \beta - (\beta - 1))$まで(合計$\beta - 1$回)繰り返します。

$$ \begin{aligned} B(\alpha, \beta) &= \frac{\beta - 1}{\alpha} \frac{\beta - 2}{\alpha + 1} \cdots \frac{\beta - (\beta - 2)}{\alpha + \beta - 3} \frac{\beta - (\beta - 1)}{\alpha + \beta - 2} B(\alpha + \beta - 1, \beta - (\beta - 1)) \\ &= \frac{ (\beta - 1) (\beta - 2) \cdots 2 * 1 }{ \alpha (\alpha + 1) \cdots (\alpha + \beta - 3) (\alpha + \beta - 2) } B(\alpha + \beta - 1, 1) \end{aligned} $$

 最後の項について、ベータ関数の定義式より

$$ \begin{aligned} B(\alpha + \beta - 1, 1) &= \int_0^1 x^{\alpha+\beta-1-1} (1 - x)^{1-1} dx \\ &= \int_0^1 x^{\alpha+\beta-2} dx \end{aligned} $$

になるので、定積分$\int_a^b f(x) dx = [F(x)]_a^b = F(b) - F(a)$を行い

$$ \begin{aligned} B(\alpha + \beta - 1, 1) &= \left[ \frac{1}{\alpha + \beta - 1} x^{\alpha+\beta-1} \right]_0^1 \\ &= \frac{1}{\alpha + \beta - 1} 1^{\alpha+\beta-1} + \frac{1}{\alpha + \beta - 1} 0^{\alpha+\beta-1} \\ &= \frac{1}{\alpha + \beta - 1} \end{aligned} $$

で置き換えます。

$$ B(\alpha, \beta) = \frac{ (\beta - 1) (\beta - 2) \cdots 2 }{ \alpha (\alpha + 1) \cdots (\alpha + \beta - 3) (\alpha + \beta - 2) } \frac{1}{\alpha + \beta - 1} $$

 分子は、1から$\beta - 1$までの自然数の積なので、$\beta - 1$の階乗$(\beta - 1)!$で表せます。また分母は、$\alpha$から$\alpha + \beta - 1$までの自然数の積なので、$(\alpha - 1)!$を掛けると$(\alpha + \beta - 1)!$になります。そこで、$\frac{(\alpha - 1)!}{(\alpha - 1)!} = 1$を掛けて項をまとめます。

$$ B(\alpha, \beta) = \frac{ (\alpha - 1)! (\beta - 1)! }{ (\alpha + \beta - 1)! } $$

 ガンマ関数の性質$\Gamma(n) = (n - 1)!$より、それぞれ階乗の項をガンマ関数の項に置き換えます。

$$ B(\alpha, \beta) = \frac{ \Gamma(\alpha) \Gamma(\beta) }{ \Gamma(\alpha + \beta) } $$

 ベータ関数をガンマ関数で表現できるのが分かりました。

連続値の場合

 続いて、$\beta$が連続値の場合を考えます(未完)。

 式(1)の変形をさらに、$0 < \beta - n < 1$まで(合計$n$回)繰り返します。

$$ \begin{aligned} B(\alpha, \beta) &= \frac{\beta - 1}{\alpha} \frac{\beta - 2}{\alpha + 1} \cdots \frac{\beta - (n - 1)}{\alpha + n - 2} \frac{\beta - n}{\alpha + n - 1} B(\alpha + n, \beta - n) \\ &= \frac{ (\beta - 1) (\beta - 2) \cdots (\beta - n + 1) (\beta - n) }{ \alpha (\alpha + 1) \cdots (\alpha + n - 2) (\alpha + n - 1) } B(\alpha + n, \beta - n) \end{aligned} $$

 分子は、1から$\beta - n$までの1間隔の値の積なので、ガンマ関数の性質$\Gamma(x) = (x - 1) \Gamma(x - 1)$より、$\Gamma(\beta) = (\beta - 1) \Gamma(\beta - 1)$の変形を$\Gamma(\beta - n + 1) = (\beta - n) \Gamma(\beta - n)$まで繰り返すと$\frac{\Gamma(\beta)}{\Gamma(\beta - n)}$で表せます。また分母は、$\alpha$から$\alpha + n - 1$までの1間隔の値の積なので、$\Gamma(\alpha)$を掛けると$\Gamma(\alpha + \beta)$になります。そこで、$\frac{\Gamma(\alpha)}{\Gamma(\alpha)} = 1$を掛けて項をまとめます。

$$ \begin{aligned} B(\alpha + n, \beta - n) &= \frac{ \Gamma(\alpha) \Gamma(\beta) }{ \Gamma(\alpha + n) \Gamma(\beta - n) } B(\alpha + n, \beta - n) \end{aligned} $$

 (証明途中にこの関係が登場するのはおかしいですがあくまで確認として、)後の項について、ベータ関数の定義式より、$B(\alpha + n, \beta - n) = \frac{\Gamma(\alpha + n) \Gamma(\beta - n)}{\Gamma(\alpha + \beta)}$で置き換えます。

$$ \begin{aligned} B(\alpha + n, \beta - n) &= \frac{\Gamma(\alpha) \Gamma(\beta)}{\Gamma(\alpha + n) \Gamma(\beta - n)} \frac{\Gamma(\alpha + n) \Gamma(\beta - n)}{\Gamma(\alpha + \beta)} \\  &= \frac{ \Gamma(\alpha) \Gamma(\beta) }{ \Gamma(\alpha + \beta) } \end{aligned} $$

 (今日のところはこれで納得することにしました)。

 この記事では、ベータ分布の正規化項を導出しました。次は、統計量を導出します。

ベータ分布の積分計算

 ベータ関数の計算を確認できたので、ベータ分布の積分計算を考えます。

 ベータ関数$B(\alpha,\beta) = \frac{\Gamma(\alpha) \Gamma(\beta)}{\Gamma(\alpha + \beta)}$の逆数$\frac{1}{B(\alpha,\beta)} = \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha) \Gamma(\beta)}$を正規化項とすることで、ベータ分布の積分が1になります。

$$ \begin{aligned} \int_0^1 \mathrm{Beta}(\phi | \alpha, \beta) d\phi &= \int_0^1 \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha) \Gamma(\beta)} \phi^{\alpha-1} (1 - \phi)^{\beta-1} d\phi \\ &= \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha) \Gamma(\beta)} \int_0^1 \phi^{\alpha-1} (1 - \phi)^{\beta-1} d\phi \\ &= \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha) \Gamma(\beta)} \frac{\Gamma(\alpha) \Gamma(\beta)}{\Gamma(\alpha + \beta)} \\ &= 1 \end{aligned} $$


 この記事では、ベータ分布の正規化項を導出しました。次は、統計量を導出します。

参考文献

  • 岩田具治『トピックモデル』(機械学習プロフェッショナルシリーズ)講談社,2015年.

おわりに

 加筆修正の際に「ベータ分布の統計量の導出」から記事を分割しました。

 積分力が足りなくて、連続値の場合が分かりませんでした。調べてもよく分からない用語がいっぱいでした。悔しながらに負けを認める SEKI BUN SEKI BUN
 と言いつつも、修正前の段階では離散値でしか証明できていないことに気付いていなかったので、成長はしています。成長したからこそ分かっていないことに気付きました。1年後には分かるといいな。


【次の内容】

www.anarchive-beta.com