はじめに
機械学習プロフェッショナルシリーズの『トピックモデル』の勉強時に自分の理解の助けになったことや勉強会資料のまとめです。トピックモデルの各種アルゴリズムを「数式」と「プログラム」から理解することを目指します。
この記事は、1.2.2項「多項分布」の内容です。多項分布の定義を説明して、平均と分散を導出します。
【前節の内容】
www.anarchive-beta.com
【他の節一覧】
www.anarchive-beta.com
【この節の内容】
1.2.2 多項分布
・定義
サイコロのように$V$種類の離散値$1, 2, \cdots, V$からそれぞれに対応する確率$\phi_1, \phi_2, \cdots, \phi_V$に従って値$v$をとる試行を$N$回行うとする。このとき、$1, 2, \cdots, V$の値となった回数をそれぞれ$x_1, x_2, \cdots, x_V$とする変数について考える。
試行回数が$N$なので、$x_v$がとる値は$1, 2, \cdots, N$の範囲となる。また$x_1$(1が出た回数)から$X_V$($V$が出た回数)までを足し合わせると$N$である。これを次のように書く。
$$
\boldsymbol{x} = (x_1, x_2, \cdots, x_V),\
x_v \in \{0, 1, \cdots, N\},\
\sum_{v=1}^V x_v = N
$$
出目が$v$となる確率$p(v)$を$\phi_v$とする。
$$
\boldsymbol{\phi} = (\phi_1, \phi_2, \cdots, \phi_V),\
0 \leq \phi_v \leq 1,\
\sum_{v=1}^V \phi_v = 1
$$
このときの確率分布を多項分布と呼び、次の式で表す。
$$
\mathrm{Multinomial}(\boldsymbol{x} | N, \boldsymbol{\phi})
= \frac{
N!
}{
x_1! x_2! \cdots x_V!
}
\prod_{v=1}^V
\phi_v^{x_v}
$$
多項分布が$V = 2,\ N = 1$(2値をとり、また試行回数が1)のとき
$$
\begin{aligned}
\sum_{v=1}^2 x_v
&= 1 \\
x_1 + x_2
&= 1 \\
x_2
&= 1 - x_1
\end{aligned}
$$
となり、また
$$
\begin{aligned}
\sum_{v=1}^2 \phi_v
&= 1 \\
\phi_1 + \phi_2
&= 1 \\
\phi_2
&= 1 - \phi_1
\end{aligned}
$$
となるので
$$
\begin{aligned}
\mathrm{Multinomial}(\boldsymbol{x} | N = 2, \phi_1, \phi_2)
&= \frac{1!}{x_1! x_2!}
\prod_{v=1}^2 \phi_v^{x_v} \\
&= \frac{1!}{x_1! (1 - x_1)!}
\phi_1^{x_1} \phi_2^{x_2} \\
&= 1
* \phi_1^{x_1}
(1 - \phi_1)^{1-x_1} \\
&= \phi_1^{x_1}
(1 - \phi_1)^{1-x_1}
= \mathrm{Bernoulli}(x_1 | \phi_1)
\end{aligned}
$$
ベルヌーイ分布と等しいことが分かる。$0! = 1! = 1$なので、$x_1$と$x_2$のどちらが1だったとしても組み合せの項は1となる。
また、$V = 2$のとき
$$
\begin{aligned}
\sum_{v=1}^2 x_v
&= N \\
x_1 + x_2
&= N \\
x_2
&= N - x_1
\end{aligned}
$$
となるので
$$
\begin{aligned}
\mathrm{Multinomial}(\boldsymbol{x} | N, \phi_1, \phi_2)
&= \frac{N!}{x_1! x_2!}
\prod_{v=1}^2 \phi_v^{x_v} \\
&= \frac{N!}{x_1! (N - x_1)!}
\phi_1^{x_1} \phi_2^{x_2} \\
&= \binom{N}{x_1}
\phi_1^{x_1}
(1 - \phi_1)^{N-x_1}
= \mathrm{Binomial}(x_1 | N, \phi_1)
\end{aligned}
$$
二項分布と等しいことが分かる。
続いて、$N = 1$のときは
$$
\begin{aligned}
\mathrm{Multinomial}(\boldsymbol{x} | N = 1, \boldsymbol{\phi})
&= \frac{1!}{x_1! x_2! \cdots x_V!}
\prod_{v=1}^V \phi_v^{x_v} \\
&= \frac{1!}{0! \cdots 1! \cdots 0!}
\prod_{v=1}^V \phi_v^{x_v} \\
&= 1
* \prod_{v=1}^V \phi_v^{x_v} \\
&= \prod_{v=1}^V \phi_v^{x_v}
= \mathrm{Categorical}(\boldsymbol{x} | \boldsymbol{\phi})
\end{aligned}
$$
カテゴリ分布と等しくなる。
つまりベルヌーイ分布、二項分布、カテゴリ分布は、多項分布の特殊な場合である。逆に言うと多項分布が、ベルヌーイ分布、二項分布、カテゴリ分布を拡張した形であると確認できた。
次からは、多項分布の平均と分散を求めていく。
・平均の導出
確率分布が取り得る値$\boldsymbol{x}$とその値となる確率$p(\boldsymbol{x})$とを掛け合わせて、和をとった値が平均となる。
$$
\begin{aligned}
\mathbb{E}[x_v]
&= \sum_{v=1}^V
x_v
p(x_v)
\\
&= \sum_{v=1}^V
x_v
\frac{
N!
}{
x_1! \cdots x_v! \cdots x_V!
}
\phi_1^{x_1} \cdots \phi_v^{x_v} \cdots \phi_V^{x_V}
\\
&= \sum_{v=1}^V
x_v
\frac{N * (N - 1)!}{x_1! \cdots x_v * (x_v - 1)! \cdots x_V!}
\phi_1^{x_1} \cdots \phi_v * \phi_v^{x_v-1} \cdots \phi_V^{x_V}
\\
&= N \phi_v
\sum_{v=1}^V
\frac{(N - 1)!}{x_1! \cdots (x_v - 1)! \cdots x_V!}
\phi_1^{x_1}\cdots \phi_v^{x_v-1} \cdots \phi_V^{x_V}
\\
&= N \phi_v * 1
\\
&= N \phi_v
\end{aligned}
$$
【途中式の途中式】
平均の定義式(1.5')より、式を立てる。
- $p(x_v) = \mathrm{Multinomial}(\boldsymbol{x} | N, \boldsymbol{\phi})$で置き換える。
- $N! = N (N - 1)!$、$\frac{1}{x_v!} = \frac{1}{x_v (x_v - 1)!}$、$\phi_v^{x_v} = \phi_v \phi_v^{x_v-1}$に分割する。
- $N$と$\phi_v$を$\sum_v$の外に出す。
- $\sum_v$の因子は、試行回数が$N - 1$のときの全ての事象の確率の和であるため1になる。
・分散の導出
1.1.7項より、「$x_v$の2乗の平均」と「$x_v$の平均の2乗」との差が分散となる。そこでまずは、$x_v$の2乗の平均を求める。
$$
\begin{aligned}
\mathbb{E}[x_v^2]
&= \sum_{v=1}^V
x_v^2
p(x_v)
\\
&= \sum_{v=1}^V
x_v^2
\frac{N!}{x_1! \cdots x_v! \cdots x_V!}
\phi_1^{x_1} \cdots \phi_v^{x_v} \cdots \phi_V^{x_V}
\\
&= \sum_{v=1}^V
\{x_v (x_v - 1) + x_v\}
\frac{N!}{x_1! \cdots x_v! \cdots x_V!}
\phi_1^{x_1} \cdots \phi_v^{x_v} \cdots \phi_V^{x_V}
\\
&= \sum_{v=1}^V
x_v (x_v - 1)
\frac{N!}{x_1! \cdots x_v! \cdots x_V!}
\phi_1^{x_1} \cdots \phi_v^{x_v} \cdots \phi_V^{x_V}
+ \sum_{v=1}^V
x_v
\frac{N!}{x_1! \cdots x_v! \cdots x_V!}
\phi_1^{x_1} \cdots \phi_v^{x_v} \cdots \phi_V^{x_V}
\\
&= \sum_{v=1}^V
x_v (x_v - 1)
\frac{
N (N - 1) * (N - 2)!
}{
x_1! \cdots x_v (x_v - 1) * (x_v - 2)! \cdots x_V!
}
\phi_1^{x_1}
\cdots \phi_v^2 * \phi_v^{x_v-2}
\cdots \phi_V^{x_V}
+ \mathbb{E}[x_v]
\\
&= N (N - 1) \phi_v^2
\sum_{v=1}^V
\frac{(N - 2)!}{x_1! \cdots (x_v - 2)! \cdots x_V!}
\phi_1^{x_1} \cdots \phi_v^{x_v-2} \cdots \phi_V^{x_V}
+ N \phi
\\
&= N (N - 1) \phi_v^2 * 1
+ N \phi_v
\\
&= N (N - 1) \phi_v^2
+ N \phi_v
\end{aligned}
$$
【途中式の途中式】
平均の定義式(1.5')より、式を立てる。
- $p(x_v) = \mathrm{Multinomial}(\boldsymbol{x} | N, \boldsymbol{\phi})$で置き換える。
- $x^2 = x(x - 1) + x$に分割する。
- $\sum (A + B) = \sum A + \sum B$の式変形を行う。
- 分割した因子について、それぞれ変形する。
- $N! = N(N - 1)(N - 2)!$、$\frac{1}{x_v!} = \frac{1}{x_v(x_v - 1)(x_v - 2)!}$、$\phi_v^{x_v} = \phi_v^2 \phi_v^{x_v-2}$に分割する。
- $\sum_{v=1}^V x_v \frac{N!}{x_1! \cdots x_V!} \phi_1^{x_1} \cdots \phi_V^{x_V} = \mathbb{E}[x_v] = N \phi_v$より、置き換える。
- $N (N - 1)$と$\phi_v^2$を$\sum_v$の外に出す。
- $\sum_v$の因子は、試行回数が$N - 2$のときの全ての事象の確率の和であるため1になる。
「$x_v$の2乗の平均」と「$x_v$の平均の2乗」との差を求める。
$$
\begin{aligned}
\mathrm{Var}[x_v]
&= \mathbb{E}[x_v^2]
- (\mathbb{E}[x_v])^2 \\
&= N (N - 1) \phi_v^2 + N \phi_v
- (N \phi_v)^2 \\
&= N^2 \phi_v^2 - N \phi_v^2 + N \phi
- N^2 \phi_v^2 \\
&= N \phi_v
(1 - \phi_v)
\end{aligned}
$$
$N = 1$(試行回数が1)のとき、多項分布の平均は$N \phi_v = \phi_v$、分散は$N \phi_v (1 - \phi_v) = \phi_v (1 - \phi_v)$となり、カテゴリ分布の平均と分散とそれぞれ等しくになることが確認できる。
参考書籍
- 岩田具治(2015)『トピックモデル』(機械学習プロフェッショナルシリーズ)講談社
- 須山敦志(2017)『ベイズ推論による機械学習入門』(機械学習スタートアップシリーズ)講談社
おわりに
2019/08/17:加筆修正しました。
2020/06/22:加筆修正しました。またその際に記事の一部を別の記事に分割しました。
多項分布ってどーやって可視化すればいーのー。
【次節の内容】
www.anarchive-beta.com