350 likes | 593 Views
Rozpoznávanie reči založené na Skrytých Markovových modeloch HMM. Model rozpoznávania reči. Úloha Skrytých Markovových modelov pri rozpoznávaní reči. Zámer prednášky. prezentovať základnú myšlienku Skrytých Markovových modelov (Hidden Markov Models – HMM)
E N D
Rozpoznávanie reči založené na Skrytých Markovových modeloch HMM.
Zámer prednášky • prezentovať základnú myšlienku Skrytých Markovových modelov (Hidden Markov Models – HMM) • Ako sú HMM použité pri rozpoznávaní reči • Pozor... matematika !
Diskrétny Markovov proces (Discrete – time Markov Process) • Je charakterizovaný: • skupinou N stavov • S = {S0, S1, ... SN} • pravdepodobnosťami prechodov aij. • Markovová reťaz prvého rádu • First-order Markov chain • Aktuálny stav systému závisí iba od predchádzajúceho stavu • Nech qt je stav systému v čase t. • Pravdepodobnosť prechodu závisí iba na predchádzajúcom stave
Diskrétny Markovov proces • Vlastnosti: • „Observable Markov Model“ (Pozorovateľný MM) : výstup procesu je skupina stavov.
Príklad 1: Jednoduchý regulárny mincový pozorovateľný Markov model • Možné stavy: • Hlava (stav 0) • Rub (stav 1) • Pozorovaná výsledná postupnosť stavov napr.: HHHRRRHHRR -> S = 0001110011 • pravdepodobnosti prechodov:
Príklad 2: pozorovateľný Markovov model počasia • Možné stavy • S0: daždivo • S1: oblačno, zamračené • S2: slnečno • Pravdepodobnosti prechodov medzi stavmi
Pozorovateľný Markovov model počasia • Aká je pravdepodobnosť, že počasie počas ôsmych po sebe idúcich dňoch bude: „slnečno, slnečno, slnečno, dážď, dážď, slnečno, zamračené, slnečno“? • Riešenie: • Pozorovaná sekvencia: O = {slnečno, slnečno, slnečno, dážď, dážď, slnečno, zamračené, slnečno} • Korešponduje so sekvenciou stavov: S = {2, 2, 2, 0, 0, 2, 1, 2} • Chceme teda zistiť pravdepodobnosť výskytu sekvencie O, za predpokladu, že máme model model : P(O|model) • Teda: P(O|model) = P(S = {2, 2, 2, 0, 0, 2, 1, 2} | model )
„Skrytý“ Markovov model • Pozorovania sú pravdepodobnostnou funkciou stavov • Základná sekvencia stavov nie je pozorovateľná (je skrytá – hidden) • Nezávislosť výstupu: • pozorovania sú závislé iba od stavu, ktorý ich generoval, nie na sebe navzájom
Vysvetlenie> Hra na nádoby a loptičky • Z nádob s farebnými loptičkami budeme náhodne vyberať loptičky. Pozorovateľ (ktorý pri procese výberu nie je) sa snaží určiť postupnosť nádob, z ktorých sa vyberalo. • Pozorovania: • Sekvencia farieb loptičiek • Stavy: • Identifikácia nádoby • Prechody medzi stavmi • Proces výberu nádoby
Nádoby a loptičky • Pozorovaná sekvencia: R B Y Y G B Y G R ... • Jednotlivé farby (pozorovania) neprezrádzajú nádobu (stavy). • STAVY SU SKRYTÉ!
Charakteristika diskrétneho Markovovho modelu • Skupina N stavov • S = {S0, S1, ... SN} • Pravdepodobnosti prechodov • aij = P(qt = Sj | qt-1 = Si) • Skupina M pozorovaných symbolov • V = {v1, v2, ... SM} • Distribúcia pravdepobnosti (matica B) (pre stav j, symbol k) • bj(k) = P(ot = vk | qt = j)matica B • Inicializačná distribúcia stavu • = {i} = P(q1 = i) • Špecifikácia teda vyžaduje: • 2 modelové parametre, N a M. • špecifikovanie M symbolov • tri pravdepodobnostné miery A, B, = (A,B, )
Ľavo-pravé HMM modelyLeft-to-Right HMMs Pre rozpoznávanie reči majú zmysel len ľavo-pravé HMM
Ergodické HMM modelyErgodic HMMs Modely, v ktorých existuje prechod z každého stavu do každého
HMM ako generátor symbolov • Pomocou daných parametrov N, M, A, B a môžu HMM modely generovať pozorovanú sekvenciu: O = {o1, o2, ...., oT} Postup generovania: • Zvoliť incializačný stav q1 = i z inicializačnej stavovej distribúcie • Nastaviť čas t = 1 (prvý stav) • Zvoliť ot = vk podľa distribúcie bi(k) • Prejsť do stavu qt+1 = j podľa distribúcie pravdepodobnosti prechodu aij • Nastaviť čas t = t+1 a prejsť na krok 3.
Tri samostatné „problémy“ rozpoznávania reči • Problém č. 1: Určenie skóre a evaluácia • Ako efektívne vyrátať pravdepodobnosť, že pozorovaná sekvencia (O) bola vygenerovaná modelom ? -> P(O| ) • Problém č. 2: Dekódovanie • Majme danú pozorovanú sekvenciu (O) a model (). • Akým spôsobom zistíme korešpondujúce postupnosť stavov modelu (q), ktorá „vysvetľuje“ ako bolo pozorovanie vygenerované? • Problém č.3: Trénovanie • ako nastaviť parametre modelu ( = {A,B, }), aby sme maximalizovali pravdepodobnosť generovania danej pozorovanej sekvencie? -> Maximalizovať pradv. P(O| )
Problém 1 Určenie skóre a evaluácia
Problém 1: Scóre a evaluácia • Daná je pozorovaná sekvencia: • O = {o1, o2, ...., oT} • Chceme vypočítať pravdepodobnosť jej vygenerovania • P(O| ) • Predpokladajme špecifickú sekvenciu stavov • q = { q1,q2 , ....,qT}, • Použitím zreťazenia môžeme rozložiť problém na sumu cez všetky možné postupnosti stavov. • Prvá pravd. P(O|q,) súvisí s pravdepodobnosťou generovania pozorovanej sekvencie symbolov danou predpokladanou sekvenciou stavov. • Druhá pravd. P(q,) súvisí s tým, aká je pravdepodobnosť, že systém postupoval po danej sekvencii stavov.
Problém 1: Scóre a evaluácia • Pravdepodobnosť generovania pozorovanej sekvencie symbolov danou sekvenciou stavov: • Pravdepodobnosť sekvencie stavov:
Problém 1: Scóre a evaluácia • Použitím zreťazenia: • Tento spôsob je dosť nepraktický. Pre N stavov, T pozorovaní, počet všetkých možných postupností stavov je O (2T*NT) • Preto potrebujeme nájsť efektívnejšie algoritmy: Forward a Backward Algorithms
Problém 1: Scóre a evaluáciaForward and Backward Algorithms • Dve ďalšie možnosti ako vypočítať P(O| ):
oT o1 ot ot+1 ot-1 Dekódovanie • Majme danú pozorovanú postupnosť na vstupe • O = {o1, o2, ...., oT} • Úlohou je nájsť jednu najlepšiu postupnosť stavov q modelu • q = { q1,q2 , ....,qT}, • Ktorá maximalizuje pravdepodobnosť, resp. pre ktorú je najvyššia pravdepodobnosť vygenerovanie pozorovanej postupnosti O. • P(O | )
q1 qt-1 qt qt+1 qT o1 ot-1 ot ot+1 oT Dekódovanie P(O | q,) = bq1o1bq2o2... bqToT
Dekódovanie – Viterbiho algoritmus • Snažíme sa nájsť najlepšiu postupnosť stavov q, ktorá mohla vygenerovať danú pozorovanú postupnosť O, pre daná model, teda hľadáme optimálnu cestu cez trelisový strom. • Riešením je Viterbiho algoritmus • čas t, stav i: • Maximálna pravdepodobnosť pre čas t+1 a stav j sa potom vypočíta ako:
Trénovanie • Úlohou je natrénovať parametre HMM modelov • Vyladiť tak, aby sme maximalizovali P(O| ) • Neexistuje optimálny algoritmus na dosiahnutie globálneho maxima • Ale existujú efektívne iteračné algoritmy na dosiahnutie lokálnych maxím • (Baum-Welch) Forward-Backward algoritmus • počíta pravdepodobnosť použitia daného modelu • vylepšuje na *, na základe skôr vyrátaných hodnôt • používa hodoty a z forward a backward algoritmu
Trénovanie – Baum-Welch • Definuje: • teda, ide o pravdepodobnosť že v čase t sa nachádzame v stave i a v čase t+1v stave j daného modelu, čo dáva pozorovanú postupnosť O.