Elle normalise les activations d’une couche — moyenne nulle, variance unité — en utilisant les statistiques calculées sur le lot courant, puis les remet à l’échelle par deux paramètres appris, un facteur et un décalage. Ces deux paramètres sont importants : ils permettent au réseau d’annuler la normalisation si elle ne lui sert pas.
Sur l’explication du pourquoi, il faut être honnête, et c’est ce qui distingue une bonne réponse : l’article d’origine invoquait la réduction du internal covariate shift, c’est-à-dire la dérive des distributions d’activations pendant l’entraînement. Des travaux ultérieurs ont contesté cette explication et montré que l’effet principal est un lissage du paysage de la fonction de perte, qui rend les gradients plus prévisibles. Savoir que l’explication canonique est discutée vaut mieux que de la réciter.
À l’inférence, il n’y a pas de lot : on prédit souvent un seul exemple, et il n’existe pas de moyenne de lot à utiliser. La couche conserve donc pendant l’entraînement une moyenne mobile des statistiques, et s’en sert au moment de prédire.
Les conséquences pratiques, qui sont autant de pannes réelles :
model.eval() fait utiliser les statistiques du lot à l’inférence. Les prédictions dépendent alors des autres exemples présents dans le même lot, ce qui produit des résultats instables et incompréhensibles.C’est précisément cette dépendance au lot que les autres normalisations éliminent, en changeant l’axe sur lequel les statistiques sont calculées :
| Normalisation | Statistiques calculées sur | Usage |
|---|---|---|
| par lots | le lot, par canal | vision convolutive |
| de couche | les caractéristiques d’un exemple | transformeurs, séquences |
| d’instance | chaque canal d’un exemple | transfert de style |
| de groupe | des groupes de canaux | vision à petits lots |
La normalisation de couche est celle des transformeurs, et pour une raison directe : elle ne dépend que de l’exemple lui-même, donc elle fonctionne avec un lot de taille 1, avec des séquences de longueurs variables, et à l’inférence sans statistiques mémorisées. C’est ce qui la rend indispensable aux modèles de langage.