ディリクレ分布(Dirichlet distribution)は多項分布のパラメータの事後確率を考えるときに用いる共役事前分布です。当記事では多項分布の式を確認し、その共役事前分布のディリクレ分布の導入やディリクレ分布を用いた事後分布の計算に関して取り扱います。
「パターン認識と機械学習」の$2$.$2$節の「多項分布」や$2$.$2$.$1$節の「ディリクレ分布」を参考に作成を行いました。
Contents
多項分布
多項分布の定義と確率関数
多項分布(multinomial distribution)は二項分布の拡張であると考えることができる。二項分布ではコインの「表/裏」のような$2$値を取り扱ったが、多項分布ではサイコロの出目のような$K$値を取り扱う。
二項分布ではコインの表を$p$、裏を$1-p$のようにパラメータ$p$で考えたが、多項分布でも同様に下記のように$K$次元パラメータベクトル$\mu$を定義する。
$$
\large
\begin{align}
\mu &= \left(\begin{array}{c} \mu_{1} \\ \vdots \\ \mu_{K} \end{array} \right) \quad (1) \\
\mu_{k} & \geq 0 \quad (2) \\
\sum_{k=1}^{K} \mu_{k} &= 1 \quad (3)
\end{align}
$$
$(1)$式のように$K$次元ベクトルの形式でパラメータベクトルの$\mu$を定義することができるが、確率であることより$(2)$式のように$\mu$の各要素は$0$以上であるかつ$(3)$式のように和が$1$にならなければならない。
二項分布(Binomial distribution)と対応させて考えると、$(1)$式は$\displaystyle \left(\begin{array}{c} p \\ 1-p \end{array} \right)$のベクトルに対応し、$1-p$を用いることで$(3)$式も同時に内包することも確認できる。また、$(2)$式に関しては$0 \leq p \leq 1$を設定することでこれも成立する。このように多項分布は二項分布の拡張であると考えることができる。
さて、上記のように定義した$\mu$に基づいて多項分布$\mathrm{Multi}(m_1,…,m_K|\mu,N)$の確率関数を考える。確率変数のベクトルを$M$とおき、$N$回の試行に対して$M$に対応する観測回数のベクトルを$m$とおく。ここでベクトル$m$は下記を表すと考える。
$$
\large
\begin{align}
m &= \left(\begin{array}{c} m_{1} \\ \vdots \\ m_{K} \end{array} \right)
\end{align}
$$
上記は式だけを考えるとわかりにくいが、「$K$面体のサイコロを$N$回投げた時のそれぞれの出目が観測される回数」と対応づけて理解すればそれほど難しくないことがわかる。この多項分布に対し。確率関数$p(m_1,…,m_K|\mu,N)$は下記のように表すことができる。
$$
\large
\begin{align}
p(m_1,…,m_K|\mu,N) &= \left(\begin{array}{c} N \\ m_{1} m_{2} … m_{K} \end{array} \right) \prod_{k=1}^{K} \mu_{k}^{m_{k}} \\
\left(\begin{array}{c} N \\ m_{1} m_{2} … m_{K} \end{array} \right) &= \frac{N!}{m_{1}! m_{2}! … m_{K}!} \\
\sum_{k=1}^{K} m_{k} &= N
\end{align}
$$
多項分布と尤度関数
観測値$\mathcal{D} = (x_1,…,x_N) \sim \mathrm{Multi}(m_1,…,m_K|\mu,N) \quad \mathrm{i.i.d}$に対して尤度関数$L(m_1,…,m_K)$は下記のように考えることができる。
$$
\large
\begin{align}
L(m_1,…,m_K) &= p(x_1,…,x_N|\mu,N) \\
&= p(m_1,…,m_K|\mu,N) \\
&= \left(\begin{array}{c} N \\ m_{1} m_{2} … m_{K} \end{array} \right) \prod_{k=1}^{K} \mu_{k}^{m_{k}} \\
m_{k} &= \sum_{n=1}^{N} {x_{nk}} \\
x_{i} &= \left(\begin{array}{c} x_{i1} \\ \vdots \\ x_{iK} \end{array} \right)
\end{align}
$$
ここで$x_{i}$は$1$hotベクトルである。
ディリクレ分布
多項分布の尤度関数の関数形への着目
「共役分布の見つけ方」でも取り扱ったが、「尤度関数をパラメータの関数と見たときに同じ関数形の確率分布を考える」ことで共役事前分布を導出することができる。
多項分布の尤度関数をパラメータベクトル$\mu$に関して確認した際に、$\mu$の事前分布に下記のような関数形を考えることができる。
$$
\large
\begin{align}
p(\mu|\alpha) & \propto \prod_{k=1}^{K} \mu_{k}^{\alpha_{k}-1} \\
\alpha &= \left(\begin{array}{c} \alpha_{1} \\ \vdots \\ \alpha_{K} \end{array} \right)
\end{align}
$$
$\alpha$は事前分布のパラメータを表すベクトルであると考えれば良い。上記を確率分布に対応させるにあたって正規化を行うと下記のようなディリクレ分布$\mathrm{Dir}(\mu|\alpha)$の確率密度関数$p(\mu|\alpha)$が得られる。
$$
\large
\begin{align}
p(\mu|\alpha) = \frac{\Gamma(\alpha_{1}+…+\alpha_{K})}{\Gamma(\alpha_{1}) … \Gamma(\alpha_K)} \prod_{k=1}^{K} \mu_{k}^{\alpha_{k}-1}
\end{align}
$$
ディリクレ分布の正規化定数の導出
多項分布の事後分布
多項分布のパラメータベクトル$\mu$に関する事後分布を$p(\mu|\mathcal{D},\alpha)$のようにおくとき、ベイズの定理に基づいて事後分布は下記のように考えることができる。
$$
\large
\begin{align}
p(\mu|\mathcal{D},\alpha) & \propto p(\mathcal{D}|\mu) p(\mu|\alpha) \\
& \propto \prod_{k=1}^{K} \mu_{k}^{\alpha_{k}+m_{k}-1}
\end{align}
$$
参考
・共役事前分布
・統計学実践ワークブック ベイズ法 演習
・(YouTube)【ゲーム×統計@桃鉄】# 04 勝率を推論しよう(ベイズ推論を使う)
[…] ディリクレ分布(Dirichlet distribution)と多項分布の事後分布 […]
[…] ディリクレ分布(Dirichlet distribution)と多項分布の事後分布 […]
[…] ・解説カテゴリ分布多項分布 […]