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.