Lista zadań 3

Transkrypt

Lista zadań 3
Wstęp do sieci bayesowskich — Zadania lista 3
Piersa Jarosław
2009-03-24
Zadanie 1 Trawnik (pole uprawne, ogródek) i zraszacz. Na podstawie obserwacji zachmurzenia rano
należy podjąć decyzję czy włączyć zraszacz. Włączenie wiąże się z kosztem zużycia wody, ale daje
pewene szanse, że trawnik nie uschnie. Z drugiej strony jeżeli danego dnia będzie padał deszcz, to
również zapewni odpowiednie nawodnienie, a jest darmowy. Uschnięcie trawnika wiąże się ze stratami
(koszt zasiania nowego, bliżej niesprecyzowany związek stanu trawnika z ilością klientów, jeżeli jest to
pole uprawne to zmniejszenie plonów itp.).
Skonstruuj sieć bayesowską modelującą sytuację.
Dodatkowo można ją wzbogacić o inne węzły jak np. wysłuchanie prognozy pogody (co wiąże się
z zakupem odbiornika i opłatą abonamentu), nagroda główna w Konkursie na Najbardziej Zadbany
Trawnik (wysoka, średnia, niska, konkurs odwołany), od której zależy ostateczna wartość „nieuschniętego
trawnika” itp. Inwencja własna mile widziana.
Zadanie 2 Przemyślenia pana Zzzetowkiego:
- Jeżeli mam jutro na 8.00 to pewnie się nie wyśpię...
- Jeżeli się nie wyśpię to prawdopodobnie będę chodził nieprzytomny cały dzień...
- Ale może jeżeli zjem śniadanie, to będę bardziej przytomny...
- Jeżeli będę skoncentrowany, to (być może) będę lepiej pracował i więcej z(a)robię...
- Jeżeli dużo zarobię, to pójdę spać w poczuciu dobrze spełnionego obowiązku i (mam nadzieję) choć
pojutrze się wyśpię...
Skonstruuj sieć modelującą jeden dzień z życia pana Zzzetowskiego. Metodą „kopiuj-i-wklej” dodaj
do sieci kolejnych kilka dni i zależności pomiędzy nimi.
Przeanalizuj działanie sieci. Jak decyzje podjęte dnia pierwszego mają wpływ na to, co stanie się za
dwa dni później? Czy to co stało się dnia trzeciego (np. nie wyspał się) może być wytłumaczone przez
jakieś zdarzenie z przed kilku dni?
Zadanie 3 Łańcuchy Markowa (przypomnienie).
Proces stochastyczny (ciąg zmiennych losowych) Xt , t ∈ N nazywany jest łańcuchem Markowa jeżeli
rozkład Xt , zależy od tylko od wartości Xt−1 .
P(Xt = x|Xt−1 = xt−1 , Xt−2 = xt−2 ...X0 = x0 ) = P(Xt = x|Xt−1 = xt−1 )
Niech S będzie zbiorem przyjmowanych stanów. Łańcuch Markowa jest jednorodny jeżeli w każdym
kroku prawdopodobieństwa przejścia pomiędzy dwoma ustalonymi stanami są identyczne.
∀t1 ,t2 ∀x,y P(Xt1 = x|Xt1 −1 = y) = P(Xt2 = x|Xt2 −1 = y) = pxy
Jeżeli Łańcuch Markowa jest jednorodny to macierzą przejścia nazywamy P = [pxy ]x,y∈S . Rozkładem
początkowym nazywamy rozkład P(X0 = x), dla x ∈ S
Rozkład początkowy i macierz przejścia jednoznacznie opisują jednorodny łańcuch Markowa.
Jednorodny łańcuch Markowa nazywamy nieprzywiedlnym jeżeli dla dowolnych stanów x, y z dodatnim prawdopodobieństwem da się przejść w skończonej liczbie kroków z x do y (a także z y do x).
Okresem stanu x nazywamy najmniejszą liczbę kroków k taką, że da się dojść z x do x w k krokach
z dodatnim prawdopodobieńswem.
Nieprzywiedlny łańcuch Markowa nazywamy nieokresowym (lub aperiodycznym) jeżeli największy
wspólny dzielnik okresów wszystkich stanów wynosi jest 1.
Fakt Jeżeli łańcuch markowa jest nieprzywiedlny i nieokresowy to posiada on rozkład stacjonarny π,
taki że
X
πx =
pyx πy
y∈S
1
Łańcuch Markowa w kolejnych krokach zbiega do rozkładu stacjonarnego i gdy go osiągnie, już w nim
pozostanie.
Zadanie: Zasymuluj łańcuch markowa. S = {s1 , s2 , s3 , s4 } Rozkład początkowy = jednostajny (lub
jednopunktowy).
.2 .8
0
0
.25 .5 .25
0
Macierz przejścia P1 :
0
.2 .6
.2
0
0 .75 .25
Macierz przejścia P2 :
.75
.5
0
0
.25
.5
0
0
0
0
.33
.1
0
0
.67
.9
Czy łańcuchy opisane przez P1 i P2 są nieprzywiedlne? Czy są nieokresowe? Jak wygląda w przybliżeniu rozkład stacjonarny łańcuchów (o ile go mają)?
Podaj przykład macierzy przejścia MC, który jest nieprzywiedlny i nie jest niekoresowy. Jak się
zachowują „graniczne rozkłady” dla takich MC?
Zadanie programostyczne Zaimplementuj algorytm wnioskowania w sieci bayesowskiej — próbnik
Gibbsa (ang. Gibbs sampler).
Sieć może być ustalona w programie, wczytana z pliku konfiguracyjnego, wygenerowana losowo, skonstruowana przez użytkownika w edytorze dołączonym do programu itd. Program powinien oferować
możliwość wprowadzenia wiedzy E tj. ustalenia odgórnie przyjętych wartości dla pewnego podzbioru węzłów sieci. Dla określonego przez użytkownika węzła X, który nie zawiera wiedzy E (lub dla wszystkich
węzłów, które nie zawierają E) program obliczy i wyświetli rozkład prawdopodobieństwa węzła X pod
warunkiem wiedzy E tj.
P(X = xi |E)
Wszelkie urozmaicenia mile widziane.
Punktacja — 1p.
Termin oddawania — 2009-05-05
Algorytm Dane: Sieć bayesowska, wiedza E, węzeł sieci X ∈
/ E.
Wynik: Pozkład prawdopodobieństwa P(X = xi |E).
1. Przypisz węzłom losowe wartości. Węzły zawierające wiedzę są zamrożone w trakcie obliczeń.
Oznaczmy poprzez V zbiór wszystkich węzłów sieci.
2. Powtarzaj wiele razy:
• Wylosuj węzeł Y (bez wiedzy).
• Wylosuj nową wartość Y zgodnie z rozkładem prawdopodobieństwa P(Y |V \ {Y }). Jest ono
proporcjonalne do
Y
P(U |Rodzice(U ))
P(Y |Rodzice(Y )) ·
U:Y ∈Rodzice(U)
W tym iloczynie wszystkie węzły z wyjątkiem Y są ustalone, zatem może być on policzony
lokalnie w czasie (mniej więcej) stałym.
3. Jako prawdopodobieństwo, że X przyjmuje stan xi pod warunkiem wiedzy E zwróć procentowy
udział przypadków, w których wartość węzła X została przyjęta jako xi .
2

Podobne dokumenty