からっぽのしょこ

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

1.2.2:カテゴリ分布【『トピックモデル』の勉強ノート】

はじめに

 機械学習プロフェッショナルシリーズの『トピックモデル』の勉強時に自分の理解の助けになったことや勉強会資料のまとめです。トピックモデルの各種アルゴリズムを「数式」と「プログラム」から理解することを目指します。

 この記事は、1.2.2項「カテゴリ分布」の内容です。カテゴリ分布の定義を説明して、平均と分散を導出します。最後にRで可視化します。

【前節の内容】

www.anarchive-beta.com

【他の節一覧】

www.anarchive-beta.com

【この節の内容】


1.2.2 カテゴリ分布

・定義

 サイコロのように複数の離散値$\{1, 2, \cdots, V\}$から1つの値をとる(試行回数が1回の)変数の確率分布について考える。

 値(出目)が$v$になった回数を$x_v$とする。試行回数が1(サイコロを1回振る)なので、$x_1$から$x_V$の値は0か1になる。それを次のように書く。

$$ \boldsymbol{x} = (x_1, x_2, \cdots, x_V),\ x_v \in \{0, 1\} $$

 また$\boldsymbol{x}$の内、1つだけが1となる。例えばサイコロ($V = 6$)を1回振って3が出たとき、$x_3 = 1$であり、それ以外の$x_1$から$x_6$は0となる。従って$x_1$から$x_V$までの和は1になる。

$$ \sum_{v=1}^V x_v = 1 $$

 ($\phi_v$は各値が0から1までの値をとり、全てを足すと1になるのに対して、$x_v$は1つの値が1でありそれ以外の値が全て0であるため、総和が1になる。)

 このとき、$v$となる($x_v = 1$となる)確率$p(v)$を$\phi_v$を使って表現する。

$$ 0 \leq \phi_v \leq 1,\ \sum_{v=1}^V \phi_v = 1 $$

 このような確率分布をカテゴリ分布と呼び、次の式で表す。

$$ \mathrm{Categorical}(\boldsymbol{x} | \boldsymbol{\phi}) = \prod_{v=1}^V \phi_v^{x_v} $$

 ここで$\boldsymbol{\phi} = (\phi_1, \phi_2, \cdots, \phi_V)$は、$x$が1から$V$の値をとるそれぞれの確率の集合である。

 この式は、例えばサイコロの出目が3つまり$x_3 = 1$となる確率は

$$ \begin{aligned} \mathrm{Categorical}(x_3 = 1 | \boldsymbol{\phi}) &= \prod_{v=1}^6 \phi_v^{x_v} \\ &= \phi_1^0 * \phi_2^0 * \phi_3^1 * \phi_4^0 * \phi_5^0 * \phi_6^0 \\ &= 1 * 1 * \phi_3 * 1 * 1 * 1 \\ &= \phi_3 \end{aligned} $$

となる。このように、$x_v$に対応した確率$\phi_v$となるように式が定義されている。

 また、カテゴリ分布が$V = 2$のとき、$\boldsymbol{\phi} = (\phi_1, \phi_2)$であるため

$$ \begin{aligned} \sum_{v=1}^2 \phi_v &= 1 \\ \phi_1 + \phi_2 &= 1 \\ \phi_2 &= 1 - \phi_1 \end{aligned} $$

となる。同様に

$$ \begin{aligned} \sum_{v=1}^2 x_v &= 1 \\ x_1 + x_2 &= 1 \\ x_2 &= 1 - x_1 \end{aligned} $$

であるため、$V = 2$のときのカテゴリ分布は

$$ \begin{aligned} \mathrm{Categorical}(x | \phi_1, \phi_2) &= \prod_{v=1}^2 \phi_v^{x_v} \\ &= \phi_1^{x_1} * \phi_2^{x_2} \\ &= \phi_1^{x_1} (1 - \phi_1)^{1 - x_1} = \mathrm{Bernoulli}(x | \phi_1) \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 \prod_{v'=1}^V \phi_{v'}^{x_v'} \\ &= \sum_{v=1}^V x_v * \phi_1^{x_1} * \cdots * \phi_v^{x_v} * \cdots * \phi_V^{x_V} \\ &= (x_1 * \phi_1^{x_1} * \cdots * \phi_v^{x_v} * \cdots * \phi_V^{x_V}) + \cdots + (x_v * \phi_1^{x_1} * \cdots * \phi_v^{x_v} * \cdots * \phi_V^{x_V}) + \cdots + (x_V * \phi_1^{x_1} * \cdots * \phi_v^{x_v} * \cdots * \phi_V^{x_V}) \\ &= (0 * \phi_1^0 * \cdots * \phi_v^1 * \cdots * \phi_V^0) + \cdots + (1 * \phi_1^0 * \cdots * \phi_v^1 * \cdots * \phi_V^0) + \cdots + (0 * \phi_1^0 * \cdots * \phi_v^1 * \cdots * \phi_V^0) \\ &= 0 + \cdots + \phi_v + \cdots + 0 \\ &= \phi_v \end{aligned} $$

【途中式の途中式】

平均の定義式(1.5')より、式を立てる。

  1. $p(x_v) = \mathrm{Categorical}(x_v | \boldsymbol{\phi})$で置き換える。
  2. $\sum_{v'=1}^V$を展開する。
  3. $\sum_{v=1}^V$を展開する。
  4. $x_1, \cdots, x_V$の内、$x_v$が1でそれ以外は0を代入する。
  5. $a^0 = 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 \prod_{v'=1}^V \phi_{v'}^{x_{v'}} \\ &= \sum_{v=1}^V x_v^2 * \phi_1^{x_1} * \cdots * \phi_v^{x_v} * \cdots * \phi_V^{x_V} \\ &= (x_1^2 * \phi_1^{x_1} * \cdots * \phi_v^{x_v} * \cdots * \phi_V^{x_V}) + \cdots + (x_v^2 * \phi_1^{x_1} * \cdots * \phi_v^{x_v} * \cdots * \phi_V^{x_V}) + \cdots + (x_V^2 * \phi_1^{x_1} * \cdots * \phi_v^{x_v} * \cdots * \phi_V^{x_v}) \\ &= (0^2 * \phi_1^0 * \cdots * \phi_v^1 * \cdots * \phi_V^0) + \cdots + (1^2 * \phi_1^0 * \cdots * \phi_v^1 * \cdots * \phi_V^0) + \cdots + (0^2 * \phi_1^0 * \cdots * \phi_v^1 * \cdots * \phi_V^0) \\ &= 0 + \cdots + \phi_v + \cdots + 0 \\ &= \phi_v \end{aligned} $$

 「$x_v$の2乗の平均」と「$x_v$の平均の2乗」との差を求める。

$$ \begin{aligned} \mathrm{Var}[x_v] &= \mathbb{E}[x_v^2] - (\mathbb{E}[x_v])^2 \\ &= \phi_v - \phi_v^2 \\ &= \phi_v (1 - \phi_v) \end{aligned} $$


 $V = 2$のとき(あるいは$v$とそれ以外と解釈したとき)、カテゴリ分布の平均と分散はベルヌーイ分布の平均と分散とそれぞれ等しくなることが確認できる。

・可視化

# 利用パッケージ
library(tidyverse)

# パラメータを指定
phi <- c(0.2, 0.4, 0.1, 0.3)

# 作図
tibble(
  x = 1:length(phi), # 出目
  prob = phi # 確率
) %>% 
  ggplot(aes(x = x, y = prob)) + # データ
    geom_bar(stat = "identity", position = "dodge", fill = "#00A968") + # 棒グラフ
    labs(title = "Categorical Distribution") # ラベル

f:id:anemptyarchive:20200622095245p:plain
カテゴリ分布


 カテゴリ分布は試行回数が1回であった、次は試行回数が複数回の場合を考える。

参考書籍

  • 岩田具治(2015)『トピックモデル』(機械学習プロフェッショナルシリーズ)講談社
  • 須山敦志(2017)『ベイズ推論による機械学習入門』(機械学習スタートアップシリーズ)講談社


おわりに

2020/06/22:加筆修正の際に、記事を分割しました。

【次節の内容】

www.anarchive-beta.com