Explora los modelos ocultos de Markov (HMM) para la IA estadística. Descubre cómo funcionan los HMM con Ultralytics para el reconocimiento de acciones, el análisis de secuencias y la lógica temporal.
Un modelo oculto de Markov (HMM) es un marco estadístico utilizado para modelar sistemas en los que el proceso interno no es directamente visible —de ahí que se denomine «oculto»—, pero que puede inferirse a través de una secuencia de eventos observables. Si bien el aprendizaje profundo moderno ha evolucionado para manejar secuencias complejas, el HMM sigue siendo un concepto fundamental en la inteligencia artificial estadística y la teoría de la probabilidad. Es particularmente eficaz para analizar datos de análisis de series temporales en los que el orden de los eventos proporciona un contexto crucial, basándose en el principio básico de que la probabilidad de un estado futuro depende únicamente del estado actual, y no de la historia que lo precedió.
Para comprender cómo funciona un HMM, es esencial distinguir entre las dos capas distintas del modelo: los estados invisibles y las salidas visibles. El modelo asume que el sistema realiza transiciones entre estados ocultos de acuerdo con probabilidades específicas, emitiendo una observación en cada paso.
Un HMM se define mediante un conjunto de parámetros que rigen estas transiciones y emisiones:
El entrenamiento de un HMM generalmente implica el algoritmo de Baum-Welch para estimar estos parámetros a partir de los datos de entrenamiento. Una vez entrenado, el algoritmo de Viterbi se utiliza comúnmente para decodificar la secuencia más probable de estados ocultos a partir de un nuevo conjunto de observaciones.
Aunque los HMM comparten similitudes con otras herramientas de procesamiento de secuencias, difieren significativamente en su arquitectura y aplicación:
A pesar del auge del aprendizaje profundo (DL), los modelos ocultos de Markov siguen utilizándose ampliamente en escenarios que requieren inferencia probabilística sobre secuencias.
Históricamente, los HMM eran la columna vertebral de los sistemas de reconocimiento de voz. En este contexto, las palabras pronunciadas son los estados «ocultos», y las señales de audio grabadas por el micrófono son las observaciones. Los HMM ayudan a determinar la secuencia más probable de palabras que produjo la señal de audio. Del mismo modo, ayudan a descifrar la escritura cursiva modelando la transición entre los trazos de los caracteres.
En el campo de la bioinformática, los HMM son cruciales para la predicción de genes y la alineación de proteínas. Analizan secuencias de ADN o aminoácidos para identificar regiones funcionales, como genes dentro de un genoma. Los estados «ocultos» pueden representar regiones codificantes o no codificantes, mientras que los nucleótidos específicos (A, C, G, T) actúan como observaciones.
En la visión artificial moderna, los HMM se pueden combinar con modelos como YOLO26 para realizar el reconocimiento de acciones. Mientras que YOLO objetos o posturas en fotogramas individuales, un HMM puede analizar la secuencia de estas posturas a lo largo del tiempo para classify acción, como «caminar», «correr» o «caerse».
Para los desarrolladores que utilizan la Ultralytics para gestionar conjuntos de datos y modelos, es fundamental comprender la lógica secuencial. Un modelo de visión proporciona las observaciones en bruto (detecciones), que luego pueden introducirse en un modelo de espacio de estados como un HMM para inferir el contexto temporal.
El siguiente ejemplo muestra cómo generar una secuencia de observaciones utilizando la estimación de pose YOLO26. Estos puntos clave pueden servir como entrada de «eventos observables» para un HMM descendente o una lógica similar para classify a lo largo del tiempo.
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
Aunque los transformadores y los grandes modelos de lenguaje (LLM) han superado a los HMM en tareas como el procesamiento del lenguaje natural (NLP), los HMM siguen siendo relevantes en la computación periférica y en entornos de baja latencia. Su eficiencia computacional los hace ideales para sistemas con recursos limitados en los que los GPU . Además, como se basan en matrices de probabilidad transparentes, ofrecen una mayor observabilidad en comparación con la naturaleza de «caja negra» de muchas redes neuronales.