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 Hidden Markov Model (HMM) est un cadre statistique utilisé pour modéliser des systèmes où le processus interne n'est pas directement visible — d'où « caché » — mais peut être déduit grâce à 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 en statistical AI et en théorie des probabilités. Il est particulièrement efficace pour analyser des données de time-series analysis 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é.
Mé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 :
- Hidden States: Ils représentent la réalité sous-jacente du système à un moment donné. Dans un modèle de parole, un état caché peut représenter un phonème ou un mot spécifique.
- Observable Events: 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.
- Transition Probabilities: 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é ».
- Emission Probabilities: Celles-ci définissent la probabilité d'observer une information spécifique étant donné un état caché actuel.
- Initial Probabilities: La distribution qui détermine l'état dans lequel le système a le plus de chances de commencer.
L'entraînement d'un HMM implique généralement le Baum-Welch algorithm pour estimer ces paramètres à partir de training data. Une fois entraîné, le Viterbi algorithm est couramment utilisé pour décoder la séquence d'états cachés la plus probable à partir d'un nouvel ensemble d'observations.
HMM 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. Recurrent Neural Networks (RNN): Les RNN et les réseaux Long Short-Term Memory (LSTM) sont des modèles d'apprentissage profond capables de capturer des dépendances à long terme 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 nettement moins de données et sont beaucoup plus interprétables.
- HMM vs. Kalman Filter (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 l'emplacement précis 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 train de rouler » ou « à l'arrêt »).
Applications concrètes#
Malgré la montée en puissance du deep learning (DL), les Hidden Markov Models sont toujours largement utilisés dans les scénarios nécessitant une inférence probabiliste sur des séquences.
Reconnaissance de la parole et de l'écriture manuscrite#
Historiquement, les HMM constituaient la base des systèmes de speech recognition. 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écoder l'écriture manuscrite cursive en modélisant la transition entre les traits des caractères.
Analyse de séquences biologiques#
Dans le domaine de la bioinformatics, les HMM sont essentiels 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 » peuvent représenter des régions codantes ou non codantes, tandis que les nucléotides spécifiques (A, C, G, T) agissent comme les observations.
Reconnaissance d'actions en vision par ordinateur#
En vision par ordinateur moderne, les HMM peuvent être combinés avec des modèles tels que YOLO26 pour effectuer une action recognition. 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, telle que « marcher », « courir » ou « tomber ».
Intégration de la vision et de l'analyse d'état#
Pour les développeurs utilisant la Ultralytics Platform pour gérer des jeux 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 injectées dans un modèle d'espace d'états tel qu'un HMM pour en 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'entrée « d'événements observables » pour un HMM en aval ou une logique similaire afin de classifier les comportements 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 decoderImportance dans l'IA moderne#
Bien que les transformers et les grands modèles de langage (LLM) aient supplanté les HMM pour des tâches telles que le natural language processing (NLP), les HMM restent pertinents dans l'edge computing et les environnements à faible latence. Leur efficacité de calcul les rend idéaux pour les systèmes aux ressources limitées où une utilisation intensive du GPU n'est pas envisageable. De plus, comme ils reposent sur des matrices de probabilité transparentes, ils offrent une observability supérieure par rapport à la nature de « boîte noire » de nombreux réseaux de neurones.






