Hidden Markov Model (HMM)
Esplora i modelli di Markov nascosti (HMM) per l'AI statistica. Scopri come gli HMM funzionano con Ultralytics YOLO26 per il riconoscimento delle azioni, l'analisi delle sequenze e la logica temporale.
Un modello nascosto di Markov (HMM) è un framework statistico utilizzato per modellare sistemi in cui il processo interno non è direttamente visibile — da qui il termine "nascosto" — ma può essere dedotto attraverso una sequenza di eventi osservabili. Sebbene il deep learning moderno si sia evoluto fino a gestire sequenze complesse, l'HMM rimane un concetto fondamentale nell'IA statistica e nella teoria della probabilità. È particolarmente efficace per analizzare dati di analisi delle serie temporali, in cui l'ordine degli eventi fornisce un contesto cruciale, basandosi sul principio fondamentale secondo cui la probabilità di uno stato futuro dipende esclusivamente dallo stato corrente e non dalla storia che lo ha preceduto.
Meccanismi fondamentali degli HMM#
Per capire come funziona un HMM, è essenziale distinguere tra i due livelli distinti del modello: gli stati invisibili e gli output visibili. Il modello presuppone che il sistema passi da uno stato nascosto all'altro secondo probabilità specifiche, emettendo un'osservazione a ogni passaggio.
Un HMM è definito da un insieme di parametri che regolano queste transizioni e queste emissioni:
- Stati nascosti: rappresentano la realtà sottostante del sistema in un determinato momento. In un modello vocale, uno stato nascosto potrebbe rappresentare uno specifico fonema o una parola.
- Eventi osservabili: sono i punti dati effettivamente raccolti dai sensori o dagli input. Nell'esempio vocale, l'osservazione sarebbe la forma d'onda audio o i dati dello spettrogramma.
- Probabilità di transizione: questa matrice descrive la probabilità di passare da uno stato nascosto a un altro. Ad esempio, la probabilità che il tempo cambi da "piovoso" a "soleggiato".
- Probabilità di emissione: definiscono la probabilità di osservare una specifica osservazione dato lo stato nascosto corrente.
- Probabilità iniziali: la distribuzione che determina lo stato in cui è più probabile che il sistema inizi.
L'addestramento di un HMM generalmente prevede l'uso dell'algoritmo di Baum-Welch per stimare questi parametri dai dati di addestramento. Una volta addestrato, l'algoritmo di Viterbi viene comunemente utilizzato per decodificare la sequenza più probabile di stati nascosti a partire da un nuovo insieme di osservazioni.
HMM a confronto con altri modelli sequenziali#
Sebbene gli HMM condividano alcune somiglianze con altri strumenti per l'elaborazione di sequenze, differiscono significativamente per architettura e applicazione:
- HMM e reti neurali ricorrenti (RNN): le RNN e le reti con memoria a lungo termine (LSTM) sono modelli di deep learning in grado di catturare dipendenze a lungo raggio e schemi non lineari, mentre gli HMM sono modelli probabilistici più semplici, limitati dall'ipotesi di Markov (memoria a breve termine). Tuttavia, gli HMM richiedono una quantità di dati significativamente inferiore e sono molto più interpretabili.
- HMM e filtro di Kalman (KF): entrambi vengono utilizzati per la stima dello stato. Tuttavia, i filtri di Kalman sono progettati per stati continui (come il tracciamento della posizione precisa di un'auto in movimento), mentre gli HMM vengono utilizzati per stati discreti (come determinare se l'auto è "parcheggiata", "in marcia" o "ferma").
Applicazioni nel mondo reale#
Nonostante la diffusione del deep learning (DL), i modelli nascosti di Markov sono ancora ampiamente utilizzati negli scenari che richiedono inferenza probabilistica sulle sequenze.
Riconoscimento vocale e della scrittura a mano#
Storicamente, gli HMM costituivano la base dei sistemi di riconoscimento vocale. In questo contesto, le parole pronunciate sono gli stati "nascosti", mentre i segnali audio registrati dal microfono sono le osservazioni. Gli HMM aiutano a determinare la sequenza più probabile di parole che ha prodotto il segnale audio. Analogamente, aiutano a decifrare la scrittura corsiva modellando la transizione tra i tratti dei caratteri.
Analisi delle sequenze biologiche#
Nel campo della bioinformatica, gli HMM sono fondamentali per la predizione genica e l'allineamento delle proteine. Analizzano sequenze di DNA o amminoacidi per identificare regioni funzionali, come i geni all'interno di un genoma. Gli stati "nascosti" possono rappresentare regioni codificanti o non codificanti, mentre i nucleotidi specifici (A, C, G, T) fungono da osservazioni.
Riconoscimento delle azioni nella computer vision#
Nella computer vision moderna, gli HMM possono essere combinati con modelli come YOLO26 per eseguire il riconoscimento delle azioni. Mentre YOLO rileva oggetti o pose nei singoli fotogrammi, un HMM può analizzare la sequenza di queste pose nel tempo per classificare un'azione, come "camminare", "correre" o "cadere".
Integrazione tra analisi visiva e degli stati#
Per gli sviluppatori che utilizzano la Ultralytics Platform per gestire dataset e modelli, comprendere la logica sequenziale è fondamentale. Un modello di visione fornisce le osservazioni grezze (rilevamenti), che possono poi essere immesse in un modello dello spazio degli stati come un HMM per dedurre il contesto temporale.
L'esempio seguente mostra come generare una sequenza di osservazioni utilizzando la stima della posa di YOLO26. Questi punti chiave possono fungere da input di "eventi osservabili" per un HMM downstream o una logica simile, così da classificare i comportamenti nel tempo.
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 decoderImportanza nell'IA moderna#
Sebbene i Transformer e i modelli linguistici di grandi dimensioni (LLM) abbiano superato gli HMM in attività come l'elaborazione del linguaggio naturale (NLP), gli HMM rimangono rilevanti nell'edge computing e negli ambienti a bassa latenza. La loro efficienza computazionale li rende ideali per i sistemi con risorse limitate, in cui l'uso intensivo della GPU non è praticabile. Inoltre, poiché si basano su matrici di probabilità trasparenti, offrono una maggiore osservabilità rispetto alla natura "black box" di molte reti neurali.









