SRE 03 - Skryté Markovovy modely HMM Jan Černocký ÚPGM FIT VUT Brno, cernocky@fit.vutbr.cz FIT VUT Brno SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 1/35
Plán... SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 2/35
Úkol - udělat rozpoznávač výklad na rozpoznávání izolovaných slov: model1 Viterbi probabilities Φ1 model2 Φ2 unknown word model3... Φ3 selection of the winner word2... v modeln Φ N v SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 3/35
Co máme k disposici? 1. teorii statistického rozpoznávání vzorů: P(ω j x) = p(x ω j)p(ω j ), p(x) P(ω j x) je posterior třídy ω j, známe-li datový vektor x, P(ω j ) je prior třídy ω j p(x) je evidence (normalizační funkce taková, aby P(ω j x) byla slušná pravděpodobnost). Na evidenci p(x) nehledíme, protože je stejná pro všechny třídy a u jednoduchých rozpoznávačů předpokládáme, že priory všech tříd budou stejné P(ω j ) = ω. Proto nám pro nalezení rozpoznaného slova bude stačit maximalizovat: ω j = max j p(x ω j ) SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 4/35
2. Pro rozpoznávání jednotlivých vektorů dokážeme třídy namodelovat Gaussovými rozděleními nebo sokonce jejich směsí: p(x ω j ) = M α ji N(x; µ ji,σ ji ), i=1 µ 1 =[1;0.5]; Σ 1 =[1 0.5; 0.5 0.3]; w 1 =0.5; µ 2 =[2;0]; Σ 2 =[0.5 0; 0 0.5]; w 2 =0.5; 0.45 0.4 0.35 0.3 p(x) 0.25 0.2 0.15 2 0.1 1 0.05 0 4 3 2 1 0 1 2 2 1 0 x 2 x 1 SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 5/35
a dokážeme jejich parametry Θ (míchací koeficienty, střední hodnoty a kovarianční matice) odhadnout pomocí iterativního algoritmu EM: 1. parametry na začátku nějak odhadneme. 2. s parametry Θ (i 1) se pro každou Gaussovku spočítá occupation count : γ l (k) = α(i 1) l M i=1 α(i 1) i N(x k ; µ (i 1) l,σ (i 1) N(x; µ (i 1) i l ),Σ (i 1) i ) SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 6/35
3. a nové parametry jsou dány (omlouvám se za nepřítomnost stříšek ˆ)... α (i) l = 1 n n γ l (k) k=1 µ (i) l = n k=1 γ l(k)x k n k=1 γ l(k) Σ (i) l = n k=1 γ l(k)(x k µ (i) l )(x k µ (i) l n k=1 γ l(k) ) T 4. opakujeme body 2 a 3 dokud se nesnižuje celková log-likelihood: lnp(d Θ) = n ln k=1 M α ji N(x k ; µ ji,σ ji ) i=1 nebo nás to nepřestane bavit (fixní počet iterací). SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 7/35
... jenže I.... Nemáme jen jeden vektor vstupní sekvence vektorů O = [o(1),o(2),...,o(t)], (1) 1 2 3 4 5 6 7 8 9 10 10 20 30 40 50 60 SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 8/35
... jenže II.... Lidé neřeknou nikdy nic stejně rychle a se stejným časováním?? SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 9/35
Nápad 1: mít 1 gaussovku na slovo, postupně jí předkládat vektory a hodnoty sčítat BLBÝ NÁPAD ( paří = řípa???) Nápad 2: každé slovo budeme muset representovat sekvencí více Gaussovek. jedna nezávislá Gaussovka na každý vektor? Aj aj, vektorů je pokaždé jiný počet! model, kde se Gaussovky budou moci opakovat! SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 10/35
Skrytý Markovův model HMM uvažujeme model pouze pro jednu třídu, ostatní budou podobné, ale s jinými parametry! Markov model M a 22 a 33 a 44 a 55 Observation sequence a 12 a 23 a 34 a 45 a 56 1 2 3 4 5 6... 2...... a 35 b 2(o 1 ) b (o ) b 3(o 3 ) b 4(o 4 )b 4(o 5 ) b 5(o 6 ) 2 a 24......... o o o o o o 1 2 3 4 5 6 První a poslední stav jsou zvláštní, nepatří k nim žádný vektor. SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 11/35
Přechodové pravděpodobnosti a ij Zde: pouze tři typy: a i,i pravděpodobnost setrvání ve stavu. a i,i+1 pravděpodobnost přechodu do následujícího stavu. a i,i+2 pravděpodobnost přeskočení následujícího stavu (nepoužívá se, pouze někdy pro modely krátkého ticha ). 0 a 12 0 0 0 0 0 a 22 a 23 a 24 0 0 0 0 a 33 a 34 a 35 0 A = (2) 0 0 0 a 44 a 45 0 0 0 0 0 a 55 a 56 0 0 0 0 0 0...matice má prvky pouze na diagonále a nad ní musíme se v modelu zastavit nebo jít dál, nelze jít dozadu. SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 12/35
Likelihood, že je ve stavu j vyslán vektor o(t) Vysílací likelihood b j [o(t)] = p(o(t) j) může být: opravdová pravděpodobnost u diskrétních HMM jsou vektory jsou pomocí předkvantovány pomocí vektorové kvantizace na symboly, stavy pak obsahují tabulky vysílacích pravděpodobností jednotlivých symbolů moc se nepoužívá nebudeme probírat. hodnota funkce hustoty rozdělení pravděpodobnosti (pozor, není pravděpodobnost), dána většinou směsí Gaussovek: b j [o(t)] = M α ji N(x; µ ji,σ ji ), i=1 Nebo jednou Gaussovkou, což bude náš školní prípad: b j [o(t)] = N(x; µ j,σ j ) CD-HMM continuous density hidden Markov model SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 13/35
Poznámky k funkcím hustoty rozdělení pravděpodobnosti pokud nejsou parametry korelovány (nebo doufáme, že nejsou), jejich kovarianční matice je diagonální namísto P P kovariančních koeficientů stačí odhadnout P směrodatných odchylek (rozptylů) jednodušší modely, dostatek dat k odhadu, hodnota rozdělení dána pouze součinem 1-rozměrných Gauss. rozdělení (bez determinantu a inverze): b j [o(t)] = P N(o(t); µ ji, σ ji ) = i=1 P i=1 1 e [o(t) µ ji ] 2 2σ ji 2 (3) σ ji 2π sady parametrů nebo celé stavy mohou být sdílené mezi modely méně parametrů, spolehlivější odhad, méně paměti. SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 14/35
Likelihood generování celé sekvence O modelem M Naráz to nepůjde, nejprve si nadefinujme stavovou sekvenci, která stavy přiřadí vektorům (nebo vektory rozhází stavům, jak chcete), např: X = [1 2 2 3 4 4 5 6]. state 1 2 3 4 5 6 1 2 3 4 5 6 time 7 Stavová sekvence má T + 2 prvků, protože první a poslední stav tam musí být vždy a nepatří k nim žádný vektor. Při práci s časem umisťujeme první stav do neexistujícího času 0 a poslední stav do neexistujícího času T + 1 SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 15/35
Likelihood generování O po cestě X: T p(o, X M) = a x(o)x(1) b x(t) (o t )a x(t)x(t+1), Jak definovat jednu likelihood generování sekvence vektorů modelem? t=1 a) Baum-Welch: p(o M) = {X} p(o, X M), bereme sumu přes všechny stavové sekvence délky T + 2. b) Viterbi: p (O M) = max {X} p(o, X M), je likelihood optimální cesty. SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 16/35
Trénování HMM a co je ve skrytých Markovových modelech skrytého... word1 word2 word3... word1 word2 word3... word1 word2 word3... word1 word2 word3 wordn v wordn v wordn v wordn v Training database...... word1 word2 word3... word1 word3 word3 wordn v wordn v TRAINING model1 model2 model3... v modeln Opět budeme ukazovat pouze na 1 modelu, soubor parametrů Θ obsahuje: přechodové pravěpodobnosti α ij, vektorové střední hodnoty µ j a kovarianční matice Σ j nebo vektory směrodatných odchylek σ j. SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 17/35
podobně jako u Gaussian Mixtures, analyticky nejdou parametry odhadnout, proto se používá Expectation Maximization s kritériem: p(o(t) Θ i 1 ) log p(o(t) Θ) t kde stavová sekvence X je skrytá (hidden) informace. Po hutné matematice vede k následujícímu postupu: 1. hrubý odhad parametrů. 2. odhad pravděpodobností L j (t), že se v čase t nacházíme ve stavu j occupation counts. 3. odhad nových parametrů, pravděpodobnosti L j (t) měkce rozhazují vektory mezi stavy. 4. opakuj body 2 a 3. SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 18/35
Trénování HMM in more detail - inicialisace Vše budeme ukazovat pouze na 1 trénovací sekvenci O, generalisace na více sekvencí je jednoduchá. HMM má N stavů, z toho první a poslední jsou nevysílací. Krok 1: parametry modelu jsou zhruba odhadnuty: nastavíme a ji tak, aby definovaly požadovanou konfiguraci HMM, vrazíme do nich někajé konstanty. rozděĺıme O na N 2 úseků o stejné délce, pak pro j = 2...N 2: ˆµ j = 1 T j t endj t=t begj o(t) ˆΣj = 1 T j t endj t=t begj (o(t) µ j )(o(t) µ j ) T SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 19/35
Krok 2: Jak na state occupation functions Likelihood bytí ve stavu j v čase t můžeme spočítat jako sumu všech cest, které v čase t projdou stavem j: p(o, x(t) = j M) TIME: t 1 t t+1 2 2 3 3 4... N 1 j... 4... N 1 SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 20/35
Potřebujeme ale zajistit, aby to byly opravdové pravděpodobnosti, tedy: N L j (t) = 1, (4) j=1 jinými slovy: příspěvek jednoho vektoru všem stavům musí být přesně 100%. Musíme normalizovat sumou likelihoodů všech cest, které projdou čímkoliv v čase t L j (t) = p(o, x(t) = j M) p(o, x(t) = j M). (5) j... jenže to už jsou opravdu všechny cesty modelem, takže můžeme normalizovat Baum-Welchovým likelihoodem: L j (t) = p(o, x(t) = j M). (6) p(o M) SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 21/35
Jak na P(O, x(t) = j M) Výpočet částečných dopředných likelihoodů (začal jsem na začátku modelu a v čase t jsem ve stavu j): α j (t) = p (o(1)...o(t), x(t) = j M) Inicialisace: α j (1) = a 1j b j [o(1)] for 2 j N 1 (7) SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 22/35
Jdeme dále v čase, výpočet pro normální α j (t): TIME: t 1 α (t 1) 2 t 2 α (t 1) 3 3 α (t 1) 4 4... N 1 a 2j a 3j a 4j α N 1 (t 1) j a (N 1)j α (t) j α j (t) = [ N 1 i=2 α i (t 1)a ij ] b j [o(t)] for 2 j N 1 (8) SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 23/35
Uzavření algoritmu: α N (T + 1) = N 1 Je fajn, že jsme poslední α-ou vypočetli Baum-Welchovu likelihood: i=2 α i (T)a in (9) p(o M) = α N (T + 1) (10) SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 24/35
Výpočet částečných zpětných likelihoodů (začal jsem na konci modelu a v čase t jsem ve stavu j): Inicialisace (odzadu!): β j (t) = p (o(t + 1)...o(T) x(t) = j, M) (11) β j (T) = a jn for 2 j N 1 (12) SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 25/35
Jdeme pozadu v čase, výpočet pro normální β j (t): TIME: t t+1 β j (t) j a a j2 a a j(n 1) j3 j4 β β β 2 3 4 2 3 4... β N 1 (t+1) (t+1) (t+1) N 1 (t+1) β j (t) = N 1 i=2 a ji b i [o(t + 1)]β i (t + 1) for 2 j N 1 (13) SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 26/35
Uzavření algoritmu: β 1 (0) = N 1 i=2 A zase jsme získali Baum-Welchovu likelihood: a 1i b i [o(1)]β i (1) (14) P(O M) = β 1 (0) (15) (dokonce si to porovnáním α N (T + 1) a β 1 (0) můžeme zkontrolovat). SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 27/35
Konečně budeme schopni spočítat L j (t) TIME: t 1 t t+1 2 2 3 3 4... N 1 j... 4... N 1 L j (t) = α j(t)β j (t) p(o M) (16) SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 28/35
Krok 3: Update parametrů Při odhadu µ j a Σ j slouží occupation counts L j (t) jako měkký rozhazovač vektorů na stavy : 1.2 1 state 2 state 3 state 4 0.8 L j (t) 0.6 0.4 0.2 0 0 5 10 15 20 25 30 35 40 45 50 t SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 29/35
T L j (t)o(t) T L j (t)(o(t) µ j )(o(t) µ j ) T ˆµ j = t=1 T L j (t) ˆΣ j = t=1 T L j (t). (17) t=1 t=1 Odhad přechodových pravděpodobností: â ij = T α i (t)a ij b j (o(t + 1))β j (t + 1) t=1 T L j (t) t=1... a můžeme se směle vrátit na odhad L j (t) a iterovat SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 30/35
Technická realizace algoritmu trénování modelů 1. Alokuj akumulátor pro každý odhadovaný vektor/matici. 2. Spočítej dopředné a zpětné pravď. α j(t) a β j (t) pro všechny časy t a všechny stavy j. Spočítej state occupation functions L j (t). 3. Ke každému akumulátoru přidej příspěvek od vektoru o(t) vážený příslušnou L j (t). 4. Použij konečnou hodnotu akumulátoru pro odhad vektoru/matice pomocí rovnice 17 nesmíme zapomenout na normování výrazem T t=1 L j(t). 5. Pokud se hodnota p(o M) od minulé iterace podstatně nezměnila, stop, jinak Goto 1. SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 31/35
Ale vy jste nám říkal, že se modeluje směsí Gaussovek! Kažý stav se směsí Gaussovek se dá rozkreslit: do několika stavů po jedné Gaussovce. přechodové pravděpodobnosti jsou mixture weights. a ij M-component Gaussian mixture j a ij c j1 a ij c j2 Single Gaussians j 1 j 2 a ij c jm... j M SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 32/35
Ale přece nebudeme trénovat jen na jedné promluvě! To tedy nebudeme, použijeme prakticky stejný algoritmus jako výše, ale: Dopředné a zpětné likelihoody se odhadnou na každé promluvě. Occupation counts se také odhadnou na každé promluvě. Provede se update akumulátorů také na každé promluvě. pak se to jen poděĺı a získají se nové hodnoty parametrů. více viz kompletní rovnice v HTK Book, sekce Parameter re-estimation formulae. SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 33/35
Ale co trénování modelů při rozpoznávání spojité řeči? Rozpoznáváme pomocí modelů fonémů nebo kontextově závislých fonémů. d ao g ENTER <SIL> ae n d <SIL> EXIT k ae t Obvykle máme k disposici jen ortografickou transkripci: 0 59392 The total of these three volumes is the final combustion chamber Při trénování má každý model své akumulátory. sp SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 34/35
Pro každou trénovací promluvu: Převedeme grafémy na fonémy (g2p). Postavíme mega-model spojený z modelů fonémů, pokud je více výslovnostních variant, dáme je do modelu paralelně. Vypočteme pro každý zúčastněný foném jeho α, β i L j (t). updatujeme akumulátory. na konec podrthneme a sečteme, plné rovnice opět viz HTK Book, sekce Embedded Model Reestimation(HEREST). SRE 03 - Skryté Markovovy modely HMM Jan Černocký, ÚPGM FIT VUT Brno 35/35