Entdecken Sie Hidden Markov Models (HMM) für statistische KI. Erfahren Sie, wie HMMs mit Ultralytics für Aktionserkennung, Sequenzanalyse und zeitliche Logik funktionieren.
Ein Hidden Markov Model (HMM) ist ein statistisches Rahmenwerk, das zur Modellierung von Systemen verwendet wird, bei denen der interne Prozess nicht direkt sichtbar ist – daher „verborgen“ – aber durch eine Abfolge beobachtbarer Ereignisse abgeleitet werden kann. Während sich das moderne Deep Learning weiterentwickelt hat, um komplexe Sequenzen zu verarbeiten, bleibt das HMM ein grundlegendes Konzept in der statistischen KI und Wahrscheinlichkeitstheorie. Es ist besonders effektiv für die Analyse von Zeitreihendaten, bei denen die Reihenfolge der Ereignisse einen entscheidenden Kontext liefert, und stützt sich dabei auf das Kernprinzip, dass die Wahrscheinlichkeit eines zukünftigen Zustands ausschließlich vom aktuellen Zustand abhängt und nicht von der Vorgeschichte.
Um die Funktionsweise eines HMM zu verstehen, muss man zwischen den beiden unterschiedlichen Ebenen des Modells unterscheiden: den unsichtbaren Zuständen und den sichtbaren Ausgaben. Das Modell geht davon aus, dass das System nach bestimmten Wahrscheinlichkeiten zwischen versteckten Zuständen wechselt und bei jedem Schritt eine Beobachtung ausgibt.
Ein HMM wird durch eine Reihe von Parametern definiert, die diese Übergänge und Emissionen steuern:
Das Training eines HMM umfasst in der Regel den Baum-Welch-Algorithmus, um diese Parameter aus Trainingsdaten zu schätzen. Nach dem Training wird häufig der Viterbi-Algorithmus verwendet, um die wahrscheinlichste Sequenz versteckter Zustände aus einer neuen Reihe von Beobachtungen zu entschlüsseln.
HMMs weisen zwar Ähnlichkeiten mit anderen Sequenzverarbeitungswerkzeugen auf, unterscheiden sich jedoch erheblich in ihrer Architektur und Anwendung:
Trotz des Aufstiegs des Deep Learning (DL) werden Hidden Markov Models nach wie vor häufig in Szenarien eingesetzt, die eine probabilistische Inferenz über Sequenzen erfordern.
Historisch gesehen waren HMMs das Rückgrat von Spracherkennungssystemen. In diesem Zusammenhang sind die gesprochenen Wörter die „verborgenen” Zustände und die vom Mikrofon aufgezeichneten Audiosignale die Beobachtungen. HMMs helfen dabei, die wahrscheinlichste Wortfolge zu bestimmen, die das Audiosignal erzeugt hat. In ähnlicher Weise helfen sie bei der Entschlüsselung von kursiver Handschrift, indem sie den Übergang zwischen den Strichen der Zeichen modellieren.
Im Bereich der Bioinformatik sind HMMs entscheidend für die Genvorhersage und Proteinausrichtung. Sie analysieren DNA- oder Aminosäuresequenzen, um funktionelle Regionen zu identifizieren, wie z. B. Gene innerhalb eines Genoms. Die „verborgenen” Zustände können codierende oder nicht codierende Regionen darstellen, während die spezifischen Nukleotide (A, C, G, T) als Beobachtungen fungieren.
In der modernen Bildverarbeitung können HMMs mit Modellen wie YOLO26 kombiniert werden, um Aktionserkennung durchzuführen. Während YOLO Objekte oder Posen in einzelnen Frames YOLO , kann ein HMM die Abfolge dieser Posen im Zeitverlauf analysieren, um classify Aktion wie „Gehen”, „Laufen” oder „Fallen” classify .
Für Entwickler, die die Ultralytics verwenden, um Datensätze und Modelle zu verwalten, ist das Verständnis sequenzieller Logik von entscheidender Bedeutung. Ein Visionsmodell liefert die Rohbeobachtungen (Erkennungen), die dann in ein Zustandsraummodell wie ein HMM eingespeist werden können, um den zeitlichen Kontext abzuleiten.
Das folgende Beispiel zeigt, wie eine Folge von Beobachtungen mithilfe der YOLO26-Posenabschätzung generiert werden kann. Diese Schlüsselpunkte können als „beobachtbare Ereignisse” für ein nachgeschaltetes HMM oder eine ähnliche Logik dienen, um classify im Zeitverlauf classify .
from ultralytics import YOLO
# Load the YOLO26n-pose model for efficient keypoint detection
model = YOLO("yolo26n-pose.pt")
# Run inference on a video source (the 'observable' sequence)
# stream=True creates a generator for memory efficiency
results = model.predict(source="path/to/video.mp4", stream=True)
# Iterate through frames to extract observations
for result in results:
# Each 'keypoints' object is an observation for a potential HMM
keypoints = result.keypoints.xyn.cpu().numpy()
if keypoints.size > 0:
print(f"Observation (Normalized Keypoints): {keypoints[0][:5]}...")
# In a full pipeline, these points would be fed into an HMM decoder
Obwohl Transformatoren und große Sprachmodelle (LLMs) HMMs bei Aufgaben wie der natürlichen Sprachverarbeitung (NLP) überholt haben, bleiben HMMs in Edge-Computing- und Umgebungen mit geringer Latenz weiterhin relevant. Aufgrund ihrer Recheneffizienz eignen sie sich ideal für Systeme mit begrenzten Ressourcen, in denen schwere GPU nicht möglich ist. Da sie außerdem auf transparenten Wahrscheinlichkeitsmatrizen basieren, bieten sie eine höhere Beobachtbarkeit im Vergleich zur „Black-Box”-Natur vieler neuronaler Netze.