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

Podobne dokumenty