Dropout

[dròpaut]

Tecnica di regolarizzazione che spegne casualmente alcuni neuroni durante il training. Evita che il modello faccia overfitting.

Il dropout è uno dei trucchi più semplici e più efficaci del deep learning. L'idea: durante il training, a ogni step, spegni casualmente una frazione di neuroni (di solito 10%-50%). Forzi il modello a non dipendere da nessun neurone in particolare.

Funziona perché il modello non può "fissarsi" su un cammino preciso: ogni step quel cammino potrebbe essere mutilato. Risultato: rappresentazioni più robuste, meno overfitting, migliore generalizzazione.

Importante: il dropout è attivo SOLO in training. In inferenza tutti i neuroni sono accesi e i pesi vengono scalati di conseguenza. Errore comune dei principianti: dimenticare di spegnere il dropout in valutazione.

Dove si usa nei modelli reali:

  • CNN classiche (ResNet, VGG): dropout 0.5 negli strati densi finali.
  • Transformer: dropout 0.1 sulle attention e sui feed-forward. Quasi tutti i modelli ce l'hanno.
  • Pretraining LLM grossi: spesso dropout zero, perché i dati sono talmente tanti che l'overfitting non è il problema.

Varianti:

  • Attention dropout: spegne alcuni pesi di attenzione.
  • Stochastic depth: spegne interi layer (usato in ResNet profonde).
  • DropPath: variante usata in Vision Transformer.

Inventato da Hinton e collaboratori nel 2014. Da allora è ovunque. Funziona, è semplice, costa zero. Caso raro di idea perfetta.