Wprowadzenie do Sieci Neuronowych — Łańcuchy Markowa
Transkrypt
Wprowadzenie do Sieci Neuronowych — Łańcuchy Markowa
Wprowadzenie do Sieci Neuronowych — Łańcuchy Markowa M. Czoków, J. Piersa 2011-01-04 1 Przypomnienie Łańcuch Markowa jest procesem stochastycznym (ciągiem zmiennych losowych), w którym rozkład zmiennej w chwili t zależy wyłącznie od wartości łańcucha w ktoku poprzednim tj. od Xt−1 i nie zależy od Xt−2 , Xt−3 ... X0 . P(Xt = k|Xt−1 = xt−1 , Xt−2 ...X0 ) = P(Xt = k|Xt−1 = xt−1 ) Jeżeli prawdopodobieństwa przejść między stanami nie zmieniają się w czasie to łańcuch nazywamy jednorodnym. ∀t≥1 P(Xt = k|Xt−1 = x) = P(Xt+1 = k|Xt = x) Prawdopodobieństwa przejść będziemy oznaczać poprzez pij = P X1 = j|X0 = i. Wówczas dynamika przejść jest jednoznacznie zdefiniowana przez macierz kwadratową P = [pij ]ni,j=1 , gdzie n jest ilością możliwych stanów. Do tego potrzebny jest rozkład stanu łańcucha w kroku zerowym P0 = [p1 ..pk ], gdzie pi = P(X0 = k). wydział klub stołówka dom (a) Reprezentacja grafowa łańcucha P dom dom 0.1 wydział 0.4 stołówka 0.5 klub 1.0 wydział 0.5 0 0.2 0 stołówka 0.4 0.3 0 0 klub 0 0.3 0.3 0 (b) Odpowiadająca tablica przejść Rysunek 1: Przykładowy łańcucha Markowa. Łańcuch jest nieprzywiedlny (rekurencyjny) jeżeli z każdego stanu da się dojść do każdego innego. Nieprzywiedlny łańcuch nazywamy nieokresowym (aperiodycznym) jeżeli gcd{i : P(a → w i krokach → a)} = 1 Tj. stany nie są pogrupowane w „fazy” np. jeżeli numer kroku jest parzysty to łańcych może być tylko w stanie S0 albo S2 . 1 d a a b c b c (a) Łańcuch okresowy (b) Łańcuch nieokresowy Rysunek 2: Przykład łańcucha okresowego i nieokresowego. Fakt że Łańcuch Markowa, który jest nieprzywiedlny i nieokresowy posiada swój rozkład stacjonarny π, taki P · πt = πt . To jest łańcuch, który już jest w stanie stacjonarnym, w tymże stanie już pozostanie. 2 Symulacja 2.1 Symulowanie łańcucha Markowa • wylosuj stan w kroku zerowym t = 0 X0 zgodnie z rozkładem początkowym P0 tj. P (X0 = Si ) = pi , • zwiększ krok t o jeden, • wylosuj stan w kroku t-tym Xt z rozkładu pochodzącego z Xt−1 -go wiersza macierzy P , to jest. jeżeli np Xt−1 = Si , to P(Xt = Sj ) = pSi ,Sj 2.2 Losowanie z rozkładu dyskretnego, sposób 1 Niech P(X = i) = pi . x1p=0.04 x8p=0.11 x2p=0.09 x7p=0.26 x3p=0.25 x4p=0.01 x5p=0.09 x6p=0.15 Rysunek 3: Reprezentacja graficzna rokładu dyskretnego. • oblicz si := Pi j=1 pj dla i = 1..n • wylosuj u ∼ U(0,1) • I := 1 • while (si < u) – I ++ • return I Wartości s1 , ..., sn można liczyć na bieżąco w trakcie pętli. Jeżeli losowanie ma być wielokrotnie powtarzane, to lepiej jest zapamiętać je w tablicy. 2 2.3 Losowanie z rozkładu dyskretnego, sposób 2 Niech P(X = i) = pi . Niech si = Pi j=1 pj — do obliczenia raz na symulację. • wygeneruj u ∼ U(0,1) • l := 0 • r := n • do – c := b(l + r)/2c – if (u > sc ) ∗ l := c else ∗ r := c while (l < r − 1) • return r 3 Zadania Zadania przeznaczone do wykonania na zajęciach / w domu do samodzielnej pracy. Zadanie nie są punktowane. 3.1 Zadanie 0 (na rozgrzewkę) Oblicz liczbe π za pomocą Monte Carlo, tj. losuj punkt z kwadratu [−1, +1] × [−1, +1], jezeli wpadl w kolo o ilość trafień promieniu r = 1 i środku S = (0, 0), to zwiększ licznik trafień. Zwroć 4 · ilość iteracji 3.2 Zadanie 1 Zasymuluj łancuch Markowa z zadaną macierzą P i iloscią kroków N . Łancuch powinien zwrócić tablicę / listę stanów jakie byly przyjmowane w kolejnych krokach. Stan poczatkowy można przyjąć jako zadany z góry. 3.3 Zadanie 2 Znajdź rozkład stacjonarny łańcucha o zadanej macierzy przejścia P . Poprzez odpowienio długie symulowanie i zliczenie sumarycznej liczby odwiedzeń (MCMC). W miarę możliwości wyświetl wyniki w formie graficznej. 3.4 Zadanie 3 Porownaj wyniki otrzymane w zadaniu 2-gim z wynikiem otrzymanym przez iteracyjne mnożenie przez siebie P. 3.5 Zadanie 4 Wykonaj symulację z zadania 2 na następujących macierzach przejścia. Czy i w tym wypadku wynik nie zależy od wyboru stanu początkowego? 0 .3 .4 .3 1 0 0 0 P2 = 1 0 0 0 1 0 0 0 0 .3 .6999 .0001 1 0 0 0 P3 = 1 0 0 0 0 0 0 1 .7 1 P4 = 0 0 .3 0 0 0 3 0 0 .8 .5 0 0 .2 .5