Glossario

Overfitting

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

L'overfitting è un concetto fondamentale dell'apprendimento automatico (ML) che si verifica quando un modello apprende i dettagli e il rumore dei dati di addestramento in misura tale da influire negativamente sulle prestazioni del modello su nuovi dati non visti. In sostanza, il modello memorizza il set di addestramento invece di apprendere i modelli sottostanti. Il risultato è un modello che raggiunge un'elevata accuratezza sui dati su cui è stato addestrato, ma che non riesce a generalizzarsi ai dati del mondo reale, rendendolo inaffidabile per le applicazioni pratiche. Ottenere una buona generalizzazione è un obiettivo primario nello sviluppo dell'IA.

Come identificare l'overfitting

L'overfitting viene generalmente identificato monitorando le prestazioni del modello sia sul set di dati di addestramento sia su un set di dati di convalida separato durante il processo di addestramento. Un segno comune di overfitting è quando il valore della funzione di perdita per l'insieme di addestramento continua a diminuire, mentre la perdita per l'insieme di validazione inizia ad aumentare. Allo stesso modo, se l'accuratezza dell'addestramento continua a migliorare ma l'accuratezza della validazione si stabilizza o peggiora nelle epoche successive, è probabile che il modello sia in overfitting. Strumenti come TensorBoard sono eccellenti per visualizzare queste metriche e diagnosticare tempestivamente questi problemi. Anche piattaforme come Ultralytics HUB possono aiutare a tracciare gli esperimenti e a valutare i modelli per individuare l'overfitting.

Overfitting vs. Underfitting

L'overfitting e l'underfitting sono due problemi comuni nell'apprendimento automatico che rappresentano la mancata generalizzazione di un modello. Si tratta di problemi essenzialmente opposti.

  • Overfitting: Il modello è troppo complesso per i dati (alta varianza). Cattura il rumore e le fluttuazioni casuali nei dati di addestramento, portando a prestazioni eccellenti durante l'addestramento ma a prestazioni scarse sui dati di prova.
  • Underfitting: Il modello è troppo semplice per catturare la struttura sottostante dei dati ( bias elevato). Le prestazioni sono scarse sia sui dati di addestramento che su quelli di test, perché non è in grado di apprendere i modelli rilevanti.

La sfida dell'apprendimento profondo consiste nel trovare il giusto equilibrio, un concetto spesso descritto dal tradeoff bias-varianza.

Esempi di overfitting nel mondo reale

  1. Rilevamento di oggetti di veicoli autonomi: Immaginate di addestrare un modello Ultralytics YOLO per un veicolo autonomo utilizzando un set di dati che contiene solo immagini diurne e soleggiate. Il modello potrebbe diventare altamente specializzato nel rilevamento di pedoni e auto in piena luce, ma fallire drasticamente di notte o in caso di pioggia o nebbia. Il modello si è adattato in modo eccessivo alle specifiche condizioni di illuminazione e meteorologiche dei dati di addestramento. L'utilizzo di insiemi di dati diversificati come Argoverse può aiutare a prevenire questo problema.
  2. Analisi di immagini mediche: Un modello CNN viene addestrato a rilevare tumori da scansioni MRI provenienti da un singolo ospedale. Il modello potrebbe inavvertitamente imparare ad associare specifici artefatti o schemi di rumore della particolare macchina di risonanza magnetica di quell'ospedale alla presenza di un tumore. Quando viene testato su scansioni provenienti da un altro ospedale e con una macchina diversa, le sue prestazioni potrebbero diminuire in modo significativo perché si è adattato in modo eccessivo al rumore del set di addestramento originale e non agli effettivi marcatori biologici dei tumori. Si tratta di un problema critico in campi come l'IA nel settore sanitario.

Come prevenire l'overfitting

Si possono utilizzare diverse tecniche per combattere l'overfitting e costruire modelli più robusti.

  • Ottenere più dati: Aumentare la dimensione e la diversità del set di dati di addestramento è uno dei modi più efficaci per evitare l'overfitting. Un maggior numero di dati aiuta il modello ad apprendere i veri modelli sottostanti piuttosto che il rumore. È possibile esplorare una serie di set di dati Ultralytics per migliorare i propri progetti.
  • Aumento dei dati: Si tratta di espandere artificialmente il set di dati di addestramento creando copie modificate dei dati esistenti. Vengono applicate tecniche come rotazioni casuali, scalature, ritagli e spostamenti di colore. Le tecniche di incremento dei dati di Ultralytics YOLO sono integrate per migliorare la robustezza del modello.
  • Semplificare l'architettura del modello: A volte, un modello è troppo complesso per il dato set di dati. L'utilizzo di un'architettura più semplice con un numero inferiore di parametri può evitare di memorizzare i dati. Ad esempio, la scelta di una variante del modello più piccola, come YOLOv8n rispetto a YOLOv8x, può essere vantaggiosa per i set di dati più piccoli.
  • Regolarizzazione: Questa tecnica aggiunge una penalità alla funzione di perdita in base alla complessità del modello, scoraggiando pesi del modello elevati. I metodi più comuni sono la regolarizzazione L1 e L2, di cui si può leggere di più qui.
  • Abbandono: Una forma specifica di regolarizzazione in cui una frazione casuale di neuroni viene ignorata durante ogni fase di addestramento. Questo costringe la rete ad apprendere rappresentazioni ridondanti e impedisce a un singolo neurone di diventare troppo influente. Il concetto di dropout è spiegato in dettaglio qui.
  • Arresto anticipato: Si tratta di monitorare le prestazioni del modello su un set di validazione e di interrompere il processo di addestramento non appena le prestazioni di validazione iniziano a diminuire, anche se le prestazioni di addestramento continuano a migliorare. Per maggiori dettagli è possibile consultare la spiegazione dell'arresto anticipato in Keras.
  • Validazione incrociata: Utilizzando tecniche come la convalida incrociata K-Fold, i dati vengono suddivisi in più pieghe e il modello viene addestrato e convalidato su sottoinsiemi diversi. In questo modo si ottiene una stima più robusta della capacità di generalizzazione del modello.
  • Modello di potatura: Si tratta di rimuovere da una rete addestrata parametri o connessioni che hanno un impatto minimo sulle sue prestazioni, riducendo così la complessità. Aziende come Neural Magic offrono strumenti specializzati nella potatura dei modelli per una distribuzione efficiente.

Unitevi alla comunità di Ultralytics

Entrate a far parte del futuro dell'IA. Connettetevi, collaborate e crescete con gli innovatori globali.

Iscriviti ora
Link copiato negli appunti