Cos'è overfitting?

Overfitting (Sovradattamento)

L'overfitting, o sovradattamento, è un problema che si verifica nell'apprendimento automatico quando un modello si adatta troppo bene ai dati di addestramento. In altre parole, il modello impara i dettagli e il rumore nei dati di addestramento al punto da influenzare negativamente le sue prestazioni su nuovi dati (dati di test o dati reali). Questo accade perché il modello "memorizza" i dati di addestramento invece di imparare le relazioni sottostanti e generalizzabili.

Caratteristiche dell'Overfitting:

  • Alta accuracy sui dati di addestramento: Il modello performa molto bene sui dati che ha visto durante l'addestramento.
  • Bassa accuracy sui dati di test: Il modello performa significativamente peggio su dati nuovi, mai visti prima.
  • Modello complesso: Spesso, i modelli affetti da overfitting sono eccessivamente complessi, con molti parametri o gradi di libertà.

Cause dell'Overfitting:

  • Dati di addestramento limitati: Se il set di dati di addestramento è troppo piccolo o non rappresentativo della popolazione reale, il modello potrebbe imparare delle correlazioni spurie presenti solo in quel set specifico. Vedi <a href="https://it.wikiwhat.page/kavramlar/Dati%20di%20Addestramento%20Limitati" target="_blank">Dati di Addestramento Limitati</a>.
  • Modello troppo complesso: L'utilizzo di un modello con troppi parametri rispetto alla quantità di dati di addestramento disponibili può portare all'overfitting. Modelli come le <a href="https://it.wikiwhat.page/kavramlar/Reti%20Neurali" target="_blank">Reti Neurali</a> profonde, se non adeguatamente regolarizzate, sono particolarmente suscettibili.
  • Rumore nei dati: Dati di addestramento rumorosi (dati con errori o informazioni irrilevanti) possono portare il modello a imparare modelli spuri legati al rumore stesso.

Come prevenire l'Overfitting:

  • Aumentare la quantità di dati di addestramento: Raccogliere più dati può aiutare il modello a generalizzare meglio. Vedi <a href="https://it.wikiwhat.page/kavramlar/Aumento%20dei%20Dati" target="_blank">Aumento dei Dati</a> (Data Augmentation).
  • Semplificare il modello: Ridurre la complessità del modello, ad esempio diminuendo il numero di parametri in una rete neurale o scegliendo un modello più semplice (come una regressione lineare invece di un albero decisionale profondo).
  • Regolarizzazione: Applicare tecniche di regolarizzazione, come la regolarizzazione L1 e L2, per penalizzare i modelli con parametri di grandi dimensioni. Vedi <a href="https://it.wikiwhat.page/kavramlar/Regolarizzazione" target="_blank">Regolarizzazione</a>.
  • Cross-validation: Utilizzare la cross-validation per valutare le prestazioni del modello su diversi sottoinsiemi dei dati e ottenere una stima più accurata della sua capacità di generalizzazione. Vedi <a href="https://it.wikiwhat.page/kavramlar/Cross-Validation" target="_blank">Cross-Validation</a>.
  • Early stopping: Monitorare le prestazioni del modello su un set di validazione durante l'addestramento e interrompere l'addestramento quando le prestazioni sul set di validazione iniziano a peggiorare.
  • Dropout: Tecnica specifica per le reti neurali che consiste nel disattivare casualmente alcuni neuroni durante l'addestramento, forzando la rete a imparare caratteristiche più robuste e meno dipendenti da singoli neuroni.

Rilevamento dell'Overfitting:

Il modo più comune per rilevare l'overfitting è confrontare le prestazioni del modello sui dati di addestramento e sui dati di test (o validazione). Una differenza significativa tra le due metriche (alta accuracy sui dati di addestramento, bassa accuracy sui dati di test) indica un probabile overfitting. Grafici che mostrano l'accuratezza e la perdita (loss) nel tempo per entrambi i set di dati possono essere utili per visualizzare quando l'overfitting inizia a manifestarsi.