Régularisation
La régularisation en intelligence artificielle (IA) désigne un ensemble de techniques utilisées pour éviter le surapprentissage dans les modèles d'apprentissage...
La normalisation par lot améliore l’entraînement des réseaux de neurones en stabilisant les distributions d’entrée, en réduisant le décalage de covariantes et en accélérant la convergence en apprentissage profond.
La normalisation par lot est une technique transformatrice en apprentissage profond qui améliore considérablement le processus d’entraînement des réseaux de neurones. Introduite par Sergey Ioffe et Christian Szegedy en 2015, elle répond au problème du décalage de covariantes interne, qui fait référence aux changements dans la distribution des activations du réseau pendant l’entraînement. Cette entrée du glossaire explore en détail les subtilités de la normalisation par lot, en examinant ses mécanismes, ses applications et ses avantages dans les modèles modernes d’apprentissage profond.
La normalisation par lot est une méthode utilisée pour stabiliser et accélérer l’entraînement des réseaux de neurones artificiels. Elle normalise les entrées de chaque couche d’un réseau en ajustant et en mettant à l’échelle les activations. Ce processus consiste à calculer la moyenne et la variance de chaque caractéristique dans un mini-lot et à utiliser ces statistiques pour normaliser les activations. Ce faisant, la normalisation par lot garantit que les entrées de chaque couche maintiennent une distribution stable, ce qui est crucial pour un entraînement efficace.
Le décalage de covariantes interne est un phénomène où la distribution des entrées d’une couche de réseau de neurones change pendant l’entraînement. Ce décalage se produit parce que les paramètres des couches précédentes sont mis à jour, modifiant ainsi les activations qui atteignent les couches suivantes. La normalisation par lot atténue ce problème en normalisant les entrées de chaque couche, assurant une distribution d’entrée cohérente et facilitant ainsi un processus d’entraînement plus fluide et plus efficace.
Implémentée comme une couche au sein d’un réseau de neurones, la normalisation par lot effectue plusieurs opérations lors de la propagation avant :
Mathématiquement, pour une caractéristique $x_i$, cela s’exprime ainsi :
$$ \hat{x_i} = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} $$
$$ y_i = \gamma \hat{x_i} + \beta $$
La normalisation par lot est largement utilisée dans diverses tâches et architectures d’apprentissage profond, notamment :
Avec TensorFlow, la normalisation par lot peut être implémentée via la couche tf.keras.layers.BatchNormalization()
:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, input_shape=(784,)),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Activation('relu'),
tf.keras.layers.Dense(10),
tf.keras.layers.Activation('softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, batch_size=32)
Avec PyTorch, la normalisation par lot est implémentée via nn.BatchNorm1d
pour les couches entièrement connectées ou nn.BatchNorm2d
pour les couches convolutives :
import torch
import torch.nn as nn
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.fc1 = nn.Linear(784, 64)
self.bn = nn.BatchNorm1d(64)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(64, 10)
self.softmax = nn.Softmax(dim=1)
def forward(self, x):
x = self.fc1(x)
x = self.bn(x)
x = self.relu(x)
x = self.fc2(x)
x = self.softmax(x)
return x
model = Model()
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
La normalisation par lot est une technique inestimable pour les praticiens de l’apprentissage profond, répondant au décalage de covariantes interne et facilitant un entraînement plus rapide et plus stable des réseaux de neurones. Son intégration dans des frameworks populaires comme TensorFlow et PyTorch la rend accessible et largement adoptée, entraînant des améliorations significatives des performances dans une variété d’applications. À mesure que l’intelligence artificielle évolue, la normalisation par lot demeure un outil essentiel pour optimiser l’entraînement des réseaux de neurones.
La normalisation par lot est une technique qui stabilise et accélère l'entraînement des réseaux de neurones en normalisant les entrées de chaque couche, traitant ainsi le décalage de covariantes interne et permettant une convergence plus rapide et une meilleure stabilité.
La normalisation par lot accélère l'entraînement, améliore la stabilité, agit comme une forme de régularisation, réduit la sensibilité à l'initialisation des poids et ajoute de la flexibilité grâce à des paramètres apprenables.
La normalisation par lot est largement utilisée dans les tâches d'apprentissage profond telles que la classification d'images, le traitement du langage naturel et les modèles génératifs, et est implémentée dans des frameworks comme TensorFlow et PyTorch.
La normalisation par lot a été introduite par Sergey Ioffe et Christian Szegedy en 2015.
Commencez à créer des chatbots intelligents et des outils d'IA avec la plateforme intuitive de FlowHunt. Connectez les blocs et automatisez vos idées en toute simplicité.
La régularisation en intelligence artificielle (IA) désigne un ensemble de techniques utilisées pour éviter le surapprentissage dans les modèles d'apprentissage...
La réduction de la dimensionnalité est une technique essentielle en traitement de données et en apprentissage automatique, qui réduit le nombre de variables d'e...
La régression par forêt aléatoire est un puissant algorithme d'apprentissage automatique utilisé pour l'analytique prédictive. Il construit plusieurs arbres de ...