Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa M. Czoków, J. Piersa 2012-01-10
1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego 3
1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego 3
Łańcuch Markowa (jednorodny) wydział klub P dom wydział stołówka klub dom 0.1 0.5 0.4 0 wydział 0.4 0 0.3 0.3 stołówka 0.5 0.2 0 0.3 klub 1.0 0 0 0 dom stołówka X 0 = dom, X 1 = w, X 2 = s, X 3 = w, X 4 = d, X 5 = s,...
(nieformalna) Łańcuch Markowa, ang. Markov Chain (MC) Dane mamy: przestrzeń stanów Σ, macierz przejścia P, P i,j prawdopodobieństwo przejścia ze stanu i-tego do j-tego w jednym kroku, j P i,j = 1 (ma to być prawdopodobieństwo), stan początkowy p 0 (lub rozkład P 0, z którego ma pochodzić stan początkowy),
(nieformalna) Dynamika: jako stan w kroku t = 0 wybieramy stan początkowy p 0 (lub losujemy go z rozkładu P 0 ), w kroku t > 0 jesteśmy w stanie i, stan dla kroku t + 1 wybieramy losowo, ale zgodnie z tablicą przejść, tj. stan 1-szy z prawdopodobieństwem P i,1, stan 2-gi z prawdopodobieństwem P i,2, stan i-ty z prawdopodobieństwem P i,i, itd. Jeżeli znamy stan w chwili t, to przejście do roku t + 1 nie zależy od stanu w krokach t 1, t 2... (własność Markowa).
(formalna) Łańcucha Markowa Łańcuch Markowa, ang. Markov Chain (MC) jest to proces stochastyczny (tj. ciąg zminnych losowych), taki że prawdopodobieństwo znalezienia się w kroku t-ym w stanie x zależy tylko od stanu łańcucha w kroku t 1 -ym: P(X t = x X t 1 = x t 1, X t 2 = x t 2,..., X 0 = x 0 ) = = P(X t = x X t 1 = x t 1 ).
Interpretacja Łańcucha Markowa Peprezentacja MC w postaci (ważonego) grafu skierowanego : wierzchołkami są wszystkie stany Σ, jeżeli prawdopodobieństwo bezpośredniego przejścia z i do j jest dodatnie P ij > 0, to dodajemy krawędź (i, j) do grafu (z wagą P ij ), krawędzie nie muszą być symetryczne, wagi krawędzi wychodzących z wierzchołka sumują się do jedynki, w/w własność nie musi zachodzić dla krawędzi wchodzących.
Interpretacja Łańcucha Markowa wydział klub P dom wydział stołówka klub dom 0.1 0.5 0.4 0 wydział 0.4 0 0.3 0.3 stołówka 0.5 0.2 0 0.3 klub 1.0 0 0 0 dom stołówka
Stan przechodni Łańcucha Markowa a stan a jest przechodni, jeżeli istnieje ścieżka wychodząca z a bez powrotu b c
Stan porwacający Łańcucha Markowa a stan a jest powracający (rekurencyjny), jeżeli każda ścieżka wychodząca z a kiedyś może powrócić z powrotem do a b c
Klasa rekursji Łańcucha Markowa klasa rekursji maksymalny zbiór stanów powracających, pomiędzy którymi można swobodnie przechodzić, może być więcej niż jedna klasa rekursji, klasy rekursji można znaleźć algorytmami BFS lub DFS wyszukując silnie spójne składowe w grafie skierowanym,
Klasa rekursji Łańcucha Markowa klasa rekursji maksymalny zbiór stanów powracających, pomiędzy którymi można swobodnie przechodzić, może być więcej niż jedna klasa rekursji, klasy rekursji można znaleźć algorytmami BFS lub DFS wyszukując silnie spójne składowe w grafie skierowanym,
Łańcuch nieprzywiedlny jeżeli z wszystkich stanów da się dojść do wszystkich innych (jest tylko jedna klasa rekursji, która obejmuje wszystkie stany), to łańcuch nazywamy nieprzywiedlnym b a c
Stan okresowy / nieokresowy Stan a jest nieokresowy (ang. aperiodic), jeżeli z każdego stanu da się dojść do wszystkich innych oraz gcd{i : P(a } {{ } a) > 0} = 1 w i krokach d a b c a b c
Stan okresowy / nieokresowy Stan a jest nieokresowy (ang. aperiodic), jeżeli z każdego stanu da się dojść do wszystkich innych oraz gcd{i : P(a } {{ } a) > 0} = 1 w i krokach d a b c a b okresowy nieokresowy c
Błądzenie losowe Łańcucha Markowa 20 10 0-10 -20-30 -40 0 200 400 600 800 1000
Łańcucha Markowa błądzenie losowe, modelowanie procesów biologicznych, fizycznych, społecznych etc. narzędzia statystyczne, symulowanie rynków finansowych, rozumowanie przy niepewnej wiedzy, np. w sieciach bayesowskich, algorytm generowania z dowolnego rozkładu (alg. Metropolisa-Hastingsa), algorytmy typu symulowanego wyżarzania (następy wykład).
Losowanie z rozkładu dyskretnego dane niech będzie n kategorii z przypisanymi prawdopodobieństwami p 1,.., p n. x 2 p=0.09 x 1 p=0.04 x 8 p=0.11 chcemy wylosować jedną z kategorii z odpowiadającym jej prawdopodobieństwem x 3 p=0.25 x 7 p=0.26 P(X = i) = p i x 4 p=0.01 x 5 p=0.09 x 6 p=0.15
Algorytm naiwny Łańcucha Markowa P(X = i) = p i oblicz s i := i j=1 p j dla i = 1..n wylosuj u U (0,1) I := 1 while (s i < u) I + + return I Wartości s 1 do s n można liczyć na bieżąco w trakcie działania pętli. Jeżeli losowanie będzie wielokrotnie powtarzane, to zapamiętujemy je w tablicy.
Algorytm podziału odcinka wygeneruj u U (0,1) l := 0 r := n do c := (l + r)/2 if (u > s c ) l := c else r := c while (l < r 1) return r
Algorytm generowania wylosuj u 1 Ex(p 1 ), u 2 Ex(p 2 )..., u n Ex(p n ) np. algorytmem odwracania dystrybuanty, Ex(λ) wylosuj T U (0,1) zwróć 1 λ ln(t ) znajdź indeks i, taki że u i = min(u 1,..., u n ) zwróć i
Istnienie Szukanie stanu stacjonarnego 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego 3
Twierdzenie Łańcucha Markowa Istnienie Szukanie stanu stacjonarnego Niech P (n) ij = (P n ) ij = prawdopodobieństwo przejścia z i do j w dokładnie n krokach. Ponadto niech łańcuch Markowa opisywany przez P będzie nieprzywiedlny i nieokresowy. Wtedy istnieje wektor probabilistyczny π i, i π i = 1, i π i > 0, taki że lim n + P(n) ij = π j.
Istnienie Szukanie stanu stacjonarnego Rozkład stacjonarny rozkład π nazywany jest rozkładem stacjonarnym łańcucha Markowa, odpowiednio długo symulowany MC zbiega do swojego rozkładu stacjonarnego (o ile go posiada).
Istnienie Szukanie stanu stacjonarnego Rozkład stacjonarny Interpretacja po dłuższym czasie obserwator może stwierdzić, że łańcuch popadł w rutynę, lokalnie nadal zachowuje się zgodnie z zadaną tablicą przejść, w szerszym oknie czasowym, ilość czasu spędzona w poszczególnych stanach zaczyna się stabilizować,
Jak znalźć rozkład stacjonarny Istnienie Szukanie stanu stacjonarnego Dane: łańcuch Markowa opisany przez macierz przejścia P. Cel: chcemy znaleźć rozkład stacjonarny π.
Istnienie Szukanie stanu stacjonarnego Obserwacja przyp. P ij = prawdopodobieństwo przejścia z i do j w jednym kroku prawdopodobieństwo przejścia z i do j w dwóch krokach, przechodząc przez k wynosi zatem P(i k j) = P ik P kj prawdopodobieństwo przejścia z i do j w dokładnie dwóch krokach, ale przez dowolny wierzchołek pośredni P(i k j) = P ik P kj
Istnienie Szukanie stanu stacjonarnego Obserwacja przyp. P ij = prawdopodobieństwo przejścia z i do j w jednym kroku prawdopodobieństwo przejścia z i do j w dwóch krokach, przechodząc przez k wynosi zatem P(i k j) = P ik P kj prawdopodobieństwo przejścia z i do j w dokładnie dwóch krokach, ale przez dowolny wierzchołek pośredni P(i j) = k P ik P kj
Istnienie Szukanie stanu stacjonarnego Obserwacja prawdopodobieństwo przejścia z i do j w dokładnie dwóch krokach przez dowolny wierzchołek pośredni P(i 2kroki j) = k P ik P kj zatem jest opisywane przez macierz P P = P 2, przez indukcję prawdopodobieństwo przejścia w krokach ze stanu i do j w k krokach jest opisywane przez macierz P k.
Istnienie Szukanie stanu stacjonarnego Sposób 1 oblicz macierz P i, gdzie i jest wysoką potęgą, zwróć jeden z wierszy otrzymanej macierzy, UWAGA: Algorytmu nie należy stosować z wyjątkiem sytuacji, gdy P jest mała.
Istnienie Szukanie stanu stacjonarnego Sposób 1 P = P 2 = 0.10 0.60 0.30 0.00 0.40 0.00 0.20 0.40 0.30 0.30 0.00 0.40 1.00 0.00 0.00 0.00 0.34 0.15 0.15 0.36 0.50 0.30 0.12 0.08 0.55 0.18 0.15 0.12 0.10 0.60 0.30 0.00 P 4 = P 8 = 0.30 0.33 0.19 0.15 0.39 0.23 0.15 0.21 0.37 0.23 0.16 0.23 0.49 0.24 0.13 0.12 0.37 0.26 0.16 0.18 0.38 0.27 0.16 0.17 0.38 0.27 0.16 0.17 0.36 0.28 0.17 0.17
Istnienie Szukanie stanu stacjonarnego Sposób 2 Algorytm: symulujemy wstępnie dużą ilość kroków łańcucha, tak by zbiegł do rozkładu stacjonarnego, od określonego punktu przez N kolejnych iteracji zliczamy ilości stanów jakie przyjął łańcuch, za prawdopodobieństwo przyjęcia stanu i przyjmujemy ilość kroków, w których łańcuch był w stanie i-tym π i := N Czasem się go określa jako MCMC = Markov Chain Monte Carlo.
Istnienie Szukanie stanu stacjonarnego Sposób 2 400 P = 0.10 0.60 0.30 0.00 0.40 0.00 0.20 0.40 0.30 0.30 0.00 0.40 1.00 0.00 0.00 0.00 T = [ 379 288 149 184 ] 350 300 250 200 150 100 50 0 0 1 2 3 4 5
Sposób 2 Łańcucha Markowa Istnienie Szukanie stanu stacjonarnego Problem: Kiedy zakończyć wstępną symulację?
Istnienie Szukanie stanu stacjonarnego Sposób 2 Algorytm: oznaczmy T wstępną ilość kroków, w kroku 0 z każdego ze stanów wypuszczamy osobną ewoluującą po sieci kopię łańcucha, jeżeli w pewnym kroku dwie kopie spotkają się w jednym stanie sklejają się i dalej ewoluują razem (równoważnie usuwamy jedną z kopii), jeżeli w kroku T wszystkie łańcuchy zostały sklejone do jednego, to kończymy etap, jeżeli nie to przyjmujemy T :=2T i kontynuujemy.
Sposób 2 Łańcucha Markowa Istnienie Szukanie stanu stacjonarnego Uwaga! istnieją łańcuchy Markowa, dla których ten algorytm się zapętli (ale dla takich nie istnieje rozkład stacjonarny nie spełniają założeń twierdzenia!). a b c a b c a 0 1 0 b 0.5 0 0.5 c 0 1 0
Za tydzień Łańcucha Markowa Istnienie Szukanie stanu stacjonarnego Wykorzystanie MC do konstrukcji stochastycznej dynamiki w sieci neuronowej (maszyna Boltzmanna).
Pytania Co to jest łańcuch Markowa? Podaj przykład. Podaj przykłady przywiedlnego i nieprzywiedlnego MC. Podaj przykłady okresowego i nieokresowego MC. Dla zadanej macierzy przejścia MC narysuj odpowiadający graf. Czy podany łańcuch Markowa zadany przez graf jest nieprzywiedlny / aperiodyczny? Czy podany łańcuch Markowa zadany przez macierz przejścia jest nieprzywiedlny / aperiodyczny?
Zaimplementuj algorytm symulujący MC o zadanej macierzy przejść P. Znajdź (numerycznie) rozkład stacjonarny zadanego łańcucha Markowa.