La normalisation est souvent utilisée pour résoudre le problème de l'explosion ou de la disparition des gradients dans les réseaux de neurones. Il fonctionne en mappant les valeurs d'une caractéristique dans la plage [0,1] afin que toutes les valeurs soient dans la même échelle ou distribution. En termes simples, la normalisation normalise l'entrée dans un réseau neuronal et augmente la vitesse d'entraînement.
Il existe principalement deux types de techniques de normalisation, à savoir :
Normalisation par lots (Batch Normalization)
Afin d'obtenir la sortie de la couche cachée, nous utilisons généralement une fonction d'activation non linéaire pour traiter l'entrée. Et pour chaque neurone d’une couche spécifique, nous pouvons le préactiver afin qu’il ait une moyenne et un écart type unitaire nuls. Ceci peut être réalisé en effectuant une soustraction moyenne et une division de l'écart type sur un mini-lot d'entités d'entrée.
Cependant, forcer toutes les pré-activations à zéro et à l'écart type unitaire pour tous les lots peut être trop strict, donc l'introduction d'une certaine distribution de fluctuation peut mieux aider le réseau à apprendre.
Pour résoudre ce problème, la normalisation par lots introduit deux paramètres : le facteur d'échelle gamma (γ) et le décalage bêta (β), qui sont tous deux des paramètres apprenables.
Dans la normalisation par lots, nous devons faire attention à l'utilisation des statistiques par lots. Lorsque la taille du lot est petite, la moyenne de l'échantillon et l'écart type ne suffisent pas à représenter la distribution réelle, ce qui empêche le réseau d'apprendre quoi que ce soit de significatif. Par conséquent, nous devons nous assurer que la taille du lot est suffisamment grande pour obtenir des statistiques plus précises, améliorant ainsi les performances et l'apprentissage du modèle.
Normalisation de couche (normalisation de couche)
La normalisation de couche est une méthode proposée par les chercheurs Jimmy Lei Ba, Jamie Ryan Kiros et Geoffrey E. Hinton. L'idée principale de cette méthode est d'avoir la même distribution pour toutes les caractéristiques d'une entrée donnée sur tous les neurones d'une couche spécifique. Différente de la normalisation par lots, la normalisation par couches effectue une opération de normalisation sur la dimension caractéristique de chaque échantillon. Il normalise la sortie de cette couche en calculant la moyenne et la variance de chaque neurone sur les caractéristiques d'entrée. Cette méthode peut aider le modèle à s'adapter à de petits lots de données et à améliorer la capacité de généralisation du modèle. L'avantage de la normalisation des couches est qu'elle ne s'appuie pas sur des lots pour normaliser toutes les fonctionnalités, mais normalise chaque entrée sur une couche spécifique, éliminant ainsi la dépendance aux lots. Cela rend la normalisation des couches bien adaptée aux modèles de séquence tels que les populaires réseaux de neurones transformateurs et récurrents (RNN).
Principales différences entre la normalisation par lots et la normalisation par couches
2. Étant donné que la normalisation des lots dépend de la taille du lot, elle n'est pas efficace pour les petits lots. La normalisation des couches est indépendante de la taille du lot, elle peut donc également être appliquée à des lots de plus petite taille.
3. La normalisation par lots nécessite un traitement différent lors de la formation et de l'inférence. Étant donné que la normalisation des couches est effectuée sur la longueur d'entrée d'une couche spécifique, le même ensemble d'opérations peut être utilisé au moment de la formation et de l'inférence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!