Home/ Wiki/ AI/ Overfitting e Underfitting

Overfitting e Underfitting

Il dilemma fondamentale del machine learning: come bilanciare la capacità del modello di apprendere dai dati senza memorizzarli, trovando il giusto compromesso bias-varianza.

Illustrazione sul machine learning e l'addestramento dei modelli
Indice dei contenuti
Aggiornato: Aprile 2026 9 min di lettura

Definizioni

Ogni modello di machine learning deve trovare un equilibrio tra due estremi opposti:

Punti chiave

  • Underfitting: modello troppo semplice, sbaglia anche sui dati già visti (alto bias).
  • Overfitting: modello troppo complesso, memorizza il rumore e non generalizza (alta varianza).
  • Il bias-variance tradeoff è la cornice teorica per capire e bilanciare i due fenomeni.
  • Le difese principali: regolarizzazione L1/L2, dropout, cross-validation, early stopping e data augmentation.
  • Il punto di partenza resta sempre la qualità e la quantità dei dati.
  • Underfitting: il modello è troppo semplice per catturare i pattern presenti nei dati. Sbaglia sia sui dati di training che su quelli nuovi. È come uno studente che non ha studiato abbastanza: non capisce nemmeno gli esercizi già visti.
  • Overfitting: il modello è troppo complesso e memorizza il rumore e le particolarità dei dati di training, perdendo la capacità di generalizzare su dati nuovi. È come uno studente che impara le risposte a memoria senza capire i concetti: perfetto sugli esercizi noti, fallimentare su quelli nuovi.
Come riconoscerli

Underfitting: training loss alta + validation loss alta.

Overfitting: training loss bassa + validation loss alta (gap crescente).

Fit corretto: training loss bassa + validation loss bassa (gap minimo).

Bias-variance tradeoff

Il bias-variance tradeoff è il framework teorico che spiega overfitting e underfitting. L'errore totale di un modello si scompone in tre componenti:

Errore totale = Bias^2 + Varianza + Rumore irriducibile

  • Bias: errore sistematico dovuto ad assunzioni semplificative del modello. Un modello lineare applicato a dati non lineari ha alto bias (underfitting).
  • Varianza: sensibilità del modello ai dati di training specifici. Un modello troppo complesso cambia drasticamente predizioni se cambia il training set (overfitting).
  • Rumore irriducibile: errore intrinseco nei dati, non eliminabile da nessun modello.

Aumentare la complessità del modello riduce il bias ma aumenta la varianza. L'obiettivo è trovare il punto di equilibrio che minimizza l'errore totale sui dati non visti.

In pratica, questo si traduce nella scelta della giusta complessità: il numero di layer e neuroni nelle reti neurali, la profondità in un decision tree, il grado di un polinomio nella regressione. Un sintomo classico di varianza eccessiva è un modello che ottiene un'accuratezza quasi perfetta in training ma crolla in produzione: è il segnale che ha imparato il dataset, non il problema.

Regolarizzazione L1 e L2

La regolarizzazione aggiunge un termine di penalità alla funzione di loss per scoraggiare pesi troppo grandi, limitando la complessità effettiva del modello:

TipoPenalitaEffettoUso tipico
L1 (Lasso)lambda * sum(|w|)Porta alcuni pesi esattamente a zero (feature selection)Quando si sospettano molte feature irrilevanti
L2 (Ridge)lambda * sum(w^2)Riduce tutti i pesi uniformemente (shrinkage)Caso generale, prevenzione overfitting
Elastic Netalpha*L1 + (1-alpha)*L2Combinazione dei due effettiQuando servono sia sparsità che stabilità

Il parametro lambda (o alpha in Scikit-learn) controlla l'intensità della regolarizzazione: troppo basso e la regolarizzazione non ha effetto; troppo alto e il modello diventa troppo semplice (underfitting). Si sceglie tipicamente tramite cross-validation, provando una griglia di valori su scala logaritmica (per esempio 0.001, 0.01, 0.1, 1) e scegliendo quello con la migliore validation loss media.

Dropout

Il dropout è la tecnica di regolarizzazione più usata nelle reti neurali. Durante l'addestramento, a ogni iterazione si "spengono" casualmente una percentuale di neuroni (tipicamente 20-50%), azzerando il loro output.

Questo costringe la rete a non dipendere da singoli neuroni e a sviluppare rappresentazioni più robuste e distribuite. È concettualmente simile al training di un ensemble di sotto-reti, con i benefici della varianza ridotta.

Dropout in pratica

Training: ogni neurone viene disattivato con probabilità p ad ogni forward pass.

Inference: tutti i neuroni sono attivi, ma i pesi vengono scalati per compensare (moltiplicati per 1-p).

Valori tipici: p = 0.2 per l'input layer, p = 0.5 per gli hidden layer.

Cross-validation

La cross-validation è la tecnica standard per stimare le prestazioni reali di un modello e per scegliere gli hyperparameters. La variante più comune è la k-fold cross-validation:

  1. Si divide il dataset in k parti (fold) di dimensione uguale (tipicamente k = 5 o 10).
  2. Si addestra il modello k volte, ogni volta usando k-1 fold come training set e 1 fold come validation set.
  3. Si calcola la media e la deviazione standard delle metriche sui k validation set.

Varianti importanti includono la stratified k-fold (mantiene le proporzioni delle classi in ogni fold, essenziale per dataset sbilanciati) e la leave-one-out (k = numero di campioni, costosa ma utile con dataset piccoli). Per i dati temporali esiste la time series split, che valida sempre su dati successivi a quelli di training per evitare di "guardare nel futuro".

La cross-validation fornisce una stima più affidabile di un singolo split train/validation, perché riduce la dipendenza dal particolare partizionamento dei dati. Le metriche da monitorare sono quelle discusse nell'articolo sulla matrice di confusione.

Early stopping

L'early stopping monitora la validation loss durante l'addestramento e interrompe il training quando la loss smette di diminuire (o inizia a crescere), segno che il modello sta iniziando a fare overfitting.

In pratica si definisce un parametro di patience: il numero di epoch consecutive in cui la validation loss può non migliorare prima di fermare il training. Si salva il modello con la migliore validation loss e si usa quello per l'inferenza. È una tecnica semplice ma estremamente efficace, specialmente nel fine-tuning dei LLM, dove pochissime epoch bastano a ottenere risultati ottimi e proseguire oltre rischia solo di degradare la generalizzazione.

Data augmentation

La data augmentation è una strategia per combattere l'overfitting aumentando artificialmente la quantità e la variabilità dei dati di training, senza raccogliere nuovi campioni.

Nella Computer Vision:

  • Rotazione, flip orizzontale/verticale, crop casuale
  • Variazioni di luminosita, contrasto, saturazione
  • Cutout (rimuovere porzioni casuali dell'immagine)
  • MixUp / CutMix (combinare due immagini)

Nel NLP:

  • Sinonimi e parafrasi
  • Back-translation (tradurre in un'altra lingua e ritradurre)
  • Random insertion, deletion, swap di parole
  • Generazione di dati sintetici con LLM

Non esiste una soluzione unica all'overfitting. Le migliori strategie combinano più tecniche: regolarizzazione, dropout, cross-validation, early stopping e data augmentation. Il punto di partenza, tuttavia, è sempre la qualità e la quantità dei dati. Per approfondire gli errori più comuni nella gestione dei dati, consulta Errori Comuni nell'AI.

Vuoi imparare ad applicarlo davvero?

Scopri i corsi e la formazione di Federico Boggia su AI, dati e digitale.

Vai ai corsi