Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Hidden Markov Model (HMM)

Un modèle de Markov caché (HMM) déduit une séquence d’états cachés à partir d’observations bruitées. Découvre ses paramètres, l’algorithme de Viterbi et ses applications.

Un modèle de Markov caché (HMM) est un modèle probabiliste d’une séquence dans laquelle un système passe d’un état à l’autre sans que ces états puissent être observés directement, tandis que chaque état caché produit une observation qui, elle, est observable. À partir d’une séquence d’observations, comme des trames audio ou des lettres d’ADN, un HMM calcule la probabilité de chaque séquence d’états cachés, par exemple les phonèmes correspondant à l’audio ou les régions géniques correspondant aux lettres. « Markov » désigne son hypothèse fondamentale : l’état suivant dépend uniquement de l’état actuel. Leonard Baum et ses collègues ont élaboré cette théorie à la fin des années 1960, et les HMM ont ensuite servi à la reconnaissance vocale pendant des décennies. Entièrement fondés sur des probabilités explicites, ils restent un outil standard pour l’analyse des séries temporelles et la bio-informatique, ainsi qu’un exemple classique d’IA statistique.

Composants d’un HMM#

Un HMM comportant N états cachés est défini par trois ensembles de probabilités :

  • Probabilités initiales (π) : probabilité de commencer dans chacun des états cachés.
  • Probabilités de transition (A) : matrice N × N dont l’entrée A[i, j] représente la probabilité de passer de l’état i à l’état j en une étape, ce qui fait des états cachés une chaîne de Markov.
  • Probabilités d’émission (B) : probabilité de chaque observation sachant l’état actuel. Les observations discrètes utilisent une table, et les observations continues, comme les caractéristiques acoustiques, utilisent des distributions telles que les mélanges gaussiens.

Deux hypothèses rendent le modèle exploitable : chaque état dépend uniquement de l’état précédent, et chaque observation dépend uniquement de l’état actuel. Déroulé au fil du temps, le modèle forme une chaîne d’états cachés, chacun émettant une observation :

Trois problèmes classiques des HMM#

Le tutoriel de Lawrence Rabiner, largement cité et publié en 1989, a organisé l’utilisation des HMM autour de trois questions. Chacune admet une solution par programmation dynamique dont le coût augmente comme N² × T pour T observations, plutôt que comme les Nᵀ séquences d’états possibles :

  • Évaluation : quelle est la probabilité d’une séquence d’observations selon un modèle donné ? L’algorithme avant somme les probabilités de tous les chemins cachés ; c’est ainsi qu’un système de reconnaissance choisit le modèle de mot qui explique le mieux un énoncé.
  • Décodage : quelle séquence d’états cachés explique le mieux les observations ? L’algorithme de Viterbi, publié par Andrew Viterbi en 1967 pour le décodage des codes convolutifs, trouve le chemin le plus probable ; l’algorithme avant-arrière donne la probabilité de chaque état à chaque étape temporelle.
  • Apprentissage : quels paramètres correspondent le mieux à un ensemble de séquences d’observations ? L’algorithme de Baum-Welch, une instance de l’algorithme d’espérance-maximisation, estime π, A et B à partir de séquences non annotées. Lorsque les séquences d’états sont annotées, il suffit de compter les transitions et les émissions.

Le décodage de Viterbi tient en quelques lignes de NumPy. Dans ce modèle, l’activité d’une personne — marcher ou courir — est cachée, un traqueur fournit une mesure de vitesse par trame et les activités ont tendance à persister d’une trame à l’autre :

import numpy as np

states = ["walk", "run"]
start = np.array([0.8, 0.2])  # probabilités initiales des états
trans = np.array([[0.9, 0.1], [0.1, 0.9]])  # les activités ont tendance à persister d’une trame à l’autre
emit = np.array([[0.7, 0.25, 0.05], [0.1, 0.3, 0.6]])  # P(vitesse | état) pour lent, moyen, rapide
obs = [0, 0, 2, 0, 0, 1, 2, 2, 1, 2]  # mesures de vitesse par trame

# Viterbi : meilleure log-probabilité d’atteindre chaque état, avec des pointeurs de retour
logp = np.log(start) + np.log(emit[:, obs[0]])
back = []
for o in obs[1:]:
    scores = logp[:, None] + np.log(trans)  # lignes : état précédent, colonnes : état suivant
    back.append(scores.argmax(axis=0))
    logp = scores.max(axis=0) + np.log(emit[:, o])

# Retrace la séquence d’états la plus probable à rebours, depuis le meilleur état final
path = [int(logp.argmax())]
for pointers in reversed(back):
    path.insert(0, int(pointers[path[0]]))
print("Speeds: ", " ".join(["slow", "medium", "fast"][o] for o in obs))
print("Decoded:", " ".join(states[s] for s in path))

Le décodage donne walk walk walk walk walk run run run run run. La mesure rapide de la trame 3 reste « walk », car passer à la course puis revenir nécessiterait deux transitions improbables ; les mesures moyennes des trames 6 et 9 deviennent « run » en raison des trames rapides qui les entourent. Un classificateur par trame ignorant les transitions aurait étiqueté la trame 3 comme une course.

  • Filtre de Kalman : applique la même récurrence de prédiction et de mise à jour aux états continus, avec une dynamique linéaire et un bruit gaussien. L’algorithme avant des HMM est son équivalent pour les états discrets.
  • Réseaux bayésiens : un HMM est le réseau bayésien dynamique le plus simple, avec une variable cachée et une variable observée par étape temporelle.
  • Processus de décision de Markov (MDP) : ajoute des actions et des récompenses à une chaîne de Markov dont les états sont observés ; c’est le cadre de l’apprentissage par renforcement.
  • Réseaux neuronaux récurrents et transformers : apprennent des dépendances non linéaires à longue portée à partir de grands jeux de données et ont remplacé les HMM dans la plupart des tâches vocales et linguistiques. Les HMM nécessitent beaucoup moins de données, et chacune de leurs probabilités est directement interprétable.
  • Modèles d’espace d’état (SSM) : les couches d’apprentissage profond comme Mamba reprennent l’idée d’espace d’état issue de la théorie du contrôle et mettent à jour un vecteur caché continu selon une dynamique déterministe apprise.

Applications concrètes#

  • Reconnaissance vocale : des années 1980 au début des années 2010, la plupart des systèmes de reconnaissance modélisaient chaque phonème sous la forme d’un petit HMM avec des émissions de mélanges gaussiens. Les réseaux neuronaux profonds ont ensuite remplacé le modèle d’émission dans les systèmes hybrides, puis les modèles de bout en bout ont fini par remplacer entièrement les HMM.
  • Bio-informatique : les HMM de profil décrivent des familles de séquences apparentées de protéines ou d’ADN. HMMER les utilise pour rechercher des apparentés éloignés dans les bases de données de séquences et constitue le fondement de la base de données de familles de protéines Pfam. Les outils de prédiction génique utilisent également les HMM pour étiqueter les segments d’un génome comme codants ou non codants.
  • Étiquetage morphosyntaxique : les premiers systèmes statistiques de traitement automatique des langues étiquetaient les mots comme noms, verbes ou autres catégories grammaticales en décodant les séquences d’étiquettes avec Viterbi.
  • Reconnaissance d’activité : les séquences de poses corporelles ou de mesures de capteurs portés se décodent en activités comme rester debout, marcher ou tomber. La solution Ultralytics de suivi des entraînements suit une séquence à deux états de ce type : elle étiquette chaque personne « up » ou « down » à partir d’un angle articulaire obtenu par les points clés d’estimation de pose de YOLO26 — le coude par défaut —, commute au-dessus de 145° et en dessous de 90°, et compte une répétition à chaque transition de « up » vers « down ».

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique