Sovradattamento (Overfitting)
Esplora le cause e i sintomi dell'overfitting nell'apprendimento automatico. Scopri come prevenire l'elevata varianza e migliorare la generalizzazione utilizzando Ultralytics .
Il sovradattamento si verifica nell'apprendimento automatico quando un modello apprende troppo bene i dati di addestramento, catturando rumore e fluttuazioni casuali
anziché la distribuzione dei dati sottostante. Invece di apprendere modelli generali applicabili a dati nuovi e
non visti, un modello sovradimensionato memorizza efficacemente gli esempi specifici nel set di addestramento. Ciò si traduce in
prestazioni eccellenti sui dati di addestramento ma scarsa generalizzazione agli scenari del mondo reale. Viene spesso descritto come
"alta varianza", il che significa che le previsioni del modello variano in modo significativo a seconda del set di dati specifico utilizzato
per l'addestramento.
Perché si verifica l'overfitting
La causa principale dell'overfitting è l'eccessiva complessità del modello rispetto alla quantità di dati disponibili. Se una
rete neurale è troppo grande, ovvero ha troppi
livelli o parametri, può facilmente memorizzare gli esempi di addestramento. Altri fattori che contribuiscono a questo fenomeno includono:
-
Dati di addestramento insufficienti: i set di dati di piccole dimensioni possono contenere correlazioni spurie che non esistono nella
popolazione più ampia. I modelli addestrati su dati limitati sono inclini ad apprendere questi modelli accidentali.
-
Rumore dei dati e valori anomali: livelli elevati di rumore o valori anomali non rappresentativi nei
dati di addestramento possono fuorviare il modello, inducendolo ad
adattare i propri parametri interni per adattarsi alle anomalie piuttosto che al segnale reale.
-
Durata prolungata dell'addestramento: un addestramento troppo lungo
permette al modello di continuare a perfezionare i propri pesi
fino a quando non si adatta al rumore nel set di addestramento. Questo viene spesso monitorato utilizzando
i dati di convalida.
Overfitting vs. Underfitting
È importante distinguere l'overfitting dall'
underfitting. Mentre l'overfitting comporta l'apprendimento di troppi
dettagli (incluso il rumore), l'underfitting si verifica quando un modello è troppo semplice per catturare la struttura sottostante dei
dati. Un modello underfitted ha prestazioni scadenti sia sui dati di addestramento che sui nuovi dati, spesso con conseguente elevato
bias. Il bilanciamento di questi due estremi è noto come
tradeoff bias-varianza.
Prevenire l'overfitting
Gli ingegneri utilizzano diverse tecniche per mitigare il sovradattamento e migliorare la robustezza del modello:
-
Regolarizzazione: tecniche come la regolarizzazione L1/L2 o l'aggiunta di
livelli di dropout introducono penalità o casualità
durante l'addestramento, impedendo al modello di diventare eccessivamente dipendente da caratteristiche specifiche.
-
Interruzione anticipata: il monitoraggio della
funzione di perdita su un set di validazione consente di interrompere l'addestramento
una volta che le prestazioni sui dati non visti smettono di migliorare, anche se l'accuratezza dell'addestramento continua ad aumentare.
-
Aumento dei dati: aumentare artificialmente le dimensioni e la diversità del set di addestramento utilizzando l'
aumento dei dati rende più difficile per il modello
memorizzare immagini esatte.
-
Validazione incrociata: l'utilizzo di tecniche come la
validazione incrociata k-fold garantisce che il
modello venga testato su diversi sottoinsiemi di dati, fornendo una stima più affidabile delle sue prestazioni.
Esempi reali
L'overfitting può avere gravi conseguenze quando si implementa l'IA in ambienti di produzione:
-
Diagnosi medica: nell'
ambito dell'intelligenza artificiale in campo sanitario, un modello addestrato a detect
il
cancro della pelle potrebbe adattarsi eccessivamente alle condizioni di illuminazione o alle marcature dei righelli presenti nelle immagini di addestramento. Se implementato
in una clinica con illuminazione o attrezzature diverse, il modello potrebbe non riuscire a identificare correttamente le lesioni maligne perché
si è basato su indicazioni di sfondo irrilevanti.
-
Previsioni finanziarie: un modello di previsione del prezzo delle azioni potrebbe adattarsi eccessivamente alle tendenze storiche del mercato
determinate da un evento specifico e non ripetibile (come una crisi economica una tantum). Un modello di questo tipo probabilmente
non riuscirebbe a prevedere con precisione i movimenti futuri delle azioni, poiché memorizza le anomalie passate invece di apprendere
le dinamiche fondamentali del mercato.
Esempio di codice: arresto anticipato con YOLO26
Utilizzando la Ultralytics o script di addestramento locali, è possibile
prevenire l'overfitting impostando una tolleranza di arresto anticipato. Ciò interrompe l'addestramento se l'idoneità di convalida non
migliora per un determinato numero di epoche.
from ultralytics import YOLO
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Train with early stopping enabled (patience=50 epochs)
# If validation metrics don't improve for 50 epochs, training stops.
results = model.train(data="coco8.yaml", epochs=100, patience=50)
Concetti correlati
-
Generalizzazione: la capacità di un modello di adattarsi e funzionare bene su dati nuovi, mai visti prima,
che è l'opposto dell'overfitting.
-
Validazione incrociata: tecnica per valutare in che modo i risultati di un'analisi statistica possano
essere generalizzati a un insieme di dati indipendente.
-
Regolarizzazione: metodi utilizzati per ridurre gli errori adattando una funzione in modo appropriato al set di addestramento dato
ed evitare il sovradattamento.