Hidden Markov Model Göbölös-Szabó Julianna March 12, 2013
Outline 1 Egy példa 2 Feladat formalizálása 3 Forward-algoritmus 4 Backward-algoritmus 5 Baum-Welch algoritmus 6 Skálázás 7 Egyéb apróságok 8 Alkalmazás
Példa elmúlt évek átlaghőmérsékletét, időjárását próbáljuk megbecsülni (adat nem áll rendelkezésre) ami megfigyelhető: fák évgyűrűi tudjuk, hogy hidegben kevésbé fejlődik a fa Meleg-hideg évek váltakozása: H C H 0.7 0.3 C 0.4 0.6 Hőmérséklet hatása az évgyűrűkre: S M L H 0.1 0.4 0.5 C 0.7 0.2 0.1
Példa Állapotok: Hot, Cold Megfigyelés szimbólumai: Small, Medium, Large Állapotátmenet mátrix: [ 0.7 ] 0.3 A = 0.4 0.6 Kibocsátási mátrix: [ 0.1 0.4 ] 0.5 B = 0.7 0.2 0.1 Megfigyelés: O = SMLS Feladat: határozzuk meg a legvalószínűbb állapotsorozatot, ami O-t generálta!
Mit jelent, hogy legvalószínűbb? Feladat: határozzuk meg a legvalószínűbb állapotsorozatot, ami O-t generálta! Dinamikus programozás: adott hosszúságú sorozatok közül megadja a legnagyobb valószínűségűt. HMM: olyan állapotsorozatot ad meg, ami a helyes állapotok várható számát maximalizálja
Emlékeztető Markov-lánc Egy X 1, X 2,..., X n valószínűségi változó sorozat, amire n-re teljesül: P(X n = x n X n 1 = x n 1, X n 1 = x n 1,..., X 1 = x 1 ) Egy lépéses átmenetvalószínűség: = P(X n = x n X n 1 = x n 1 ) p ij = P(X 1 = j X 0 = i)
Jelölések T : megfigyelt szekvencia hossza N: Markov-folyamat állapotainak száma M: megfigyelés szimbólumainak száma Q: Markov-folyamat állapotainak halmaza {q 0,..., q N 1 } V : megfigyelés szimbólumainak halmaza {0,..., M 1} A: állapotátmenet valószínűségek mátrixa B: megfigyelési valószínűségek mátrixa π: kezdeti eloszlás O: a megfigyelt szekvencia (O 0, O 1,..., O T 1,) λ = (A, B, π)
Jelölések Állapotátmenet valószínűségek mátrixa (A): a i,j = P(q j -ben vagyunk t + 1-ben q i -ben voltunk t-ben) stacionárius: t-től nem függ sorsztochasztikus, azaz j a i,j = 1 Megfigyelési valószínűségek mátrixa (B): b j (k) = P(O t = k t-ben q j -ben vagyunk) stacionárius: t-től nem függ sorsztochasztikus, azaz j b jk = 1
A három feladat 1 Adott a modell λ = (A, B, π) és egy O megfigyelés. Keressük P(O λ)-t! 2 Adott a modell λ = (A, B, π) és egy O megfigyelés. Keressük a háttérbeli Markov-folyamat legvalószínűbb állapotsorozatát! 3 Adott egy O megfigyelés, N és M dimenziók. Keressük λ = (A, B, π)-t, amire P(O λ) maximális!
1. feladat - Forward algoritmus Feladat: Adott a modell λ = (A, B, π) és egy O = (O 0, O 1,..., O T 1 ) megfigyelés. Keressük P(O λ)-t! (Állapotok a háttérben: X = (x 0, x 1,..., x T 1 )) P(O X, λ) = b x0 (O 0 ) b x1 (O 1 )... b xt 1 (O T 1 ) = T 2 P(X λ) = π x0 a x0,x 1 a x1,x 2 a xt 2,x T 1 = π x0 P(O X λ) Mivel P(O, X λ) = és P(λ) P(O X λ) P(X λ) P(O X, λ) P(X λ) = P(X λ) P(λ) A jobb oldalak egyenlőségéből adódik: i=0 = P(O, X λ) = P(O X, λ) P(X λ) T 1 i=0 a xi,x i+1 b xi (O i ) P(O X λ) P(λ)
1. feladat - Forward algoritmus A fentiekből: P(O λ) = X P(O, X λ) = X P(O X, λ) P(X λ) = X T 1 π x0 i=0 T 2 b xi (O i ) i=0 a xi,x i+1 Ennek a direkt kiszámítása: 2TN T lépés lenne. Hatékony kiszámitás: Forward-algoritmus
Forward algoritmus Rekurzív kiszámítás: 1 α 0 (i) = π i b i (O 0 ) α t (i) = P(O 0 O 1... O t, x t = q i λ) 2 t > 0 esetén: α t (i) = [ N 1 j=0 α t 1(j)a ji ] b i (O t ) 3 P(O λ) = N 1 j=0 α T 1(i) Lépésszám: N 2 T (Megjegyzés: A Viterbi-algoritmus ehhez nagyon hasonló, de helyett max van, és a legvalószínűbb szekvenciát adják meg. (ld. a korábban emĺıtett DP-feladat))
2. feladat - Backward algoritmus Feladat: Adott a modell λ = (A, B, π) és egy O megfigyelés. Keressük a levalószínűbb X = x 1 x 2... x T 1 állapotsorozatot! Legyen β t (i) = P(O t+1 O t+2... O T 1 x t = q i, λ) Rekurzív kiszámítás: 1 β T 1 (i) = 1, 0 i N 1 2 t < T 1 esetén: β t (i) = [ N 1 j=0 a ijb j (O t+1 β t+1 (j)) 3 Legyen γ t (i) = P(x t = q i O, λ) γ t (i) = α t(i)β t (i) P(O λ) 4 Legvalószínűbb állapot t-ben: argmax i γ t (i)
3. feladat - Modell tanítása Feladat: Adott O, N, M, keressük λ = (A, B, π)-t! Legyen γ t (i, j) == P(x t = q i, x t+1 = q j O, λ) = α t(i)a ij b j (t + 1)β t+1 (j) P(O λ) (azaz γ t (i, j) annak a valószínűsége, hogy t-kor az i állapotban vagyok, t + 1-ben pedig a j állapotban, ismerve az O szekvenciát és a modellt)
Modell tanítása 1 π i = γ 0 (i) 2 a ij = 3 b j (k) = T 2 t=0 γ t(i, j) T 2 t=0 γ t(i) t;o γ t=k t(j) t γ t(j) = q i q j átmenetek várható száma q i bármi átmenetek várható száma = q j -ben hányszor volt a megfigyelés k q j -ben hányszor jártunk
Modell tanítása Inicializálás: π i 1 N a ij 1 N b j (k) 1 M Algoritmus 1 Inicializálás 2 α, β, γ értékeinek számítása 3 λ = (A, B, π) becslése a fentiek alapján. 4 Ha P(O λ) növő, akkor iterálunk tovább
A relatív entrópiáról Legyenek X, Y diszkrét eloszlású valószínűségi változók! H(Y X ) = i y(i) log y(i) x(i) Álĺıtás Bizonyítás H(Y X ) = i H(Y X ) 0 y(i) log y(i) x(i) i y(i)( y(i) x(i) 1) = 0 (Felhasználtuk, hogy log x x 1)
Az eljárás helyes Cél: argmax λ P(O λ) = argmax λ X P(O, X λ) P(O, X λ) = P(X O, λ) P(O λ) λ: a modell paramétere, ezt próbálom közeĺıteni λ t : a modell paraméterének közeĺıtése Varázsolunk : szorozzunk be P(O, X λ t )-vel és összegezzünk X -re! P(O, X λ t ) log P(O, X λ) = X P(X O, λ t ) log P(X O, λ) + P(X O, λ t ) log P(O λ) X X
P(X O, λ t ) log P(O λ) = X P(X O, λ t )[log P(O, X λ) log P(X O, λ)] X A bal oldalon az X -től független tag kiemelhető (a megmaradt összeg értéke pedig 1), így: log P(O λ) = P(X O, λ t ) log P(O, X λ) P(X O, λ t ) log P(X O, λ) X X Jelölje: Q(λ λ t ) = X P(X O, λt ) log P(O, X λ) Cél: a következő iterációban ne csökkenjen a likelihood. log P(X λ t ) = X P(X O, λ t ) log P(O, X λ t ) X P(X O, λ t ) log P(X O, λ t )
Képezzük a két egyenlet különbségét: log P(O λ) log P(X λ t ) = Q(λ λ t ) Q(λ t λ t ) X P(X O, λ t ) log P(X O, λ) P(X O, λ t ) A harmadik tag egy relatív entrópia (-1)-szerese, így log P(O λ) log P(X λ t ) 0-hoz elegendő: Q(λ λ t ) Q(λ t λ t ) 0 Használható az EM algoritmus: 1 Számold ki Q(λ λ t )! 2 λ t+1 = argmaxq(λ λ t )
Q(λ λ t ) = X P(X O, λ t ) log P(O, X λ) P(O, X λ) = N M N N b j (i) E j (i,x ) ( a k,l ) A k,l (X ) j=1 i=1 k=1 l=1 E j (i, X ): hányszor használtam a j állapotot i szimbólum kibocsátására A k,l (X ): hány k l ugrás volt az X útvonalon log P(O, X λ) = Ezt beírva Q-ba: X N M N N E j (i, X ) log b j (i)+ A k,l (X ) log a k,l ) j=1 i=1 j=1 i=1 Q(λ λ t ) = k=1 l=1 N M N N P(X O, λ t )( E j (i, X ) log b j (i)+ A k,l (X ) log a k,l ))) k=1 l=1
X j=1 i=1 Q(λ λ t ) = N M N N P(X O, λ t )( E j (i, X ) log b j (i)+ A k,l (X ) log a k,l ))) k=1 l=1 E j (i, X ) és A k,l (X ) : csak X -től függnek, λ-tól nem b j (i), a k,l : X -től függetlenek, ezeket kell update-elni Q(λ λ t ) = N j=1 i=1 M log b j (i) X P(X O, λ t )E j (i, X )+ N N log a k,l P(X O, λ t )A k,l (X ) k=1 l=1 X
Álĺıtás N k=1 l=1 N log a k,l E(A k,l (X )) maximális, ha a k,l = E(A k,l(λ t )) l E(A k,l (λt )) Bizonyítás N k=1 l=1 N E(A k,l (X )) log N k=1 l=1 Bővítsünk l E(A k,l (λt ))-vel! E(A k,l (λ t )) l E(A k,l (λt )) N E(A k,l (X )) log a k,l 0
N N k=1 l=1 l =1 N E(A k,l (λ t E(A k,l (λ t )) )) N l =1 E(A k,l (λt )) log E(A k,l (λ t )) N l =1 E(A k,l (λt )) N N k=1 l=1 l =1 k=1 l =1 N E(A k,l (λ t E(A k,l (λ t )) )) N l =1 E(A k,l (λt )) log a k,l N N N = [ E(A k,l (λ t )) log l=1 E(A k,l (X )) N l =1 E(A k,l (λt )) a k,l ] Relatív entrópia miatt ez tagonként 0 E(A k,l (λ t )) N l =1 E(A k,l (λt ))
Skálázás Valószínűségek szorzatával kell számolni alulcsordulás Megoldás: α, β értékek skálázása t = 0 - ra: α t (i) = α 0 (i) = α 0 (i) 1 c 0 = N 1 j=0 α 0(j) ˆα 0 (i) = c 0 α 0 N 1 j=0 α t 1 (j)a j,i b i (O t ) t > 0 - ra: α t (i) = N 1 j=0 ˆα t 1(j)a j,i b i (O t ) 1 c t = N 1 j=0 α t(j) ˆα t (i) = c t α t
Skálázás Álĺıtás ˆα t (i) = c 0 c 1... c t α t (i) Bizonyítás: indukcióval. t = 0 esetben triv. Tegyük fel, hogy t-re igaz, ekkor t + 1-re: ˆα t+1 (i) = c t+1 α t+1 = N 1 c t+1 j=0 Kihasználva az indukciós feltevést: ˆα t (j)a j,i b i (O t+1 ) N 1 = c 0 c 1... c t+1 α t (j)a j,i b i (O t+1 ) = c 0 c 1... c t+1 α t+1 (i) j=0
Skálázás Következmény:. Ennek felhasználásával: 1 = N 1 j=1 N 1 j=1 ˆα T 1 (j) = 1 N 1 ˆα T 1 (j) = c 0 c 1... c T 1 = c 0 c 1... c T 1 P(O λ) P(O λ) = 1 T 1 i=0 c i j=0 α T 1 (j) β-k skálázása ugyanígy megy: ˆβt (i) = c t β t (i) a modellben γ t (i) és γ t (i, j) számításához használhatóak a ˆβ t és ˆα t értékek
Egy állapotban maradás valószínűsége Az eddigiek alapján: p i (d) = (a ij ) d 1 (1 a ij ) = d-szer egymás után S i -ben vagyok (pontosan) exponenciálisan lecseng nem valósághű tipikus eset: eloszlásunk van arra, hogy az i-dik állapotban hány állapotot várakozik a modell, mielőtt továbblép Ekkor a modell így változik: 1 q 1 = S i -et kiválasztjuk π alapján 2 d 1 -et sorsoljuk p q1 (d) alapján 3 O 1 O 2... O d1 -et generáljuk b q1 (O 1 O 2... O d1 ) alapján (ez tipikusan d 1 t=1 b q 1 (O t )) 4 q 2 = S 2 -t kiválasztjuk az a q1,q 2 -k alapján
Egy állapotban maradás valószínűsége Természetesen ekkor az α, β formulája is módosul. Például: α t (i) = π q1 p q1 (d 1 )P(O 1 O 2... O d1 q 1 ) q d a q1,q 2 p q2 (d 2 )P(O d1 +1O d1 +2... O d1 +d 2 q 2 )... a qr 1,q r p qr (d r )P(O d1 + +d r 1 +1O d1 + +d r 1 +2... O d1 + +d r q 2 )... A képletek is módosulnak, erre most itt nem térnék ki.
Egy szövegbányászati alkalmazás Adott egy hosszabb időszakot felölelő cikkgyűjtemény. Ebben szeretnénk automatikusan témákat találni, majd pedig a témák evolúcióját, alakulásait vizsgálni. A témákat nyelvmodellekkel jellemezzük. Feltételezzük, hogy van k darab téma (T 1,..., T k ) és egy általános nyelvmodellünk(b). Állapotok: témák A megfigyelés szimbólumai: a szavak
Egy szövegbányászati alkalmazás Ebből konstruálunk egy k + 1 állapotú HMM-et, ahol a Markov-folyamatban T i -ből T j -be közvetlenül nem léphetek, mindig csak B-n keresztül Amire szükségünk van: a háttérfolyamat legvalószínűbb állapotsorozata, később ezt tudjuk arra használni, hogy adott időszakok legjellemzőbb témáit és azok kapcsolatait feltárjuk
Köszönöm a figyelmet! Felhasznált irodalom: Mark Stamp: A Revealing Introduction to Hidden Markov Models Lawrence R. Rabiner: A tutorial on Hidden Markov Models and selected applications in speech recognition Miklós István: Sztochasztikus modellek a bioinformatikában, előadásjegyzet (2009.) Mei, Zhai: Discovering evolutionary theme patterns from text: an exploration of temporal text mining