hidden Markov model (tsz. hidden Markov models)
A Hidden Markov Model, röviden HMM, magyarul rejtett Markov-modell, egy valószínűségi modell, amely idősorokban vagy szekvenciákban zajló eseményeket ír le, ahol a rendszer belső állapotai nem közvetlenül megfigyelhetők (rejtettek), de ezek hatással vannak a megfigyelhető kimenetekre.
A HMM-et gyakran használják beszédfelismerés, gépi fordítás, biológiai szekvenciaelemzés, pénzügyi idősor-elemzés, vagy természetes nyelvfeldolgozás területein.
Képzeld el, hogy egy barátod egy másik városban él, és naponta leírja, eszik-e fagyit vagy sem. Te azt akarod kitalálni, hogy milyen idő volt aznap: napos, felhős vagy esős. Mivel csak a fagylaltfogyasztást figyeled meg, a valós állapot (időjárás) rejtve van, de következtetni lehet rá a megfigyelt adatok alapján. Ez a HMM alapelve.
S = {s₁, s₂, ..., sN}
)
V = {v₁, v₂, ..., vM}
)
A = aᵢⱼ
)
P(Felhős → Esős) = 0.3
B = bⱼ(k)
)
P(Fagyi evés | Napos) = 0.8
π = πᵢ
)
i
-edik állapotban kezd.Egy HMM tehát három fő paraméterből áll: λ = (A, B, π)
Napos: (Fagyi/Nem) Esős:
π = (Napos/Esős)
from hmmlearn import hmm
import numpy as np
# Megfigyelések: 0 = fagyi, 1 = nem fagyi
obs = np.array(, , ])
# Modell létrehozása
model = hmm.MultinomialHMM(n_components=2)
model.startprob_ = np.array()
model.transmat_ = np.array(, ])
model.emissionprob_ = np.array(, ])
# Legvalószínűbb állapotsorozat (Viterbi)
logprob, seq = model.decode(obs, algorithm="viterbi")
print("Rejtett állapotok:", seq)
Terület | Példa |
---|---|
Beszédfelismerés | Hang → fonémák / szavak |
Biológia | DNS szekvenciák → gének lokalizálása |
Pénzügy | Árak, trendek előrejelzése |
Gépi fordítás | Szókapcsolatok, nyelvtani struktúrák modellezése |
Szövegelemzés (NLP) | Szófaj meghatározása, entitásfelismerés, elemzés |
Tulajdonság | Markov-lánc | Rejtett Markov-modell (HMM) |
---|---|---|
Látható állapotok? | Igen | Nem (rejtett) |
Kimenetek? | Nem feltétlenül | Megfigyelhető kimenetek vannak |
Célja | Állapotok valószínűsége | Rejtett állapotok visszafejtése |
A Hidden Markov Model (HMM) egy hatékony, sokoldalú eszköz, amellyel rejtett állapotokkal rendelkező szekvenciális problémákat modellezhetünk. A modell mögött erős valószínűségi háttér áll, és rengeteg területen bizonyított: a beszédfelismeréstől a genetikai elemzésig. A kulcs az, hogy nem látjuk közvetlenül a rendszer belső állapotait, de a megfigyelt kimenetek alapján valószínűségi alapon visszakövetkeztethetünk rájuk.