Sobes.tech
Middle — Senior

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)