Skip to content

Dropout: A Simple Way to Prevent Neural Networks from Overfitting

TL;DR

Désactiver aléatoirement des neurones pendant l'entraînement (avec probabilité p) empêche le co-adaptation et réduit drastiquement l'overfitting, agissant comme un ensemble exponentiel de réseaux.

Contexte

Les réseaux profonds avec beaucoup de paramètres overfittent facilement sur de petits datasets ; les méthodes de régularisation traditionnelles (L2, early stopping) ont des limites.

Idées clés

Dropout simule l'entraînement d'un ensemble exponentiel de réseaux "thinned" partageant les poids ; empêche les neurones de trop dépendre les uns des autres, forçant des représentations robustes.

Méthode

Pendant l'entraînement : chaque neurone est gardé avec probabilité p (typiquement 0.5 pour hidden, 0.8 pour input) ; à l'inférence : multiplier les poids par p (approximation de l'ensemble).

Résultats

Réduction significative de l'erreur test sur MNIST, CIFAR-10, ImageNet, Street View House Numbers ; améliore speech recognition, document classification ; effet similaire à model averaging.

Limites

Augmente le temps d'entraînement (~2-3x) car convergence plus lente ; choix de p peut être délicat selon la tâche ; moins efficace avec batch normalization moderne.

Liens utiles

Notes perso