Glossario

Overfitting

Impara a identificare, prevenire e risolvere l'overfitting nell'apprendimento automatico. Scopri le tecniche per migliorare la generalizzazione dei modelli e le prestazioni nel mondo reale.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

L'overfitting nell'apprendimento automatico (ML) si verifica quando un modello apprende troppo bene i dati di addestramento, catturando il rumore e le fluttuazioni casuali invece del modello sottostante. Questo porta a prestazioni eccellenti sul set di dati di addestramento ma a una scarsa generalizzazione a nuovi dati non visti. In sostanza, il modello diventa troppo complesso e adattato specificamente agli esempi di addestramento, simile a memorizzare le risposte piuttosto che a comprendere i concetti. Si tratta di una sfida comune quando si addestrano modelli di intelligenza artificiale, soprattutto con algoritmi complessi come le reti neurali utilizzate in Ultralytics YOLO per compiti come il rilevamento di oggetti e la segmentazione di immagini.

Capire l'overfitting

L'overfitting si verifica perché i modelli ML mirano a minimizzare gli errori sui dati di formazione. Se un modello possiede una complessità eccessiva (ad esempio, troppi parametri o strati in un modello di deep learning ), può adattarsi anche al rumore casuale presente nel set di allenamento. Questo rumore non rappresenta i veri modelli sottostanti ed è improbabile che sia presente nei nuovi set di dati. Immagina di adattare perfettamente un abito alle misure esatte di una persona in un giorno specifico: potrebbe non calzare bene se il suo peso fluttua leggermente o se qualcun altro lo prova. Nel ML, questo "adattamento perfetto" ai dati di addestramento si traduce in inflessibilità e scarse prestazioni sui dati del mondo reale, spesso definite come scarsa generalizzazione.

Il problema opposto è l'underfitting, quando un modello è troppo semplice per catturare la struttura sottostante dei dati. Un modello underfit si comporta male sia con la formazione che con i nuovi dati perché non ha imparato abbastanza. L'obiettivo è trovare un equilibrio ottimale, spesso discusso nel contesto del compromesso bias-varianza, creando un modello che si generalizza bene ai dati non visti. Un'alta varianza è caratteristica dell'overfitting, mentre un'alta polarizzazione è caratteristica dell'underfitting. La comprensione di questo concetto di compromesso è fondamentale per lo sviluppo dei modelli.

Esempi di overfitting nel mondo reale

  • Analisi di immagini mediche: Considera un modello addestrato per l'analisi di immagini mediche, come l'individuazione di tumori nelle scansioni MRI. Se i dati di addestramento provengono principalmente da un singolo modello di scanner MRI, l'IA potrebbe adattarsi eccessivamente alle caratteristiche specifiche dell'immagine (come i modelli di rumore o la risoluzione) di quella macchina. Quando le vengono presentate scansioni provenienti da un altro scanner o immagini di qualità inferiore, le sue prestazioni potrebbero peggiorare significativamente perché ha appreso gli artefatti specifici della macchina piuttosto che le caratteristiche generali del tumore. La distorsione del set di dati può esacerbare questo problema.
  • Veicoli autonomi: Un modello di rilevamento degli oggetti utilizzato in un veicolo autonomo potrebbe essere addestrato in modo intensivo su immagini catturate in condizioni di tempo sereno e soleggiato. Questo modello potrebbe raggiungere un'elevata precisione su dati di prova simili, ma non riuscire a rilevare in modo affidabile pedoni, ciclisti o altri veicoli in condizioni avverse come pioggia battente, nebbia o di notte. Il modello si è adattato in modo eccessivo agli spunti visivi specifici dell'ambiente di addestramento (ad esempio, ombre dure, illuminazione intensa) invece di apprendere le caratteristiche generali e robuste degli oggetti in diverse condizioni. Garantire dati di addestramento diversificati, potenzialmente utilizzando set di dati come COCO o Argoverse, aiuta a mitigare questo problema.

Identificare l'overfitting

L'overfitting viene tipicamente identificato confrontando le prestazioni di un modello sul dataset di addestramento rispetto a un dataset di validazione separato.

  • Metriche delle prestazioni: Monitora metriche come l'accuratezza, la precisione, il richiamo e il punteggio F1. Se le metriche di addestramento continuano a migliorare mentre quelle di validazione si stabilizzano o peggiorano, è probabile che il modello sia in overfitting. Il valore della funzione di perdita in genere diminuisce in modo significativo sul set di addestramento ma aumenta o ristagna sul set di validazione. Puoi esplorare diverse metriche di performanceYOLO per la valutazione.
  • Curve di apprendimento: Tracciare le prestazioni del modello (ad esempio, la perdita o l'accuratezza) nel corso delle epoche per i set di addestramento e di convalida fornisce un'idea visiva. Un divario crescente tra la curva di addestramento (che migliora) e la curva di validazione (che ristagna o peggiora) è un classico segno di overfitting. La visualizzazione delle curve di apprendimento aiuta a diagnosticarlo.

Prevenire l'overfitting

Diverse tecniche possono aiutare a mitigare l'overfitting e a migliorare la generalizzazione del modello:

  • Validazione incrociata: Tecniche come la convalida incrociata K-Fold utilizzano sottoinsiemi diversi di dati per l'addestramento e la convalida, fornendo una stima più robusta delle prestazioni del modello su dati non visti.
  • Aumento dei dati: Aumenta artificialmente le dimensioni e la diversità del set di dati di addestramento applicando trasformazioni come la rotazione, il ridimensionamento, il ritaglio e il cambio di colore. Le tecniche di aumento dei dati diUltralytics YOLO sono integrate per migliorare la robustezza.
  • Regolarizzazione: Aggiunta di penalità alla funzione di perdita in base alla complessità del modello (ad esempio, l'entità dei pesi). I metodi più comuni includono la regolarizzazione L1 e L2, che scoraggiano pesi elevati. Per saperne di più sui metodi di regolarizzazione L1 e L2.
  • Arresto anticipato: Controlla le prestazioni del modello sul dataset di convalida durante l'addestramento e interrompe il processo di addestramento quando le prestazioni della convalida iniziano a peggiorare, evitando che il modello apprenda rumore nelle epoche successive. Vedi la spiegazione dell'arresto anticipato in Keras.
  • Dropout: Azzeramento casuale di una frazione di attivazioni dei neuroni durante l'addestramento. Questo costringe la rete ad apprendere caratteristiche più robuste che non dipendono da un singolo neurone. Il concetto di abbandono è spiegato in dettaglio qui.
  • Model Pruning: Rimuovere i parametri o le connessioni meno importanti all'interno di una rete neurale addestrata per ridurne la complessità senza incidere significativamente sulle prestazioni. Neural Magic offre strumenti per il pruning.
  • Semplificare l'architettura del modello: L'utilizzo di un modello meno complesso (ad esempio, meno strati o parametri) può evitare l'overfitting, soprattutto se il set di dati è piccolo. Ciò potrebbe comportare la scelta di una variante del modello più piccola, come il confronto tra YOLOv8n e YOLOv8x.
  • Ottieni più dati: Aumentare la quantità di dati di formazione di alta qualità è spesso uno dei modi più efficaci per migliorare la generalizzazione e ridurre l'overfitting. Esplora i vari dataset diUltralytics .

Comprendendo e affrontando l'overfitting, gli sviluppatori possono costruire modelli di intelligenza artificiale più affidabili ed efficaci. Strumenti come Ultralytics HUB possono aiutare a tracciare gli esperimenti e a valutare i modelli, favorendo l'individuazione e la riduzione dell'overfitting durante il ciclo di vita del modello.

Leggi tutto