ベイズ推定,ベイジアンネットワーク

ベイズ推定,ベイジアンネットワーク
ベイズの定理
ベイジアンネットワークの構造
ベイジアンネットワークによる確率推論
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
ベイズの定理
基礎空間Ω:
確率現象で起こりうる結果を網羅した集合
Ωの部分空間としての事象
確率,結合(同時)確率
P(A):
確率変数Aが与える事象が起こる確率
P(A,B):
A かつ B である確率
条件付確率
P(A | Γ)
Γ: 確率変数の並び
Γの条件が成立したもとで,Aが成り立つ確率.事後確率
P(A)
事前確率
定義: P(A | B)= P(A, B) / P(B)
確率の乗法公式:
P (A, B)= P (A | B)P(B) = P(B | A)P(A)
P(A, Γ)= P(A | Γ)P(Γ)= P(Γ|A)P(A)
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
AとBが独立な場合:
P(A | B) = P(A),
P(A, B)= P(A)P(B)
P(A | A)=1
事象 Bi (i=1,…,n) が
排反的(互いに素) (i ≠ j において P(Bi, Bj)= 0) ,
網羅的(Ω= B1 ∪ … ∪ Bn)
な場合,
P(A)
= P(A, B1)+ … + P(A, Bn)
= P(A | B1)P(B1)+ … + P(A | Bn)P(Bn)
= Σ_k P(A | Bk)P(Bk)
P(Bi | A)= P(A | Bi)P(Bi)/ P(A)
ベイズの定理
P ( A | Bi ) P ( Bi )
P( A | Bi ) P( Bi )

P ( Bi | A) 
P ( A)
 k P ( A | Bk ) P ( Bk )
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
条件付確率表 (CPT: Conditional Probability
P(X | U1, U2, …, Ue)
変数: X,U1,…, Uj, …,Ue
変数の値: X
に対して, x1,, xm
Table)
u1_1,,u1_m1
U1

Ue

ue_1,,ue_me
X の値の数は m 個,U1 の値の数は m1 個,…,Ue の値の数は me 個.
Uj の値の全組合せ
X = x1 となる確率
・・・
X = xm となる確率
u1_1,・・・,ue_1
P(x1 | u1_1,・・・,ue_1)
・・・
P(xm | u1_1,・・・,ue_1)
:
u1_p,・・・,ue_q
:
u1_m1, ・・・, ue_me
:
P(x1 | u1_p,・・・,ue_q)
:
P(x1 | u1_m1,・・・,ue_me)
・・・
・・・
・・・
・・・
:
P(xm | u1p,・・・,ue_q)
:
P(xm | u1_m1,・・・,ue_me)
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
ベイズ推定,ベイジアンネットワーク
ベイズの定理
ベイジアンネットワークの構造
ベイジアンネットワークによる確率推論
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
ベイジアンネットワークの構造
(信念 | 確率 | 因果)ネットワーク
グラフの部品: ノード(節点), アーク(弧)
グラフ: (ノード集合,アーク集合)
ベイジアンネットワークを構成するグラフ:
有向非循環グラフ: ループ,閉路がない,有向グラフ.
単一結合(singly connected グラフ):
グラフを無向としても,ループ,閉路を含まないグラフ.
1つのノードに,1つの確率変数を割り当てる.
ネットワーク上での条件付確率
Γ(A)
P(A | Γ(A)):
Γ(A): Aの親の確率変数の並び.
親は0人以上,任意.
B1
・・・
Br
A
根ノード(トップ),葉ノード(ボトム)
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
1つの袋から,赤,白,黄,・・・,黒のn種類の玉を取り出す.
Σ_玉の色 P(玉の色) = 1.0
n種類の色(事象:「玉の色」という変数に対する値の数)に対して,
確率はn-1の自由度.
2つの袋から,玉を取り出す.
布の袋: 赤玉が20個,白玉が10個
紙の袋: 赤玉が5個, 白玉が25個
袋
確率変数は,袋の種類と,玉の色の,2個.
条件付確率表: P(玉の色 | 袋の区別)
赤玉
白玉
布の袋
2/3
1/3
紙の袋
1/6
5/6
玉
布の袋が選ばれた: 赤玉の確率は,2/3.
袋を布とした場合:Σ_玉の色 P(玉の色 | 袋=布) = 1.0
袋を紙とした場合:Σ_玉の色 P(玉の色 | 袋=紙) = 1.0
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
赤玉が選ばれたとしよう.
この,赤玉は,布の袋か,紙の袋か,どちらから取り出されたのか?
ネットワーク上位の確率変数「袋の種類」の確率を知りたい.
P(布|赤)=P(布,赤)/ P(赤)
= P(赤|布)P(布)/
(P(布,赤)+P(紙,赤))
= P(赤|布)P(布)
/ (P(赤|布)P(布)+P(赤|紙)P(紙))
#
布の袋,紙の袋,どちらかを選択する確率は1/2
(理由不十分の原則).
=(2/3)(1/2)
/ ((2/3)(1/2)+(1/6)(1/2))
=(1/3)/ (1/3+1/12)
= 4/5
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
風邪,食過ぎにより,腹痛となるネットワーク.
風: 2値
風邪でない,ある:
風=0,風=1
食過ぎでない,ある:
食=0,食=1
腹痛でない,ある:
腹=0,腹=1
風邪
0 0.90
1 0.10
食: 2値
食過ぎ
0 0.95
1 0.05
腹: 2値
風 食
0 0
0 1
1 0
1 1
腹 0
0.99
0.20
0.30
0.10
1
0.01
0.80
0.70
0.90
確率データを集めた時点での,
風邪でなかった人,風邪の人の割合:
0.10, 0.90
食過ぎでなかった人,食過ぎの人の割合:
0.05, 0.95
条件付確率表: (腹=0,1 の一方の値が分かればよい.自由度4)
風邪 食過ぎ
腹痛でない
腹痛である
0
0
0.99
0.01
0
1
0.20
0.80
1
0
0.30
0.70
1
1
0.10
0.90
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
腹痛になる確率
風: 2値
食: 2値
P(腹=1)
食過ぎ
=P(腹=1,風=0,食=0) 風邪
0 0.95
0 0.90
+P(腹=1,風=0,食=1) 1 0.10
1 0.05
+P(腹=1,風=1,食=0)
腹: 2値
+P(腹=1,風=1,食=1)
風 食 腹 0
1
=P(腹=1 | 風=0,食=0)
0 0
0.99 0.01
×P(風=0)×P(食=0)
0 1
0.20 0.80
+P(腹=1 | 風=0,食=1)
1 0
0.30 0.70
×P(風=0)×P(食=1)
1 1
0.10 0.90
+P(腹=1 | 風=1,食=0)
×P(風=1)×P(食=0)
+P(腹=1 | 風=1,食=1)×P(風=1)×P(食=1)
= 0.01 × 0.90 × 0.95 + 0.80 × 0.90 × 0.05
+ 0.70 × 0.10 × 0.95 + 0.90 × 0.10 × 0.05
= 0.11555
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
腹痛にならない確率
風 食
腹 0
1
P(腹=0)
0 0
0.99 0.01
=P(腹=0 | 風=0,食=0)
0 1
0.20 0.80
1 0
0.30 0.70
×P(風=0)×P(食=0)
1 1
0.10 0.90
+P(腹=0 | 風=0,食=1)
×P(風=0)×P(食=1)
+P(腹=0 | 風=1,食=0)
×P(風=1)×P(食=0)
+P(腹=0 | 風=1,食=1)×P(風=1)×P(食=1)
= 0.99 × 0.90 × 0.95 + 0.20 × 0.90 × 0.05
+ 0.30 × 0.10 × 0.95 + 0.10 × 0.10 × 0.05
= 0.88445
風邪か風邪でないかの確率と,食過ぎか食過ぎでないかの確率から,
腹痛の確率が分かる(上から下への推論).
腹痛のノードにおいては,
P(腹=1)+P(腹=0)= 0.11555 + 0.88445 = 1.0
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
腹痛があるときに,風邪か,食過ぎかを知る.
風: 2値
腹痛とした時に,風邪である確率:
P(風=1 | 腹=1)
=P( 風=1,腹=1)
風邪
0 0.90
1 0.10
/P(腹=1)
P(風=1,腹=1)
=P(風=1,腹=1,食=0)
食: 2値
食過ぎ
0 0.95
1 0.05
腹: 2値
風 食
0 0
0 1
1 0
1 1
腹 0 1
0.99 0.01
0.20 0.80
0.30 0.70
0.10 0.90
+P(風=1,腹=1,食=1)
=P(腹=1 | 風=1,食=0)P(風=1)P(食=0)
+P(腹=1 |風=1,食=1)P(風=1)P(食=1)
= 0.70 × 0.10 × 0.95 + 0.90 × 0.10 × 0.05
= 0.071
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
P(腹=1)
=P(腹=1,風=0,食=0)
+P(腹=1,風=0,食=1)
+P(腹=1,風=1,食=0)
+P(腹=1,風=1,食=1)
=P(腹=1 | 風=0,食=0)P(風=0)P(食=0)
+P(腹=1 | 風=0,食=1)P(風=0)P(食=1)
+P(腹=1 | 風=1,食=0)P(風=1)P(食=0)
+P(腹=1 | 風=1,食=1)P(風=1)P(食=1)
= 0.01 × 0.90 × 0.95 + 0.80 × 0.90 × 0.05
+ 0.7 × 0.10 × 0.95 + 0.90 × 0.10 × 0.05
= 0.11555
以上より,
P(風=1 | 腹=1)
=P( 風=1,腹=1)/P(腹=1)
= 0.071 / 0.11555
= 0.61445
腹痛と分かったことで風邪である確率が変化(下から上への推論).
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
腹痛とした時に,風邪でない確率:
P(風=0 | 腹=1)
=P( 風=0,腹=1)/P(腹=1)
P(風=0,腹=1)
=P(風=0,腹=1,食=0)
+P(風=0,腹=1,食=1)
=P(腹=1 | 風=0,食=0)P(風=0)P(食=0)
+P(腹=1 |風=0,食=1)P(風=0)P(食=1)
= 0.01 × 0.90 × 0.95 + 0.80 × 0.90 × 0.05
= 0.04455
P(腹=1)は,先に求めた.
以上より,
P(風=0 | 腹=1)
=P( 風=1,腹=1)/P(腹=1)
=0.04455 / 0.11555
=0.38555
ここで,P(風=1 | 腹=1)+P(風=0 | 腹=1)
= 0.61445 +0.38555 = 1.0
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
腹痛とした時に,食過ぎである確率:
P(食=1 | 腹=1)
=P( 食=1,腹=1)/P(腹=1)
P(食=1,腹=1)
=P(食=1,腹=1,風=0)
+P(食=1,腹=1,風=1)
=P(腹=1 | 風=0,食=1)P(風=0)P(食=1)
+P(腹=1 |風=1,食=1)P(風=1)P(食=1)
= 0.80 × 0.90 × 0.05 + 0.90 × 0.10 × 0.05
= 0.0405
P(食=1 | 腹=1)
=P( 食=1,腹=1)/P(腹=1)
= 0.0405 / 0.11555
= 0.3505
腹痛とした時に,食過ぎでない確率:
P(食=0 | 腹=1)= 1.0 - P(食=1 | 腹=1)= 0.6495
P(風=1|腹=1)= 0.61445,P(食=1|腹=1)= 0.3505
腹痛は,風邪が原因である可能性が高い.
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
別のネットワークの例
確率変数:
A1: 2値
A2: 3値
A3: 2値
A1,A2,A3,
B1,B2,C1,C2
条件付確率
P(A1 | Γ(A1))
=P(A1 | φ )
=P(A1)
P(A2 | Γ(A2))=
P(A3 | Γ(A3))=
P(B1 | Γ(B1))=
P(B2 | Γ(B2))=
P(C1 | Γ(C1))=
P(C2 | Γ(C2))=
B1: 3値
B2: 2値
C1: 2値
C2: 2値
φ:空集合
P(A2)
P(A3)
P(B1 |
P(B2 |
P(C1 |
P(C2 |
A1,A2)
A1,A2,A3)
B1,B2)
B2)
B1とA3は独立,C2とB1は独立:
P(B1 | A1,A2)= P(B1 | A1,A2,A3)
P(C2 | B2)= P(C2| B1,B2)
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
全条件付確率の積を考える.
A1: 2値
A2: 3値
A3: 2値
Aiは独立,Bjは独立,Ckは独立
として,
B1: 3値
P(A1)P(A2)P(A3)
×P(B1|A1,A2)
×P(B2|A1,A2,A3)
×P(C1|B1,B2)P(C2|B2) C1: 2値
=P(A1,A2,A3)
×P(B1|A1,A2)
×P(B2|A1,A2,A3)
×P(C1|B1,B2)P(C2|B2)
=P(A1,A2,A3,B1,B2)
×P(C1|B1,B2)P(C2|B2)
=P(A1,A2,A3,B1,B2,C1,C2)
B2: 2値
C2: 2値
全条件付確率の積が,全確率変数の結合(同時)確率となった.
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
結合確率を表示するための確率の値の数
(1)確率変数の値の個数(自由度).
A2: 3値
A1: 2値
A3: 2値
2×3×2×3×2×2×2-1
=287 種類
(2)条件付確率表の値の個数(自由度).
B1: 3値
B2: 2値
A1,A3: 0入力2値ノード:
2-1=1個の値
A2: 0入力3値ノード:
3-1=2個の値
C1: 2値
C2: 2値
B1: 2値1本,3値1本入力の3値ノード:
2×3×(3-1)=12個の値
B2: 2値2本,3値1本入力の2値ノード:
2×2×3×(2-1)=12個の値
C1: 2値1本,3値1本入力の2値ノード:
自由度の合計
2×3×(2-1)=6個の値
1+1+2+12
C2: 2値1本入力の2値ノード:
+12+6+2
2×(2-1)=2個の値
=36 種類
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
ベイズ推定,ベイジアンネットワーク
ベイズの定理
ベイジアンネットワークの構造
ベイジアンネットワークによる確率推論
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
ベイジアンネットワークにおける確率推論
ネットワークに,外部から観測結果が与えられる.
イベントのもとで,推定したい確率変数の,事後確率を求める.
X: 注目ノード
U1,…,Ur: Xの親ノード
V1,…,Vs: Xの子ノード
Xの上流側
U1
Ur
πメッセ
ージ
外部からの観測結果により,ノードXの確率の値が
影響を受ける.
外部観測結果のノードXへの影響 eX を,上流側分
eX+ と,下流側分 eX- に分ける.
eX = eX+,eX-
(列の連結)
e X  e X , e X
・・・ i ・・・
X
λメッセ
ージ
V1
・・・ j ・・・
Vs
Xの下流側
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
求めたいものは,外部観測結果が得られたときに,Xの値がxとなる確率:
P(x|eX)
= P(x|eX+,eX-)
= P(x,eX+,eX-)/ P(eX+,eX-)
= P(x,eX+)P(eX-|x,eX+)/ P(eX+,eX-)
#
P(x,eX+)を分ける.
= P(eX+)P(x|eX+)P(eX-|x,eX+)/P(eX+,eX-)
#
#
eX+ の影響は,Xを通して,eX- に伝播するため,eX+ の eXー への
直接的影響は,無い.
= P(eX+)P(x|eX+)P(eX-|x)/ P(eX+,eX-)
= (P(eX+) / P(eX+,eX-)) P(x|eX+)P(eX-|x)
続く
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
続き
= (P(eX+) / P(eX+,eX-)) P(x|eX+)P(eX-|x)
#
P(eX+)/P(eX+,eX-)は,決定困難: κとおく.
= κP(x|eX+)P(eX-|x)
= κ π(x|eX+) λ(eX-|x)
π(x|eX+)= P(x|eX+)
λ(x|eX-)= P(eX-|x)
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
P( x | e X )    ( x | e X )  ( x | e X )
P(e X )





,

(
x
|
e
)

P
(
x
|
e
),

(
x
|
e
)

P
(
e
X
X
X
X | x)


P (e X , e X )
κの値の決定: xでの P(x|eX)総和が 1.0 となるように調整.
(Xを固定したときに,eX+,eX-は,条件付独立)
ノードXの値のエビデンス
π(x|eX+)= P(x|eX+):
ノードXにおける値xのπエビデンス.
上流側分の観測結果が及ぼす影響.
λ(x|eX-)= P(eX-|x):
ノードXにおける値xのλエビデンス.
下流側分の観測結果に及ぼす影響.
Xの上流側
U1
・・・ i ・・・
Ur
X
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
π(x|eX+)を求める.
π(x|eX+)=P(x|eX+)
= Σ_u1,…,ur P(x,u1,・・・,ur | eX+)
= Σ_u1,…,ur P(x | u1,・・・,ur,eX+)
× P(u1,・・・,ur | eX+)
# eX+は,u1,・・・,urを通してXに影響
# u1,・・・,urは,独立
= Σ_u1,…,ur P(x | u1,・・・,ur)
× P(u1 | eX+)・・・ P(ur | eX+)
= Σ_u1,…,ur P(x | u1,・・・, ur)
× Π_i P(ui | eX+)
# P(ui | eX+)=πUiX(ui)とおく.--- (*)
= Σ_u1,…,ur P(x | u1,・・・,ur)
× Π_i πUiX(ui)
 ( x | e X )   u , ..., u P( x | u1 ,, u r )
1
r
 U i X (ui )  P(ui | e X )
i
 U i X (ui )
値 ui のノード Ui から,
ノード X への, π メッセージ.
(*)より
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
λ(x|eX-)を求める.
λ(x|eX-)=P(eX-|x)
# eX-を,eX-=eV1-,・・・,eVs-と分解.
= P(eV1-,・・・,eVs- | x)
= P(eV1- | x) ・・・P(eVs- | x)
= Π_j P(eVj- | x)
#P(eVj- | x)を λVjX(x)とおく.
= Π_j λVjX(x)
 ( x | e X )
  j  V j X ( x)
 V j X ( x) 
P (eVj
| x)
V1
X
・・・ j ・・・
Vs
Xの下流側
ノード Vj から,値 x のノード Xへの,λメッセージ.
以上の計算に必要な πUiX(ui), λVjX(x)を定式化する.
Computational Informatics 3, School of Informatics and Sciences, Nagoya University
ベイズ推定,ベイジアンネットワーク
ベイズの定理
ベイジアンネットワークの構造
ベイジアンネットワークによる確率推論
πメッセージ,λメッセージ
初期値,まとめと学習
例
Computational Informatics 3, School of Informatics and Sciences, Nagoya University