📖

Cos'è Overfitting?

L'overfitting si verifica quando un modello di machine learning memorizza i dati di addestramento invece di apprendere schemi generalizzabili, compromettendo le prestazioni su nuovi dati.

L'overfitting è un problema comune nel machine learning, in cui un modello cattura il rumore casuale e i dettagli idiosyncratici dei dati di addestramento anziché le vere relazioni sottostanti. Di conseguenza, il modello sembra funzionare in modo estremamente efficace sui dati su cui è stato addestrato, ma fornisce previsioni scarse quando viene applicato a nuovi esempi. È il classico compromesso tra memorizzazione e apprendimento genuino.

Come funziona l'overfitting

Durante l'addestramento, un modello regola i propri parametri interni per minimizzare l'errore su un insieme di esempi. Se il modello ha troppi parametri rispetto alla dimensione o alla diversità del set di addestramento, oppure se viene addestrato troppo a lungo, inizia a trattare le fluttuazioni casuali nei dati come se fossero segnali significativi. Immagina di adattare una curva morbida a un grafico a dispersione: un polinomio di grado basso cattura l'andamento generale, mentre un polinomio di grado elevato può oscillare passando per ogni singolo punto, inclusi i valori anomali. Quella curva oscillante è in overfitting. Ha essenzialmente memorizzato i dati invece di apprendere l'andamento, quindi qualsiasi nuovo punto che cada fuori dall'oscillazione verrà previsto in modo errato.

Da un punto di vista della teoria dell'informazione, il modello utilizza più "capacità" di quanta i dati possano giustificare, adattando segnale più rumore anziché solo il segnale. Il divario tra l'errore di addestramento e l'errore di validazione è il sintomo più evidente: l'errore di addestramento continua a diminuire mentre l'errore di validazione si stabilizza o aumenta.

Perché è importante

L'overfitting è una delle ragioni più frequenti per cui i progetti di machine learning non riescono a generare valore in produzione. Un modello che ottiene il 99% di accuratezza su un benchmark può essere inutile su dati reali se ha fatto overfitting su quel benchmark. Rilevare e controllare l'overfitting è quindi una preoccupazione centrale nello sviluppo dei modelli, che riguarda ogni fase, dalla raccolta dei dati al deployment.

È particolarmente importante nei domini in cui la generalizzazione è critica: diagnosi medica, rilevamento delle frodi, guida autonoma e qualsiasi sistema che debba gestire input mai visti prima. Comprendere l'overfitting spiega anche perché più dati, modelli più semplici o una regolarizzazione più forte spesso battono l'idea di lanciare una rete neurale più grande su un problema.

Segnali chiave e soluzioni comuni

  • Divario tra addestramento e validazione: l'accuratezza è elevata sui dati di addestramento ma nettamente inferiore su un set di validazione tenuto da parte.
  • Cross-validation: utilizzare la k-fold cross-validation per verificare che il modello generalizzi su diverse porzioni di dati.
  • Regolarizzazione: tecniche come L1, L2 (weight decay) o dropout penalizzano la complessità del modello e scoraggiano la memorizzazione.
  • Più dati: ampliare il set di addestramento fornisce al modello più segnale da cui apprendere e meno incentivi a memorizzare.
  • Data augmentation: ampliare artificialmente i dati di addestramento con variazioni realistiche (rotazioni, parafrasi, rumore) migliora la robustezza.
  • Early stopping: interrompere l'addestramento quando l'errore di validazione inizia a salire impedisce al modello di adattarsi al rumore.
  • Modelli più semplici: scegliere un modello con meno parametri rispetto ai dati riduce la capacità di andare in overfitting.

L'overfitting non è un bug occasionale da correggere, ma una tensione continua che ogni professionista deve gestire. L'obiettivo non è un modello perfetto sui dati di addestramento, ma un modello che fornisca previsioni affidabili sui dati che non ha ancora incontrato.

Domande frequenti

What is the difference between overfitting and underfitting?
Overfitting occurs when a model is too complex and memorizes training data, performing well on it but poorly on new data. Underfitting is the opposite: the model is too simple to capture the underlying pattern, so it performs badly on both training and new data. The goal is a balanced model that generalizes well.
How can you tell if a model is overfitting?
The most reliable sign is a growing gap between training and validation performance. If training error keeps falling while validation error plateaus or rises, the model is likely overfitting. Plotting learning curves for both sets makes this trend easy to spot.
Does more data prevent overfitting?
More high-quality, representative data usually helps reduce overfitting because it gives the model more genuine signal to learn from and less incentive to memorize individual examples. However, simply adding noisy or duplicated data does not help and may even worsen the problem.
Can neural networks overfit even with huge datasets?
Yes. Modern neural networks are large enough to memorize even very big datasets, especially if the labels are noisy or many inputs are near-duplicates. That is why techniques like dropout, weight decay, data augmentation, and early stopping remain standard practice, and why benchmark scores do not always reflect real-world performance.