Explore how [batch normalization](https://www.ultralytics.com/glossary/batch-normalization) stabilizes training, prevents vanishing gradients, and boosts accuracy for models like [YOLO26](https://docs.ultralytics.com/models/yolo26/).
La normalisation par lots, souvent appelée BatchNorm, est une technique utilisée dans l' apprentissage profond (DL) pour stabiliser et accélérer l' entraînement des réseaux neuronaux artificiels. Introduite pour résoudre le problème du décalage interne des covariables, où la distribution des entrées vers une couche change continuellement à mesure que les paramètres des couches précédentes sont mis à jour, BatchNorm normalise les entrées vers une couche pour chaque mini-lot. En normalisant les entrées de la couche pour qu'elles aient une moyenne de zéro et un écart type de un, puis en les mettant à l'échelle et en les décalant à l'aide de paramètres apprenables, cette méthode permet aux réseaux d'utiliser des taux d'apprentissage plus élevés et réduit la sensibilité à l' initialisation.
Dans un réseau neuronal convolutif (CNN) standard, les données circulent à travers des couches où chaque couche effectue une transformation. Sans normalisation, l'échelle des valeurs de sortie peut varier considérablement, ce qui rend difficile pour l' algorithme d'optimisation de trouver les meilleurs poids. La normalisation par lots est généralement appliquée juste avant la fonction d'activation (comme ReLU ou SiLU).
Le processus comprend deux étapes principales pendant la formation :
Ce mécanisme agit comme une forme de régularisation, réduisant légèrement le besoin d'autres techniques telles que les couches de dropout en ajoutant une petite quantité de bruit aux activations pendant l'entraînement.
L'intégration de la normalisation par lots dans des architectures telles que ResNet ou les détecteurs d'objets modernes offre plusieurs avantages distincts :
La normalisation par lots est un élément incontournable de presque tous les systèmes modernes de vision par ordinateur (CV).
Il est utile de distinguer la normalisation par lots de la normalisation standard des données.
Les frameworks d'apprentissage profond tels que PyTorch comprennent des implémentations optimisées de la normalisation par lots. Dans lesYOLO Ultralytics , ces couches sont automatiquement intégrées aux blocs de convolution.
Le texte suivant Python L'extrait de code montre comment inspecter un modèle pour voir
où BatchNorm2d les couches sont situées au sein de l'architecture.
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Print the model structure to view layers
# You will see 'BatchNorm2d' listed after 'Conv2d' layers
print(model.model)
Comprendre comment ces couches interagissent aide les développeurs lorsqu'ils utilisent Ultralytics pour affiner les modèles sur des ensembles de données personnalisés, garantissant ainsi que l'entraînement reste stable même avec des données limitées.