Overfitting
Esplora le cause e i sintomi dell'overfitting nel machine learning. Scopri come prevenire l'elevata varianza e migliorare la generalizzazione usando Ultralytics YOLO26.
Il sovradattamento si verifica nel machine learning quando un modello apprende i dati di addestramento fin troppo bene, catturando il rumore e le fluttuazioni casuali invece della distribuzione sottostante dei dati. Anziché apprendere schemi generali applicabili a dati nuovi e mai osservati, un modello sovradattato finisce per memorizzare gli esempi specifici presenti nel set di addestramento. Questo si traduce in prestazioni eccellenti sui dati di addestramento, ma in una scarsa capacità di generalizzazione agli scenari del mondo reale. Viene spesso descritto come "alta varianza", ossia il fatto che le previsioni del modello variano significativamente a seconda del set di dati specifico utilizzato per l'addestramento.
Perché si verifica il sovradattamento#
La causa principale del sovradattamento è un'eccessiva complessità del modello rispetto alla quantità di dati disponibili. Se una rete neurale è troppo grande, ovvero ha troppi strati o parametri, può memorizzare facilmente gli esempi di addestramento. Tra gli altri fattori che contribuiscono vi sono:
- 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 tendono ad apprendere questi schemi casuali.
- Rumore nei dati e valori anomali: livelli elevati di rumore o valori anomali non rappresentativi nei dati di addestramento possono fuorviare il modello, inducendolo a modificare i propri parametri interni per adattarsi alle anomalie anziché al segnale reale.
- Durata prolungata dell'addestramento: addestrare il modello per un numero eccessivo di epoche gli consente di continuare a perfezionare i propri pesi fino ad adattarsi al rumore presente nel set di addestramento. Questo viene spesso monitorato utilizzando i dati di validazione.
Sovradattamento e sottodattamento#
È importante distinguere il sovradattamento dal sottodattamento. Mentre il sovradattamento consiste nell'apprendere una quantità eccessiva di dettagli, incluso il rumore, il sottodattamento si verifica quando un modello è troppo semplice per catturare anche solo la struttura sottostante dei dati. Un modello sottodattato offre prestazioni scarse sia sui dati di addestramento sia sui dati nuovi, con conseguente elevato bias. Il bilanciamento tra questi due estremi è noto come compromesso bias-varianza.
Prevenzione del sovradattamento#
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 strati di dropout introducono penalizzazioni o casualità durante l'addestramento, impedendo al modello di dipendere eccessivamente da caratteristiche specifiche.
- Arresto anticipato: il monitoraggio della funzione di perdita su un set di validazione consente di interrompere l'addestramento quando le prestazioni sui dati mai osservati smettono di migliorare, anche se la precisione sull'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 identiche.
- Convalida incrociata: l'utilizzo di tecniche come la convalida incrociata k-fold garantisce che il modello venga testato su diversi sottoinsiemi di dati, fornendo una stima più affidabile delle sue prestazioni.
Esempi nel mondo reale#
Il sovradattamento può avere gravi conseguenze quando si implementa l'AI in ambienti di produzione:
- Diagnosi medica: nell'AI nel settore sanitario, un modello addestrato per rilevare il cancro della pelle potrebbe sovradattarsi alle condizioni di illuminazione o alle tacche del righello presenti nelle immagini di addestramento. Quando viene implementato in una clinica con illuminazione o apparecchiature diverse, il modello potrebbe non identificare correttamente le lesioni maligne perché si è basato su indizi irrilevanti dello sfondo.
- Previsioni finanziarie: un modello di previsione dei prezzi azionari potrebbe sovradattarsi alle tendenze storiche del mercato, determinate da un evento specifico e non ripetibile, come una crisi economica verificatasi una sola volta. Un modello di questo tipo probabilmente non riuscirebbe a prevedere con accuratezza i futuri movimenti azionari perché avrebbe memorizzato le anomalie passate anziché apprendere le dinamiche fondamentali del mercato.
Esempio di codice: arresto anticipato con Ultralytics YOLO26#
Utilizzando la Ultralytics Platform o gli script di addestramento locali, puoi prevenire il sovradattamento impostando un parametro di pazienza per l'arresto anticipato. In questo modo l'addestramento si interrompe se la fitness di validazione non migliora per un numero prestabilito 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 fornire buone prestazioni su dati nuovi e mai osservati in precedenza, l'opposto del sovradattamento.
- Convalida incrociata: una tecnica per valutare in che modo i risultati di un'analisi statistica si generalizzeranno a un set di dati indipendente.
- Regolarizzazione: metodi utilizzati per ridurre gli errori adattando correttamente una funzione al set di addestramento fornito ed evitando il sovradattamento.









