Ugrás a tartalomhoz

hidden Markov model

A Wikiszótárból, a nyitott szótárból
(HMM szócikkből átirányítva)


Főnév

hidden Markov model (tsz. hidden Markov models)

  1. (informatika) rejtett Markov-modell

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.



Motivációs példa: időjárás és megfigyelés

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.



A HMM alapfogalmai

  1. Rejtett állapotok (S = {s₁, s₂, ..., sN})
    • A rendszer belső állapotai, amelyeket nem látunk közvetlenül.
    • Példa: „Napos”, „Felhős”, „Esős”
  2. Megfigyelhető szimbólumok (V = {v₁, v₂, ..., vM})
    • Azok az adatok, amelyeket ténylegesen megfigyelünk.
    • Példa: „Fagyi evett” / „Nem evett fagyi”
  3. Átmeneti valószínűségek (A = aᵢⱼ)
    • Az esélye annak, hogy az egyik állapotból a másikba lép a rendszer.
    • Pl. P(Felhős → Esős) = 0.3
  4. Megfigyelési valószínűségek (B = bⱼ(k))
    • Milyen eséllyel figyelünk meg egy szimbólumot egy adott állapotban.
    • Pl. P(Fagyi evés | Napos) = 0.8
  5. Kezdő valószínűségek (π = πᵢ)
    • Az esélye annak, hogy a rendszer az i-edik állapotban kezd.

Egy HMM tehát három fő paraméterből áll: λ = (A, B, π)



A HMM három fő problémája

  1. Értékelési probléma
    • Mi az esélye annak, hogy egy adott megfigyeléssorozatot (pl. “fagyi, nem fagyi, fagyi”) a modell generálja?
    • Megoldás: Forward algoritmus
  2. Dekódolási probléma
    • Melyik rejtett állapotsorozat volt a legvalószínűbb egy megfigyeléssorozat esetén?
    • Megoldás: Viterbi-algoritmus
  3. Tanulási probléma
    • Hogyan becsüljük meg a HMM paramétereit (A, B, π) megfigyelések alapján?
    • Megoldás: Baum–Welch-algoritmus (EM-algoritmus egyik formája)



Egyszerű példa

Állapotok:

  • S₁ = Napos
  • S₂ = Esős

Megfigyelések:

  • V₁ = Fagyi evett
  • V₂ = Nem evett

Átmeneti mátrix (A):

[0.7, 0.3]
[0.4, 0.6]

Megfigyelési mátrix (B):

Napos: [0.8, 0.2]   (Fagyi/Nem)
Esős:  [0.1, 0.9]

Kezdő valószínűség:

π = [0.6, 0.4]  (Napos/Esős)

Használat Pythonban (hmmlearn csomag)

from hmmlearn import hmm
import numpy as np

# Megfigyelések: 0 = fagyi, 1 = nem fagyi
obs = np.array([[0], [1], [0]])

# Modell létrehozása
model = hmm.MultinomialHMM(n_components=2)
model.startprob_ = np.array([0.6, 0.4])
model.transmat_ = np.array([[0.7, 0.3], [0.4, 0.6]])
model.emissionprob_ = np.array([[0.8, 0.2], [0.1, 0.9]])

# Legvalószínűbb állapotsorozat (Viterbi)
logprob, seq = model.decode(obs, algorithm="viterbi")
print("Rejtett állapotok:", seq)

Alkalmazási területek

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



HMM vs Markov-lánc

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



Előnyök és hátrányok

✔ Előnyök:

  • Idősorok és szekvenciák természetes modellezése
  • Matematikailag jól megalapozott
  • Hatékony algoritmusok (pl. Viterbi, Baum–Welch)

✘ Hátrányok:

  • Egyszerűsítő feltételezések (pl. elsőrendű Markov-feltételezés)
  • Az állapotok számát nehéz meghatározni
  • Paraméterhangolás számításigényes lehet



Összegzés

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.