Algorytmy stochastyczne — laboratorium 10

Transkrypt

Algorytmy stochastyczne — laboratorium 10
Algorytmy stochastyczne — laboratorium 10
Jarosław Piersa
2014-04-25
1
Zadania na zajęcia
Zadanie 1
Z pewnym prawdopodobieństwem dziś będzie padał deszcz. Prognoza pogody zazwyczaj poprawnie przewiduje ulewę, ale
może się dowolnie źle pomylić (patrz system Lorenza). Na podstawie prognozy pogody (bo faktycznej pogody znać nie może)
pan Iksiński rano podejmuje decyzję czy zabrać ze sobą parasol. Oczywiście najlepiej jest gdy nie pada i parasol został w
domu — Pan Iksiński ocenia taką wytuację wysoko +100. Jeżeli pada to dobrze jest mieć parasol przy sobie +80. Jeżeli
nie pada, a Pan Iksiński zabrał parasol to musi go nosić ze sobą cały dzień, co nie jest wygodne +10. Jeżeli pada, a parasol
został w domu to Pan Iksiński przemoknie 0.
Deszcz
Prognoza
Parasol
Zadowolenie
Skonstruuj (lub przeanalizuj gotową) sieć bayesowską z wykorzystaniem węzła decyzyjnego (decision node, action
node) do podjęcia decyzji czy zabrać parasol i węzła wypłaty (utility node, value node) do liczenia „zysku” jaką przyniesie
decyzja.
Pan Igerkowski jest zapalonym podróżnikiem i ma inne priorytety. Oczywiście lubi gdy nie pada i nie nosi parasolki
(+100), ale perspektywa zmoknięcia nie przeraża go (+20 jeżeli zmoknie) aż tak bardzo jak dodatkowy balast (+0 jeżeli nosi
parasol i nie pada). Jeżeli pada i ma parasol ocenia sytuację na +40. Jak się zmieniły oczekiwane wartości decyzji?
Zadanie 2
Skonstruuj sieć: Węzły:
• Zimno — czy panuje zimowa pogoda (ma wpływ na osłabienie organizmu)
Zimno
− .3
Umiarkowanie Ciepło
.4
.3
• Papierosy — czy pacjent pali papierosy (co może być alternatywną przyczyną kaszlu)
−
Tak Nie
.4
.6
Z
U
C
Tak Nie
.7
.3
.25 .75
.15 .85
• Grypa — czy pacjent ma grypę
1
• Angina — czy pacjent ma anginę
• Kaszel — czy pacjent ma kaszel
• CzyLeczyć — Węzeł decyzyjny - czy należy pojąć leczenie?
• Wypłata — węzeł utylitarny określający trafność decyzji
Temperatura
Angina
Grypa
Papierosy
Kaszel
Czy leczyc
Wynik
Intuicyjnie wybierz prawdopodobieństwa warunkowe.
Dodaj do sieci dodatkowy węzeł JakWysokoPacjentCeniSwojeZdrowie. Jeżeli nisko to stosowanie leczenia będzie
mniej opłacalne. Jak zmieniają się optymalne decyzje?
Zadanie 3
Pan Iksiński zamierza kupić używany samochód. Jeżeli będzie on sprawny sporo zaoszczędzi, jeżeli okaże się złomem straci
na naprawach więcej niż był wart. Ma możliwość wykonać dwa testy pojazdu. Wiązą się one z dodatkową opłatą, ale
dają szansę oceny czy samochód jest sprawny czy też nie. Zbuduj sieć bayesowską pomagającą dokonać właściwego wyboru.
Węzły decyzyjne będą odpowiadały za to czy robić testy (nie, jeden, oba) oraz czy dokonać zakupu (tak, nie). Węzły wypłaty
będą szacowały zysk z danej decyzji.
Jazda próbna?
Koszt
testu
Stan
Wynik jazdy
Czy kupić?
Zysk
Zadanie 4
Przebuduj sieci do zadań Monty Halla z poprzedniej listy tak by wykorzystywały węzły decyzyjne i utylitarne
Zadanie 5
Naiwny Klasyfikator Bayesowski (NBC — Naive Bayesian Classifier)
Węzeł źródłowy jest przyczyną, którą chcemy zdiagnozować. Pozostałe węzły są symptomami, na których podstawie
dokonujemy diagnozy (w tym wypadku możliwe problemy zgłaszane pomocy technicznej przez użytkowników). Zazwyczaj
pytamy tylko o stan węzła przyczynowego. Tablice prawdopodobieństw są niewielkie gdyż każdy z węzłów (z wyjątkiem korzenia) ma dokładnie jednego rodzica. Umożliwia to budowanie dość złożonych klasyfikatorów bez popadania w wykładnicze
złożoności pamięciowe.
Zbuduj sieć klasyfikator jak na przykładzie (lub własny np. klasyfikujący maile jako spam). Wypełnij CPT i przeanalizuj
działanie sieci.
2
Zadanie 6
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 7
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?
Dodaj do sieci węzły wypłaty odpowiadające wynagrodzeniu za popstępy w pracy. Dodaj do sieci węzeł decyzyjne
Rozrywka, które mają wpływ na postępy w pracy, ale też wiążą się z wydawaniem ciężko zarobionych pieniędzy.
Zadanie 8
Ł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
Ł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).
Macierz przejścia P1 :


.2 .8
0
0
 .25 .5 .25
0 


 0
.2 .6
.2 
0
0 .75 .25
3
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 9
Błądzenie losowe. Niech dane będzie k punktów p1 ..pk . Określamy ciąg zmiennych losowych Xn . X0 zaczyna w losowym z
punktów (losowanym z rozkładu jednostajnego). Jeżeli Xn jest w punkcie pj to Xn+1 z prawdopodobieństwem 0.5 przejdzie
do pj+1 albo z prawdopodobieństwem 0.5 przejdzie do pj−1 dla j = 2, 3, .., k − 1. Jeżeli jest to stan brzegowy to z prawdopodobieństwem 0.5 Xn+1 pozostanie w tym samym punkcie albo z pradopodobieństwem 0.5 przejdzie do jedynego sąsiada.
Skonstruuj sieć bayesowską symulującą ten proces dla pierwszych 10 kroków.
2
Zadania programistyczne
NBC
Naive Bayesian Classifier — klasyfikator np. wiadomości mailowych (spam/ nie) na podstawie obecności cech wyciąganych z
wiadomości (jednoczesne występowanie napisów: „wujek” i „Nigeria”, adres nadawcy nie zawierający samogłosek, czy liczba
osób w CC przekracza 10 itd.)
Wnioskowanie dokładne, na razie bez uczenia, 1p.
Wnioskowanie w ogólnej sieci bayesowskiej
Napisz program pozwalający budować sieci bayesowskie o topologii drzewa i algorytm wnioskowania Kima Pearla (2p, zależnie
od programu).
Sieć bayesowska z węzłami wypłaty
Napisz symulator szacujący oczekiwane wyniki w grach losowych zależnie od decyzji gracza (np. w grach powtarzalnych:
dylemacie więźnia lub jednorazowych). Decyzje są podejmowane w węzłach decyzyjnych w ustalonej kolejności. Wyniki są
obliczane jako suma wyników z węzłów wypłat (utylitarnych), a te zależą od podejmowanych decyzji i stanów w węzłach
losowych.
Wnioskowanie np. algorytmem LWS, próbnikiem Gibbsa lub dokładnym (Kima-Pearla). Ocena 1-2 punkty zależnie od
inwencji własnej.
Literatura
[1] R. Neapolitan, Learning bayesian networks,
[2] P. Judea, Probabilistic reasoning and intelligent systems. Networks of plausible inference, Morgan Kaufman Inc. 1998.
[3] GeNIe, http://genie.sis.pitt.edu/, Decision Systems Laboratory of the University of Pittsburgh, dostęp 2014-04.
[4] Tetrad IV, http://www.phil.cmu.edu/projects/tetrad/, Carnegie Mellon University, dostęp 2014-04.
4