Ukryte modele Markova
Transkrypt
Ukryte modele Markova
Ła cuchy Markowa – „jawne” modele Markowa, Ŝ Je eli ograniczymy si do zmiennych dyskretnych i sko czonych ła cuchów, to je li X1, X2, ...Xn ... jest sekwencj zmiennych losowych przyjmuj cych warto ci ze tego samego alfabetu A, zgodnie z prawem Bayesa: P(X1, X2, ...Xn)= Π ni=1 P(Xi | X1, ...Xi-1) Zmienne losowe tworz ła cuch Markowa, je eli dla wszystkich i zachodzi: P(Xi | P(X1, ...Xi-1)= P(Xi | Xi-1) Ła cuch Markowa jest stacjonarny, je eli prawdopodobie stwo warunkowe jest niezale nie od ``momentu czasu'', czyli dla wszystkich i: P(Xi=x| Xi-1=y) = p(x|y) dla wszystkich {x, y} z alfabetu A ę ń ą ą Ukryte modele Markowa (HMM). Rozpoznawanie mowy. ń ś ś Ŝ ą ń Ŝ ń ń Ŝ Oparte na: Jurafsky & Martin; F. Jelinek, Statistical methods for Speech Recognition, The MIT Press, 1999 E.Charniak, Statistical Language Learning,, The MIT Press, 1993 Ŝ p(x|y) nazywane jest funkcj przej cia i mo e by reprezentowane jako macierz kwadratowa. ą Ła cuchy Markowa – „jawne” modele Markowa ś ć Ukryte modele Markova, Hiden Markov Models, HMM Je eli warto ci Xi potraktujemy jako stany, to ła cuch Markowa mo na potraktowa jako proces sko czeniestanowy (automat sko czony), w którym przej cie ze stanu x do stanu y ma przypisane prawdopodobie stwo p(x|y). Schemat ogólny ła cucha Markowa, uwzgl dniaj cy stan pocz tkowy S dla alfabetu {a, b}, Ŝ ś ń Ŝ ć ń ń ś ń ń ę ą ą Automat z prawdopodobie stwami mo e modelowa zjawiska, w których stanom mo emy przypisa jakie obserwowalne zjawiska, np. eksperyment, w którym rzucamy niesymetryczn monet Cz sto jednak mamy tylko informacje po rednie, np. wiemy e rzucane s nierzetelne monety i wiemy jaki jest ci g wyników, ale nie wiemy kiedy która jest rzucana (i ile ich jest) w tej sytuacji mamy zatem do czynienia z ukrytym poziomem i dlatego modele charakteryzuj ce takie procesy nazywamy ukrytymi modelami Markowa Najprostszy HMM: stany generuj symbole wyj ciowe wykorzystuj c odpowiedni alfabet, ale nie ma to zwi zku z nazw stanów, jest „niewidzialne” (ukryty poziom) ń Ŝ Ŝ ć ć ś ą ą ę ś Ŝ ą p(a|a) p(a|b) p(b|b) A B p(b|a) p(a) p(b) ą ą ą ś ą S ą ą HMM – rzuty monetami Jedna moneta: sekwencja OORRR Model jawny 1-p(o) O R 1-p(o) p(o) p(o) Ci g stanów: ą OORR Model ukryty (1 parametr) p(o) S 1-p(o) SSSSS Dwie monety, HMM (4 parametry) 1-p(S1|S1) S1 S2 p(S2|S2) 1-p(S2|S2) p(S1|S1) p2(o),1-p2(o) p1(o),1-p1(o) Hiden Markov Models, HMM Modelowanie rozpoznawania słów, uproszczony schemat - ka dy Ŝ stan generuje inny symbol: t × er rh te n e e a 3 0.2 2 1 0.6 0.3 0.4 e 1 0.12 0.4 0.88 p(4|3) = 0.1 1 4 p(toe) = .6 × .88 × 1 = .528 o 1 Zwi kszona „elastyczno ” Wyj cie zwi zane z przej ciami Ŝ ... ale ró ne stany mog powodowa wypisanie takich samych symboli (bo dlaczego nie?): ą ć • Jeszcze wi ksza elastyczno : generowanie wyj cia na przej ciach, nie w stanach ę ś ć ś ś sumowanie prawdopodobie stw dla wszystkich cie ek Ŝ ń ś en te rh e er 0.4 3 0.88 1 ć ń Ŝ ś !simplified! en te r r he e × 4 o e Inne uj cie • Zamiast przypisywa rozkład prawdopodobie stwa do jednego przej cia, mo na zapisa odpowiednio wiele przej i ka demu przypisa odpowiedni symbol wyj ciowy i prawdopodobie stwo: ć ń Ŝ Ŝ ś ć ś 1 0.12 1 0.4 3 p(t)=.5 p(o)=.2 p(e)=.3 p(t)=.1 p(o)=.7 p(e)=.2 2 0.88 0.88 1 4 p(t)=0 p(o)=1 p(e)=0 p(toe) = .6×.8 ×.88×.7 ×1×.6 + .4×.5 ×1×1 ×.88×.2 + p(t)=0 .4×.5 ×1×1 ×.12×1 p(o)=.4 ≅ .237 p(e)=.6 Formalizacja en te r r he e × t,.2 o,.06 e,.06 1 t,.48 o,.08 e,.12 o,1 e,.12 2 e,.176 t,.088 o,.616 3 ń o,.4 4 W praktyce wykorzystuje si ten sposób, który w danej sytuacji jest wygodniejszy. ę HMM, przykład – S = {s0,s1,s2,...,sT} to zbiór stanów, s0 jest stanem pocz tkowym, × – Y = {y1,y2,...,yV} to alfabet wyj ciowy, ś ś PS: ć |S|2. e x – PY(yk|si,sj) zbiór prawdopodobie stw wyj ciowych (wygenerowania symboli) Przykład: – S = {x, 1, 2, 3, 4}, s0 = x – Y = { t, o, e } 1 0.88 0.88 1 4 – Y = { e, o, t } ć wielko ń 0.12 3 – S = {x, 1, 2, 3, 4}, s0 = x ś 2 1 0.6 0.4 Dla omawianego grafu: ą ń p(toe) = .48×.616×.6+ .2×1×.176 + .2×1×.12 ≅ .237 e,.6 HMM (najogólniejszy przypadek) to (S, s0, Y, PS, PY) , gdzie: – PS(sj|si) zbiór prawdopodobie stw przej ć ś p(t)=0 p(o)=0 p(e)=1 0.6 p(toe) = .6 × .88 × 1 + e .4 × .1 × 1 + .4 × .2 × .3 + .4 × .2 × .4 = .624 0.2 ć p(t)=.8 p(o)=.1 p(e)=.1 1 o Maksymalna elestyczno : [Unigramowy] rozkład (przestrze alfabet wyj ciowy) na ka dym wyj ciu: ś o 0.88 0.1 e o ś 0.4 0.3 t 2 0.12 0.4 ... i w ko cu prawdopodobie stwa wyj cia • 1 1 0.6 3 p(toe) = .6 × .88 × 1 + .4 × .1 × 1 = .568 p(4|3) = 0.1 4 0.2 t e er rh te n e 0.12 0.4 0.3 × 2 1 0.6 e e 1 × t t t x x – 1PS:2 3 0 .6 0 .4 1 2 0 0 0 .12 0 .88 0 0 0 1 3 0 1 0 0 0 4 0 0 1 0 ś wielko ś ć PY: |S|2 x |Y| 0 4 0 t x 1 2 3 Σ=1 4 1 2 3 PYo: x 1 2 3 4 4 Σ=1 x 1 2 3 4 .2 1 .5 .7 1 .8 2 .1 2 3 0 0 3 4 4 0 0 2 Wykorzystanie HMM Wykorzystanie HMM Generowanie (o niewielkim praktycznym znaczeniu :-)): – sekwencja stanów nie pozwala na jednoznaczne odtworzenie danych 1. pocz tek w s = s0. 2. przej cie z s do s’ z prawdopodobie stwem PS(s’|s). 3. Wypisanie symbolu yk z prawdopodobie stwem P S(yk|s,s’). 4. powtarzanie od kroku 2 (a kto powie do ) – dane nie wyznaczaj jednoznacznie ci gu stanów ą ą Ŝ ś ą ć ź ś ć najbardziej prawdopodobny ci g stanów (lub odwrotnie, dla danego ci gu stanów wskaza najbardziej prawdopodobny ci g wej ciowy): ń ą Ŝ ś ą – „najlepsze co mo na zrobi ” to dla danego ci gu wej ciowego odnale ń ś HMM: model probabilistyczny i niedeterministyczny ć ą ą ć ś Dla danego HMM & sekwencji wyj ciowej Y = {y1,y2,...,yk}: ś (Zadanie 1) oblicz prawdopodobie stwo Y; (Zadanie 2) oblicz najbardziej prawdopodobny ci g stanów, który doprowadził do wygenerowania Y ń ą Zad. 1: obliczenie prawdopodob. Obliczanie warto ci - start (zakładamy dla ułatwienia wyj cie deterministyczne) ś HMM: Trellis(siatka) 0 ×,0 t te en r he A,0 B A 0.3 0.4 C 0.1 ×,1 .6 ×,2 0.88 D B,0 1 .4 ×,3 A,1 A,2 A,3 B,1 B,2 B,3 C,0 0.2 t o p(toe) = .6 × .88 × 1 + .4 × .1 × 1 = .568 C,2 C,3 .88 C,1 .1 D,0 tworzymy 0 pierwsz kolumn siatki:×,0 ę ą α=1 – dla pierwszego symbolu “wyj ciowego” y1 kolumn siatki, uwzgl dniaj c tylko te stany, w których mo na wygenerowa y1 – α(state,1) = PS(state|× × ) * α(× ×,0) ś 1 .6 A,1 α = .6 ę ę 1 D,1 ą – set its α(× ×,0) to 1. 4... “rollout” 0.12 w stanie pocz tkowym (× ×), position/stage rozpoczynamy time/position t 2 3 e 1 .6 × re 1 .4 C,1 ą Ŝ D,2 D,3 o e ć Y: - trellis state: (HMM state, position) - each state: holds one number (prob): α - probability of Y: Σα in the last state t + α(× × ,0) = 1 α(A,1) = .6 α(D,2) = .568 α(B,3) = .568 ...i α(C,1) = .4 zapominamy o kolumie 0 - za Jan Hajic, 1999 e t Nast pny krok Załó t en Ŝ ś ę – utworzenie „komórek” siatki dla tych stanów, które generuj yi+1, ale tylko dla tych, które s osi galne, z którego ze stanów kroku i – ustalenie α(state,i+1) na: ą ą ą he 1 × 0.3 0.4 C 0.1 ś Ostatni krok 0.12 B A 0.88 D 1 0.2 t o p(to) = .6 × .88 × 1 + .4 × .1 × 1 = .568 my, e jeste my w kroku i Tworzenie nast pnego kroku: Ŝ er re position/stage i=1 2 Kontunujemy, Ŝ ś – dla przykładu z ‘toe’ |Y| = 3 czyli do kroku 3 wszystkie α(state,|Y|) jest szukane P(Y). dodajemy to last position/stage A,1 B,3 α = .6 Uwagi .88 α = .568 o algorytmie (miłe): 1 – zu ycie pami ci: 2|S| C,1 α = .4 .1 PS(state|prev.state) × α(prev.state, i) (dodanie wszystkich tych warto ci dla łuków + dochodz cych do jednej komórki/stanu yi+1 = y2: siatki ) – ... i zapominamy o stanie i Ŝ D,2 α = .568 ę – max mno e : |S|2|Y| Ŝ o D,2 α = .568 ń P(Y) = .568 ś ą a do wyczerpania “wyj cia” (S -zbiór stanów) 3 Pełny przykład (wyj ś cie nieterministyczne) Zadanie 2: Algorytm Viterbi Algorytm znajdowania Stage: ,0× × 0 α=1 1 .48 1 A,1 α = .48 A,1 2 2 A,2 α = .2 .2 A,2 3 .12 .616 + .6 y2: o y1: t × re he t,.2 e,.12 o,.06 e,.06 A t,.48 e,.176 o,.08 t,.088 e,.12 o,1 o,.616 C D,2 D,3 α D,2 α ≅ .29568 = .035200 y3: e P(Y) = P(toe) = .236608 B znajdujemy ń ś ń o,.4 D e,.6 Algorytm Viterbi ogólnie ć ę .176 C,1 α = .2 ś Sbest = argmaxS P(S|Y) (Y jest stałe, wi c i P(Y)): Sbest = argmaxSP(S,Y) = = argmaxSP(s0,s1,s2,...,sk,y1,y2,...,yk) = = argmaxSΠi=1..k p(yi|si,si-1)p(si|si-1) (prawdopodobie stwo wygenerowania yi przy przej ciu ze stanu si-1 do si razy prawdopodobie stwo przej cia z si-1 do si ) B,3 α = .024 + .177408 = .201408 1 C,1 ter en najbardziej prawdopodobnej cie ki stanów, której przej cie mogło doprowadzi do wygenerowania zaobserwowanego sygnału (Y) Ŝ ś ś ą ę ś Viterbi ś ś Jednocze nie rozwi zujemy inny problem - segmentacj wej cia na słowa function Viterbi(observations of len T,state-graph) returns best-path num-states ← num-of-states(state-graph) Create a path probability matrix viterbi[num-states+2,T+2] viterbi[0,0] ← 1.0 for each time step t from 0 to T do prawdop. przej cia z s do s’ for each state s from 0 to num-states do for each transition s’ from s specified by state-graph new-score ← viterbi[s, t] * a[s, s’] * b s’ (o t ) prawdop. s’|ot w tablicy viterbi[ stan, pozycja_wej cia_t] przechowujemy max. prawdop., z jakim mogli my doj do tego miejsca ś ś ć ś w dodatkowej tablicy back_pointers przechowujemy dla ka dego stanu numer stanu poprzedniego, który le ał na ‘najlepszej’ cie ce do „przedłu enia” cie ki z s wybieramy s’ takie, e iloczyn prawdopod. cie ki do s razy prawd. przej cia z s do s’ razy prawd. wygenerowania w s’ t Ŝ Ŝ ś Ŝ Ŝ ś ś Ŝ if ((viterbi[s’, t+1] = 0) or (new-score > viterbi[s’ , t+1])) then viterbi[s’ , t+1] ← new-score back-pointer[s’, t+1] ← s Ŝ Ŝ ś jest max (dla wszystkich stanów) Backtrace from highest probability state in the final column of viterbi[] and return path Viterbi Example Viterbi Computation Y: ‘r’ t,r t,r ×,× t en er re he 0.6 C,C ×, C 0.12 .2 1 V,V 1 0.88 0.4 ×, V o,e,y,r 1 0.07 C,V 0.93 V,C .8 o,e,y,r o,e,y,r t,r p(t|C) = .3 p(r|C) = .7 p(o|V) = .1 p(e|V) = .3 p(y|V) = .4 p(r|V) = .2 p(t|C) = .3 p(r|C) = .7 p(o|V) = .1 p(e|V) = .3 p(y|V) = .4 p(r|V) = .2 argmaxXYZ p(rry|XYZ) = ? Possible state seq.: (×,V)(V,C)(C,V)[VCV], (×,C)(C,C)(C,V)[CCV], (×,C)(C,V)(V,V) [CVV] ×,× t en h er e er 0.6 t,r t,r 1 C,C α = .42 x .12 x .7 = .03528 α = .6 x .7 = .42 o,e,y,r 1 V,V V,V 0.93 V,C o,e,y,r t,r α = .07392 x .0.7 x .4 = .002070 C,V C,V αC,C = .03528 x 1 x .4 = .01411 αV,C = .056 x .8 x .4 V,C = .01792 = αmax ×, V α = .08 x 1 x .7 = .056 α = .4 x .2 = .08 α = .42 x .88 x .2 = .07392 .8 o,e,y,r y ×, C 0.07 C,V r .2 1 ×, V r α=1 C,C ×, C 0.12 0.88 0.4 ×,× α in trellis state: best prob from start to here classification (C or V?, sequence?): { 4 n-best State Sequences Y: Keep track ×,× r r α=1 of n best “back pointers”: Ex.: n= 2: Two “winners”: VCV (best) CCV (2nd best) Uwagi o algorytmie Viterbi y ą α = .42 x .12 x .7 = .03528 ą ą Ŝ ą ×,C α = .6 x .7 = .42 ą V,V α = .07392 x .07 x .4 = .002070 C,V αC,C = .03528 x 1 x .4 α = .42 x .88 x .2 = .07392 ? = .01411 αV,C = .056 x .8 x .4 V,C = .01792 = αmax ×,V α = .08 x 1 x .7 = .056 α = .4 x .2 = .08 ć ą Mo liwe bezpo rednie wykorzystanie tylko modelu bigramowego (dla modelu trigramowego, cie ka max. prawdop. nie musi by przedłu eniem najlepszej ice ki z poprzedniego stanu) - to mo na Ŝ ś Ŝ ś Ŝ omin ą ć ć Ŝ ś podaj c wi cej rozwi za ą ę ą Ŝ ń Zadanie rozpoznawania mowy podej cie statystyczne Rozpoznawanie mowy Zadanie: przekształcenie sygnału mowy na tekst czyli: Przypomnienie: Wbest = argmaxw p(W|O) jakie zdanie j zyka L jest najbardziej prawdopodobnym ródłem sygnału akustycznego o. ę ć ś ! Przy podanym sposobie analizy problemu nie przeszukujemy wcale przestrzeni ci gów słów. C,V { Najbardziej prawdopodobny ci g stanów (odpowiadaj cy najbardziej prawdopodobnemu ci gowi fonemów) mo e nie odpowiada najbardziej prawdopodobnemu ci gowi słów (np. je li w słowniku jest wiele sposobów wymowy niektórych słów, słowa o jednoznacznej wymowie mog by preferowane) C,C ź Wbest = argmaxw p(O|W) p(W) („złota zasada”) Obecne systemy komercyjne dotycz ró nych zastosowa : Ŝ ą p(O|W): model akustyczny p(W): n-gramowy model j zyka ń – teksty o szerokiej tematyce (słownik rz du 5000-60000 słów) ę ę – teksty z w skiej dziedziny, polecenia ą – pojedyncze słowa HMM to metoda wyznaczenia p( O | W) Problemy: – wielu mówców mówi cych jednocze nie (meeting minutes) ą ś – hała liwe otoczenie ś – szumy kanałów przesyłu (telefon, TV, ...) Rozpoznawanie mowy, zadanie łatwe czy trudne? Rozpoznawanie mowy, zadanie łatwe czy trudne? spróbujmy zgadn , co znaczy nast puj cy ci g fonemów: ą ć ę ą ci g fonemów (dane z korpusu): ą ą ay d ih s hh er d s ah m th ih ng ax b aw m uh v ih ng r ih s en l ih ay d ih s hh er d s ah m th ih ng ax b aw m uh v ih ng r ih s en l ih to I just heard something about moving recently „łatwiejszy” przykład [aa n iy dh ax ] I need the 5 Model słowa Model słowa ń automat z wagami (ła cuch Markova) ‘need’ ‘need’ a14=.11 a01 start → n1 ↓ ... n a12 → o1 iy2 → ↓ a23= .89 ly d3 → end ↓ a34 d ... o2 o3 start → prawdop. → iy2 b1(o1) b1(o2) → d3 b2(o3) b2(o4) b2(o5) end b3(o6) ś ...... zakładali my tu, e znamy fonemy wej ciowe, ale tak naprawd nie mamy symboli fonemów tylko sygnał, który musimy podzieli na słowa i fonemy ... Ŝ → n1 wyj ciowe observation sequence (phone symbols) ś a14=.11 ś o1 o2 o3 o4 o5 o6 observation sequence (spectral feature vectors) ę (trzeba jeszcze doda p tle w stanach n1, iy2 i d3 dla ró nej długo ci fonemów) Ŝ ć ę ć ś Rozpoznawanie mowypotrzebne zasoby Uwagi o zasobach: Model j zyka powinien mo liwie dobrze oddawa dziedzin , której dotyczy dyktowany tekst, słownik wymowy prawdopodobnie nie b dzie kompletny, du e r cznie anotowane dane zawieraj ce mow s kosztowne, r cznie anotowane dane na poziomie fonemów s jeszcze kosztowniejsze Ŝ Korpus, aby wytrenowa model j zyka. Powinien by du y i reprezentatywny dla konkretnej dziedziny zastosowa Ŝ ć ę ć ń ę ć ę ę Ŝ Ŝ Słownik wymowy, który posłu y do zbudowania biblioteki modeli wymowy słów. korpus nagra (wave files) z transkrypcj słowo po słowie korpus nagra (spectral feature frames) z transkrypcj zawieraj c fonemy ń ń ą ą ę ą ę ę ą ą ą ą ! W rzeczywisto ci nie da si uzyska wszystkich potrzebnych liczb z danych treningowych (konieczne estymacje) Najcz stszy zbiór etykiet to spis wszystkich mo liwych kombinacji cech gramatycznych dla danego j zyka T ⊂ C1×C2×... ×Cn ś ę ć Tagset (przypomnienie) Ŝ ę ę Ukryte modele Markova w tagowaniu morfologicznym. Estymacja parametrów HMM. – zwykle ci g liter i cyfr: ą system skrótów: NNS (gen. noun, plural) system pozycyjny: pozycja i odpowiada Ci: – AAMP3----2A---- (gen. Adj., Masc., Pl., 3rd case (dative), comparative (2nd degree of comparison), Affirmative ) – tense, person, variant, etc.: N/A (oznaczone ‘-’) 6 Zadanie tagowania morfologicznego Formalnie: Przykłady A+ → →T – He always books the violin concert tickets early. A to alfabet fonemów (A+ niepusty ci g fonemów) MA: books → {(book-1,Noun,Pl,-,-),(book-2,Verb,Sg,Pres,3)} tagging (ujednoznacznienie): ... → (Verb,Sg,Pres,3) – ...was pretty good. However, she did not realize... MA: However → {(however-1,Conj/coord,-,-,-),(however2,Adv,-,-,-)} tagging: ... → (Conj/coord,-,-,-) – [a n d] [g i v] [i t] [t u:] [j u:] (“and give it to you”) MA: [t u:] → {(to-1,Prep),(two,Num),(to-2,Part/inf),(too,Adv)} tagging: ... → (Prep) ą – bardzo cz sto zamiast fonemów - litery ę T jest zbiorem tagów (etykiet) (“tagsetem”) Przypomnieć naleŜy wielość poziomów analizy języka: fonetyka... fonologia ... morfologia ... syntaktyka ... semantyka ... tag g g in ”krok w bok” A+ → 2(L,C1,C2,...,Cn) → T – morphology tagging: disambiguation ( ~ “select”) Tagowanie statystyczne Forma słowa: A+ → 2(L,C1,C2,...,Cn) → T Noisy Channel: Input (tags) NNP VBZ DT... Elementy modelu - P(Tag Sequence) Output (words) The channel (adds “noise”) JeŜeli załoŜymy, Ŝe dysponujemy otagowanym korpusem do trenowania naszego tagera i trigramowym modelem języka to P (Tag Sequence) moŜe być przybliŜone jako: P(t1) P(t2 | t1) John drinks the ... Πn i=3 P(t i | t i-2 t i-1) co moŜna wyliczyć z danych i wygładzić Ponownie ta sama historia: Argmax P (Tag Sequence|Word Sequence) po przekształceniu: Argmax P(Word Sequence|Tag Sequence)P (Tag Sequence) P (Word Sequence) Model word | tag Tagowanie statystyczne jako HMM P (Word Sequence|Tag Sequence) Czynimy w tym miejscu upraszczające załoŜenie, Ŝe słowo zaleŜy tylko od tagu. Πn i=1 P(wi |ti ) Łącząc to z modelem języka, poszukujemy sekwencji tagów, które maksymalizują następującą wielkość: P (t1 )P (t2 | t1)Πn i=3 P(t i | t i-2 t i-1) (Πn i=1 P(wi |ti ) ) Przejścia pomiędzy stanami i ich prawdopodobieństwa pochodzą z modelu języka prawdopodobieństwa wygenerowania symboli wyjściowych pochodzą z rozkładu P(word|tag) jak w przypadku innych podobnych zastosowań znajdujemy najbardziej prawdopodobną sekwencję tagów wykorzystując algorytm Viterbiego Rezultaty większość dobrych modeli statystycznych dla angielskiego daje ok. 95% poprawnych wyników (na standardowych danych testowych, zwykle jest to korpus Browna lub WSJ). Ale - 91% dokładność moŜna uzyskać biorąc po prostu najbardziej prawdopodobny tag … 7 Prosty przykład HMM Znajdowanie najbardziej prawdopodob. cie ki (Viterbi, powt.) a:P(a|n)P(n|n) a:P(a|n)P(v|n) a:P(a|v)P(v|v) v n b:P(b|n)P(v|n) b:P(b|n)P(n|n) b:P(b|v)P(v|v) tagi: n v słowa: a b i obu słowom mogą być przyporządkowane oba tagi a:.3 b:.2 b:.1 a:.2 n v a:.4 a:.2 b:.5 b:.1 ε stany n ciąg stanów V prawdopod. ciąg stanów prawdopod. bb bbb bbba n nn nnn nnnn nvvvn 1.0 v 0 .2 nv .1 .04 nvv .05 .008 nvvv .025 .005 nvvvv .005 αj(t+1) = P(w 1,t , St+1=s j ) = 1. P(w 1,n ) = Σ i=1..σ σ P(w 1,n, Sn+1=s ) = Σ i=1..σ σ αi(n+1) prawd. uzyskania ciągu w 1,n jest sumą prawdopodobieństw uzyskania go poprzez „dokończenie” ciągu o 1 krótszego poprzez przejście ze wszystkich stanów HMM P(w 1,t, St=s i, St+1=sj ) = Σ i=1..σ σ P(w 1,t-1, St=s i)P(wt, St+1=sj | w1,t-1, St = sj ) = (Markov as.) Σ i=1..σ σ P(w 1,t-1, St=s i)P(wt, St+1=sj | St = sj )= i Obliczanie prawdopodobie stw dla HMM bbba i=1..σ σ Σ Dla kaŜdego stanu s i liczymy po kaŜdym słowie prawdopodobieństwo z jakim dany ciąg słów (długości t) doprowadziłby nas nas tego stanu (warunki początkowe - dla ciągu pustego, pr. dla stanu początkowego =1, dla innych 0) αi(t) =(def) P(w 1,t-1 , St=s i ) t>1 (forward probalility) b Obliczanie prawdopodobie stw dla HMM Σ dla kaŜdego stanu liczymy, jakie jest największe prawdopodobieństwo znalezienia się w nim po t-krokach korzystamy z wyników dla ścieŜki o 1 krótszej musimy zapamiętać wynik dla kaŜdego stanu (przy danym wejściu) poprzednie wyniki moŜemy zapomnieć Obliczanie prawdopodobie stw dla HMM Najbardziej prawdopodobna cie ka bbba Znamy ciąg wyjściowy, szukamy ciągu stanów σ(t) = arg max P(Word Sequence|Tag Sequence) b:.2 a:.3 n b:.1 v a:.4 a:.2 a:.2 b:.5 b:.1 i j i=1..σ σ α i (t) P(s ->(wt) s ) prawd. znalezienia się w momencie t w stanie i razy prawdopodobieństwo przejścia z i do j przy wt Time ticks Input 1 ε 2 b 3 bb 4 bbb 5 bbba αn(t) αV(t) P(w1,t) 1.0 .2 .05 .017 .0148 0.0 .1 .07 .04 .0131 1.0 .3 .12 .057 .0279 8 Obliczanie prawdopodobie stw wstecz dla HMM Prawdopodobie stwo liczone „wstecz” αi(t) =(def) P(w 1,t-1 , St=s i ) t>1 (forward probalility) βi(t) =(def) P(w t,n | St=s i ) bbba (backward probalility) prawdopod. zobaczenia ciągu w t,n o ile w kroku t znajdujemy się w s i j βi(t-1) = Σ j=1..σ σ β j (t) P(s ->(wt-1) s ) a:.3 b:.2 i b:.1 a:.2 n v a:.4 a:.2 prawd. zobaczenia ciągu b:.5 b:.1 wt w momencie t razy prawdopodobieństwo Input przejścia z i do j przy wt-1 βn(i) βV(i) 1 bbba 2 bba 3 ba 4 a 5 ε .0279 .063 .18 .7 1 .153 .27 .4 1 Ze stanu n b dziemy mogli przej z a albo do n z pr=.4, albo do v z pr .3 ę ś Uczenie Aby zdefiniować HMM musimy mieć prawdopodobieństwa (przejść i generowania słów) jeŜeli dysponujemy danymi, to moŜemy tak dopasowywać nasz model, by większe prawdopodobieństwa nadawał sekwencjom, które pojawiły się w danych treningowych w skrajnym przypadku, moŜemy zapamiętać dane, ale na to potrzeba bardzo wielu stanów (zupełnie niepraktyczne podejście) jak inaczej: na przykład dla zwykłego łańcucha Markova - liczymy dla danych testowych, ile razy które z przejść zostało wybrane na wszystkie przejścia z danego stanu Uczenie Ciąg treningowy: abbaababbaa Liczności: z n n v v do v n n n wyjście liczność a 5 b 3 a 2 b 2 a n b a n v b b Baum-Welch (forward-backward) algorithm Umiemy juŜ obliczyć prawdopodobieństwo ξt(i,j) znalezienia się w stanie Si w momencie t i w stanie Sj w momencie t+1: ξt(i,j)=P(qt=Si, qt+1=Sj | O, λ)= (O-sekwencja, λ- model) = α t(i)aijbj(Ot+1)β β t+1(j)/P(O| λ)= = α t(i)aijbj(Ot+1)β β t+1(j)/ (Σ Σ i=1..N Σ j=1..N α t(i)aijbj(Ot+1)β β t+1(j)) γt(i)= Σ j=1..N ξt(i,j) – prawdopodobieństwo znalezienia się w stanie i w momencie t Suma γt(i) po t da nam spodziewaną liczbę odwiedzin stanu Si w trakcie analizy całej sekwencji (po odjęciu końcowego stanu – spodziewaną liczbę przejść ze stanu Si) Σ t=1..T-1 ξt(i,j) – spodziewana liczba przejść z Si do Sj ć a a v b cd. Podane poprzednio reguły mogą słuŜyć do zmiany modelu HMM w następujący sposób: π’i= = γ 1(i) (oczekiwana liczba razy, gdy znajdziemy się w stanie Si dla t=1) a’ij = spodziewana liczba przejść z Si do Sj spodziewana liczba przejść ze stanu Si = Σ t=1..T-1 ξt(i,j) / Σ t=1..T-1 γt(i) ba’ij = spodziewana liczba „pobytów’ w stanie j przy symbolu vk spodziewana liczba ‘pobytów’ w stanie j = Σ t=1..T (s.t.Ot=Vk) γt(j) / Σ t=1..T γt(j) Iteracyjnie zastępujemy odpowiednie elementy modelu przez te wyliczone. 9 Uczenie HMM Nie zawsze wiemy, które z przejść zostało wybrane (zakładamy, Ŝe wszystkie i rozdzielamy prawdopodobieństwo zgodnie z prawdopodobieństwem danej ścieŜki) trzeba od czegoś zacząć problemy z ew. punktami krytycznymi, maximami lokalnymi Przykład 1:.17 – C(s i -> (wk) s j) = Σ P(s1,n+1 |w1,n ) *licz(s i -> (wk) s j, s1,n w1,n) 0:.67 a 0:0.16 1:.48 b 1:1.0 0:0.04 a b 0:.48 1:1.0 Właściwy model PrzybliŜenie ciąg treningowy: 01011 moŜliwe ścieŜki: ababaa abaaa aaabaa aaaaaa ile razy (s i -> (wk) s j )pojawia się w ciągu stanów jeśli generowane jest w1,n N-gramy a HMM Definicja modelu HMM dla tagowania W naturalny sposób model HMM oddaje zaleŜność od jednego elementu wstecz (od poprzedniego stanu). MoŜna jednak zakodować dłuŜszy kontekst zwiększając przestrzeń stanów (kaŜdy stan to n-1 gram). (prawie) ogólny model HMM: – output (słowa) emitowany przez stany (nie łuki) – stany: (n-1)-tka tagów (jeŜeli wykorzystujemy model n-gramowy) – piątka (S, s0, Y, PS, PY), gdzie: S = {s0,s1,s2,...,sT} zbiór stanów, s0 stan początkowy, Y = {y1,y2,...,yV} alfabet wyjściowy (słowa), PS(sj|si) zbiór prawdopodobieństw przejść między stanami PY(yk|si) zbiór prawdopodobieństw emisji słów PS(sj|si) = p(ti|ti-n+1,...,ti-1); sj = (ti-n+2,...,ti), si = (ti-n+1,...,ti-1) – uproszczenie: PY(yk|si) = PY(yk|sj) je li si i sj zawieraj najbardziej na prawo ten sam tag: ś ą PY(yk|si) = p(wi|ti) przykład Typy HMM Tagger dla korpusu IPI PAN – HMM zbudowany dla modelu trigramowego, wytrenowany na korpusie frekwencyjnym języka polskiego Ergodyczne HMM – kaŜdy stan jest z kaŜdego osiągalny po skończonej liczbie kroków (w szczególności mogą to być pene HMM, takie jak omawiane dotychczas) Bakis HMM, left-right models – stany sa uporządkowane, a przejścia moŜliwe są tylko ze stanami „na prawo”, czyli takimi, których numer nie jest mniejszy Kombinacje, np. parallel left-right models Procedury „uczenia” HMM pozostają niezmienione, po prostu te prawdopodobieństwa, które początkowo ustalimy na 0 pozostają zerowe. 10