1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ベイズ機械学習における学習による事後分布の推移 ~Bernoulli分布、Categorical分布、Poisson分布~

Last updated at Posted at 2023-01-07

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]
$$

  • この更新をNの値の変化に伴う事後分布の推移として捉えて作成したアニメーション
    Bernoulli_事後.gif

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]
$$

  • この更新をNの値の変化に伴う事後分布の推移として捉えて作成したアニメーション
    (今回はK = 3の時のディリクレ分布を等高線を用いたヒートマップでグラフ表示している。)
    Categorical_事後.gif

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]
$$

  • この更新をNの値の変化に伴う事後分布の推移として捉えて作成したアニメーション
    Poisson_事後.gif

6. まとめ

今回は離散型確率分布に関する学習過程について数式をコードに落とし、Animationを作成することで理解を深めました。

7. 参考資料

機械学習スタートアップシリーズ ベイズ推論による機械学習入門
からっぽのしょこ

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?