Underfitting
Impara a identificare e risolvere l'underfitting nel machine learning. Esplora cause e indicatori e scopri come ottimizzare i modelli Ultralytics YOLO26 per una maggiore accuratezza.
L'underfitting si verifica quando un modello di machine learning è troppo semplice o non dispone della capacità necessaria per catturare le tendenze e gli schemi sottostanti nei dati di addestramento. Concettualmente, è analogo al tentativo di tracciare una linea retta attraverso punti 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 efficacemente i dati, mostra prestazioni scarse non solo sul set di addestramento, ma anche su dati di convalida non osservati, con conseguente bassa accuratezza predittiva. Questo fenomeno è spesso il risultato di un elevato bias nell'AI, in cui l'algoritmo formula ipotesi eccessivamente semplicistiche sulla funzione obiettivo.
Cause e indicatori#
Diversi fattori possono portare a un modello underfitted. La causa più comune è l'uso di un'architettura del modello non abbastanza complessa per il compito in questione, ad esempio l'applicazione della regressione lineare a dati non lineari. Anche una durata di addestramento insufficiente, durante la quale al modello non vengono fornite abbastanza epoche per convergere, impedisce un apprendimento adeguato. Inoltre, una regolarizzazione eccessiva — una tecnica solitamente usata per prevenire il problema opposto — può vincolare troppo il modello, impedendogli di catturare caratteristiche importanti.
Gli ingegneri possono identificare l'underfitting monitorando le funzioni di perdita durante l'addestramento. Se sia l'errore di addestramento sia l'errore di convalida rimangono elevati e non diminuiscono in modo significativo, è probabile che il modello presenti underfitting. A differenza di un'efficace ingegneria delle caratteristiche, che aiuta i modelli a comprendere i dati, anche la disponibilità di un numero troppo ridotto di caratteristiche può privare il modello delle informazioni necessarie.
Underfitting vs. overfitting#
È fondamentale distinguere l'underfitting dal suo opposto, l'overfitting. Questi due concetti rappresentano gli estremi opposti del compromesso bias-varianza.
- Underfitting (bias elevato): il modello è troppo rigido. Offre prestazioni scarse sia sui dati di addestramento sia sui dati di test, perché non ha appreso il segnale di base.
- Overfitting (varianza elevata): il modello è troppo flessibile. Memorizza i dati di addestramento, incluso il rumore, ottenendo prestazioni eccezionali durante l'addestramento, ma non riuscendo a generalizzare a nuovi esempi.
Trovare il "punto ottimale" tra questi due estremi è l'obiettivo principale dell'ottimizzazione del modello.
Applicazioni nel mondo reale#
Comprendere l'underfitting è fondamentale per sviluppare sistemi di AI affidabili in vari settori.
- Guida autonoma: nel contesto dei veicoli autonomi, un modello di rilevamento degli oggetti soggetto a underfitting potrebbe non riuscire a distinguere tra un pedone e un lampione in ambienti urbani complessi. Poiché il modello non dispone dei parametri necessari per apprendere le sottili differenze visive, mette a rischio la sicurezza dell'AI.
- Diagnostica medica: applicando l'analisi delle immagini mediche per rilevare anomalie come i tumori, un modello eccessivamente semplice potrebbe non individuare escrescenze piccole o irregolari. Se la rete neurale è troppo poco profonda, non può apprendere le trame complesse necessarie per ottenere elevata sensibilità e specificità, con conseguenti diagnosi mancate.
Affrontare l'underfitting con il codice#
Nella computer vision, l'underfitting si verifica spesso quando si utilizza una variante del modello troppo piccola per la difficoltà del compito, ad esempio per rilevare oggetti di piccole dimensioni in immagini ad alta risoluzione acquisite da droni. Il seguente esempio in Python mostra come passare da un modello più piccolo a un modello più grande e più capace usando la libreria ultralytics per risolvere un 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 addestramento adeguata, il sistema acquisisce i parametri necessari per apprendere schemi complessi, riducendo efficacemente l'underfitting. Per verificare che il tuo modello non presenti più underfitting, valutalo sempre su un dataset di test solido. Per gestire i dataset e monitorare gli esperimenti al fine di individuare tempestivamente l'underfitting, la Ultralytics Platform offre strumenti completi per la visualizzazione e l'analisi.









