Découvrez les modèles de Markov cachés (HMM) pour l'IA statistique. Apprenez comment les HMM fonctionnent avec Ultralytics pour la reconnaissance d'actions, l'analyse de séquences et la logique temporelle.
Un modèle de Markov caché (HMM) est un cadre statistique utilisé pour modéliser des systèmes dont le processus interne n'est pas directement visible — d'où le terme « caché » — mais peut être déduit à partir d'une séquence d'événements observables. Alors que l'apprentissage profond moderne a évolué pour traiter des séquences complexes, le HMM reste un concept fondamental de l' IA statistique et de la théorie des probabilités. Il est particulièrement efficace pour analyser des données de séries chronologiques où l'ordre des événements fournit un contexte crucial, en s'appuyant sur le principe fondamental selon lequel la probabilité d'un état futur dépend uniquement de l'état actuel, et non de l'histoire qui l'a précédé.
Pour comprendre le fonctionnement d'un HMM, il est essentiel de distinguer les deux couches distinctes du modèle : les états invisibles et les sorties visibles. Le modèle suppose que le système passe d'un état caché à un autre selon des probabilités spécifiques, émettant une observation à chaque étape.
Un HMM est défini par un ensemble de paramètres qui régissent ces transitions et émissions :
L'entraînement d'un HMM implique généralement l' algorithme de Baum-Welch pour estimer ces paramètres à partir des données d'entraînement. Une fois l'entraînement terminé, l' algorithme de Viterbi est couramment utilisé pour décoder la séquence la plus probable d'états cachés à partir d'un nouvel ensemble d'observations.
Bien que les HMM partagent des similitudes avec d'autres outils de traitement de séquences, ils diffèrent considérablement par leur architecture et leur application :
Malgré l'essor du deep learning (DL), les modèles de Markov cachés sont encore largement utilisés dans les scénarios nécessitant une inférence probabiliste sur des séquences.
Historiquement, les HMM constituaient la colonne vertébrale des systèmes de reconnaissance vocale. Dans ce contexte, les mots prononcés sont les états « cachés » et les signaux audio enregistrés par le microphone sont les observations. Les HMM aident à déterminer la séquence de mots la plus probable qui a produit le signal audio. De même, ils aident à déchiffrer l'écriture cursive en modélisant la transition entre les traits des caractères.
Dans le domaine de la bio-informatique, les HMM sont essentiels pour la prédiction des gènes et l'alignement des protéines. Ils analysent les séquences d'ADN ou d'acides aminés afin d'identifier les régions fonctionnelles, telles que les gènes au sein d'un génome. Les états « cachés » peuvent représenter des régions codantes ou non codantes, tandis que les nucléotides spécifiques (A, C, G, T) agissent comme des observations.
Dans la vision par ordinateur moderne, les HMM peuvent être combinés avec des modèles tels que YOLO26 pour effectuer la reconnaissance d'actions. Alors que YOLO des objets ou des poses dans des images individuelles, un HMM peut analyser la séquence de ces poses au fil du temps pour classify action, telle que « marcher », « courir » ou « tomber ».
Pour les développeurs utilisant la Ultralytics pour gérer des ensembles de données et des modèles, il est essentiel de comprendre la logique séquentielle. Un modèle de vision fournit les observations brutes (détections), qui peuvent ensuite être introduites dans un modèle d'espace d'état tel qu'un HMM afin de déduire le contexte temporel.
L'exemple suivant montre comment générer une séquence d'observations à l'aide de l' estimation de pose YOLO26. Ces points clés peuvent servir d' « événements observables » pour un HMM en aval ou une logique similaire afin de classify au fil du temps.
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
Bien que les transformateurs et les grands modèles linguistiques (LLM) aient supplanté les HMM pour des tâches telles que le traitement du langage naturel (NLP), les HMM restent pertinents dans les environnements informatiques de pointe et à faible latence. Leur efficacité computationnelle les rend idéaux pour les systèmes aux ressources limitées où des GPU n'est pas envisageable. De plus, comme ils sont basés sur des matrices de probabilités transparentes, ils offrent une meilleure observabilité par rapport à la nature « boîte noire » de nombreux réseaux neuronaux.