Quels types de normalisation existent (Batch, Layer, Instance, Group, RMSNorm) ?
sobes.tech IA
Réponse de l'IA
La normalisation dans les réseaux neuronaux aide à stabiliser et accélérer l'apprentissage, en réduisant le décalage interne de la distribution des activations. Les principaux types de normalisation :
-
Normalisation par lot (Batch Normalization, BatchNorm) — normalisation par lot. Calcule la moyenne et la variance pour chaque caractéristique sur un mini-lot, puis met à l'échelle et déplace les valeurs. Efficace, mais dépend de la taille du lot.
-
Normalisation par couche (Layer Normalization, LayerNorm) — normalisation par couche. Calcule les statistiques pour tous les neurones d'une couche pour chaque exemple individuel, indépendamment de la taille du lot. Souvent utilisée dans les RNN et les transformateurs.
-
Normalisation par instance (Instance Normalization, InstanceNorm) — normalisation par exemple et canal, souvent utilisée dans le traitement d'images, par exemple dans le transfert de style.
-
Normalisation par groupe (Group Normalization, GroupNorm) — divise les canaux en groupes et normalise à l'intérieur de chaque groupe. Fonctionne de manière stable avec de petites tailles de lot.
-
RMSNorm (Root Mean Square Normalization) — normalisation par la racine carrée de la moyenne des carrés des valeurs, sans soustraction de la moyenne. Alternative simplifiée à LayerNorm, donne parfois de meilleurs résultats dans les transformateurs.
Exemple de BatchNorm en PyTorch :
import torch
import torch.nn as nn
batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10) # lot de 32 exemples
output = batch_norm(x)