27.01.2015 Views

04.16 Kalbos atpažinimas

04.16 Kalbos atpažinimas

04.16 Kalbos atpažinimas

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

<strong>Kalbos</strong> atpažinimas<br />

<strong>Kalbos</strong> atpažinimo proceso etapai<br />

Panašiai, kaip ir bet kurį atpažinimo procesą, kalbos atpažinimą galima<br />

išskaidyti į tris pagrindinius etapus: duomenų įvedimą, požymių išskyrimą ir<br />

atpažinimą. Pirmiausiai mikrofono pagalba kalbos signalas įvedamas, o tada<br />

paverčiamas skaitmeniniu pavidalu. Kadangi kalbos signalą charakterizuoja trys<br />

dydžiai: laikas, dažnis ir amplitudė, tai antrame etape fiksuotais laiko momentais<br />

imami tam tikro ilgio kalbos signalo kadrai, kuriuose skaičiuojami tam tikrų dažnio<br />

juostų energiją charakterizuojantys parametrai. Šie parametrai naudojami trečiame<br />

atpažinimo (klasifikacijos) etape, kuriame nustatoma, kokios fonemos ar žodžiai yra<br />

kalbos signale. Kadangi kalbos atpažinimas yra sudėtingas uždavinys, tai kituose<br />

skyreliuose panagrinėsime, kas nulemia sudėtingumą ir kokie specifiniai atpažinimo<br />

metodai taikomi.<br />

<strong>Kalbos</strong> atpažinimo sudėtingumo priežastys<br />

<strong>Kalbos</strong> atpažinimas yra labai sudėtingas uždavinys. Prireikė trisdešimties metų,<br />

kol atsirado pirmosios praktiškai naudojamos sistemos. Uždavinio sudėtingumą<br />

nulemia tokios priežastys ([ 1 ], [ 2 ]):<br />

1. Keletą kartų ištarto tam tikro garso akustinė realizacija labai skiriasi, net jei jį<br />

ištarė tas pats diktorius ir tame pačiame žodyje;<br />

2. Kalbėjimo greitis gali labai kisti, todėl skiriasi kelių to paties žodžių<br />

akustinių realizacijų ilgis. Kintant žodžių ilgiui atskirų garsų ilgis kinta netiesiškai;<br />

3. Garso akustinė realizacija priklauso nuo gretimų garsų, tai vadinama<br />

koartikuliacija;<br />

4. Kalbėjimo sraute nėra aiškių garsų ar žodžių ribų;<br />

5. Kiekvieno žmogaus tartis yra skirtinga, todėl reikalingas arba apmokymas<br />

konkrečiam diktoriui, arba sistema kūrimo metu turi būti apmokyta su kuo didesniu<br />

diktorių skaičiumi;<br />

6. Jei kuriama atpažinimo sistema remiasi žodžių atpažinimu, žodžių etalonų<br />

skaičius gali būti pernelyg didelis;<br />

7. Kalbėjimo sraute gali būti ir nekalbinių fragmentų (pvz., kosulys), kuriuos<br />

reikia atskirti ir pašalinti;<br />

8. Praktiniuose taikymuose papildomų problemų sukelia foninis triukšmas.<br />

Dinaminis laiko skalės iškraipymas (angl. Dynamic Time<br />

Warping - DTW)<br />

<strong>Kalbos</strong> tempo kitimas pasireiškia kai kurių garsų, jų dalių ar pauzių trukmės<br />

pasikeitimais. Šių deformacijų neutralizavimas yra vienas iš sudėtingiausių kalbos<br />

atpažinimo uždavinių. Klasikinė atpažinimo teorija šių uždavinių nenagrinėja, tai yra<br />

grynai kalbos atpažinimo problema.<br />

Tam, kad sulyginti žodį su etalonu, reikia deformuojant laiko ašį surikiuoti greta<br />

tuos pačius garsus atitinkančius fragmentus ir tada apskaičiuoti atstumus tarp jų ir<br />

juos susumuoti.<br />

Eksperimentiškai buvo įsitikinta, kad šios deformacijos yra netiesinės, todėl<br />

tiesiniai metodai čia netinka.<br />

1


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

Netiesiniam deformavimui naudojami gradientinis arba DTW metodai [ 3 ].<br />

Antrasis metodas duoda geresnius rezultatus, todėl yra žymiai populiaresnis.<br />

DTW algoritmas. Tarkime, kad lyginamas žodis A ir etalonas B pateikti kaip<br />

požymių vektorių sekos<br />

A = a 1 , ..., a I ;<br />

B = b 1 , ..., b J .<br />

Tarkime, kad požymių vektorių erdvėje apibrėžta metrika D(i,j), leidžianti<br />

nustatyti atstumą tarp vektorių a i ir b j . Tada kalbos tempo išlyginimas susiveda į<br />

optimalios trajektorijos radimą plokštumoje (i,j), kuri minimizuotų visų atstumų su<br />

tam tikrais svorio koeficientais esančių ant šios trajektorijos sumą.<br />

DTW algoritmai remiasi rekurentinėmis DTW lygtimis, kurios skiriasi<br />

deformacijų pobūdžiu ir svorio koeficientais. Pvz.:<br />

g(<br />

i,<br />

j −1)<br />

+ d(<br />

i,<br />

j)<br />

<br />

<br />

<br />

g ( i,<br />

j)<br />

= min<br />

<br />

<br />

<br />

g(<br />

i −1,<br />

j −1)<br />

+ 2d(<br />

i,<br />

j)<br />

g(<br />

i −1,<br />

j)<br />

+ d(<br />

i,<br />

j)<br />

<br />

<br />

<br />

g(<br />

i −1,<br />

j − 2) + 2d(<br />

i,<br />

j −1)<br />

+ d(<br />

i,<br />

j)<br />

<br />

<br />

<br />

g ( i,<br />

j)<br />

= min<br />

g(<br />

i −1,<br />

j −1)<br />

+ 2d(<br />

i,<br />

j)<br />

<br />

<br />

<br />

g(<br />

i − 2, j −1)<br />

+ 2d(<br />

i −1,<br />

j)<br />

+ d(<br />

i,<br />

j)<br />

<br />

g(<br />

i −1,<br />

j − 3) + 2d(<br />

i,<br />

j − 2) + d(<br />

i,<br />

j −1)<br />

+ d(<br />

i,<br />

j)<br />

<br />

<br />

<br />

<br />

g(<br />

i −1,<br />

j − 2) + 2d(<br />

i,<br />

j −1)<br />

+ d(<br />

i,<br />

j)<br />

<br />

g ( i,<br />

j)<br />

= min<br />

g(<br />

i −1,<br />

j −1)<br />

+ 2d(<br />

i,<br />

j)<br />

<br />

g(<br />

i − 2, j −1)<br />

+ 2d(<br />

i −1,<br />

j)<br />

+ d(<br />

i,<br />

j)<br />

<br />

<br />

<br />

g(<br />

i − 3, j −1)<br />

+ 2d(<br />

i − 2, j)<br />

+ d(<br />

i −1,<br />

j)<br />

+ d(<br />

i,<br />

j)<br />

<br />

Čia funkcija g(i,j) - atstumas tarp žodžio A atkarpos, kurios ilgis lygus i, ir<br />

etalono B atkarpos, kurios ilgis lygus j. Atstumas tarp A ir B lygus g(I,J).<br />

Prieš pradedant skaičiavimus reikia apibrėžti pradines sąlygas, pvz. g(0,0) = 0;<br />

d(1,1) = g(1,1); g(0,j) = g(i,0) = K, kur K > g(i,j) kiekvienam i,j.<br />

Eksperimentiškai įrodyta, kad geriausius rezultatus duoda antroji g(i,j) išraiška.<br />

Paslėptos Markovo grandinės (angl. Hidden Markov<br />

Model - HMM)<br />

Šis skyrius parengtas pagal doc. A. Lipeikos paskaitų konspektus. Paslėptų<br />

Markovo grandinių teorija buvo atspausdinta šešto dešimtmečio gale ir septinto<br />

dešimtmečio pradžioje Baum ir jo kolegų straipsniuose [ 4 ] - [ 8 ].<br />

Pavyzdys<br />

Panagrinėkime tokį pavyzdį: tarkime, kad turime N urnų, kiekvienoje urnoje yra<br />

daug spalvotų kamuolių, kurie nuspalvoti M skirtingų spalvų. Pagal kokią nors<br />

atsitiktinę procedūrą pasirenkama pradinė urna, iš jos atsitiktinai paimamas kamuolys<br />

ir jo spalva yra užfiksuojama kaip stebėjimas. Tada kamuolys padedamas atgal į urną,<br />

o nauja urna yra parenkama pagal atsitiktinę išrinkimo procedūrą, surištą su dabartine<br />

urna, ir kamuolio išrinkimo procesas yra pakartojamas. Šis procesas generuoja<br />

2


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

baigtinę spalvų stebėjimų seką, kurią mes norėtume modeliuoti kaip HMM stebimą<br />

išėjimą.<br />

Turėtų būti akivaizdu, kad paprasčiausias HMM, kuris atitinka urnos ir<br />

kamuolio procesą yra tas, kuriame kiekviena būsena atitinka konkrečią urną ir<br />

kuriame (kamuolio) spalvos tikimybė yra apibrėžta kiekvienai būsenai. Urnų<br />

pasirinkimą diktuoja HMM būsenų perėjimų matrica.<br />

Reikėtų pastebėti, kad kamuolių spalvos kiekvienoje urnoje gali būti tos pačios<br />

ir skirtumas tarp įvairių urnų yra tas, kaip sudarytas spalvotų kamuolių rinkinys<br />

konkrečioje urnoje. Todėl atskiras konkrečios spalvos stebėjimas ne iš karto pasako iš<br />

kurios urnos kamuolys yra ištrauktas.<br />

HMM elementai<br />

Dabar mes formaliai apibrėšime HMM elementus. HMM diskretinių simbolių<br />

stebėjimams, tokiems kaip anksčiau minėtas urnos ir kamuolio modelis, yra<br />

apibūdinamas šitaip:<br />

1. N - būsenų skaičius modelyje. Nors būsenos yra paslėptos, daugelyje<br />

praktinių taikymų dažnai modelio būsenoms ar būsenų aibėms yra priskiriama kokia<br />

nors fizikinė prasmė. Pvz., urnos ir kamuolio modelyje būsenos atitinka urnas. Bendru<br />

atveju būsenos surišamos taip, kad kiekviena būsena gali būti pasiekta iš bet kokios<br />

kitos būsenos (t. y., ergodinis modelis 3a pav.); tačiau dažnai domina kiti galimi<br />

būsenų tarpusavio jungimai ir jie gali geriau tikti kalbos apdorojimo taikymams. Mes<br />

žymime atskiras būsenas {1, 2, …, N} ir būseną laiko momentu t žymime q t .<br />

2. M - skirtingų stebėjimo simbolių būsenoje skaičius. Stebėjimo simboliai<br />

atitinka modeliuojamos sistemos fizikinį išėjimą. Pvz., urnos ir kamuolio modelyje tai<br />

buvo iš urnų paimtų kamuolių spalvos. Atskirus simbolius žymime V={v 1 , v 2 , …, v M }.<br />

3. Būsenų perėjimo tikimybinis pasiskirstymas A={a ij }, kur<br />

a ij = P[q t+1 = j | q t = i], 1 ≤ i, j ≤ N.<br />

Specialiam atvejui, kuriame kiekviena būsena gali pasiekti kiekvieną kitą būseną per<br />

vieną žingsnį, mes turime a ij > 0 visiems i, j. Kitiems HMM tipams mes turėtume<br />

a ij = 0 vienai ar daugiau (i, j) porų.<br />

4. Stebėjimų simbolio tikimybinis pasiskirstymas B={b j (k)}, kuriame<br />

b j (k) = P[o t = v k | q t = j], 1 ≤ k ≤ M<br />

apibrėžia simbolių pasiskirstymą būsenoje j, j = {1, 2, …, N}.<br />

5. Pradinės būsenos pasiskirstymas π = {π i }, kuriame<br />

π i = P[q t = i], 1 ≤ i ≤ N.<br />

Iš to, kas buvo pasakyta anksčiau, galima matyti, kad HMM pilnas<br />

apibūdinimas reikalauja dviejų modelio parametrų N ir M apibūdinimo ir trijų aibių A,<br />

B ir π tikimybinių matų apibūdinimo. Patogumui yra naudojamas kompaktinis<br />

žymėjimas λ = (A, B, π). Žinoma, ši parametrų aibė apibrėžia O tikimybinį matą , t. y.,<br />

P(O|λ), kuris bus aptariamas vėliau.<br />

Stebėjimų HMM generatorius<br />

Esant nusakytoms N, M, A, B ir π reikšmėms HMM gali būti naudojamas kaip<br />

generatorius, kad gautume stebėjimų seką O = (o 1 o 2 … o T ), kurioje kiekvienas<br />

stebėjimas o t priklauso aibei V, o T yra stebėjimų skaičius sekoje. Stebėjimų seka<br />

gaunama taip:<br />

1. Parenkama pradinė būsena q 1 =i sutinkamai su pradinės būsenos<br />

pasiskirstymu π.<br />

2. Nustatoma t=1.<br />

3


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

3. Parenkama o t =v k sutinkamai su simbolio tikimybiniu pasiskirstymu būsenoje<br />

i, t.y., b j (k).<br />

4. Pereinama į naują būseną q t+1 =j sutinkamai su būsenų tikimybiniu<br />

pasiskirstymu būsenai i, t. y., a ij .<br />

5. Nustatoma t=t+1, sugrįžtama į 3 žingsnį, jeigu t


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

Pirmos problemos sprendimas – tikimybės paskaičiavimas<br />

Mes norime paskaičiuoti stebimos sekos O = (o 1 o 2 … o T ) tikimybę P(O|λ), kai<br />

duotas modelis λ = (A, B, π). Pats paprasčiausias būdas tai padaryti yra sunumeruoti<br />

visas galimas ilgio T būsenų sekas. Tokių būsenų sekų yra N T . Nagrinėkime vieną<br />

tokią fiksuotų būsenų seką<br />

q = (q 1 q 2 … q T ).<br />

Statistiškai nepriklausomų stebėjimų sekos O tikimybė žinant būsenų seką q<br />

yra<br />

P<br />

T<br />

( O | q,<br />

λ ) = ∏ P(<br />

ot<br />

| qt<br />

, λ)<br />

= bq<br />

( o ) ⋅b<br />

1 q2<br />

t=<br />

1<br />

1<br />

( o2)<br />

⋅...<br />

⋅b<br />

( o ).<br />

Būsenų sekos q tikimybė gali būti užrašyta<br />

P ( q | λ ) = π<br />

q<br />

aq<br />

q<br />

aq<br />

q<br />

. . . a<br />

1 1 2 2 3 q T − 1 q T<br />

.<br />

Bendra O ir q tikimybė, t. y., tikimybė, kad O ir q pasirodys vienu metu, yra<br />

P ( O,<br />

q | λ ) = P(<br />

O | q,<br />

λ ) P(<br />

q | λ )<br />

Stebėjimų sekos O tikimybė (esant duotam modeliui) yra gaunama, sumuojant<br />

šią bendrą tikimybę pagal visas galimas būsenų sekas q. Mes gauname<br />

P( O | λ ) = P(<br />

O | q,<br />

λ ) P(<br />

q | λ ) = π b ( o ) a b ( o ) a ... a b ( o<br />

<br />

visas q<br />

<br />

q q 1 q q q 2 q q qT<br />

− qT<br />

qT<br />

T<br />

)<br />

1 1<br />

1 2 2<br />

2 3<br />

1<br />

q1<br />

q2<br />

... qT<br />

Galima įsitikinti, kad P ( O | λ ) skaičiavimas naudojant tiesioginį apibrėžimą<br />

T<br />

reikalautų eilės 2 T ⋅ N skaičiavimo operacijų. Tai padaryti neįmanoma netgi<br />

mažoms reikšmėms N ir T ; pvz., kai N = 5 (būsenos) ir T = 100 (stebėjimų),<br />

100 72<br />

skaičiavimo operacijų skaičius yra eilės 2 ⋅ 100 ⋅5<br />

≈ 10 . Šiai problemai spręsti<br />

egzistuoja žymiai efektyvesnė taip vadinama ėjimo į priekį procedūra.<br />

Ėjimo į priekį procedūra<br />

Nagrinėkime ėjimo į priekį kintamąjį α<br />

t<br />

(i), apibrėžiamą kaip<br />

α<br />

t<br />

( i)<br />

= P(<br />

o1o2<br />

. . . ot<br />

, qt<br />

= i | λ)<br />

t. y. dalinės stebėjimų sekos, o<br />

1<br />

o2<br />

. . . ot<br />

(iki laiko momento t ) ir būsenos i laiko<br />

momentu t , esant duotam modeliui λ , tikimybę. Mes galime skaičiuoti α<br />

t<br />

(i)<br />

naudodami matematinės indukcijos metodą tokiu būdu:<br />

1. Inicializacija<br />

α<br />

1( i)<br />

= π<br />

ibi<br />

( o1<br />

), 1 ≤ i ≤ N.<br />

2. Indukcija<br />

N<br />

<br />

α<br />

t+ 1( j)<br />

= α<br />

t<br />

( i)<br />

aij<br />

b<br />

j<br />

( ot+<br />

1),<br />

i=<br />

1 <br />

1≤<br />

t ≤ T −1,<br />

1≤<br />

j ≤ N.<br />

3. Nutraukimas<br />

<br />

P( O | λ ) = α ( i).<br />

1 žingsnis inicializuoja ėjimo į priekį tikimybes kaip bendrą būsenos i ir pradinio<br />

stebėjimo o<br />

1<br />

tikimybę. Indukcijos žingsnis, kuris yra ėjimo į priekį skaičiavimų esmė,<br />

yra pailiustruotas 1a pav. Jame parodyta kaip būsena j gali būti pasiekta laiko<br />

momentu t + 1 iš N galimų būsenų i, 1 ≤ i ≤ N laiko momentu t .<br />

N<br />

i=<br />

1<br />

t<br />

qT<br />

T<br />

5


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

1 pav. (a) Operacijų sekos, reikalingos paskaičiuoti ėjimo į priekį kintamąjį<br />

α<br />

t+1(<br />

j)<br />

, iliustracija. (b) α<br />

t<br />

(i)<br />

skaičiavimo per stebėjimų t ir būsenų i groteles<br />

realizacija.<br />

Kadangi α<br />

t<br />

(i)<br />

yra jungtinio įvykio, kad o<br />

1<br />

o2<br />

. . . ot<br />

yra stebimas ir būsena laiko<br />

momentu t yra i , tikimybė, tada sandauga α (i) a yra jungtinio įvykio, kad yra<br />

stebimas o<br />

1<br />

o2<br />

. . . ot<br />

ir būsena j yra pasiekta laiko momentu t + 1 per būseną i laiko<br />

momentu t , tikimybė. Sumuojant šią sandaugą pagal visas N galimas būsenas,<br />

i, 1 ≤ i ≤ N laiko momentu t gauname j -tos būsenos tikimybę laiko momentu t + 1<br />

t<br />

ij<br />

6


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

su visais susijusiais ankstesniais daliniais stebėjimais. Kai tai yra padaryta ir j yra<br />

žinoma, yra nesunku matyti, kad α<br />

t+1(<br />

j)<br />

yra gauta atsižvelgiant į stebėjimą o<br />

t+ 1<br />

būsenoje j , t. y., padauginant sumuojamą dydį iš tikimybės b<br />

j<br />

( o t+ 1).<br />

Skaičiavimas<br />

indukcijos formulėje yra atliekamas visoms būsenoms j, 1 ≤ j ≤ N duotam t ; tada<br />

skaičiavimai yra atliekami iteratyviai su t = 1,<br />

2, . . . , T −1. Galiausiai 3 žingsnyje<br />

gauname laukiamą rezultatą P ( O | λ)<br />

kaip galutinių ėjimo į priekį kintamųjų α<br />

T<br />

(i)<br />

sumą. Tai yra būtent taip, kadangi pagal apibrėžimą<br />

αT ( i)<br />

= P(<br />

o1o2<br />

. . . oT<br />

, qT<br />

= i | λ)<br />

ir, vadinasi, P ( O | λ)<br />

yra α<br />

T<br />

(i)<br />

.<br />

Jeigu α<br />

T<br />

( j),<br />

1 ≤ t ≤ T , 1 ≤ j ≤ N skaičiavime mes nagrinėtume skaičiavimų<br />

apimtį, matytume, kad tai yra eilės N 2 T operacijų. Kai N = 5 , T = 100 , mums reikia<br />

apie 3000 operacijų ėjimo į priekį metodui vietoj 10 72 tiesioginiam skaičiavimui.<br />

Ėjimo į priekį tikimybės skaičiavimas yra faktiškai paremtas grotelių struktūra,<br />

parodyta 1b pav. Esmė yra ta, kad yra tiktai N būsenų (mazgų kiekviename laiko<br />

pjūvyje grotelėse) ir visos galimos būsenų sekos paklius į šiuos N mazgų,<br />

nepriklausomai nuo to, kokia ilga yra stebėjimų seka.<br />

Antros problemos sprendimas –“optimali” būsenų seka<br />

Skirtingai nuo 1 problemos, kuriai gali būti gautas tikslus sprendimas, yra<br />

keletas galimų 2 problemos sprendimo būdų, būtent, “optimalios” būsenų sekos,<br />

susietos su duota stebėjimų seka, radimo būdų. Sunkumai kyla apibrėžiant optimalią<br />

būsenų seką, t. y., yra keletas galimų optimalumo kriterijų. Pvz., vienas galimų<br />

optimalumo kriterijų yra parinkti būsenas q<br />

t<br />

taip, kad jos būtų individualiai labiausiai<br />

tikėtinos kiekvienu laiko momentu t . Šis optimalumo kriterijus maksimizuoja<br />

teisingų atskirų būsenų laukiamą skaičių. Kad realizuotume 2 problemos sprendimą,<br />

mums reikia apibrėžti aposteriorinės tikimybės kintamąjį<br />

γ<br />

t<br />

( i)<br />

= P(<br />

qt<br />

= i | O,<br />

λ)<br />

t. y., buvimo būsenoje i laiko momentu t , esant stebėjimų sekai O ir modeliui<br />

λ , tikimybę. Mes galime išreikšti γ<br />

t<br />

(i)<br />

keliais pavidalais<br />

P(<br />

O,<br />

qt<br />

= i | λ)<br />

P(<br />

O,<br />

qt<br />

= i | λ)<br />

γ<br />

t<br />

( i)<br />

= P(<br />

qt<br />

= i | O,<br />

λ)<br />

=<br />

=<br />

N<br />

P(<br />

O | λ)<br />

P(<br />

O,<br />

q = i | λ)<br />

Kadangi P( q t<br />

= i | O,<br />

λ)<br />

yra lygi α ( i)<br />

β ( i)<br />

, mes galime γ (i)<br />

užrašyti<br />

γ ( i)<br />

t<br />

t<br />

= N<br />

<br />

i=<br />

1<br />

t<br />

α ( i)<br />

β ( i)<br />

t<br />

α ( i)<br />

β ( i)<br />

kur mes matome, kad α<br />

t<br />

(i)<br />

surišta su daline stebėjimų seka o<br />

1<br />

o2<br />

. . . ot<br />

ir<br />

būsena i laiko momentu t , tuo tarpu kai β (i)<br />

surišta su likusia stebėjimų seka<br />

o<br />

t+ 1<br />

ot+2<br />

. . . oT<br />

esant duotai būsenai q t<br />

= i laiko momentu t .<br />

Naudodami γ<br />

t<br />

(i)<br />

mes galime spręsti paskutinę išraišką atskiros labiausiai<br />

∗<br />

tikėtinos būsenos q<br />

t<br />

laiko momentu t atžvilgiu<br />

t<br />

t<br />

t<br />

t<br />

<br />

i=<br />

1<br />

t<br />

t<br />

7


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

q<br />

∗<br />

t<br />

= arg max<br />

[ γ ( i)<br />

],<br />

1 ≤ t ≤ T.<br />

1 ≤ i ≤ N<br />

Gali būti kai kurių problemų, pvz., kai HMM turi būsenų perėjimus su nuline<br />

tikimybe (kokiems nors i ir j a<br />

ij<br />

= 0 ), “optimali” būsenų seka faktiškai gali<br />

neegzistuoti. Tai yra todėl, kad surandama labiausiai tikėtina būsena kiekvienu laiko<br />

momentu, nenagrinėdamas būsenų sekų pasirodymo tikimybės.<br />

Vienos geriausios būsenų sekos radimo formalus metodas, besiremiantis<br />

dinaminio programavimo metodais, vadinamas Viterbi algoritmu [15,16]. Jis panašus<br />

į ėjimo į priekį procedūrą. Pagrindinis skirtumas, kad indukcijos žingsnyje vietoje<br />

sumavimo naudojama maksimizacija pagal ankstesnes būsenas. Taip pat turėtų būti<br />

aišku, kad grotelių struktūra efektyviai realizuoja Viterbi procedūros skaičiavimą.<br />

Trečios problemos sprendimas - parametrų vertinimas<br />

Trečia ir pati sunkiausia HMM problema yra surasti metodą modelio parametrų<br />

( A , B,<br />

π ) radimui, kuris tenkintų kokį nors optimizavimo kriterijų. Nėra žinoma būdo,<br />

kaip analitiškai ieškoti modelio parametrų, kurie maksimizuotų stebėjimų sekos<br />

tikimybę. Tačiau mes galime parinkti λ = ( A,<br />

B,<br />

π ) taip, kad jo tikėtinumas P ( O | λ)<br />

būtų lokaliai maksimizuotas naudojant iteratyvią procedūrą, tokią kaip Baum-Welch<br />

metodas.<br />

HMM parametrų pakartotinio vertinimo procedūros aprašymui mes pirmiausia<br />

apibrėšime ξ<br />

t<br />

( i,<br />

j)<br />

, buvimo būsenoje i laiko momentu t ir būsenoje j laiko<br />

momentu t + 1 tikimybę, kai duotas modelis ir stebėjimų seka, t. y.,<br />

ξ<br />

t<br />

( i,<br />

j)<br />

= P(<br />

qt<br />

= i,<br />

qt+<br />

1<br />

= j | O,<br />

λ).<br />

Trajektorija, kuri tenkina keliamas sąlygas yra pailiustruota 2 pav.<br />

t<br />

2 pav. Operacijų sekos, reikalingos paskaičiuoti jungtinį įvykį, kad sistema yra<br />

būsenoje i laiko momentu t ir būsenoje j laiko momentu t + 1, iliustracija.<br />

Iš ėjimo į priekį ir atgal kintamųjų apibrėžimo mes galime užrašyti ξ ( i,<br />

j)<br />

taip:<br />

t<br />

8


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

ξ ( i,<br />

j)<br />

t<br />

P(<br />

q<br />

= i,<br />

q<br />

( ) ( )<br />

t 1<br />

= j,<br />

O | λ)<br />

α<br />

t<br />

i aijb<br />

j<br />

ot+<br />

1<br />

β<br />

t+<br />

=<br />

P(<br />

O | λ)<br />

P(<br />

O | λ)<br />

( j)<br />

t<br />

+ 1<br />

= =<br />

N<br />

α<br />

t<br />

( i)<br />

aijb<br />

j<br />

( ot+<br />

1)<br />

β<br />

t+<br />

1(<br />

j)<br />

.<br />

N<br />

α ( i)<br />

a b ( o ) β ( j)<br />

<br />

i= 1 j=<br />

1<br />

Mes anksčiau esame apibrėžę γ<br />

t<br />

(i)<br />

kaip buvimo būsenoje i laiko momentu t<br />

tikimybę, kai duota visa stebėjimų seka ir modelis. Vadinasi, mes galime surišti γ<br />

t<br />

(i)<br />

su ξ ( i,<br />

j)<br />

, sumuodami pagal j :<br />

t<br />

N<br />

<br />

γ ( i)<br />

= ξ ( i,<br />

j)<br />

t<br />

Jeigu mes sumuojame γ<br />

t<br />

(i)<br />

pagal laiko indeksą t , mes gauname dydį, kuris<br />

gali būti interpretuotas kaip laukiamas (pagal laiką) skaičius kartų, kada patenkama į<br />

būseną i arba, ekvivalentiškai laukiamas perėjimų skaičius iš būsenos i (jeigu mes iš<br />

sumavimo eliminuojam t = T ). Panašiai ξ<br />

t<br />

( i,<br />

j)<br />

sumavimas pagal t (nuo t = 1 iki<br />

t = T −1) gali būti interpretuojamas kaip laukiamas perėjimų iš būsenos i į būseną j<br />

skaičius. Tokiu būdu<br />

T<br />

− 1<br />

t=<br />

1<br />

T<br />

− 1<br />

t=<br />

1<br />

γ ( i)<br />

= laukiamas perėjimų iš būsenos i stebėjimų sekoje O skaičius,<br />

t<br />

ξ ( i,<br />

j)<br />

= laukiamas perėjimų iš būsenos i į būseną j stebėjimų sekoje O skaičius.<br />

t<br />

Naudodami šias formules (ir įvykių pasirodymo skaičiavimo koncepciją), mes<br />

galime suformuluoti pagrįstą HMM pakartotinio parametrų vertinimo metodą.<br />

Parametrų π , A ir B pakartotinio vertinimo formulės yra tokios:<br />

π = laukiamas buvimo būsenoje i laiko momentu ( t = 1) = γ<br />

1(<br />

i)<br />

dažnis<br />

j<br />

b<br />

a<br />

j=<br />

1<br />

T −1<br />

<br />

t<br />

t=<br />

1<br />

ij<br />

=<br />

T −1<br />

<br />

t=<br />

1<br />

t<br />

ξ ( i,<br />

j)<br />

γ ( i)<br />

<br />

t<br />

T −1<br />

<br />

t<br />

t=<br />

1<br />

s.<br />

t.<br />

ot<br />

= vk<br />

j<br />

( k)<br />

=<br />

T −1<br />

t=<br />

1<br />

γ ( j)<br />

γ ( j)<br />

Pastarosios lygybės viršus yra laukiamas buvimo būsenoje j ir stebėjimo<br />

simbolį v<br />

k<br />

kartų skaičius.<br />

Jeigu mes apibrėžiame dabartinį modelį kaip λ = ( A,<br />

B,<br />

π ) ir jį naudojame<br />

paskaičiuoti paskutinių trijų lygybių kaires puses ir apibrėžiame pakartotinai įvertintą<br />

modelį λ = ( A,<br />

B,<br />

π ) kaip apibrėžtą jų dešinėse pusėse, tada Baum ir jo kolegų buvo<br />

įrodyta, kad arba (1) pradinis modelis apibrėžia tikėtinumo funkcijos kritinį tašką, tuo<br />

atveju λ = λ ; arba (2) modelis λ yra labiau tikėtinas negu modelis λ ta prasme, kad<br />

P ( O | λ ) > P(<br />

O | λ)<br />

; t. y., mes radome naują modelį λ , kurio atžvilgiu stebėjimų<br />

seka yra labiau panaši į tą, kuri buvo sugeneruota.<br />

t<br />

t<br />

ij<br />

j<br />

t+<br />

1<br />

t+<br />

1<br />

9


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

Remiantis šia procedūra, jei mes iteratyviai naudojame λ vietoje λ ir<br />

pakartojame pakartotinio vertinimo skaičiavimus, tada mes galime pagerinti tikimybę,<br />

kad yra stebimas O iš šio modelio, kol yra pasiekiamas koks nors ribojantis taškas.<br />

Pakartotinio vertinimo procedūros galutinis rezultatas yra HMM maksimalaus<br />

tikėtinumo (ML) įvertis. Reikia pabrėžti, kad ėjimo į priekį-atgal algoritmas veda tik<br />

prie lokalinių maksimumų ir kad daugelyje mus dominančių problemų tikėtinumo<br />

funkcija yra labai sudėtinga ir turi daug lokalinių maksimumų.<br />

HMM tipai<br />

Vienas HMM klasifikavimo tipas yra klasifikuoti pagal Markovo grandinės<br />

perėjimų matricos A struktūrą. Iki šiol mes nagrinėjome tik atskirą ergodinių arba<br />

pilnai surištų HMM atvejį, kuriame kiekviena modelio būsena gali būti (per vieną<br />

žingsnį) pasiekta iš kiekvienos modelio būsenos. (Griežtai kalbant, ergodinis modelis<br />

pasižymi savybe, kad kiekviena modelio būsena gali būti pasiekta iš kiekvienos<br />

modelio būsenos per baigtinį bet aperiodinį žingsnių skaičių). Kaip parodyta 3a pav.<br />

N = 4 būsenų modeliui, šis modelio tipas pasižymi savybe, kad kiekvienas<br />

koeficientas a<br />

ij<br />

yra teigiamas. Vadinasi 3a pav. mes turime<br />

a<br />

<br />

<br />

a<br />

A =<br />

a<br />

<br />

a<br />

11<br />

21<br />

31<br />

41<br />

a<br />

a<br />

a<br />

a<br />

12<br />

22<br />

32<br />

42<br />

a<br />

a<br />

a<br />

a<br />

13<br />

23<br />

33<br />

43<br />

a<br />

a<br />

a<br />

a<br />

14<br />

24<br />

34<br />

44<br />

<br />

<br />

.<br />

<br />

<br />

<br />

3 pav. Dviejų skirtingų HMM tipų iliustracija. (a) 4 būsenų ergodinis modelis.<br />

(b) 4 būsenų kairysis-dešinysis modelis.<br />

Kai kuriems taikymams buvo pastebėta, kad prie kai kurių signalo savybių kiti<br />

HMM tipai modeliavo geriau negu standartinis ergodinis modelis. Vienas toks<br />

modelis yra parodytas 3b pav. Šis modelis yra vadinamas kairiuoju-dešiniuoju<br />

modeliu, kadangi jo būsenų seka turi savybę, kad didėjant laikui būsenos indeksas<br />

10


P. Kasparaitis. Kompiuterinė lingvistika. <strong>Kalbos</strong> atpažinimas<br />

didėja (arba lieka tas pats), t. y., sistemos būsenos keičiasi iš kairės į dešinę. Aišku,<br />

kad HMM kairysis-dešinysis tipas gali nesunkiai modeliuoti signalus, kurių savybės<br />

kinta laike nuosekliai, pvz., kalba. Pagrindinė visų kairės-dešinės HMM savybė yra,<br />

kad būsenų perėjimo koeficientai pasižymi savybe a ij<br />

= 0 , j < i , t. y., jokie<br />

perėjimai yra neleistini būsenoms, kurių indeksai yra žemesni negu dabartinė būsena.<br />

Dar daugiau, pradinės būsenos tikimybės pasižymi savybe<br />

0,<br />

i ≠ 1<br />

π<br />

i<br />

= ,<br />

1,<br />

i = 1<br />

kadangi būsenų seka turi prasidėti 1 būsenoje (ir pasibaigti N -toje būsenoje).<br />

Dažnai kairės-dešinės modeliams papildomi apribojimai yra nustatomi būsenų<br />

perėjimų koeficientams, kad būtume tikri, jog dideli pokyčiai būsenų indeksuose<br />

neatsiras, pvz., a ij<br />

= 0 , j > i + ∆ i . Konkrečiai, 3b pav. ∆ i reikšmė yra 2, o būsenų<br />

perėjimo matricos forma yra<br />

a11<br />

a12<br />

a13<br />

0 <br />

<br />

0<br />

<br />

<br />

a22<br />

a23<br />

a24<br />

A =<br />

.<br />

0 0 a <br />

33<br />

a34<br />

<br />

<br />

0 0 0 a44<br />

<br />

Turėtų būti aišku, kad paskutinei kairės-dešinės pusės modelio būsenai būsenų<br />

perėjimo koeficientai yra nustatomi taip:<br />

a<br />

NN<br />

= 1<br />

a<br />

N i<br />

= 0, i < N.<br />

Turėtų būti aišku, kad kairės-dešinės modelio apribojimų arba apriboto šuolio<br />

modelio apribojimų įvedimas iš esmės neturi įtakos pakartotinio vertinimo procedūrai.<br />

Tai yra todėl, kad kiekviena HMM parametrų aibė, iš pradžių prilyginta nuliui,<br />

pasiliks lygi nuliui per visą parametrų pakartotinio vertinimo procedūrą.<br />

Literatūra<br />

1. http://www.fask.uni-mainz.de/user/warth/Ki.html;<br />

2. http://r5.mnd.fh-wiesbaden.de/stud/berger/speech_r.html;<br />

3. Косарев, Ю. А. (1989). Естественная форма диалога с ЭВМ.<br />

Ленинград. Машиностроение;<br />

4. L.E. Baum and T. Petrie, “Statistical inference for probabilistic functions of<br />

finite state Markov chains, “Ann. Math. Stat., 37: 1554-1563,1966.<br />

5. L.E. Baum and J.A. Egon, “An inequality with applications to statistical<br />

estimation for probabilistic functions of a Markov process and to a model<br />

for ecology,” Bull. Amer. Meteorol. Soc., 73: 360-363, 1967.<br />

6. L.E. Baum and G.R.Sell, “Growth functions for transformations on<br />

manifolds, ” Pac.J. Math., 27(2): 211-227, 1968.<br />

7. L.E. Baum, T. Petrie, G. Soules, and N. Weiss, “A maximization technique<br />

occurring in the statistical analysis of probabilistic functions of Markov<br />

chains,” Ann. Math. Stat., 41(1): 164-171, 1970.<br />

8. L.E. Baum, “An inequality and associated maximization technique in<br />

statistical estimation for probabilistic functions of Markov processes, ”<br />

Inequalities, 3: 1- 8, 1972.<br />

11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!