Algorytmy stochastyczne Wykład 08, Sieci bayesowskie
Jarosław Piersa 2014-03-13
1 Powtórzenie z prawdopodobieństwa
Można pominąć przy czytaniu i wracać dopiero, gdy jakieś pojęcia w części właściwej notatek będą niejasne.
1.1 Prawdopodobieństwo
Dla przestrzeni skończonej!
• Prawdopodobieństwem zajścia zdarzenia A jest
P(A) :=
liczba zdarzeń spełniających A liczba wszystkich zdarzeń . W ogólnym przypadku
• Prawdopodobieństwem zajścia zdarzenia ze zbioru A jest
P(A) := miara zbioru A
miara całej przestrzeni = µ(A) µ(Ω). Jeżeli P(A), P(B) — prawdopodobieństwa, to
• P(∅) = 0 ≤ P(A) ≤ 1 = P(Ω),
• P(A) + P(B) ≥ P(A ∪ B),
• P(A ∪ B) = P(A) + P(B) − P(A ∩ B),
• jeżeli A i B są rozłączne, to P(A ∪ B) = P(A) + P(B),
• P(A ∪ B) ≥ P(A) ≥ P(A ∩ B).
Prawdopodobieństwo warunkowe
• Jeżeli P(A), P(B) — prawdopodobieństwa i P > 0, to
• prawdopodobieństwo warunkowe A pod warunkiem B
P(A|B) := P(A ∩ B) P(B)
• intuicyjnie: „Już wiemy, że zaszło B. Jakie są szanse, że zajdzie [jeszcze] A?”
Przykład 1
• Rzucamy kostką sześcienną:
• A = wypadła liczba parzysta
• B = wypadła liczba mniejsza niż 3
P(A|B) := P(A ∩ B) P(B)
= P(Parzysta ∩ mniejsza niż 3) P(mniejsza niż 3)
,
• Zatem
P(A|B) := 1/6 2/6 =1
2.
Przykład 2
• Rzucamy kostką sześcienną:
• A = wypadła liczba parzysta
• B = wypadła liczba mniejsza niż 3
• P-o B pod warunkiem A:
P(B|A) := P(B ∩ A)
P(A) =P(Parzysta ∩ mniejsza niż3) P(parzysta) ,
• i mamy
P(B|A) :=
1/6 3/6 =1
3,
• Nie musi być prawdą (i zwykle nie jest!), że P(A|B) = P(B|A)!
Prawdopodobieństwo warunkowe po wielu zdarzeniach
• prawdopodobieństwo A pod warunkiem B i C
P(A|B, C) = P(A ∩ B ∩ C) P(B ∩ C) Niezależność zdarzeń
• Dwa zdarzenia A i B są niezależne jeżeli
P(A ∩ B) = P(A) · P(B),
• równoważne definicje:
P(A|B) = P(A) P(B|A) = P(B)
• zadanie: dlaczego definicje są równoważne?
• Intuicyjnie: wiedza o tym czy zaszło [lub nie] B nic nam nie mówi o zajściu A Wzór Bayesa
• Dla zdarzeń A i B
• P(A), P(B) > 0 zachodzi
P(A|B) = P(B|A)P(A) P(B)
1.2 Zmienne losowe
• (wersja na egzamin) Zmienna losowa X jest to funkcja mierzalna z B(R) → [0, 1]
• (intuicyjnie) jakie jest prawdopodobieństwo, że zmienna przyjmuje ustaloną wartość np. X = 8?
• (mniej intuicyjnie) jakie jest prawdopodobieństwo, że zmienna przyjmuje jedną z wartości z danego zbioru np. X = 8 lub X = 11 (tzn. X ∈ {8, 11})?
• (znacznie mniej intuicyjnie) a co jeżeli liczb w zbiorze będzie nieprzeliczalnie wiele?
• Zdarzenie „zmienna losowa X przyjmuje wartość 1” oznaczamy X = 1
• Prawdopodobieństwo zdarzenia, że „zmienna losowa X przyjmuje wartość x1” oznaczamy P(X = x1)
• Jeżeli zmienna losowa X przyjmuje k różnych wartości (skończenie wiele), to P(X = x1) + P(X = x2) + · · · + P(X = xk) = 1.
• Podobna własność zachodzi jeżeli wartości jest przeliczalnie wiele,
UWAGA! Jeżeli nie będzie zaznaczone inaczej, to do końca wykładu zakładamy, że zmienna losowa przyjmuje skończenie wiele wartości.
Reguła łańcucha
• Jeżeli zmienna losowa X przyjmuje k różnych wartości, to
k
X
i=1
P(Y |X = xi, Z) · P(X = xi|Z) = P(Y |Z)
Rozkład zmiennej losowej
• w wypadku zmiennej losowej ciągłej — funkcja gęstości,
• dla zmiennych skończonych wystarczy tabela: wartość — prawdopodobieństwo wartości.
P(X = xi|Y = yj) = P(X = xi), dla każdych xi yj.
Niezależność zmiennych losowych X i Y
• Dwie zmienne losowe X i Y są niezależne jeżeli dla i = 1..k i dla j = 1..l każda para zdarzeń (X = xi) i (Y = yl) jest niezależna,
• tzn spełniają
Warunkowa niezależność zmiennych losowych X i Y pod warunkiem zdarzenia C
• Dwie zmienne losowe X i Y są niezależne pod warunkiem C jeżeli dla i = 1..k i dla j = 1..l zdarzenia (X = xi|C) i (Y = yl|C) są niezależne
• tzn spełniają:
P(X = xi|Y = yj, C) = P(X = xi|C), dla każdych xi yj.
(Skrót myślowy) Warunkowa niezależność zmiennych losowych X i Y pod warunkiem zmiennej losowej Z
• Dwie zmienne losowe X i Y są niezależne pod warunkiem C jeżeli dla i = 1..m i dla j = 1..n, k = 1..o zdarzenia (X = xi|Z = zk) i (Y = yl|Z = zk) są niezależne
• tzn spełniają:
P(X = xi|Y = yj, Z = zk) = P(X = xi|Z = zk), dla każdych xi yj, zk.
2 Sieci bayesowskie
2.1 Przykład 1
Pogoda słońce,deszcz
Spóźnienie nie,15 min,tak
Tabele prawdopodobieństw warunkowych (TPW, CPT = Conditiona Probability Tables)
• Pogoda
Pogoda Pog =słońce Pog = deszcz
.45 .55
• Spóźnienie
warunek P(Sp = nie) P(Sp = 15m) P(Sp = tak)
Pogoda = słońce .8 0.1 0.1
Pogoda = deszcz .3 0.4 0.3
2.1.1 Wnioskowanie
Jakie jest prawdopodobieństwo, że się spóźnię do 15 minut?
• Do przeliczenia na tablicy!
• z reguły łańcucha:
P(Sp = 10m) =
2
X
i=1
P(S = 10|P = pi) · P(P = pi)
• po podstawieniu
= P(S = 10|P = sl) · P(P = sl) + P(S = 10|P = de) · P(P = de)
• prawdopodobieństwo brzegowe (apriori):
= 0.1 · 0.45 + 0.4 · .55 = .045 + .22 = 0.265 Jakie jest prawdopodobieństwo, że się nie spóźnię jeżeli wiadomo, że jest deszczowo?
• wnioskowanie predyktywne
• P(Sp = nie|P og = deszcz) =??
• w tym wypadku odczytujemy bezpośrednio z tabeli
• ogólnie jest trudniej
Jakie jest prawdopodobieństwo, że dziś pada, jeżeli wiadomo, że się spóźniłem?
• wnioskowanie diagnostyczne
• P(P og = deszcz|Sp = tak) =??
• ze wzoru Bayesa:
P(P og = deszcz|Sp = tak) = P(Sp = tak|P og = de) · P(P og = de) P(Sp = tak)
• P(Sp = tak|P og = de) = 0.3 — z tabeli dla Spóźnienia
• P(P og = de) = 0.55 — z tabeli dla Pogody
• P(Sp = tak) = ... — trzeba policzyć (patrz 2 slajdy wstecz)
P(Sp = t) = P(Sp = tak|P og = de)P(P og = de) + P(Sp = tak|P og = sl)P(P og = sl)
• Zatem:
P(Sp = t) = .3 · .55 + .1 · .45 = 0.21
• Wracamy do wzorku:
P(P = de|Sp = t) = P(Sp = t|P = de) · P(P = de) P(Sp = t)
• Podstawiamy
P(P = de|Sp = t) = .3 · .55 .21 ' 0.79
2.2 Definicja
Siecią bayesowską
• siecią bayesowską jest graf skierowany i acykliczny
• w wierzchołkach znajdują się zmienne losowe
• krawędzie oznaczają bezpośrednią zależność rozkładu zmiennych od rodziców
• siecią bayesowską jest wygodna do modelowania zależności przyczynowo-skutkowych
• każda bezpośrednia zależność (krawędź) jest opisywalna w „ języku ludzkim”
Konstrukcja:
• węzeł bez rodziców jest „praprzyczyną” — ma tabele bez warunków
• węzły z rodzicami mają tabele prawdopodobieństw warunkowych
• dla każdej [możliwej] konfiguracji stanów rodziców, węzeł musi mieć określony wiersz w tabeli prawdopodobieństw
• węzeł bez potomków jest liściem (nie ma innych na które miałby wpływ)
• sieć nie zawiera cykli skierowanych (directed acyclic graph — DAG)
• sieć może zawierać różne ścieżki między tą samą parą węzłów, ale nie tworzą one skierowanego cyklu (po zapomnieniu orientacji wygląda jak cykl)
Wnioskowanie:
• sieć powinna obliczyć prawdopodobieństwa wybranych (wszystkich) węzłów
• prawdopodobieństwa bez warunków są to prawdopodobieństwa brzegowe (apriori)
• do sieci możemy wprowadzić wiedzę (evidence) E
• zaobserwowaliśmy wartości na pewnych (nie wszystkich!) węzłach w sieci
• przy tej wiedzy zmienia się prawdopodobieństwo pozostałych P(X|E) =??
• Proces obliczania tych prawdopodobieństw nazywamy wnioskowaniem (inference, reasoning, updateing)
• Algorytmy wnioskowania: dokładne, przybliżone
• wnioskowanie w ogólnych sieciach bayesowskich jest problemem NP-Trudnym (już nie NP-zupełnym)
• w ogólnych sieciach bayesowskich można wygenerować wykładniczą złożoność pamięciową!
Pakiety do sieci bayesowskich
• Tetrad IV / V (GNU GPL, Java): 2014-03 http://www.phil.cmu.edu/projects/tetrad/
• SMILE (C++/Java) i GeNIe (freeware, własnościowy, Windows): 2013-11 http://genie.sis.pitt.edu/
• OpenBUGS (GNU GPL, Windows, Linux, wersja tekstowa): 2013-03 http://www.openbugs.net
• BUGS (= Bayesian inference Using Gibbs Sampler) (freeware, Windows, UNIX, wersja okienkowa tylko na Windows):
porzucony w 2008
http://www.mrc-bsu.cam.ac.uk/software/bugs/
• Netica (copyrighted, komercyjny, darmowa wersja z ograniczeniami, Windows): 2014?
https://norsys.com/netica.html
• Hugin Expert (copyrighted, komercyjny): 2014?
http://www.hugin.com
3 Wnioskowanie dokładne w prostych sieciach
3.1 Łańcuch
Uaktualnić!
3.2 Daszek (wspólna przyczyna)
Stan ok,hw,sw
Wiatrak nie,tak
Grafika nie,tak Tablice prawdopodobieństw warunkowych
• Stan komputera
Stan ok problem hardware’owy problem software’owy
− .65 .10 .25
• Wiatrak
Stan W = tak W = nie dziala
ok .9 .1
pr. hw .5 .5
pr. sw .8 .2
• Grafika
Stan G = tak G = nie działa
ok 1 0
pr. hw .2 .8
pr. sw .4 .6
Wnioskowania
• P(S = ok) — z tabeli
• P(G = tak), P(W = tak) — z prawdopodobieństwa całkowitego
• P(G = tak|S = tak) — bezpośrednio z tabeli
• P(S = hw|G = n) =?? — ze wzoru Bayesa – wz. Bayesa
P(S = hw|G = n) = P(G = n|S = h)P(S = h) P(G = n)
– liczmy P(G = n) ze wzoru na prawd. całkowite
P(G = n|S = h)P(S = h)
3
P
i=1
P(G = n|S = si)P(S = si)
• P(W = t|G = n) =??
– bezpośrednio nie da rady
– reguła łańcucha: dodajmy sumowanie po drugim trzecim węźle:
P(W = t|G = n) = P(W = t|G = n, S = ok)P(S = ok|G = n) +P(W = t|G = n, S = hw)P(S = hw|G = n) +P(W = t|G = n, S = sw)P(S = sw|G = n) – jeżeli znamy Stan maszyny, to informacje o Grafice już nie są nam potrzebne
P P P (W = t|G = n, S = ok) = P(W = t|S = ok)
– co upraszcza:
P(W = t|G = n) = P(W = t|S = ok)P(S = ok|G = n) +P(W = t|S = hw)P(S = hw|G = n) +P(W = t|S = sw)P(S = sw|G = n) – teraz P(S = sw|G = n), P(S = ok|G = n) i P(S = hw|G = n) — liczone dwa punkty wyżej:
P(S = hw|G = n) = P(G = n|S = h)P(S = h)
3
P
i=1
P(G = n|S = si)P(S = si)
P(S = sw|G = n) = P(G = n|S = sw)P(S = sw)
3
P
i=1
P(G = n|S = si)P(S = si)
P(S = ok|G = n) = P(G = n|S = ok)P(S = ok)
3
P
i=1
P(G = n|S = si)P(S = si) – wracamy do wzoru
P(W = t|G = n) = P(W = t|S = ok)P(G = n|S = ok)P(S = ok)
3
P
i=1
P(G = n|S = si)P(S = si)
+P(W = t|S = hw)P(G = n|S = hw)P(S = hw)
3
P
i=1
P(G = n|S = si)P(S = si) +P(W = t|S = sw)P(G = n|S = sw)P(S = sw)
3
P
i=1P(G = n|S = si)P(S = si)
3.3 V-Struktura
Alarm tak,nie Pożar
nie,tak
TIR nie,tak
Tablice
• Pożar
Pożar nie tak
− .05 .95
• TIR
TIR nie tak
− .6 .4
• Alarm
TIR Pożar A = Tak A = Nie
t t 1 0
t n 1 0
n t .3 .7
n n .01 .99
Wnioskowania
• P(Al = t|T = t) — z tabeli
• P(Al = t|P = t) — z tabeli
• P(A = t) — ze reguły łańcucha
P(A = t) = P(A = t|P = t)P(P = t) + P(A = t|P = n)P(P = n)
= P(A = t|P = t, T = t)P(P = t)P(T = t|P = t) + P(A = t|P = t, T = n)P(P = t)P(T = n|P = t) +P(A = t|P = n, T = t)P(P = n)P(T = t|P = n) + P(A = t|P = n, T = n)P(P = n)P(T = n|P = n) Węzeł T nie zależy od P , zatem P(T = t|P = p) = P(T = t), co upraszcza
P(A = t) = P(A = t|P = t, T = t)P(P = t)P(T = t) + P(A = t|P = t, T = n)P(P = t)P(T = n) +P(A = t|P = n, T = t)P(P = n)P(T = t) + P(A = t|P = n, T = n)P(P = n)P(T = n)
• P(P = t|A = t) — z wzoru Bayesa
P(P = t|A = t) = P(A = t|P = t)P(P = t) P(A = t)
= (P(A = t|P = t, T = t)P(T = t|P = t) + P(A = t|P = t, T = n)P(T = n|P = t)) P(P = t) P(A = t)
= (P(A = t|P = t, T = t)P(T = t) + P(A = t|P = t, T = n)P(T = n)) P(P = t) P(A = t)
• P(P = t|T = t) = P(P = t) — P i T są niezależne
• P(A = t|T = t, P = t) — z tabeli
• P(P = t|A = t, T = t) — nietrywialny
P(P = t|A = t, T = t) = P(A = t, P = t, T = t) P(A = t, T = t)
= P(A = t, P = t, T = t) P(A = t, T = t)
·P(P = t, T = t) P(P = t, T = t)
= P(A = t|P = t, T = t)) · P(P = t, T = t) P(A = t, T = t)
·P(T = t) P(T = t)
= P(A = t|P = t, T = t)) · P(P = t|T = t) P(A = t|T = t)
= P(A = t|P = t, T = t)) · P(P = t) P(A = t|T = t)
Literatura
[1] R. Neapolitan, Learning bayesian networks,
[2] P. Judea, Probabilistic reasoning and intelligent systems. Networks of plausible inference, Morgan Kaufman Inc. 1998.