本記事ではベクトルを太字($\boldsymbol{x}$)、スカラーを細字($x$)で表します。

コイン投げ(2 つの結果)を一般化して、$M$ 個の結果がある 1 回の試行を考えます。 例えば、サイコロを 1 回振る、赤・青・緑のボールから 1 つ引く、といった状況です。

このとき、各結果(カテゴリ)が得られる確率を表す分布をカテゴリカル分布(categorical distribution)と呼びます。ベルヌーイ分布の名前にならって、マルチヌーイ分布(multinoulli distribution)と呼ばれることもあります。

分布 選択肢の数 試行回数
ベルヌーイ分布 2 1
カテゴリカル分布 $M$($M \ge 2$) 1

前提条件

  • $M$:カテゴリ数($\boldsymbol{x}$ の次元数)
  • $\boldsymbol{x} = \left(x_1, \ldots, x_M\right)$:one-hot ベクトル(確率変数)
    • $x_j \in {0, 1}$、$\displaystyle\sum_{j=1}^{M} x_j = 1$
    • $x_j$:観測値がカテゴリ $j$ であれば $1$、そうでなければ $0$
  • $\boldsymbol{p} = \left(p_1, \ldots, p_M\right)$:分布のパラメータ
    • $p_j$:カテゴリ $j$ が観測される確率
    • $p_j \ge 0$、$\displaystyle\sum_{j=1}^{M} p_j = 1$

確率分布

パラメータ $\boldsymbol{p}$ を持つカテゴリカル分布は次のように定義されます。

\[p(\boldsymbol{x} \mid \boldsymbol{p}) = \prod_{j=1}^{M} p_j^{x_j}\]

ここで、$p(\cdot)$(細字)は確率分布、$\boldsymbol{p}$(太字)はそのパラメータ、$p_j$ は $\boldsymbol{p}$ の成分を表します。
また、$p_j = 0$ の場合も含めて式が成り立つように、$0^0 = 1$ と約束します。

観測値がカテゴリ $k$ のとき、$x_k = 1$ であり、$j \ne k$ では $x_j = 0$ です。
したがって、$k$ 以外の因子はすべて $p_j^0 = 1$ となり、次のように簡約されます。

\[p(\boldsymbol{x} \mid \boldsymbol{p}) = p_k\]

つまり観測されたカテゴリに対応する確率 $p_k$ だけが残ります。

具体例

1 の目が出ない偏ったサイコロを 1 回振る場合を考えます($M = 6$)。

\[\boldsymbol{p} = \begin{pmatrix} p_1 \\ p_2 \\ p_3 \\ p_4 \\ p_5 \\ p_6 \end{pmatrix} = \begin{pmatrix} 0 \\ 0.1 \\ 0.6 \\ 0.1 \\ 0.1 \\ 0.1 \end{pmatrix}\]

$p_j \ge 0$ であり、$0 + 0.1 + 0.6 + 0.1 + 0.1 + 0.1 = 1$ なので、確率分布として成立しています。

3 の目が出た場合($k = 3$)、$\boldsymbol{x} = (0, 0, 1, 0, 0, 0)$ です。

\[\begin{aligned} p(\boldsymbol{x} \mid \boldsymbol{p}) &= p_1^0 \times p_2^0 \times p_3^1 \times p_4^0 \times p_5^0 \times p_6^0 \\ &= 0^0 \times 0.1^0 \times 0.6^1 \times 0.1^0 \times 0.1^0 \times 0.1^0 \\ &= 1 \times 1 \times 0.6 \times 1 \times 1 \times 1 \\ &= 0.6 \end{aligned}\]

ここでは $p_1 = 0$ かつ $x_1 = 0$ なので $0^0$ が現れます。上の約束により $0^0 = 1$ として計算しています。結果は $p_3 = 0.6$ と一致します。

期待値・分散・共分散

$\boldsymbol{x}$ の各成分 $x_j$ について、次が成り立ちます。

\[\mathbb{E}[x_j] = p_j, \qquad \mathrm{Var}[x_j] = p_j (1 - p_j), \qquad \mathrm{Cov}[x_i, x_j] = -p_i p_j \quad (i \ne j)\]

ベクトルで書くと、期待値は $\mathbb{E}[\boldsymbol{x}] = \boldsymbol{p}$ です。分散行列は、$\boldsymbol{p}$ を対角成分に並べた対角行列 $\mathrm{diag}(\boldsymbol{p})$ を用いて、次のように表せます。

\[\mathrm{Cov}[\boldsymbol{x}] = \mathrm{diag}(\boldsymbol{p}) - \boldsymbol{p}\boldsymbol{p}^\top\]

導出

$x_j$ は $1$ を確率 $p_j$、$0$ を確率 $1 - p_j$ でとるので以下になります。

\[\mathbb{E}[x_j] = 1 \times p_j + 0 \times (1 - p_j) = p_j\]

また、$x_j \in {0, 1}$ より $x_j^2 = x_j$ なので、$\mathbb{E}[x_j^2] = p_j$ となります。

\[\mathrm{Var}[x_j] = \mathbb{E}[x_j^2] - \left(\mathbb{E}[x_j]\right)^2 = p_j - p_j^2 = p_j (1 - p_j)\]

これは $x_j$ が成功確率 $p_j$ のベルヌーイ分布に従うことと一致します。

$i \ne j$ のとき、$\boldsymbol{x}$ は one-hot なので $x_i$ と $x_j$ が同時に $1$ になることはなく、常に $x_i x_j = 0$ です。したがって $\mathbb{E}[x_i x_j] = 0$ であり、以下を満たします。

$。$ \mathrm{Cov}[x_i, x_j] = \mathbb{E}[x_i x_j] - \mathbb{E}[x_i]\,\mathbb{E}[x_j] = 0 - p_i p_j = -p_i p_j $$

分散が負になるのは、一方のカテゴリが選ばれると、もう一方が選ばれなくなるためです。

具体例

先ほどのサイコロ($\boldsymbol{p} = (0, 0.1, 0.6, 0.1, 0.1, 0.1)$)では、次のようになります。

  • $\mathbb{E}[x_3] = p_3 = 0.6$
  • $\mathrm{Var}[x_3] = 0.6 \times (1 - 0.6) = 0.24$
  • $\mathrm{Cov}[x_2, x_3] = -p_2 p_3 = -0.1 \times 0.6 = -0.06$

他の分布との関係

  • ベルヌーイ分布:$M = 2$ のとき、$x_2 = 1 - x_1$、$p_2 = 1 - p_1$ なので、 \(p(\boldsymbol{x} \mid \boldsymbol{p}) = p_1^{x_1} (1 - p_1)^{1 - x_1}\) となり、ベルヌーイ分布に一致します。
  • 多項分布:カテゴリカル分布は、試行回数 $n = 1$ の多項分布です。多項分布は、$n$ 回の試行での各カテゴリの出現回数を扱います。

最尤推定法

最尤推定法 を参照してください。

カテゴリカル分布では、推定したいパラメータ $\theta$ はパラメータベクトル $\boldsymbol{p} = (p_1, \ldots, p_M)$ に対応します。

$N$ 個の独立な観測 $\boldsymbol{x}^{(1)}, \ldots, \boldsymbol{x}^{(N)}$ が得られたとき、カテゴリ $j$ の観測回数を $N_j = \sum_{n=1}^{N} x_j^{(n)}$ とします。制約 $\sum_j p_j = 1$ のもとで対数尤度を最大化すると、最尤推定量は次のようになります。

\[\hat{p}_j = \frac{N_j}{N}\]

つまり、各カテゴリの観測された相対頻度が、そのまま最尤推定値になります。