Dold Markov Modell

Hidden Markov Model (HMM) är en statistisk markovmodell där systemet som modelleras antas vara en Markov-process med obemärkta (dvs. dolda) tillstånd.

dolda Markov-modeller är särskilt kända för sin tillämpning i förstärkningsinlärning och tidsmässig mönsterigenkänning som tal, handskrift, gestigenkänning, del-av-tal-taggning, musikalisk poäng efter, partiella utsläpp och bioinformatik.

terminologi i HMM

termen dold hänvisar till första ordningens Markov-process bakom observationen. Observation hänvisar till de data vi känner till och kan observera. Markov-processen visas av interaktionen mellan” regnig ”och” solig ” i nedanstående diagram och var och en av dessa är dolda tillstånd.

observationer är kända data och hänvisar till” Promenad”,” butik ”och” ren ” i ovanstående diagram. I maskininlärning är observation vår träningsdata, och antalet dolda tillstånd är vår hyperparameter för vår modell. Utvärdering av modellen kommer att diskuteras senare.

T = har ingen observation ännu, N = 2, M = 3, Q = {”Rainy”, ”Sunny”}, V = {”Walk”, ”Shop”, ”Clean”}

Statliga övergångssannolikheter är pilarna som pekar på varje dolt tillstånd. Observationssannolikhetsmatris är de blå och röda pilarna som pekar på varje observationer från varje dolt tillstånd. Matrisen är rad stokastiska betyder raderna lägga till upp till 1.

matrisen förklarar vad sannolikheten är från att gå till ett tillstånd till ett annat, eller gå från ett tillstånd till en observation.

Initial tillståndsfördelning får modellen att gå genom att starta i ett dolt tillstånd.

Full modell med kända tillståndsövergångssannolikheter, observationssannolikhetsmatris och initial tillståndsfördelning markeras som,

Hur kan vi bygga ovanstående modell i Python?

i ovanstående fall är utsläppen diskreta {”Walk”,” Shop”,”Clean”}. MultinomialHMM från hmmlearn-biblioteket används för ovanstående modell. GaussianHMM och GMMHMM är andra modeller i biblioteket.

nu med HMM vad är några viktiga problem att lösa?

  1. Problem 1, Givet en känd modell vad är sannolikheten för sekvens o händer?
  2. Problem 2, givet en känd modell och sekvens O, vad är den optimala dolda tillståndssekvensen? Detta kommer att vara användbart om vi vill veta om vädret är ”regnigt” eller ”soligt”
  3. Problem 3, givet sekvens O och antal dolda tillstånd, vad är den optimala modellen som maximerar sannolikheten för O?

Problem 1 i Python

sannolikheten för att den första observationen är ”Promenad” är lika med multiplikationen av den initiala tillståndsfördelningen och emissionssannolikhetsmatrisen. 0,6 x 0,1 + 0,4 x 0,6 = 0,30 (30%). Loggens Sannolikhet tillhandahålls från att ringa .Betyg.

Problem 2 i Python

med tanke på den kända modellen och observationen {”Shop”, ”Clean”, ”Walk”} var vädret troligen {”regnigt”, ”regnigt”, ”soligt”} med ~1,5% Sannolikhet.

med tanke på den kända modellen och observationen {”Clean”, ”Clean”, ”Clean”} var vädret troligen {”regnigt”, ”regnigt”, ”regnigt”} med ~3,6% Sannolikhet.

intuitivt, när ”promenad” inträffar kommer vädret sannolikt inte att vara ”regnigt”.

Problem 3 i Python

taligenkänning med ljudfil: förutsäga dessa ord

Amplitude kan användas som OBSERVATION för HMM, men funktionsteknik ger oss mer prestanda.

funktion stft och peakfind genererar funktion för ljudsignal.

exemplet ovan togs härifrån. Kyle Kastner byggde hmm-klass som tar in 3d-arrayer, jag använder hmmlearn som bara tillåter 2D-arrayer. Det är därför jag minskar funktionerna som genereras av Kyle Kastner som X_test.medelvärde (axel=2).

att gå igenom denna modellering tog mycket tid att förstå. Jag hade intrycket att målvariabeln måste vara observationen. Detta gäller för tidsserier. Klassificering görs genom att bygga HMM för varje klass och jämföra produktionen genom att beräkna logprob för din ingång.

matematisk lösning på Problem 1: framåt algoritm

Alpha pass är sannolikheten för OBSERVATION och TILLSTÅNDSSEKVENS given modell.

Alfa passerar vid tiden (t) = 0, initial tillståndsfördelning till i och därifrån till första observation O0.

Alpha pass at time (t) = T, summan av Sista alfa pass till varje dolt tillstånd multiplicerat med utsläpp till Ot.

matematisk lösning på Problem 2: Bakåtriktad algoritm

givet modell och observation, sannolikheten för att vara vid tillstånd qi vid tidpunkten t.

matematisk lösning på Problem 3: Framåt-bakåt algoritm

Sannolikhet för från staten qi till qj vid tidpunkten t med given modell och observation

summan av alla övergångssannolikheter från i till j.

övergångs-och emissionssannolikhetsmatris uppskattas med di-gamma.

iterera om sannolikheten för P(O|modell) ökar



+