Underfitting
Impara a identificare e risolvere l'underfitting nel machine learning. Esplora le cause, gli indicatori e come ottimizzare i modelli Ultralytics YOLO26 per una migliore precisione.
L'underfitting si verifica quando un modello di machine learning è troppo semplice o non ha la capacità di catturare i trend e i pattern sottostanti all'interno dei dati di training. Concettualmente, è analogo a cercare di adattare una linea retta a punti di dati che formano una curva distinta; il modello non riesce a cogliere la complessità della relazione tra input e output. Poiché il modello non ha appreso i dati in modo efficace, mostra scarse prestazioni non solo sul set di training ma anche su dati di validazione non visti, portando a una bassa accuratezza predittiva. Questo fenomeno è spesso il risultato di un elevato bias in AI, in cui l'algoritmo fa ipotesi eccessivamente semplicistiche sulla funzione obiettivo.
Cause e indicatori#
Diversi fattori possono portare a un modello in underfitting. La causa più comune è l'uso di un'architettura di modello non abbastanza complessa per il compito in corso, come l'applicazione di regressione lineare a dati non lineari. Una durata di training insufficiente, in cui al modello non vengono dati abbastanza epoche per convergere, impedisce inoltre un apprendimento adeguato. Inoltre, una regolarizzazione eccessiva — una tecnica solitamente usata per prevenire il problema opposto — può vincolare eccessivamente il modello, impedendogli di catturare caratteristiche importanti.
Gli ingegneri possono identificare l'underfitting monitorando le funzioni di perdita durante il training. Se sia l'errore di training che l'errore di validazione rimangono alti e non diminuiscono significativamente, è probabile che il modello sia in underfitting. In contrasto con un'efficace feature engineering, che aiuta i modelli a comprendere i dati, fornire troppe poche feature può anche privare il modello delle informazioni necessarie.
Underfitting vs. Overfitting#
È cruciale distinguere l'underfitting dalla sua controparte, l'overfitting. Questi due concetti rappresentano i lati opposti del compromesso bias-varianza.
- Underfitting (Bias Elevato): Il modello è troppo rigido. Offre scarse prestazioni sia sui dati di training che sui dati di test perché non ha appreso il segnale di base.
- Overfitting (Varianza Elevata): Il modello è troppo flessibile. Memorizza i dati di training, incluso il rumore, ottenendo risultati eccezionali durante il training ma fallendo nel generalizzare a nuovi esempi.
Trovare il "punto di equilibrio" tra questi due estremi è l'obiettivo principale dell'ottimizzazione del modello.
Applicazioni nel mondo reale#
Comprendere l'underfitting è vitale per sviluppare sistemi AI affidabili in vari settori.
- Guida Autonoma: Nel contesto dei veicoli autonomi, un modello di rilevamento oggetti in underfitting potrebbe non riuscire a distinguere tra un pedone e un lampione in ambienti urbani complessi. Poiché al modello mancano i parametri per apprendere le sottili differenze visive, mette a repentaglio la sicurezza dell'IA.
- Diagnostica Medica: Quando si applica l'analisi delle immagini mediche per rilevare anomalie come i tumori, un modello eccessivamente semplice potrebbe perdere escrescenze piccole o irregolari. Se la rete neurale è troppo superficiale, non può apprendere le trame intricate richieste per un'elevata sensibilità e specificità, portando a diagnosi mancate.
Affrontare l'underfitting con il codice#
Nella visione artificiale, l'underfitting si verifica spesso quando si utilizza una variante di modello troppo piccola per la difficoltà del compito (ad esempio, il rilevamento di piccoli oggetti in immagini di droni ad alta risoluzione). Il seguente esempio in Python dimostra come passare da un modello più piccolo a uno più grande e capace utilizzando la libreria ultralytics per risolvere il potenziale underfitting.
from ultralytics import YOLO
# If 'yolo26n.pt' (Nano) is underfitting and yielding low accuracy,
# upgrade to a model with higher capacity like 'yolo26l.pt' (Large).
model = YOLO("yolo26l.pt")
# Train the larger model.
# Increasing epochs also helps the model converge if it was previously underfitting.
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Passando a un modello Ultralytics YOLO26 più grande e garantendo una durata di training adeguata, il sistema ottiene i parametri necessari per apprendere pattern complessi, mitigando efficacemente l'underfitting. Per verificare che il tuo modello non sia più in underfitting, valutalo sempre rispetto a un robusto dataset di test. Per la gestione dei dataset e il tracciamento degli esperimenti per individuare tempestivamente l'underfitting, la Ultralytics Platform offre strumenti completi per la visualizzazione e l'analisi.






