名古屋で数学するプログラマ(仮)

@antimon2 が趣味兼一部本職の数学で何かするときのブログ。

ベイズの展開公式

前回から2か月以上間が空いてしまいました。
勉強の続きです。というかまともな連休がないと勉強が進まない自分をなんとかしたい…。

事前確率・事後確率

事前確率・事後確率というのは、ベイズの定理やその応用を勉強していて初めて触れた言葉です。

事前確率
先に知られている(あるいは"事前に与える")確率。
事後確率
条件を加えて算出された条件付き確率。

ベイズの公式:

\displaystyle P(X|Y) = \frac{P(Y|X)P(X)}{P(Y)}

で言うと、

  • 事前確率…P(X)
  • 事後関数…P(X|Y)

となります(確率変数 X に着目した場合)。

確率変数の独立性

確率変数の独立性
確率変数 X と Y について、P(X|Y) = P(X) が成立するとき、X と Y は「独立」である、と言う。

※P(X|Y) = P(X) なら、乗法定理より P(Y|X) = P(Y) も言えます。

この定義から、以下が成り立ちます。

  • 確率変数 X と Y が独立ならば、 P(X, Y) = P(X)P(Y) 。

証明は乗法定理からあっという間なので省略。
この式を利用して、独立ではない(もしくは独立性が確認されていない)2つの確率変数の同時確率を P(X)P(Y) で計算することもあるそうです。多少の誤差が生じるけれど「パラメータが多すぎて計算できない」よりはマシ、ということで。

原因の確率、結果の確率

ベイズの公式に意味付けします。
今まで確率変数として、無機質な X, Y を使ってきましたが、ここで一時的に H, D に置き換えます。その意味は以下の通り:

H
原因や仮定(Hypothesis)
D
H のもとで得られる結果やデータ(Data)

ベイズの公式は以下のようになります。

\displaystyle P(H|D) = \frac{P(D|H)P(H)}{P(D)}

この式に現れる確率のウチ、

  • P(D|H)…結果の確率(原因Hが与えられたときに得られたデータDの確率なので)
  • P(H|D)…原因の確率(データDが得られたときの原因がHである確率なので)

と呼びます。
つまりベイズの公式は、結果の確率から原因の確率を導出する公式、になっているというわけですね。

ベイズの展開公式

今、原因が複数考えられて、それらを H1, H2, … , Hn とします。
結果Dは、原因 H1〜Hn のいずれかから起きるものであることが分かっていて、漏れはない(つまり全射)とします。

さらに。
H1〜Hn が互いに独立と仮定します。

すると以下が成り立ちます。

P(D) = P(D, H_1) + P(D, H_2) + \cdots + P(D, H_n)

さらに乗法定理より

P(D) = P(D|H_1)P(H_1) + P(D|H_2)P(H_2) + \cdots + P(D|H_n)P(H_n)

これを使ってベイズの公式を変形します。
確率変数 Hi(i=1, 2, … , n) について、

\displaystyle P(H_i|D) = \frac{P(D|H_i)P(H_i)}{P(D|H_1)P(H_1) + P(D|H_2)P(H_2) + \dots + P(D|H_n)P(H_n)}

ここでもう一つの言葉を定義。

尤度
事前確率から事後確率を算出する際の「もっともらしさ」を表す確率。

ベイズの展開公式(Hiに着目)で言うと、

  • 事前確率…P(Hi)
  • 尤度…P(D|Hi)
  • 事後確率…P(Hi|D)

となります。
先ほど定義した別の言葉がありましたが、それらとの関係は

  • 結果の確率=尤度
  • 原因の確率=事後確率

となります…なんか字面だけ見るとちぐはぐしているように見えますね。
文脈で呼ばれ方が変わってくるワケなのですが、詳細はまた機会があれば。

応用例

こんな問題を考えます*1

[問題]
赤玉と白玉合わせて3個入った壺が3つある。壺1には赤玉が1つ、壺2には赤玉が2つ、壺3には赤玉が3つ入っている。今どれか1つの壺から1個取り出してみたところ、赤玉であった。取り出した壺が壺3である確率を求めよ。

これをベイズの展開公式にあてはめると、以下のようになります。

P(壺3|赤) = P(赤|壺3)P(壺3) / (P(赤|壺1)P(壺1)+P(赤|壺2)P(壺2)+P(赤|壺3)P(壺3))

つまり

  • 事前確率…P(壺3)
  • 尤度…P(赤|壺3)
  • 事後確率…P(壺3|赤)

であり、この問題は「事前確率や尤度から、事後確率を求める問題」になっていることはよく分かります。

まず、尤度(=結果の確率)から見てみましょう。
これはすぐに分かります。

  • P(赤|壺1)…壺1から取り出した玉が赤玉である確率=1/3。
  • P(赤|壺2)…壺2から取り出した玉が赤玉である確率=2/3。
  • P(赤|壺3)…壺3から取り出した玉が赤玉である確率=3/3(=1)。

次に事前確率、なんですが…。
あれ。どの壺が選ばれる確率、というのは、条件としてどこにも出てきませんね。
そこで、ここでは各壺が選ばれる確率を勝手に仮定します。例えば、

  • P(壺1)…壺1が選ばれる確率=1/3。
  • P(壺2)…壺2が選ばれる確率=1/3。
  • P(壺3)…壺3が選ばれる確率=1/3。

うん、これ、一番ストレートで直感的で、合ってるような気がしますよね。ということでこれで行きましょう*2

さぁ、これで全て揃いました。事後確率を求めます。

P(壺3|赤) = 1×1/3 / (1/3×1/3 + 2/3*1/3 + 3/3*1/3) = 1/2

ということで答えは1/2。

この例題は、ベイズの公式(ベイズの展開公式)の使用例であるとともに、ベイズの公式の意味付けの理解のための例示にもなっています。

  • Hi…どの壺を選んだかという「原因」
  • D…どの色の玉が取り出されたかという「結果」

例示は理解の試金石、ですねっ(テトラちゃん風に)

他の例(取り敢えずトピック上げだけ)

今のは本当に分かりやすい(取っつきやすい)例ですが、他に

  • ベイズ更新:計算した事後確率を事前確率に設定してベイズ計算を繰り返す
  • モデルの設定:先ほど「事前確率は同等」と仮定したところを、事前確率をある分布に従うモノと仮定してベイズ計算

などなどありますが、今日はここまで。

次回

ナイーブベイズフィルターを実装したい。

*1:書籍「史上最強図解 これならわかる! ベイズ統計学」(ISBN978-4-8163-5181-5)第3章§10の例題より。

*2:このように、「何も情報が無ければ確率は同等と仮定する」ことを「理由不十分の原則」と呼ぶそうです。