Sztuczna Inteligencja i Systemy Doradcze Sieci bayessowskie Sieci bayessowskie 1
Niepewnosc Niech akcja A t = wyjedź na lotnisko t minut przed odlotem Czy A t pozwoli mi zdążyć na czas? Problemy: 1) informacja częściowa (stan ulic, plany innych kierowców, etc.) 2) niedokładne informacje (raport o korkach) 3) niepewność działania akcji (złapanie gumy, etc.) 4) ogromna złożoność modelowania i przewidywania ruchu Stąd czysto logiczne podejście albo 1) ryzykuje fałszywość: A 25 pozwoli mi zdążyć na czas albo 2) prowadzi do wniosków zbyt słabych do podjęcia decyzji: A 25 pozwoli mi zdążyć na czas jeśli nie będzie wypadku na moście i nie będzi padać i nie złapię gumy itd. (A 1440 mogłoby być uznane że rozsądnie zapewnia, że zdąże na czas, ale nie chcę czekać całą noc na lotnisku...) Sieci bayessowskie 2
Podstawy prawdopodobienstwa Ω przestrzeń próbek np. 6 możliwych wyników rzutu kostką. ω Ω jest punktem próbkowym/dopuszczalnym stanem świata/ zdarzeniem atomowym Przestrzeń prawdopobieństwa lub model prawdopodobieństwa to przestrzeń próbek z przypisaniem P(ω) dla każdego ω Ω spełniającego warunki 0 P(ω) 1 Σ ω P(ω) = 1 np. P(1) =P(2) =P(3) =P(4) =P(5) = P(6) = 1/6. Zdarzenie A jest podzbiorem Ω P(A) = Σ {ω A} P(ω) Np. P(rzut kostką < 4) = 1/6 + 1/6 + 1/6 = 1/2 Sieci bayessowskie 3
Zmienne losowe Zmienna losowa jest funkcją z przestrzeni próbek w pewien zbiór wartości, np. rzeczywistych lub boolowskich np. Odd(1) = true. P indukuje rozkład prawdopodobieństwa dla dowolnej zm. los. X: P(X = x i ) = Σ {ω:x(ω) =xi }P(ω) np. P(Odd =true) = 1/6 + 1/6 + 1/6 = 1/2 Sieci bayessowskie 4
Zdania Zdania reprezentują pewne zdarzenia (podzbiory przestrzeni próbek) w których są prawdziwe Boolowskie zmienne losowe np. Cavity (czy jestem osłabiony?) Dyskretne zmienne losowe (skończone lub nieskończone) np. Weather ma jedną wartość z sunny, rain, cloudy, snow W eather = rain jest zdaniem Wartości muszą być kompletne i wzajemnie się wykluczać Ciągłe zmienne losowe (ograniczone lub nieograniczone) np. emp = 21.6; można także emp < 22.0. Dowolne kombinacje boolowskie prostych zdań Sieci bayessowskie 5
Prawdopodobienstwo bezwarunkowe Bezwarunkowe prawdopodobieństwo zdań np. P(Cavity =true) = 0.1 i P(Weather =sunny) = 0.72 odpowiada przekonaniom przed dostarczeniem jakiejkolwiek (nowej) przesłanki Rozkład prawdopodobieństwa daje wartości dla wszystkich przypisań: P(W eather) = 0.72, 0.1, 0.08, 0.1 (znormalizowana: sumuje się do 1) Łączny rozkład prawdopodobieństwa dla zbioru zm. los. daje prawdopodobieństwa każdego zdarzenia atomowego na tych zm. los. (tzn. każdy punkt próbkowy) P(Weather, Cavity) = macierz wartości 4 2: W eather = sunny rain cloudy snow Cavity = true 0.144 0.02 0.016 0.02 Cavity = f alse 0.576 0.08 0.064 0.08 Każde pytanie o dziedzinę może być odpowiedziane przez łączny rozkład ponieważ każde zdarzenie jest sumą punktów próbkowych Sieci bayessowskie 6
Prawdopodobienstwo warunkowe Prawdopodobieństwo warunkowe lub a posteriori np. P(cavity toothache) = 0.8 tzn. zakładając, że toothache to to, o czym wiem NIE jeśli toothache to 80% szans na cavity Notacja rozkładów warunkowych: P(Cavity oothache) = 2-elementowy wektor 2-elementowych wektorów Jeśli wiemy więcej, np. cavity też jest dane, wtedy mamy P(cavity toothache, cavity) = 1 Uwaga: mniej specyficzne przekonania pozostają prawdziwe po dojściu nowych przesłanek, ale nie zawsze są użyteczne Nowe przesłanki mogą być nieistotne, umożliwiając upraszczanie, np. P(cavity toothache, 49ersW in) = P(cavity toothache) = 0.8 en rodzaj wnioskowania, uwarunkowany wiedzą dziedzinową, jest kluczowy Sieci bayessowskie 7
Prawdopodobienstwo warunkowe Definicja prawdopobieństwa warunkowego: P(a b) = P(a b) P(b) if P(b) 0 Reguła produkcji daje sformułowanie alternatywne: P(a b) = P(a b)p(b) = p(b a)p(a) Ogólna wersja zachodzi dla całych rozkładów, np. P(W eather, Cavity) = P(W eather Cavity)P(Cavity) (jako zbiór 4 2 równań, nie mnożenie macierzy) Reguła łańcuchowa otrzymywana przez kolejne zastosowania reguły produkcji: P(X 1,..., X n ) = P(X 1,..., X n 1 ) P(X n X 1,..., X n 1 ) = P(X 1,..., X n 2 ) P(X n1 X 1,..., X n 2 ) P(X n X 1,..., X n 1 ) =... = Π n i = 1P(X i X 1,..., X i 1 ) Sieci bayessowskie 8
Wnioskowanie przez wyliczanie Zazwyczaj interesuje nas rozkład warunkowy zadanych zmiennych Y przy danych specyficznych wartościach e dla zmiennych-przesłanek E Zmienne ukryte H = X Y E Ogólny pomysł: ustalamy zmienne-przesłanki i sumujemy prawdopodobieństwa po wartościach zmiennych ukrytych: P(Y E =e) = αp(y,e=e) = ασ h P(Y,E=e,H=h) Wyrażenia w sumowania są wartościami łącznego rozkładu ponieważ Y, E i H razem wyczerpują cały zbiór zmiennych losowych Problemy: 1) Złożoność czasowa O(d n ) gdzie d jest maks. liczbą wartości zmiennej 2) Złożoność pamięciowa O(d n ), żeby pamiętać łączny rozkład 3) Jak zbudować słownik wartości prawdopodobieństw dla O(d n ) punktów próbkowych??? Sieci bayessowskie 9
Niezaleznosc A i B są niezależne wtw P(A B) = P(A) lub P(B A) = P(B) lub P(A, B) = P(A)P(B) oothache Cavity Weather Catch decomposes into P( oothache, Catch, Cavity, W eather) = P( oothache, Catch, Cavity)P(W eather) Cavity oothache Catch Weather 32 wartości prawdopodobieństw zredukowane do 12; dla n niezależnych rzutów monetą 2 n n Pełna niezależność zmiennych jest bardzo efektywna, ale bardzo rzadka Sieci bayessowskie 10
Niezaleznosc warunkowa P(oothache, Cavity, Catch) wymaga 2 3 1 = 7 niezależnych wartości Jeśli mam osłabienie, prawdopodobieństwo, że złapię wtedy przeziębienie jest niezależne od tego, czy mam ból zęba: (1) P(catch toothache, cavity) = P(catch cavity) a sama niezależność pozostaje, jeśli nie mam osłabienia: (2) P(catch toothache, cavity) = P(catch cavity) Catch jest warunkowo niezależne od oothache przy danym Cavity: P(Catch oothache, Cavity) = P(Catch Cavity) Równoważne zdania: P( oothache Catch, Cavity) = P( oothache Cavity) P( oothache, Catch Cavity) = P( oothache Cavity)P(Catch Cavity) Sieci bayessowskie 11
Niezaleznosc warunkowa Używając pełnego łącznego rozkładu i reguły łańcuchowej: P( oothache, Catch, Cavity) = P( oothache Catch, Cavity)P(Catch, Cavity) = P( oothache Catch, Cavity)P(Catch Cavity)P(Cavity) = P( oothache Cavity)P(Catch Cavity)P(Cavity) zn. 2 + 2 + 1 = 5 niezależnych wartości (równania 1 i 2 usuwają 2) W większości przypadków użycie prawdopodobieństwa warunkowego redukuje rozmiar reprezentacji łącznego rozkładu z wykładniczego od n do linowego od n. Niezależność warunkowa jest najbardziej podstawową i efektywną formą wiedzy o niepewnym środowisku. Sieci bayessowskie 12
Regula Bayessa Reguła produkcytjna P(a b) = P(a b)p(b) = P(b a)p(a) reguła Bayessa P(a b) = P(b a)p(a) P(b) lub dla rozkładów P(Y X) = P(X Y )P(Y ) P(X) = αp(x Y )P(Y ) Użyteczne przy szacowaniu prawdopodobieństwa diagnostycznego na podstawie prawdopodobieństwa przyczynowego: P(Cause Effect) = P(Effect Cause)P(Cause) P(Effect) Np. M dolegliwość meningitis, S sztywnienie szyji: P(m s) = P(s m)p(m) P(s) = 0.8 0.0001 0.1 = 0.0008 Sieci bayessowskie 13
Regula Bayessa i niezaleznosc warunkowa P(Cavity toothache catch) = α P(toothache catch Cavity)P(Cavity) = α P(toothache Cavity)P(catch Cavity)P(Cavity) Model wnioskowania naiwny Bayessowski (zakłada niezależność obserwacji): P(Cause, Effect 1,..., Effect n ) = P(Cause)Π i P(Effect i Cause) Cavity Cause oothache Catch Effect 1 Effect n Całkowita liczba parametrów liniowa od n Sieci bayessowskie 14
Sieci bayessowskie Prosta, grafowa notacja do reprezentacji stwierdzeń o niezależności warunkowej i do zwartej specyfikacji pełnych rozkładów wielu zmiennych losowych Składnia: zbiór węzłów, jeden dla każdej zmiennej losowej skierowany graf acykliczny (strzałka bezpośrednio wpływa na ) dla każdego węzła rozkład warunkowy na podstawie rodziców: P(X i Parents(X i )) W najprostszym przypadku rozkład warunkowy reprezentowany jest jako tablica prawdopodobieństwa warunkowego (PW) dająca rozkład X i dla każdej kombinacji wartości rodziców Sieci bayessowskie 15
Sieci bayessowskie: przyklad opologia sieci koduje stwierdzenie o warunkowej niezależności: Weather Cavity oothache Catch Weather jest niezależna od innych zmiennnych oothache i Catch są warunkowo niezależne przy danym Cavity Sieci bayessowskie 16
Sieci bayessowskie: przyklad Jestem w pracy, sąsiad John dzwoni do mnie, mówiąc mi, że mój alarm domowy się włączył, ale sąsiadka Mary nie dzwoni. Czasami alarm włącza się przy drobnych trzęsieniach ziemi. Czy to jest włamanie? Zmienne: Burglar, Earthquake, Alarm, JohnCalls, MaryCalls opologia sieci odzwierciedla wiedzę przyczynowo-skutkową : Włamywacz może uruchomić alarm rzęsienie ziemi może uruchomić alarm Uruchomiony alarm może spowodować, że Mary zadzwoni Uruchomiony alarm może spowodować, że John zadzwoni Sieci bayessowskie 17
Sieci bayessowskie: przyklad Burglary P(B).001 Earthquake P(E).002 B E P(A B,E).95.94.29.001 Alarm JohnCalls A P(J A).90.05 MaryCalls A P(M A).70.01 Sieci bayessowskie 18
Zwartosc reprezentacji sieci z k boolowskimi zmiennymi-rodzicami B E PW dla boolowskiej zmiennej X i ma 2 k wierszy będących kombinacjami wartości zmiennych-rodziców A Każdy wiersz PW wymaga jednej wartości prawd. p dla X i = true (prawdopodobieństwo dla X i =false jest 1 p) J M Jeśli każda zmienna ma co najwyżej k rodziców, to pełna sieć wymaga O(n 2 k ) wartości prawdopodobieństw zn. rośnie liniowo z n, vs. O(2 n ) dla pełnego rozkładu łącznego Dla sieci z włamaniem, 1 + 1 + 4 + 2 + 2 = 10 wartości prawdopodobieństw (vs. 2 5 1 = 31) Sieci bayessowskie 19
Globalna semantyka Globalna semantyka definiuje pełny rozkład łączny jako produkt lokalnych rozkładów warunkowych: P(X 1,..., X n ) = Π n i = 1P(X i Parents(X i )) np. P(j m a b e) = B J A E M Sieci bayessowskie 20
Globalna semantyka Globalna semantyka definiuje pełny rozkład łączny jako produkt lokalnych rozkładów warunkowych: P(X 1,..., X n ) = Π n i = 1P(X i Parents(X i )) np. P(j m a b e) = P(j a)p(m a)p(a b, e)p( b)p( e) B J A E M Sieci bayessowskie 21
Lokala semantyka Lokalna semantyka: każdy węzeł jest warunkowo niezależny przy danych rodzicach od pozostałych węzłów nie będących jego potomkami U 1... U m Z 1j X Z nj Y 1... Y n wierdzenie: Lokalna semantyka globalna semantyka Sieci bayessowskie 22
Konstruowanie sieci bayessowskiej Wymaga metody takiej, że ciąg lokalnie testowalnych zależności warunkowych nadaje znaczenie globalne 1. Wybierz uporządkowanie zmiennych los. X 1,..., X n 2. Dla każdego i = 1 do n dodaj X i do sieci wybierz rodziców X 1,..., X i 1 takich, że P(X i Parents(X i )) = P(X i X 1,..., X i 1 ) Wybór rodziców gwarantuje znaczenie globalne: P(X 1,..., X n ) = Π n i = 1P(X i X 1,..., X i 1 ) (reguła łańcuchowa) = Π n i = 1P(X i Parents(X i )) (przez konstrukcję) Sieci bayessowskie 23
Konstruowanie sieci bayessowskiej: przyklad Załóżmy, że wybieramy M, J, A, B, E MaryCalls JohnCalls P(J M) = P(J)? Sieci bayessowskie 24
Konstruowanie sieci bayessowskiej: przyklad Załóżmy, że wybieramy M, J, A, B, E MaryCalls JohnCalls Alarm P(J M) = P(J)? Nie P(A J, M) = P(A J)? P(A J, M) = P(A)? Sieci bayessowskie 25
Konstruowanie sieci bayessowskiej: przyklad Załóżmy, że wybieramy M, J, A, B, E MaryCalls JohnCalls Alarm Burglary P(J M) = P(J)? Nie P(A J, M) = P(A J)? P(A J, M) = P(A)? P(B A, J,M) = P(B A)? P(B A, J,M) = P(B)? Nie Sieci bayessowskie 26
Konstruowanie sieci bayessowskiej: przyklad Załóżmy, że wybieramy M, J, A, B, E MaryCalls JohnCalls Alarm Burglary Earthquake P(J M) = P(J)? Nie P(A J, M) = P(A J)? P(A J, M) = P(A)? P(B A, J,M) = P(B A)? ak P(B A, J,M) = P(B)? Nie P(E B,A, J,M) = P(E A)? P(E B,A, J,M) = P(E A, B)? Nie Sieci bayessowskie 27
Konstruowanie sieci bayessowskiej: przyklad Załóżmy, że wybieramy M, J, A, B, E MaryCalls JohnCalls Alarm Burglary Earthquake P(J M) = P(J)? Nie P(A J, M) = P(A J)? P(A J, M) = P(A)? P(B A, J,M) = P(B A)? ak P(B A, J,M) = P(B)? Nie P(E B,A, J,M) = P(E A)? Nie P(E B,A, J,M) = P(E A, B)? ak Nie Sieci bayessowskie 28
Konstruowanie sieci bayessowskiej: przyklad MaryCalls JohnCalls Alarm Burglary Earthquake Rozpoznawanie warunkowych niezależności i oszacowanie prawdopodobieństw warunkowych jest trudne dla ludzi w nie przyczynowo-skutkowych kierunkach Sieć jest mniej zwarta: 1 + 2 + 4 + 2 + 4 = 13 wartości prawdopodobieństw jest potrzebne Sieci bayessowskie 29
Siec bayessowska: diagnoza samochodu Początkowa przesłanka: samochód nie zapala Zmienne testowalne (zielone), zmienne zepsute, napraw to (pomarańczowe), zmienne ukryte (szare) rozrzedzają strukturę, redukują parametry battery age alternator broken fanbelt broken battery dead no charging battery meter battery flat no oil no gas fuel line blocked starter broken lights oil light gas gauge car won t start dipstick Sieci bayessowskie 30
Siec bayessowska: ubezpieczenie samochodu Age GoodStudent RiskAversion Seniorrain SocioEcon Mileage VehicleYear ExtraCar DrivingSkill MakeModel DrivingHist Antilock DrivQuality Airbag CarValue HomeBase Antiheft Ruggedness Accident OwnDamage heft Cushioning OtherCost OwnCost MedicalCost LiabilityCost PropertyCost Sieci bayessowskie 31
Wnioskowanie w sieci bayesowskiej Wnioskowanie dokładne Przez wyliczanie wartości Przez eliminację zmiennych Wnioskowanie aproksymacyjne Przez symulację stochastyczną metodą Monte Carlo z łancucha Markowa Sieci bayessowskie 32
Wnioskowanie przez wyliczanie wartosci Sumowanie iloczynów z prawdopodobieństw brzegowych bez faktycznego konstruowania ich jawnej reprezentacji, przy użyciu prawdopodobieństw warunkowych z sieci bayessowskiej Proste zapytanie w sieci z alarmem domowym: P(B j, m) = P(B, j, m)/p(j, m) = αp(b, j, m) = ασ e Σ a P(B,e, a, j, m) B J A E M Przechodząc po zmiennych w kolejności zgodnej z siecią (np. B,E, A, J, M) wyciągamy sumowanie po kolejnych zmiennych na zewnąrz wyrażenia i używamy wartości prawdopodobieństw z tablic PW: P(B j, m) = ασ e Σ a P(B)P(e)P(a B,e)P(j a)p(m a) = αp(b)σ e P(e)Σ a P(a B,e)P(j a)p(m a) Sieci bayessowskie 33
Wyliczanie wartosci: algorytm function Enumeration-Ask(X,e,bn) returns a distribution over X inputs: X, the query variable e, observed values for variables E bn, a Bayesian network with variables {X} E Y Q(X ) a distribution over X, initially empty for each value x i of X do extend e with value x i for X Q(x i ) Enumerate-All(Vars[bn],e) return Normalize(Q(X)) function Enumerate-All(vars,e) returns a real number if Empty?(vars) then return 1.0 Y irst(vars) if Y has value y in e then return P(y P arent(y )) Enumerate-All(Rest(vars), e) else return Σ y P(y Parent(Y )) Enumerate-All(Rest(vars),e y ) where e y is e extended with Y = y Sieci bayessowskie 34
Wyliczanie wartosci: dzialanie P(b).001 P(e).002 P( e).998 P(a b,e) P( a b,e) P(a b, e) P( a b, e).95.05.94.06 P(j a).90 P(j a).05 P(j a).90 P(j a).05 P(m a) P(m a).70.01 P(m a) P(m a).70.01 Rekurencyjne wyliczanie zmiennych w głąb sieci: O(n) pamięci, O(d n ) czasu Sieci bayessowskie 35
Wyliczanie wartosci: dzialanie P(b).001 P(e).002 P( e).998 P(a b,e) P( a b,e) P(a b, e) P( a b, e).95.05.94.06 P(j a).90 P(j a).05 P(j a).90 P(j a).05 P(m a) P(m a).70.01 P(m a) P(m a).70.01 Wyliczanie jest nieefektywne: powtarza obliczenia np. liczy P(j a)p(m a) dla każdej wartości e Sieci bayessowskie 36
Wnioskowanie przez eliminacje zmiennych Eliminacja zmiennych: wykonuje sumowanie z prawej do lewej, pamięta wyniki pośrednie (czynniki) w celu uniknięcia powtórzeń P(B j, m) = αp(b) } {{ } B f M (A) = Σ e P(e) } {{ } E Σ a P(a B,e) } {{ } A P(j a) } {{ } J = αp(b)σ e P(e)Σ a P(a B, e)p(j a)f M (a) = αp(b)σ e P(e)Σ a P(a B, e)f JM (a) = αp(b)σ e P(e)f ĀJM (b, e) = αp(b)f ĒĀJM (b) = αf B (b) f ĒĀJM (b) P(m a) P(m a) P(m a) } {{ } M, f JM (A) = f J (A) f M (A) = f A (A, B,E) jest macierzą 2 2 2 dla wszystkich wartości A, B, E f ĀJM (B, E) = f A (a, B, E) f JM (a) + f A ( a, B, E) f JM ( a) f ĒĀJM (B, E) = f E (e) f ĀJM (B, e) + f E ( e) f ĀJM (B, e) P(j a)p(m a) P(j a)p(m a) Sieci bayessowskie 37
Eliminacja zmiennych: algorytm function Elimination-Ask(X,e,bn) returns a distribution over X inputs: X, the query variable e, evidence specified as an event bn, a belief network specifying joint distribution P(X 1,..., X n ) factors [ ]; vars Reverse(Vars[bn]) for each var in vars do factors [Make-actor(var, e) factors] if var is a hidden variable then factors Sum-Out(var, factors) return Normalize(Pointwise-Product(factors)) Sieci bayessowskie 38
Eliminacja zmiennych: zmienne nieistotne Rozważmy zapytanie P(JohnCalls Burglary = true) P(J b) = αp(b)σ e P(e)Σ a P(a b,e)p(j a)σ m P(m a) Suma po m jest równa 1; M jest nieistotne dla zapytania Można pominąć sumowanie po zmiennych nieistotnych B J A E M w 1: Y jest nieistotne jeśli Y Ancestors({X} E) utaj X = JohnCalls, E = {Burglary}, i Ancestors({X} E) = {Alarm, Earthquake} więc M jest nieistotne Sieci bayessowskie 39
Eliminacja zmiennych: zmienne nieistotne Def: moralny graf sieci bayessowskiej (nieskierowany): zawiera krawędzie z oryginalnej sieci bez kierunku oraz krawędzie pomiędzy każdą parą rodziców mającą wspólne dziecko Def: A jest m-odseparowane od B przez C wtw gdy jest odseparowane przez C w grafie moralnym w 2: Y jest nieistotne jeśli jest m-odseparowane od X przez E B E Dla P(JohnCalls Alarm = true), obie Burglary i Earthquake są nieistotne J A M Sieci bayessowskie 40
L L L L Zlozonosc dokladnego wnioskowania Sieci pojedynczych połączeń (polidrzewa): każde dwa wierzchołki połączone są co najwyżej jedną ścieżką złożoność czasowa i pamięciowa algorytmu eliminacji zmiennych O(d k n) Sieci wielokrotnych połączeń: można zredukować 3SA do dokładnego wnioskowania NP-trudne równoważne zliczaniu modeli 3SA #P-zupełne 0.5 0.5 0.5 0.5 A B C D 1. A v B v C 2. C v D v A 1 2 3 3. B v C v D AND Sieci bayessowskie 41
Wnioskowanie przez symulacje stochastyczna Podstawowy pomysł: 1) Losuj N próbek z rozkładem próbkowym S 2) Oblicz aproksymacyjne prawdopodobieństwo wynikowe ˆP 3) Udowodnij zbieżność do prawdopodobieństwa faktycznego P Wnioskowanie stochastyczne bezwarunkowe (bez przesłanek): Próbkowanie bezpośrednie 0.5 Coin Wnioskowanie stochastyczne warunkowe (z przesłankami): Próbkowanie z odrzucaniem: odrzuca próbki niezgodne z przesłankami Ważenie prawdopodobieństwa próbek: używa przesłanek do ważenia prawdopodobieństwa próbek Monte Carlo z łancucha Markowa (MCMC): próbkuje z procesu stochastycznego, w którym proawdopodobieństo stacjonarne jest rzeczywistym prawdopodobieństwem warunkowym Sieci bayessowskie 42
Probkowanie bezposrednie function Direct-Sampling(X, bn, N) returns an estimate of P(X) local variables: N, a vector of counts over X, initially zero for j = 1 to N do x Prior-Sample(bn) N[x] N[x]+1 where x is the value of X in x return Normalize(N[X]) function Prior-Sample(bn) returns an event sampled from bn inputs: bn, a belief network specifying joint distribution P(X 1,..., X n ) x an event with n elements for i = 1 to n do x i a random sample from P(X i Parents(X i )) return x Sieci bayessowskie 43
Probkowanie bezposrednie: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 Sieci bayessowskie 44
Probkowanie bezposrednie: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 Sieci bayessowskie 45
Probkowanie bezposrednie: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 Sieci bayessowskie 46
Probkowanie bezposrednie: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 Sieci bayessowskie 47
Probkowanie bezposrednie: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 Sieci bayessowskie 48
Probkowanie bezposrednie: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 Sieci bayessowskie 49
Probkowanie bezposrednie: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 Sieci bayessowskie 50
Probkowanie bezposrednie: wlasnosci Prawdopodobieństwo, że PriorSample generuje dane zdarzenie S PS (x 1... x n ) = Π n i = 1P(x i Parents(X i )) = P(x 1... x n ) to odpowiada prawdopodobieństwu faktycznemu tego zdarzenia Np. S PS (t, f, t, t) = 0.5 0.9 0.8 0.9 = 0.324 = P(t, f, t, t) N PS (x 1... x n ) liczbą próbek wygenerowanych dla zdarzenia x 1,..., x n Wtedy lim N ˆP(x 1,..., x n ) = lim N N PS(x 1,..., x n )/N = S PS (x 1,..., x n ) = P(x 1... x n ) Powyższą własność algorytmu DirectSampling nazywamy spójnością Notacja: ˆP(x1,..., x n ) P(x 1... x n ) Sieci bayessowskie 51
Probkowanie z odrzucaniem ˆP(X e) szacowane z próbek zgodnych z przesłankami e function Rejection-Sampling(X, e, bn, N) returns an estimate of P(X e) local variables: N, a vector of counts over X, initially zero for j = 1 to N do x Prior-Sample(bn) if x is consistent with e then N[x] N[x]+1 where x is the value of X in x return Normalize(N[X]) Np. oszacowanie P(Rain Sprinkler = true) przy użyciu 100 próbek 27 próbek ma Sprinkler = true Z tego, 8 ma Rain =true i 19 ma Rain =false. ˆP(Rain Sprinkler = true) = Normalize( 8, 19 ) = 0.296, 0.704 Sieci bayessowskie 52
Probkowanie z odrzucaniem: wlasnosci ˆP(X e) = αn PS (X,e) (wynik algorytmu RejectionSampling) = N PS (X,e)/N PS (e) (normalizowane przez N PS (e)) P(X, e)/p(e) (własność PriorSample) = P(X e) (prawdopodobieństwo faktyczne) Zatem próbkowanie z odrzucaniem ma własność spójności tzn. oszacowanie zbiega do faktycznego prawdopodobieństwa warunkowego Problem: bardzo kosztowne jeśli P(e) jest małe P(e) rozpada się wykładniczo wraz z liczbą zmiennych! Sieci bayessowskie 53
Wazenie prawdopodobienstwa probek Pomysł: ustala zmienne z przesłanek, próbkuje tylko zmienna spoza przesłanek, i waży prawdopodobieństwo każdej próbki stosownie do przesłanek function Likelihood-Weighting(X, e, bn, N) returns an estimate of P(X e) local variables: W, a vector of weighted counts over X, initially zero for j = 1 to N do x, w Weighted-Sample(bn) W[x] W[x] + w where x is the value of X in x return Normalize(W[X ]) function Weighted-Sample(bn,e) returns an event and a weight x an event with n elements; w 1 for i = 1 to n do if X i has a value x i in e then w w P(X i = x i Parents(X i )) else x i a random sample from P(X i Parents(X i )) return x, w Sieci bayessowskie 54
Wazenie prawdopodobienstwa probek: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 w = 1.0 Sieci bayessowskie 55
Wazenie prawdopodobienstwa probek: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 w = 1.0 Sieci bayessowskie 56
Wazenie prawdopodobienstwa probek: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 w = 1.0 Sieci bayessowskie 57
Wazenie prawdopodobienstwa probek: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 w = 1.0 0.1 Sieci bayessowskie 58
Wazenie prawdopodobienstwa probek: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 w = 1.0 0.1 Sieci bayessowskie 59
Wazenie prawdopodobienstwa probek: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 w = 1.0 0.1 Sieci bayessowskie 60
Wazenie prawdopodobienstwa probek: przyklad P(C).50 Cloudy C P(S C).10.50 Sprinkler Rain C P(R C).80.20 S R Wet Grass P(W S,R).99.90.90.01 w = 1.0 0.1 0.99 = 0.099 Sieci bayessowskie 61
Wazenie prawdopodobienstwa probek: wlasnosci Prawdopodobieństwo próbki ważonej WeightedSample wynosi S WS (z,e) = Π l i = 1P(z i Parents(Z i )) Uwaga: S WS uwzględnia tylko przesłanki z przodków z i daje prawdopodobieństwo pośrednie pomiędzy prawdopodobieństwem a priori i a posteriori Sprinkler Cloudy Rain Waga dla danej próbki z,e wynosi w(z,e) = Π m i = 1P(e i Parents(E i )) Wet Grass Ważone prawdopodobieństwo próbkowe: S WS (z,e)w(z,e) = Π l i = 1P(z i Parents(Z i )) Π m i = 1P(e i Parents(E i )) = P(z,e) (ze standardowej, globalnej semantyki sieci) Stąd ważenie prawdopodobieństwa też ma własność spójności ale efektywność nadal maleje przy dużej liczbie przesłanek ponieważ bardzo mało próbek ma dużą wagę Sieci bayessowskie 62
Monte Carlo dla lancucha Markowa Stan sieci: bieżące przypisanie wszystkich zmiennych Łańcuch Markowa: ciąg stanów sieci, następny stan jest generowany poprzez próbkowanie jednej zmiennej nie będącej przesłanką na podstawie jej koca Markowa function MCMC-Ask(X, e, bn, N) returns an estimate of P(X e) local variables: N[X ], a vector of counts over X, initially zero Z, the nonevidence variables in bn x, the current state of the network, initially copied from e initialize x with random values for the variables in Y for j = 1 to N do N[x] N[x] + 1 where x is the value of X in x for each Z i in Z do sample the value of Z i in x from P(Z i MB(Z i )) given the values of MB(Z i ) in x return Normalize(N[X ]) Sieci bayessowskie 63
Koc Markowa Każdy węzeł jest warunkowo niezależny od wszystkich pozostałych przy danym jego kocu Markowa: rodzice + dzieci + inni rodzice dzieci U 1... U m Z 1j X Z nj Y 1... Y n Sieci bayessowskie 64
Koc Markowa: przyklad Koc Markowa dla Cloudy: Sprinkler i Rain Koc Markowa dla Rain: Cloudy, Sprinkler i WetGrass Sprinkler Cloudy Wet Grass Prawdopodobieństwo warunkowe przy danym kocu Markowa: P(x i MB(X i )) = P(x i Parents(X i ))Π Zj Children(X i )P(z j Parents(Z j )) Rain Sieci bayessowskie 65
Lancuch Markowa Przy przesłankach Sprinkler = true, W etgrass = true łancuch Markowa zawiera 4 stany: Cloudy Cloudy Sprinkler Rain Sprinkler Rain Wet Grass Wet Grass Cloudy Cloudy Sprinkler Rain Sprinkler Rain Wet Grass Wet Grass Sieci bayessowskie 66
Monte Carlo dla lancucha Markowa: przyklad Szacowanie P(Rain Sprinkler = true, W etgrass = true) Algorytm powtarza próbkowanie zmiennych Cloudy i Rain na podstawie ich koca Markowa. Zlicza, ile razy Rain było true i false w kolejnych stanach sieci. Np. odwiedza 100 stanów 31 ma Rain = true, 69 ma Rain =false ˆP(Rain Sprinkler = true, W etgrass = true) = Normalize( 31, 69 ) = 0.31, 0.69 Sieci bayessowskie 67
Monte Carlo dla lancucha Markowa: wlasnosci wierdzenie: łańcuch zbiega do rozkładu stacjonarnego ( spójność): proporcja czasu spędzonego w danym stanie w czasie długiego działania sieci jest dokładnie propocjonalna do faktycznego prawdopodobieństwa warunkowego Zalety Metoda nie jest wrażliwa na topologię sieci Można stosować do zmiennych dyskretnych i ciągłych Wady Zbieżność może być wolna rudno określić moment, w którym algorytm daje już bliskie rozwiązanie Może być czasowo rozrzutny, jeśli występują duże koce Markowa: P(X i MB(X i )) nie zmienia się dużo (Prawo Wielkich Liczb) a jest liczone za każdym razem Sieci bayessowskie 68