Koike's Lemma

ITやビジネスに関する雑記

ベイズの定理とナイーブベイズ分類器を通信路線図を使って説明する

最近,「パターン認識機械学習」を教科書とするレクチャを受けている.そこで最初に出てくるのがベイズの定理であり,教科書の至る所で使われている.自分が最初にベイズの定理を習ったのは大学での情報通信理論の授業だった.その時の通信路線図を使った説明がとても分かりやすかったので,加筆修正してここに書いておきたいと思う.

ベイズの定理の通信路線図を用いた説明

ある通信路を用いてAさんからBさんに記号を送信する.ただし,通信路にはノイズがありBさんは誤った記号を受け取ってしまうことがある.その際,Bさんの受信記号からAさんの送信記号を推定することを考える.念のため「パターン認識機械学習」に出てくる有向グラフィカルモデルで表すと以下のようになる(後述する通信路線図は有向グラフィカルモデルに詳細情報を書き加えた感じになっている).
f:id:koikezlemma:20140202062559p:plain:w150

通信路線図

通信路は下記の通信路線図のようになっているものとする.
f:id:koikezlemma:20140202163508p:plain:w250
Aさんはa0またはa1の2種類の記号を送信する.ただし,a0,a1の送信頻度(生起確率)は分かっており,a0を送信する確率を0.6,a1を送信する確率を0.4とする.また,Bさんはb0またはb1の2種類の記号を受信する.受信記号として,a0,a1を使ってもよいが,見にくいので異なる表記にする(一般的には送信記号と受信記号は同じでなくてもよい).通信に誤りが無い時,a0送信→b0受信,またはa1送信→b1受信となる.送信記号がa0なのにBさんがb1を受信してしまう確率(誤り率)を0.05,送信記号がa1なのにBさんがb0を受信してしまう確率(誤り率)を0.1とする.

事前確率

まず,Bさんが受信記号bを確認する前に送信信号aを予測することを考える.この場合,Aさんの送信頻度から予測するしかない.
よって,送信記号がa0である確率は
p(a_0)=0.6
であり,送信記号がa1である確率は
p(a_1)=0.4
である(ある送信記号aがa0である確率p(a=a_0)のことをp(a_0)と表記する).
よって,この状況で送信信号aを予測すると,「確率0.6でa0」となる.

これらの確率を事前確率と呼ぶ.

事後確率

次にBさんが受信記号bを確認した後で送信信号aを予測することを考える.

受信記号がb0だった時

受信記号がb0となるのは,
case1: 送信記号a0が正しく送信された
case2: 送信記号a1が誤って送信された
のどちらかである.
ここで,受信記号を確認する前の状態では,case1が起こる確率は
p(a=a_0,b=b_0)=0.6*0.95=0.57
case2が起こる確率は
p(a=a_1,b=b_0)=0.4*0.1=0.09
である.
受信記号b0を確認した後は.case1またはcase2のどちらかが発生したということが分かっているので,送信記号がa0である確率はcase1,case2のうちcase1である確率となり,
p(a_0|b_0) = \frac{0.57}{0.57+0.09}=0.93
となる.同様に送信記号がa1である確率はcase1,case2のうちcase2である確率となり,
p(a_1|b_0) =\frac{0.09}{0.57+0.09}=0.07
となる.
よってこの状況で送信信号aを予測すると,「確率0.93でa0」となる.

受信記号がb1だった時

上記と同様に考えることができる.受信記号がb1となるのは,
case3: 送信記号a0が誤って送信された
case4: 送信記号a1が正しく送信された
のどちらかである.
受信記号b1を確認した後は.case3またはcase4のどちらかが発生したということが分かっているので,送信記号がa0である確率はcase3,case4のうちcase3である確率となり,
p(a_0|b_1) =\frac{p(a_0,b_1)}{p(a_0,b_1)+p(a_1,b_1)}=\frac{0.6*0.05}{0.6*0.05+0.4*0.9} = 0.08
となる.同様に送信記号がa1である確率はcase3,case4のうちcase4である確率となり,
p(a_1|b_1) =\frac{p(a_1,b_1)}{p(a_0,b_1)+p(a_1,b_1)}=\frac{0.4*0.9}{0.6*0.05+0.4*0.9} = 0.92
となる.
よってこの状況で送信信号aを予測すると,「確率0.92でa1」となる.

これらの確率は事後確率と呼ばれる.
このように,新しい情報(受信記号)を得ることにより,確率分布は事前確率から事後確率に変化する.

一般化

上記を一般化して,受信信号がbjだった時,送信信号がaiである確率を考えると,これまでと同様の考え方で,
p(a_i|b_j) =\frac{p(a_i)p(b_j|a_i)}{\Sigma_{k}p(a_k)p(b_j|a_k)}
となる.
これをベイズの定理と呼ぶ.

応用例:モンティ・ホール問題

応用例として,モンティ・ホール問題と呼ばれる問題を考える.この問題は答えを説明されても納得しない人が多い問題として知られている.

プレイヤーの前に3つのドアがあって、1つのドアの後ろには景品の新車が、2つのドアの後ろにはヤギ(はずれを意味する)がいる。プレイヤーは新車のドアを当てると新車がもらえる。プレイヤーが1つのドアを選択した後、モンティが残りのドアのうちヤギがいるドアを開けてヤギを見せる。ここでプレイヤーは最初に選んだドアを、残っている開けられていないドアに変更してもよいと言われる。プレイヤーはドアを変更すべきだろうか?

モンティ・ホール問題 - Wikipedia

答えとしてはドアを変更すべきなのだが,その理由を通信路線図を使って説明する.説明のために,3つのドアに0,1,2とインデックスをつける.そして,ユーザはドア0を選んだものとする.この時,通信路線図は以下のようになる.
f:id:koikezlemma:20140202170319p:plain:w400
送信側は「当たりのドア」であり,ドアiが当たりである確率をaiと書く.受信側は「モンティが開けるドア」であり,ドアjを開ける確率をbjと書く.

ユーザがドア0を選んだ後,モンティがドア1を開けた時

この時,上記のオレンジ色の矢印のどれかが起こっている.よって,ドアを変更しないで当たりになる確率は,
p(a_0|b_1) = \frac{\frac{1}{3}\cdot\frac{1}{2}}{\frac{1}{3}\cdot\frac{1}{2}+\frac{1}{3}\cdot 0+\frac{1}{3}\cdot 1}=\frac{1}{3}
であり,ドアを変更した時当たりになる確率は
p(a_2|b_1) = \frac{\frac{1}{3}\cdot 1}{\frac{1}{3}\cdot\frac{1}{2}+\frac{1}{3}\cdot 0+\frac{1}{3}\cdot 1}=\frac{2}{3}
となる.よって,ドアを変更したほうが当たる確率が上昇する.他のケースでも同様のことがいえる.

注意事項として,上記の通信路線図では
p(b_1|a_0) = p(b_2|a_0) = \frac{1}{2}
としているが,これは成り立つとは限らない(例えばプレーヤーはモンティの癖を知っているかもしれない).もし成り立たない場合には上記の確率は異なる値となる.例えば,モンティが常にはずれドアのうち小さいインデックスのドアを開ける癖があるならばドアを変えても確率は変化しない.

応用例:ナイーブベイズ分類器

最後にもう少し発展させてナイーブベイズ分類器について説明する.ここでは,Aさんは同じ送信記号をBさんとCさんの二人に送信するものとする.この時,Bさんの受信記号とCさんの受信記号の両方からAさんの送信記号を推定することを考える.念のため,有向グラフィカルモデルで表すと以下のようになる.
f:id:koikezlemma:20140202062605p:plain:w150

そして,通信路線図は下図であるとする.
f:id:koikezlemma:20140202142035p:plain:w300
この時,BさんとCさんは同じ送信記号を受信するので,BさんとCさんの受信記号には相関がある.しかし,もし,Aさんの送信記号がa0と分かっている時は,Bさんの受信記号とCさんの受信記号は互いに独立である.なぜならば,Bさんの受信記号はBさんの通信路のみに依存し,Cさんの受信記号はCさんの通信路のみに依存するからである.例えば,Bさんがb0を受信する確率はCさんの受信記号に関わらず,0.9である.一般化すると任意のai,bj,ckにおいて下記が成り立っている.
p(b_j,c_k|a_i)=p(b_j|a_i)p(c_k|a_i)
この時,Bさんの受信記号とCさんの受信記号はAさんの送信記号のもとで条件付き独立であるという.

Bさんの受信記号がb0,かつ,Cさんの受信記号がc1だった時(他の場合は省略する)

送信記号がa0であることが分かっている時,Bさんがb0を受信し,Cさんがc1を受信する確率は,
p(b_0,c_1|a_0) =0.9*0.2
である.一方,送信記号がa1であることが分かっている時,Bさんがb0を受信し,Cさんがc1を受信する確率は,
p(b_0,c_1|a_1) =0.05*0.7
である.よって,送信記号がa0であった確率は,
p(a_0|b_0,c_1) =\frac{p(a_0)p(b_0,c_1|a_0)}{p(a_0)p(b_0,c_1|a_0)+p(a_1)p(b_0,c_1|a_1)} = \frac{0.4*0.9*0.2}{0.4*0.9*0.2+0.6*0.05*0.7}=0.77
であり,送信記号がa1であった確率は,
p(a_1|b_0,c_1) =\frac{p(a_1)p(b_0,c_1|a_1)}{p(a_0)p(b_0,c_1|a_0)+p(a_1)p(b_0,c_1|a_1)} = \frac{0.6*0.05*0.7}{0.4*0.9*0.2+0.6*0.05*0.7}=0.23
となる.
よってこの状況で送信信号aを予測すると,「確率0.77でa0」となる.

このような条件付き独立性の元でのベイズの定理を用いた分類手法(ここでは送信記号の推定)をナイーブベイズ分類器と呼ぶ.