ベイズの基礎

確率の公理

標本空間を \(S\)、そのσ加法族を \(\mathfrak{B}\) とする。

  • \(\forall A \in \mathfrak{B} \left( 0 \leq P(A) \leq 1 \right)\)
  • \(P(S) = 1\)
  • \(\forall A, B \in \mathfrak{B} \left(A \cap B = \emptyset \Rightarrow P(A\cup B) = P(A) + P(B) \right)\)

条件付き確率

確率の公理に条件付き確率の概念を導入する。 事象 \(A\) が起こった条件のもとで事象 \(B\) が起こる確率を \(P(B|A)\) と書く。

次式の乗法定理が成り立つ。

\[P(A \cap B) = P(A|B)P(B) = P(B|A)P(A)\]

ベイズの定理

事象を原因と結果に分けて意味付けを与える。 原因となる事象(仮定)を \(H\)、結果として得られた事象(データ)を \(D\) として乗法定理に当てはめると次式が得られる。

\[P(H \cap D) = P(H|D)P(D) = P(D|H)P(H)\]

これを変形して

\[P(H | D) = \frac{P(D|H)P(H)}{P(D)}\]

これは得られたデータから原因を推定する式となっている。 これをベイズの定理という。

原因 \(H\) からデータ \(D\) が観測される確率 \(P(D|H)\) は既知であるときに、逆に観測データから原因を推定するのがベイズの定理である。

全確率の定理

全事象を次のように互いに排反な事象(原因)に分割できるとする。

\[S = H_1 \cup H_2 \cup \cdots \cup H_n, \quad (i \neq j \Rightarrow H_i \cap H_j = \emptyset)\]

結果からデータ \(D\) が得られる確率は次式となる。

\[\begin{split}P(D) &= P\left((D\cap H_1)\cup(D\cap H_2)\cup\cdots\cup(D\cap H_n)\right) \\ &= P(D\cap H_1) + P(D\cap H_2) + \cdots + P(D\cap H_n) \\ &= P(D|H_1)P(H_1) + P(D|H_2)P(H_2) + \cdots + P(D|H_n)P(H_n) \\ &= \sum_{k = 1}^n P(D|H_k)P(H_k)\end{split}\]

これを全確率の定理という。

この定理をベイズの定理に適用すると次式を得る。

\[P(H_i|D) = \frac{P(D|H_i)P(H_i)}{P(D)} = \frac{P(D|H_i)P(H_i)}{\sum_k P(D|H_k)P(H_k)}\]

理由不十分の原則 (principle of insufficient reason)

結果についてまだなんのデータも得られていないとする。 この段階ではどの事象が起きたのか推定する情報が全く無い。 したがって、最初の段階ではすべて同様に確からしいとするしかない。

\[P_0(H_1) = P_0(H_2) = \cdots = P_0(H_n) = \frac{1}{n}\]

これを理由不十分の原則と呼ぶ。

ベイズ更新

データの列 \(D_1, D_2, \cdots, D_m\) が観測された場合、その原因が \(H_i\) である確率は次式となる。

\[P_m(H_i) = P(H_i|D_1, D_2, \cdots, D_m)\]

この式にベイズの定理を適用すると次の漸化式が得られる。

\[\begin{split}P_m(H_i) &= \frac{P(D_m|H_i)P(H_i|D_1, D_2, \cdots, D_{m-1})} {\sum_k P(D_m|H_k)P(H_k|D_1, D_2, \cdots, D_{m-1})} \\ &= \frac{P(D_m|H_i)P_{m-1}(H_i)}{\sum_k P(D_m|H_k)P_{m-1}(H_k)}\end{split}\]

この漸化式に従って、データを観測するたびに原因の推定確率を更新していく処理をベイズ更新という。

逐次合理性

ベイズ更新は、データの観測順に従って順に推定確率を更新していく形式となっている。 この形式だとデータの並び順に結果が依存してしまう恐れがある。 しかし実際にはデータの並び順に依存しない。これを逐次合理性という。

最後のデータ \(D_m\) が観測されると、推定確率は次式となる。

\[\begin{split}P_m(H_i) &= \frac{P(D_m|H_i)P_{m - 1}(H_i)}{\sum_k P(D_m|H_k)P_{m - 1}(H_k)} \\ &= \frac{P(D_m|H_i) \frac{P(D_{m-1}|H_i)P_{m-2}(H_i)}{\sum_{k'} P(D_{m-1}|H_{k'})P_{m-2}(H_{k'})} }{\sum_k P(D_m|H_k) \frac{P(D_{m-1}|H_k)P_{m-2}(H_k)}{\sum_{k'} P(D_{m-1}|H_{k'})P_{m-2}(H_{k'})} } \\ &= \frac{P(D_m|H_i)P(D_{m-1}|H_i)P_{m-2}(H_i)} {\sum_k P(D_m|H_k)P(D_{m-1}|H_k)P_{m-2}(H_k)} \\ &= \cdots \\ &= \frac{P(D_m|H_i)P(D_{m-1}|H_i)\cdots P(D_1|H_i)P_0(H_i)} {\sum_k P(D_m|H_k)P(D_{m-1}|H_k)\cdots P(D_1|H_k)P_0(H_k)}\end{split}\]

この式はデータ \(D_j\) の並び順に依らないことが見て取れる。

ここで

\[\begin{split}Q_m(H) &= P(D_m|H)P(D_{m-1}|H)\cdots P(D_1|H)\cdot P_0(H) \\ &= \left(\prod_{j=1}^m P(D_j|H)\right)P_0(H)\end{split}\]

とおくと

\[P_m(H_i) = \frac{Q_m(H_i)}{\sum_k Q_m(H_k)}\]

原因の推定

\(\{H_i\}\) のうち最も確率 \(P_m(H_i)\) の高い事象が起こったと推定する。 \(P_m(H_i)\) の式において分母は定数であるため、推定には無関係。 したがって推定には \(Q_m(H_i)\) が最大となる事象を選べば良い。

なお、\(Q_m(H)\) は次の漸化式によって逐次的に更新していくことができる。

\[Q_m(H) = P(D_m|H)Q_{m-1}(H)\]

ベイジアンフィルタ

\(H\) を「迷惑メールである」、 \(\bar{H}\) を「迷惑メールではない」としてメールを分類する。

\[S = H \cup \bar{H}\]

データ観測の事象 \(D_j\) は、メールからあるキーワードが検出されたことを表す。 例えば次のようなキーワードを考える。

\[D_j \in \{ "秘密", "無料", "科学", "統計" \}\]

メールから得られたキーワード列 \(D_1, D_2, \cdots, D_m\) から \(Q_m(H)\)\(Q_m(\bar{H})\) を計算し、どちらが大きいかで分類すれば良い。