Hidden Markov Model (HMM)
Explore les Hidden Markov Models (HMM) pour l'IA statistique. Apprends comment les HMM fonctionnent avec Ultralytics YOLO26 pour la reconnaissance d'action, 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 où le processus interne n'est pas directement visible—d'où le terme « caché »—mais peut être déduit via une séquence d'événements observables. Bien que l'apprentissage profond moderne ait évolué pour gérer 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 l'analyse de données de séries temporelles 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'historique qui l'a précédé.
Link to this sectionMécanismes fondamentaux des HMM#
Pour comprendre comment fonctionne 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 effectue des transitions entre des états cachés 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 :
- États cachés : Ils représentent la réalité sous-jacente du système à un moment donné. Dans un modèle de parole, un état caché pourrait représenter un phonème ou un mot spécifique.
- Événements observables : Ce sont les points de données réellement collectés par des capteurs ou des entrées. Dans l'exemple de la parole, l'observation serait la forme d'onde audio ou les données du spectrogramme.
- Probabilités de transition : Cette matrice décrit la probabilité de passer d'un état caché à un autre. Par exemple, la probabilité que la météo passe de « Pluvieux » à « Ensoleillé ».
- Probabilités d'émission : Celles-ci définissent la probabilité d'observer une donnée spécifique étant donné un état caché actuel.
- Probabilités initiales : La distribution qui détermine l'état dans lequel le système est le plus susceptible de commencer.
L'entraînement d'un HMM implique généralement l'algorithme de Baum-Welch pour estimer ces paramètres à partir de données d'entraînement. Une fois entraîné, l'algorithme de Viterbi est couramment utilisé pour décoder la séquence d'états cachés la plus probable à partir d'un nouvel ensemble d'observations.
Link to this sectionHMM vs. autres modèles de séquence#
Bien que les HMM partagent des similitudes avec d'autres outils de traitement de séquence, ils diffèrent considérablement en termes d'architecture et d'application :
- HMM vs. Réseaux de neurones récurrents (RNN) : Les RNN et les réseaux à mémoire à long terme (LSTM) sont des modèles d'apprentissage profond capables de capturer des dépendances à longue portée et des motifs non linéaires, tandis que les HMM sont des modèles probabilistes plus simples limités par l'hypothèse de Markov (mémoire à court terme). Cependant, les HMM nécessitent beaucoup moins de données et sont bien plus interprétables.
- HMM vs. Filtre de Kalman (KF) : Tous deux sont utilisés pour l'estimation d'état. Cependant, les filtres de Kalman sont conçus pour des états continus (comme le suivi de la position précise d'une voiture en mouvement), tandis que les HMM sont utilisés pour des états discrets (comme déterminer si la voiture est « garée », « en mouvement » ou « arrêtée »).
Link to this sectionApplications concrètes#
Malgré l'essor de l'apprentissage profond (DL), les modèles de Markov cachés sont toujours largement utilisés dans les scénarios nécessitant une inférence probabiliste sur des séquences.
Link to this sectionReconnaissance de la parole et de l'écriture manuscrite#
Historiquement, les HMM étaient l'épine dorsale 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 ayant produit le signal audio. De même, ils aident à déchiffrer l'écriture manuscrite cursive en modélisant la transition entre les traits de caractère.
Link to this sectionAnalyse de séquences biologiques#
Dans le domaine de la bioinformatique, les HMM sont cruciaux pour la prédiction de gènes et l'alignement de protéines. Ils analysent des séquences d'ADN ou d'acides aminés pour identifier des régions fonctionnelles, telles que des gènes au sein d'un génome. Les états « cachés » pourraient représenter des régions codantes ou non codantes, tandis que les nucléotides spécifiques (A, C, G, T) agissent comme des observations.
Link to this sectionReconnaissance d'actions en vision par ordinateur#
En vision par ordinateur moderne, les HMM peuvent être combinés avec des modèles comme YOLO26 pour effectuer de la reconnaissance d'actions. Alors que YOLO détecte des objets ou des poses dans des images individuelles, un HMM peut analyser la séquence de ces poses au fil du temps pour classifier une action, comme « marcher », « courir » ou « tomber ».
Link to this sectionIntégration de la vision et de l'analyse d'état#
Pour les développeurs utilisant la plateforme Ultralytics afin de gérer des jeux de données et des modèles, la compréhension de la logique séquentielle est vitale. Un modèle de vision fournit les observations brutes (détections), qui peuvent ensuite être transmises à un modèle d'espace d'état comme un HMM pour en déduire un contexte temporel.
L'exemple suivant démontre comment générer une séquence d'observations en utilisant l'estimation de pose YOLO26. Ces points clés peuvent servir d'« événements observables » en entrée pour un HMM en aval ou une logique similaire afin de classifier des comportements dans le 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 decoderLink to this sectionImportance dans l'IA moderne#
Bien que les transformers et les grands modèles de langage (LLM) aient surpassé les HMM pour des tâches comme le traitement du langage naturel (NLP), les HMM restent pertinents dans l'informatique en périphérie (edge computing) et les environnements à faible latence. Leur efficacité computationnelle les rend idéaux pour les systèmes aux ressources limitées où une utilisation intensive du GPU n'est pas réalisable. De plus, comme ils sont basés sur des matrices de probabilité transparentes, ils offrent une meilleure observabilité par rapport à la nature « boîte noire » de nombreux réseaux de neurones.






