Normalisation
Découvrez comment la normalisation améliore l'entraînement et la précision des modèles. Découvrez le redimensionnement Min-Max, la normalisation Z-score et son rôle dans les projets Ultralytics .
La normalisation est une technique fondamentale dans le
prétraitement des données qui consiste à recalibrer les
attributs numériques dans une plage standard. Dans le contexte de l'
apprentissage automatique (ML), les ensembles de données contiennent souvent des
caractéristiques à des échelles variables, telles que les tranches d'âge (0-100) par rapport aux niveaux de revenus (0-100 000). Si elles ne sont pas traitées, ces
disparités peuvent entraîner un biais de l'
algorithme d'optimisation
vers les valeurs les plus élevées, ce qui ralentit la convergence et nuit aux performances. En normalisant les données, les ingénieurs s'assurent que
chaque caractéristique contribue de manière proportionnelle au résultat final, ce qui permet aux
réseaux neuronaux d'apprendre plus efficacement.
Techniques de normalisation courantes
Il existe plusieurs méthodes standard pour transformer les données, chacune étant adaptée à différentes distributions et exigences algorithmiques
.
-
Mise à l'échelle min-max:
Il s'agit de la forme de normalisation la plus intuitive. Elle redimensionne les données à une plage fixe, généralement [0, 1]. Cette
transformation est effectuée en soustrayant la valeur minimale et en divisant par la plage (maximum moins minimum). Elle
est largement utilisée dans le
traitement d'images
où les intensités des pixels sont connues pour être comprises entre 0 et 255.
-
Normalisation Z-Score: bien qu'elle soit souvent
utilisée de manière interchangeable avec la normalisation, la standardisation transforme spécifiquement les données pour obtenir une moyenne de 0 et un
écart type de 1. Cela est particulièrement utile lorsque les données suivent une
distribution gaussienne et est essentiel pour les
algorithmes tels que les
machines à vecteurs de support (SVM) qui
supposent des données normalement distribuées.
-
Mise à l'échelle logarithmique:
Pour les données contenant des valeurs aberrantes extrêmes ou suivant une loi de puissance, l'application d'une transformation logarithmique peut compresser
la plage de valeurs. Cela rend la distribution plus facile à gérer pour le
moteur d'inférence, qui peut ainsi l'interpréter efficacement
sans être faussé par des pics de valeurs massifs.
Applications concrètes
La normalisation est une étape standard dans les pipelines des systèmes d'IA haute performance dans divers secteurs.
-
Vision par ordinateur (CV) : dans des tâches telles que la
détection d'objets et la
classification d'images, les images numériques sont
composées de valeurs de pixels comprises entre 0 et 255. L'introduction directe de ces grands nombres entiers dans un réseau peut ralentir la
descente de gradient. Une étape de prétraitement standard
consiste à diviser les valeurs de pixels par 255,0 afin de les normaliser dans la plage [0, 1]. Cette pratique garantit la cohérence des
entrées pour les modèles avancés tels que YOLO26, améliorant ainsi la stabilité de l'entraînement
sur la Ultralytics .
-
Analyse d'images médicales : les scans médicaux, tels que ceux utilisés dans l'
IA dans le domaine de la santé, proviennent souvent de
machines différentes avec des échelles d'intensité variables. La normalisation garantit que les intensités des pixels d'une IRM ou d'un scanner
sont comparables entre différents patients et équipements. Cette cohérence est essentielle pour une détection précise des
tumeurs,
permettant au modèle de se concentrer sur les anomalies structurelles plutôt que sur les variations de luminosité.
Distinguer les concepts apparentés
Il est important de différencier la normalisation des termes similaires de prétraitement et d'architecture que l'on trouve dans l'apprentissage profond
.
-
vs. Normalisation par lots:
La normalisation des données est une étape de prétraitement appliquée à l'ensemble de données brutes avant qu'il n'entre dans le réseau.
À l'inverse, la normalisation par lots opère en interne entre les couches tout au long du réseau pendant l'
entraînement du modèle. Elle normalise la sortie d'une
couche d'activation précédente afin de stabiliser le processus d'apprentissage.
-
vs. Augmentation d'image:
Alors que la normalisation modifie l'échelle des valeurs des pixels, l'augmentation modifie le contenu ou la
géométrie de l'image (par exemple, retournement, rotation ou changement de couleurs) afin d'accroître la diversité de l'ensemble de données. Des outils tels que
Albumentations sont utilisés pour l'augmentation,
tandis que la normalisation est une opération mathématique de mise à l'échelle.
Exemple de mise en œuvre
En vision par ordinateur, la normalisation est souvent la première étape du processus. Le code Python suivant
Python montre comment normaliser manuellement des données d'image à l'aide de NumPy , un processus qui se déroule automatiquement dans le
chargeur de données Ultralytics pendant l'entraînement.
import numpy as np
# Simulate a 2x2 pixel image with values ranging from 0 to 255
raw_image = np.array([[0, 255], [127, 64]], dtype=np.float32)
# Apply Min-Max normalization to scale values to [0, 1]
# This standardizes the input for the neural network
normalized_image = raw_image / 255.0
print(f"Original Range: {raw_image.min()} - {raw_image.max()}")
print(f"Normalized Range: {normalized_image.min()} - {normalized_image.max()}")