Home/ Wiki/ AI/ Overfitting e Underfitting

Overfitting e Underfitting

Un modello che ha imparato a memoria e uno che non ha imparato niente. Come si riconoscono, come si misura l'equilibrio, e le tecniche per tenerlo.

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

Definizioni

Ogni modello di machine learning sta in equilibrio fra due modi di sbagliare, e la parte difficile del mestiere è stare in mezzo:

Punti chiave

  • Underfitting: modello troppo semplice, sbaglia anche sui dati già visti. In gergo si dice che ha alto bias, cioè un errore sistematico che si porta dietro sempre.
  • Overfitting: modello troppo complesso, memorizza le irregolarità dei dati di training e non generalizza. In gergo si dice che ha alta varianza, cioè che cambia molto le sue previsioni se cambiano i dati su cui è stato addestrato.
  • 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.
  • Prima di ogni tecnica vengono la quantità e la qualità 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.

Per riconoscere quale dei due hai davanti servono due numeri. La loss è la misura di quanto il modello sbaglia: più è alta, più le sue previsioni sono lontane dai valori veri (come si calcola sta nella voce sulle reti neurali). Si guarda su due insiemi separati: la training loss sui dati con cui il modello si è addestrato, e la validation loss su dati che ha messo da parte e non ha mai visto. Il confronto fra le due dice tutto.

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 compromesso fra bias e varianza è la cornice teorica che spiega tutti e due i problemi. L'errore totale si scompone in tre pezzi:

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 si sceglie la complessità giusta: 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. In aula la domanda arriva sempre uguale: come me ne accorgo prima? Si guardano le due curve insieme, training e validation, e non l'accuratezza da sola.

Regolarizzazione L1 e L2

La regolarizzazione aggiunge una penalità alla funzione di costo per scoraggiare pesi troppo grandi, quindi limita quanto il modello può diventare contorto:

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.

Il risultato è che la rete non può appoggiarsi a pochi neuroni e deve distribuire quello che sa. È un po' come addestrare tante sotto-reti e poi metterle insieme: la varianza scende, e in pratica funziona meglio di quanto la spiegazione faccia sospettare.

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 validazione incrociata è il modo standard per stimare quanto un modello funzionerà su dati nuovi e per scegliere gli iperparametri. La versione più usata è la k-fold:

  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.

Ci sono poi altre varianti: la stratified k-fold (mantiene le proporzioni delle classi in ogni fold, ed è quella da usare con 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, e nel fine-tuning dei LLM bastano pochissime epoch: andare oltre peggiora 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

All'overfitting non si risponde con una tecnica sola: si mettono insieme regolarizzazione, dropout, validazione incrociata, early stopping, aumento dei dati. E la leva più forte resta la meno tecnologica, cioè avere più dati e migliori. Sugli errori tipici nella gestione dei dati c'è Errori comuni nell'AI.

Vuoi imparare ad applicarlo davvero?

Scopri le guide gratuite e la formazione di Federico Boggia su AI, dati e digitale.

Vai ai corsi
Federico BoggiaRispondo io, in giornata

Ciao! Dimmi che ti serve: un corso online, l’Accademia dei Sognatori o la formazione per la tua azienda.

Scrivimi su WhatsApp