Hidden Markov Model (HMM)
Explora los modelos ocultos de Markov (HMM) para IA estadística. Aprende cómo funcionan los HMM con Ultralytics YOLO26 para el reconocimiento de acciones, el análisis de secuencias y la lógica temporal.
Un Hidden Markov Model (HMM) es un marco estadístico utilizado para modelar sistemas en los que el proceso interno no es directamente visible —de ahí lo de "oculto"—, pero puede inferirse a través de una secuencia de eventos observables. Aunque el aprendizaje profundo moderno ha evolucionado para manejar secuencias complejas, el HMM sigue siendo un concepto fundamental en la estadística de IA y en la teoría de la probabilidad. Es especialmente eficaz para analizar datos de análisis de series temporales donde el orden de los eventos proporciona un contexto crucial, y se basa en el principio fundamental de que la probabilidad de un estado futuro depende únicamente del estado actual, no de la historia que lo precedió.
Mecanismos principales de los HMM#
Para entender 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 transiciona entre estados ocultos según 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:
- Estados Ocultos: Representan la realidad subyacente del sistema en un momento dado. En un modelo de voz, un estado oculto puede representar un fonema o una palabra específica.
- Eventos Observables: Son los puntos de datos recopilados realmente por sensores o entradas. En el ejemplo de la voz, la observación sería la forma de onda de audio o los datos del espectrograma.
- Probabilidades de Transición: Esta matriz describe la probabilidad de pasar de un estado oculto a otro. Por ejemplo, la probabilidad de que el clima cambie de "Lluvioso" a "Soleado".
- Probabilidades de Emisión: Definen la probabilidad de ver una observación específica dado un estado oculto actual.
- Probabilidades Iniciales: La distribución que determina el estado en el que es más probable que comience el sistema.
Entrenar un HMM generalmente implica el algoritmo de Baum-Welch para estimar estos parámetros a partir de datos de entrenamiento. Una vez entrenado, el algoritmo de Viterbi se usa comúnmente para decodificar la secuencia más probable de estados ocultos a partir de un nuevo conjunto de observaciones.
HMM frente a otros modelos de secuencia#
Aunque los HMM comparten similitudes con otras herramientas de procesamiento de secuencias, difieren significativamente en su arquitectura y aplicación:
- HMM frente a Redes Neuronales Recurrentes (RNN): Las redes RNN y las redes de Memoria a Corto y Largo Plazo (LSTM) son modelos de aprendizaje profundo capaces de capturar dependencias a largo plazo y patrones no lineales, mientras que los HMM son modelos probabilísticos más simples limitados por la suposición de Markov (memoria a corto plazo). Sin embargo, los HMM requieren muchos menos datos y son mucho más interpretables.
- HMM frente a Filtro de Kalman (KF): Ambos se utilizan para la estimación de estados. Sin embargo, los Filtros de Kalman están diseñados para estados continuos (como rastrear la ubicación precisa de un coche en movimiento), mientras que los HMM se utilizan para estados discretos (como determinar si el coche está "aparcado", "conduciendo" o "detenido").
Aplicaciones en el mundo real#
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.
Reconocimiento de voz y escritura a mano#
Históricamente, los HMM fueron la columna vertebral de los sistemas de reconocimiento de voz. En este contexto, las palabras habladas 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 de palabras más probable 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.
Análisis de secuencias biológicas#
En el campo de la bioinformática, los HMM son cruciales para la predicción de genes y el alineamiento de proteínas. Analizan secuencias de ADN o aminoácidos para identificar regiones funcionales, como los 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 las observaciones.
Reconocimiento de acciones en visión artificial#
En la visión artificial moderna, los HMM se pueden combinar con modelos como YOLO26 para realizar reconocimiento de acciones. Mientras que YOLO detecta objetos o posturas en fotogramas individuales, un HMM puede analizar la secuencia de estas posturas a lo largo del tiempo para clasificar una acción, como "caminar", "correr" o "caer".
Integración de visión y análisis de estados#
Para los desarrolladores que utilizan la Ultralytics Platform para gestionar conjuntos de datos y modelos, comprender la lógica secuencial es vital. Un modelo de visión proporciona las observaciones en bruto (detecciones), que luego se pueden introducir en un modelo de espacio de estados como un HMM para inferir el contexto temporal.
El siguiente ejemplo demuestra cómo generar una secuencia de observaciones utilizando la estimación de posturas de YOLO26. Estos puntos clave pueden servir como entrada de "eventos observables" para un HMM posterior o una lógica similar para clasificar comportamientos 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 decoderImportancia en la IA moderna#
Aunque los transformers y los grandes modelos de lenguaje (LLMs) han superado a los HMM en tareas como el procesamiento del lenguaje natural (NLP), los HMM siguen siendo relevantes en la computación en el borde y en entornos de baja latencia. Su eficiencia computacional los hace ideales para sistemas con recursos limitados donde no es viable un uso intensivo de la GPU. Además, debido a que se basan en matrices de probabilidad transparentes, ofrecen una mayor observabilidad en comparación con la naturaleza de "caja negra" de muchas redes neuronales.






