ベイジアン(Bayesian Network)ネット 2007.5.29 furuya
確率のネットあるいは、風が吹けば桶屋が儲かる?
1、確率の復習
標本空間 Ω: 起こりうる全ての集合。
事象 A :標本空間の部分集合。
確率 P(A): Aの起こる確率。
例1:さいころ
Ω={1,2,3,4,5,6}
P({1})=P({2})=・・・ =P({6})= 1/6
例2:天気
Ω={晴、曇、雨}
P(晴)=0.6、P(曇)=0.3、 P(雨)=0.1
2、条件付確率
事象Aが起こっている時、事象Bが起こる確率、を条件付確率と言う
確率の積の公式
3、ベイズの法則
積の公式より、
この2式より
両辺をで割って、
(この関係式をベイズの法則と言う)
この式から、事前確率2つ(P(A),P(B))と条件付確率1つ(P(A|B))から、条件付確率1つ(P(B|A))を求められることが分かる。
4、べイジアンネット
2つの事象A,Bに、次のような確率があったとする。
例えば、Aは晴、Bは風、と考えれば、晴に風が吹く確率は0.1、晴ていないとき風が吹く確率は0.4って感じ。
この関係を、図で表したのがベイジアンネットである。
右の表は、左図の矢印に沿った関係を示している。が、ベイズの公式を使うと矢印を遡る関係(P(B)やP(A|B))を求めることができる。
5、もう少し複雑な例
熱、咳、風邪の関係をベイズネットで表現
A:熱がある、
B:咳が出る、
C:風邪、
P(A)=0.2
P(B)=0.1
右の表は、矢印に沿った関係を示している。
ベイズの公式を使うと矢印を遡れる。
Cが真の時Aが真の確率
6.ベイズの分類
ベイズの法則の|の右側をxのベクトルと見ると式10が出る、
式11は、図の矢印に沿った方向なので、ベイズネットの確率の表から計算できる(左辺の意味を考えれば分かる)。
式10の右辺の分母は、特定のメールが来る確率。特定のメールとは、
”click”と”I”があるメールはx1=’1’,x2=’1’、
”click”があって”I”がないメールはx1=’1’,x2=’0’、
”click”がなくて”I”があるメールはx1=’0’,x2=’1’、
”click”も”I”もないメールはx1=’0’,x2=’0’、
=c1が起こる確率*c1が起こったとき特定の(例えばx1=1,x2=0)が起こる確率
+c2が起こる確率*c1が起こったとき特定の(例えばx1=1,x2=0)が起こる確率
+…
+ckが起こる確率*c1が起こったとき特定の(例えばx1=1,x2=0)が起こる確率
となる。
この右辺の各項は、ベイズネットの確率表から求めることができる。
でも、これ(右辺の各項)って式10の分子と同じ。
それでは、ってことで、麻疹、百日咳、風疹、の例で考えると。
“熱あり”“咳なし”“発疹なし”の場合、
P(x1=1,x2=0,x3=0)
=P(麻疹)*P(x1=1,x2=0,x3=0|麻疹)
+P(百日)*P(x1=1,x2=0,x3=0|百日)
+P(風疹)*P(x1=1,x2=0,x3=0|風疹)
=P(麻疹)*P(x1=1|麻疹)*P(x2=0|麻疹)*P(x3=0|麻疹)
+...
+...
って具合。
例:スパムメール発見
メール全体の内、spam
メールの割合は0.1と
仮定すると。
メールが来て”click”と”I”が入って
いる確率は、
このような計算を、goodメールに対しても行い、確率の高い方を選ぶ。
EXCELで人工知能
以下の病気が発症する確率は、はしか0.2、百日咳0.1、風疹0.15とする。
熱があり、咳がなく、発疹がない時の各病気の確率をEXCELで求めよう。
|
付録: 式2の導出
(1) 確認: 式2以降に出てくるP(C|A,B)は、AとBのANDが成り立った時Cが起こる確率を表す。分かりやすく書くとP(C|(A∩B))となる。以下ではP(C|A∩B)と書く。
(2) 準備1: 式1の確認
ベイズの法則で上のようになる。この最右辺を図1に照らし合わせれば納得できると思う。
(3) 準備2: P(B∩C∩A)の変換
A∩Bを組にして考えてベイズの法則を適用すると、
P(B∩C∩A)= P(A∩B)・P(C|A∩B)‥‥(式4)
この右辺のP(A∩B)をベイスの法則で展開すると、P(A∩B)=P(B)・P(A|B)なので、(式4)は、
P(B∩C∩A)= P(B)・P(A|B)・P(C|A∩B) ‥‥(式5)
となる。
(4) これより本番
式3のアナロジーで、
AとBは独立なので、は、いずれもP(A)となる。
式6をさらに整理すると。
となる。この右の2辺の両辺をP(A)で割ると、式2がでてくる。