Skjult Markov-Modell (HMM) Er en Statistisk Markov-modell der systemet som modelleres antas Å være En Markov-prosess med uobserverte (dvs.skjulte) tilstander.
Skjulte Markov-modeller er spesielt kjent for sin anvendelse i forsterkningslæring og temporal mønstergjenkjenning som tale, håndskrift, gestegjenkjenning, del-av-tale-merking, musikalsk partitur etter, partielle utslipp og bioinformatikk.
Terminologi i HMM
begrepet skjult refererer til Den Første ordens Markov-prosessen bak observasjonen. Observasjon refererer til dataene vi kjenner og kan observere. Markov-prosessen er vist ved samspillet mellom «Regnfull» og «Solfylt» i diagrammet nedenfor, og hver AV disse ER SKJULTE TILSTANDER.
OBSERVASJONER er kjente data og refererer til «Walk»,» Shop «og» Clean » i diagrammet ovenfor. I maskinlæringssans er observasjon våre treningsdata, og antall skjulte tilstander er vår hyper-parameter for vår modell. Evaluering av modellen vil bli diskutert senere.
T = har ingen observasjon ennå, N = 2, M = 3, Q = {«Rainy», «Sunny»}, V = {«Walk», «Shop», «Clean»}
Tilstandsovergangssannsynligheter er pilene som peker til hver skjult tilstand. Observasjonssannsynlighetsmatrise er de blå og røde pilene som peker på hver observasjon fra hver skjult tilstand. Matrisen er radstokastisk, noe som betyr at radene legger opp til 1.
matrisen forklarer hva sannsynligheten er fra å gå til en tilstand til en annen, eller gå fra en tilstand til en observasjon.
Innledende tilstandsfordeling får modellen til å gå ved å starte med en skjult tilstand.
Full modell med kjente tilstandsovergangssannsynligheter, observasjonssannsynlighetsmatrise og innledende tilstandsfordeling er merket som,
Hvordan kan vi bygge modellen ovenfor i Python?
i ovennevnte tilfelle er utslippene diskrete {«Walk», «Shop»,»Clean»}. MultinomialHMM fra hmmlearn-biblioteket brukes til modellen ovenfor. GaussianHMM og GMMHMM er andre modeller i biblioteket.
nå MED HMM hva er noen viktige problemer å løse?
- Problem 1, Gitt en kjent modell hva er sannsynligheten for sekvens O skjer?
- Problem 2, Gitt en kjent modell Og sekvens O, hva er den optimale skjulte tilstandssekvensen? Dette vil være nyttig hvis vi vil vite om været Er «Regnfullt » Eller»Solfylt»
- Problem 3, Gitt sekvens O Og antall skjulte tilstander, hva er den optimale modellen som maksimerer sannsynligheten For O?
Problem 1 I Python
sannsynligheten for at den første observasjonen er «Walk» tilsvarer multiplikasjonen av den opprinnelige tilstandsfordelingen og utslippssannsynlighetsmatrisen. 0,6 x 0,1 + 0,4 x 0,6 = 0,30 (30%). Loggen sannsynligheten er gitt fra ringer .score.
Problem 2 I Python
Gitt den kjente modellen og observasjonen {«Shop», «Clean», «Walk»}, var været mest sannsynlig {«Rainy», «Rainy», «Sunny»} med ~1.5% sannsynlighet.
Gitt den kjente modellen og observasjonen {«Ren», «Ren», «Ren»}, var været mest sannsynlig {«Regnfull», «Regnfull», «Regnfull»} med ~3.6% sannsynlighet.
Intuitivt, når» Walk «oppstår, vil været mest sannsynlig ikke Være «Regnfullt».
Problem 3 I Python
Talegjenkjenning Med Lydfil: Forutsi disse ordene
Amplitude kan brukes SOM OBSERVASJON FOR HMM, men funksjonsteknikk vil gi oss mer ytelse.
Funksjon stft og peakfind genererer funksjon for lydsignal.
eksemplet ovenfor er tatt herfra. Kyle Kastner bygget HMM klasse som tar i 3d arrays, jeg bruker hmmlearn som bare tillater 2d arrays. Det er derfor jeg reduserer funksjonene generert Av Kyle Kastner Som X_test.gjennomsnitt (akse = 2).
Å gå gjennom denne modelleringen tok mye tid å forstå. Jeg hadde inntrykk av at målvariabelen må være observasjonen. Dette gjelder for tidsserier. Klassifisering gjøres ved å bygge HMM for hver klasse og sammenligne produksjonen ved å beregne logprob for innspill.
Matematisk Løsning På Problem 1: Fremoveralgoritme
Alfa pass er sannsynligheten FOR OBSERVASJON og TILSTANDSSEKVENS gitt modell.
Alfa pass på tid (t) = 0, innledende tilstandsfordeling til i og derfra til første observasjon O0.
Alfa pass på tid (t) = t, summen av siste alfa pass til hver skjult tilstand multiplisert med utslipp Til Ot.
Matematisk Løsning På Problem 2: Bakoveralgoritme
Gitt modell og observasjon, sannsynlighet for å være ved staten qi ved tid t.
Matematisk Løsning på Problem 3: Fremover-Bakover Algoritme
Sannsynlighet for fra stat qi til qj ved tid t med gitt modell og observasjon
Summen av all overgangssannsynlighet fra i til j.
Overgangs-og emisjonssannsynlighetsmatrise er estimert med di-gamma.
Iterere hvis sannsynligheten for P(o|modell) øker