Hidden Markov Model (HMM)
Esplora gli Hidden Markov Model (HMM) per l'IA statistica. Impara come gli HMM funzionano con Ultralytics YOLO26 per il riconoscimento delle azioni, l'analisi delle sequenze e la logica temporale.
Un Modello di Markov nascosto (HMM) è un framework statistico utilizzato per modellare sistemi in cui il processo interno non è direttamente visibile, e per questo "nascosto", ma può essere dedotto attraverso una sequenza di eventi osservabili. Sebbene il deep learning moderno si sia evoluto per 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 attuale, non dalla storia che lo ha preceduto.
Link to this sectionMeccanismi centrali 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 assume che il sistema transiti tra stati nascosti secondo probabilità specifiche, emettendo un'osservazione a ogni passo.
Un HMM è definito da un insieme di parametri che regolano queste transizioni ed emissioni:
- Stati nascosti: Rappresentano la realtà sottostante del sistema in un dato momento. In un modello vocale, uno stato nascosto potrebbe rappresentare un fonema o una parola specifica.
- Eventi osservabili: Sono i punti dati effettivamente raccolti da sensori o 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 all'altro. Ad esempio, la probabilità che il meteo passi da "Piovoso" a "Soleggiato".
- Probabilità di emissione: Definiscono la probabilità di vedere un'osservazione specifica dato uno stato nascosto attuale.
- Probabilità iniziali: La distribuzione che determina lo stato in cui è più probabile che il sistema inizi.
L'addestramento di un HMM comporta generalmente 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 da un nuovo insieme di osservazioni.
Link to this sectionHMM vs. altri modelli di sequenza#
Sebbene gli HMM condividano somiglianze con altri strumenti di elaborazione di sequenze, differiscono significativamente in architettura e applicazione:
- HMM vs. Reti Neurali Ricorrenti (RNN): Le RNN e le reti Long Short-Term Memory (LSTM) sono modelli di deep learning in grado di catturare dipendenze a lungo raggio e pattern non lineari, mentre gli HMM sono modelli probabilistici più semplici limitati dall'assunzione di Markov (memoria a breve termine). Tuttavia, gli HMM richiedono molti meno dati e sono molto più interpretabili.
- HMM vs. Filtro di Kalman (KF): Entrambi sono 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 sono usati per stati discreti (come determinare se l'auto è "parcheggiata", "in movimento" o "ferma").
Link to this sectionApplicazioni nel mondo reale#
Nonostante l'ascesa del deep learning (DL), i modelli di Markov nascosti sono ancora ampiamente utilizzati in scenari che richiedono inferenza probabilistica su sequenze.
Link to this sectionRiconoscimento vocale e della grafia#
Storicamente, gli HMM erano la spina dorsale dei sistemi di riconoscimento vocale. In questo contesto, le parole parlate sono gli stati "nascosti" e 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. Allo stesso modo, aiutano a decifrare la grafia corsiva modellando la transizione tra i tratti dei caratteri.
Link to this sectionAnalisi delle sequenze biologiche#
Nel campo della bioinformatica, gli HMM sono cruciali per la previsione dei geni e l'allineamento proteico. Analizzano sequenze di DNA o amminoacidi per identificare regioni funzionali, come i geni all'interno di un genoma. Gli stati "nascosti" potrebbero rappresentare regioni codificanti o non codificanti, mentre i nucleotidi specifici (A, C, G, T) agiscono come osservazioni.
Link to this sectionRiconoscimento delle azioni nella computer vision#
Nella moderna computer vision, gli HMM possono essere combinati con modelli come YOLO26 per eseguire il riconoscimento delle azioni. Mentre YOLO rileva oggetti o pose in singoli fotogrammi, un HMM può analizzare la sequenza di queste pose nel tempo per classificare un'azione, come "camminare", "correre" o "cadere".
Link to this sectionIntegrazione di visione e analisi degli stati#
Per gli sviluppatori che utilizzano la Piattaforma Ultralytics per gestire dataset e modelli, comprendere la logica sequenziale è fondamentale. Un modello di visione fornisce le osservazioni grezze (rilevamenti), che possono poi essere inserite in un modello di spazio degli stati come un HMM per dedurre il contesto temporale.
Il seguente esempio dimostra come generare una sequenza di osservazioni utilizzando la stima della posa con YOLO26. Questi keypoint possono fungere da "eventi osservabili" in input per un HMM a valle o una logica simile per 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 decoderLink to this sectionImportanza nell'IA moderna#
Sebbene i transformer e i modelli linguistici di grandi dimensioni (LLM) abbiano superato gli HMM per compiti 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 sistemi con risorse limitate dove un uso intensivo della GPU non è fattibile. Inoltre, poiché si basano su matrici di probabilità trasparenti, offrono una maggiore osservabilità rispetto alla natura di "scatola nera" di molte reti neurali.






