Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
TL;DR¶
Normaliser les activations de chaque couche par mini-batch accélère significativement l'entraînement, permet d'utiliser des learning rates plus élevés, et régularise le modèle.
Contexte¶
L'internal covariate shift (changement de distribution des activations internes pendant l'entraînement) ralentit l'apprentissage et nécessite des learning rates faibles et une initialisation soigneuse.
Idées clés¶
Normaliser les inputs de chaque couche (moyenne 0, variance 1) par mini-batch stabilise la distribution des activations ; ajouter des paramètres apprenables γ et β préserve la capacité représentationnelle.
Méthode¶
Pour chaque activation : x̂ = (x - μ_B) / √(σ²_B + ε), puis y = γx̂ + β ; utiliser les statistiques du batch en entraînement, moyenne mobile en inférence.
Résultats¶
14x moins d'itérations pour atteindre la même accuracy sur ImageNet ; BN-Inception atteint l'accuracy d'Inception en 7x moins de steps et dépasse l'humain (4.9% top-5 error).
Limites¶
Dépendance à la taille du batch (instable avec petits batchs) ; comportement différent train/test peut poser problème ; coût computationnel additionnel à l'inférence.
Liens utiles¶
- PDF annoté: Batch Normalization - PDF annoté
- Article: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (PDF)
- ArXiv: https://arxiv.org/abs/1502.03167