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