1. はじめに
- 今回はベイズ機械学習における離散型確率分布の学習による事後分布の推移をPythonを用いて可視化していきます。
- また、数式的な理解だけでなく視覚的に理解することで次の章である混合モデルへ繋げていくことも目的としています。
- 途中式については長さの関係上省きますが、参考資料に載せてあるしょこさんという方が書かれているからっぽのしょこというブログが個人的にとても分かりやすいと思うのでそちらを参照してください。
2. ベイズ機械学習における学習とは
ベイズ機械学習において学習とは、ある観測データが与えられたときにそのデータをもとにして
事前に設定しておいたパラメータの確率分布(事前分布)を真の確率分布に近づけていく過程のことを意味します。
また、学習によって更新された確率分布のことを事後分布といい、事前分布と事後分布が同じ種類の確率分布をもつように設定された事前分布のことを共役事前分布といいます。
3. ベルヌーイ分布
ベルヌーイ分布におけるパラメータはある事象が起きる確率を表す$u\in(0, 1)$であり、これに対する共役事前分布はベータ分布とされているため、ベータ分布の推移について考えていく。
(本来はuではなくpを用いいるべきだが、確率分布と同じアルファベットを用いるのは気持ち悪いためuを用いる。)
[事前分布]
$$
p(u) = Beta(u\ |\ a, b) \\
[a\in \mathbb{R}^D, b \in \mathbb{R}^D:ハイパーパラメータ]
$$
- N個のデータ点 $X = \lbrace x_1,\cdots, x_N \rbrace$ を観測した後の事後分布は以下のようになる。
[事後分布]
$$
p(u | X) = Beta(u\ |\ \hat{a} \ ,\hat{b} \ )\\
\left[
\begin{array}{l}
\hat{a} = \sum_{n = 1}^{N}x_n + a\\
\hat{b} = N - \sum_{n = 1}^{N} + b
\end{array}
\right]
$$
4. カテゴリ分布
カテゴリ分布におけるパラメータはあるK個の各事象が起きる確率を表し、$\pi\in(0, 1)かつ\sum_{k=1}^{K}\pi_k=1$を満たすπであり、これに対する共役事前分布はディリクレ分布とされているため、ディリクレ分布の推移について考えていく。
[事前分布]
$$
p(\pi ) = Dir(\pi \ |\ \boldsymbol{\alpha}) \\
[\boldsymbol{\alpha} =\lbrace \alpha_1, \cdots , \alpha_k\rbrace :ハイパーパラメータ, \alpha_k \in \mathbb{R}^+]
$$
- カテゴリ分布に従うN個の離散値データ $S = \lbrace s_1,\cdots, s_N \rbrace$ を観測した後の事後分布は以下のようになる。
[事後分布]
$$
p(\pi\ |\ S) = Dir(\pi\ |\ \hat{\boldsymbol{\alpha}} \ )\\
\left[
\hat{\alpha_k} = \sum_{n = 1}^{N}s_{n, k} + \alpha_k \quad k = 1, \cdots ,K
\right]
$$
5. ポアソン分布
ポアソン分布におけるパラメータは分布の形状を決める$\lambda \in \mathbb{R}^+$であり、これに対する共役事前分布はガンマ分布とされているため、ガンマ分布の推移について考えていく。
[事前分布]
$$
p(\lambda) = Gam(\lambda \ |\ a, b) \\
[a\in \mathbb{R}^+, b \in \mathbb{R}^+:ハイパーパラメータ]
$$
- ポアソン分布に従っていると仮定したN個の非負の離散値 $X = \lbrace x_1,\cdots, x_N \rbrace$ を観測した後の事後分布は以下のようになる。
[事後分布]
$$
p(\lambda | X) = Gam(\lambda \ |\ \hat{a} \ ,\hat{b} \ )\\
\left[
\begin{array}{l}
\hat{a} = \sum_{n = 1}^{N}x_n + a\\
\hat{b} = N + b
\end{array}
\right]
$$
6. まとめ
今回は離散型確率分布に関する学習過程について数式をコードに落とし、Animationを作成することで理解を深めました。