Multinomial distributionとCategorical distributionの違い
些細な違いなんだけど調べたのでメモ。Multinomial distributionは多項分布のこと。Categorical distributionは、一般的な日本語表現が見つからなかった(なのでタイトルは英語)。打つのが大変なので、以下カテゴリカル分布と書く。
結論としては、多項分布のn=1の特殊な場合がカテゴリカル分布ですよってこと。以下少しまとめる。
分布を仮定する離散変数をカテゴリと呼ぶとして、
- 多項分布は、n回試行したときに各カテゴリが何回出るかを表す確率分布
- 多項分布は、二項分布を多カテゴリに一般化したもの
- カテゴリカル分布は、多項分布のn=1の場合に相当する
- カテゴリカル分布は、ベルヌーイ分布を多カテゴリに一般化したもの
以上
nokunoさんによるこの記事→ 多項分布の最尤推定 は、多項分布というよりカテゴリカル分布の話。本文には書いてあるけどね。あと最尤推定の結果はどちらにしろ同じなんだけどね
導出メモ
一応最尤推定をやってみる。前回のナイーブベイズのメモの時は省略したので。入力の変数を $ Y = {y_n}_{n=1}^{N} $ とする。
カテゴリカル分布
\begin{align}
p(l) = \pi_{l}, \hspace{2mm} \sum_{l=1}^{L}\pi_{l} = 1
\end{align}
ここで、$\pi_{l}$がパラメータ、lはカテゴリの番号
最尤推定
尤度関数を立てて、最大化することでパラメータを求める。各データは独立に生起すると仮定すると、尤度関数は以下のようになる。
\begin{align}
L(Y; \theta) = \prod_{n=1}^{N} \pi_{y_{n}}
\end{align}
$\theta$はパラメータの集合ということで。
ラベルlの出現回数を$N_{l} = \sum_{n=1}^{N} \delta (y_{n} = l)$とすると、次のように書き直せる。
\begin{align}
L(Y; \theta) = \prod_{l=1}^{L}\pi_{l}^{N_{l}}
\end{align}
よって、対数尤度は以下のようになる。
\begin{align}
\log L(Y; \theta) = \sum_{l=1}^{L} N_{l}\log \pi_{l}
\end{align}
ラグランジュの未定乗数法で解く
nokunoさんの記事の通りだけど、一応手でも解いたのでメモ
\begin{align}
G = \sum_{l=1}^{L} N_{l}\log \pi_{l} + \lambda \Bigl[ \sum_{l=1}^{L} \pi_{l} -1) \Bigr]
\end{align}
として、
\begin{align}
\frac{\partial G}{\partial \pi_{l}} = \frac{N_{l}}{\pi_{l}} + \lambda =0
\end{align}
よって、
\begin{align}
\pi_{l} = -\frac{N_{l}}{\lambda}
\end{align}
ここで、以下の制約条件に代入すると、
\begin{align}
\sum_{l=1}^{L} \pi_{l} = 1
\end{align}
$\lambda = -N$となることがわかるので、求めたかったパラメータは以下のようになる
\begin{align}
\pi_{l} = \frac{N_{l}}{N}
\end{align}
カテゴリの頻度を計算するだけ、カンタン!!