Problème du Gradient Disparu Causes, Conséquences et Solutions
Causes, consequences, and solutions of the vanishing gradient problem.
Cet article de blog vise à décrire le problème du gradient qui disparaît et à expliquer comment l’utilisation de la fonction sigmoïde en est la cause.
La fonction sigmoïde est l’une des fonctions d’activation les plus populaires utilisées pour développer des réseaux de neurones profonds. L’utilisation de la fonction sigmoïde a restreint la formation de réseaux de neurones profonds car elle a causé le problème du gradient qui disparaît. Cela a entraîné un apprentissage plus lent du réseau neuronal ou dans certains cas, aucun apprentissage du tout. Ce billet de blog vise à décrire le problème du gradient qui disparaît et à expliquer comment l’utilisation de la fonction sigmoïde en est la cause.
Fonction sigmoïde
Les fonctions sigmoïdes sont fréquemment utilisées dans les réseaux de neurones pour activer les neurones. C’est une fonction logarithmique avec une forme caractéristique en S. La valeur de sortie de la fonction est comprise entre 0 et 1. La fonction sigmoïde est utilisée pour activer les couches de sortie dans les problèmes de classification binaire. Elle est calculée comme suit :
- Classer et localiser les différentes formes de harcèlement sexuel.
- Recherche de similarité, Partie 2 Quantification de Produit
- Suppression et distillation architecturales une voie vers une compression efficace dans les modèles de diffusion texte-image d’IA
Sur le graphique ci-dessous, vous pouvez voir une comparaison entre la fonction sigmoïde elle-même et sa dérivée. Les premières dérivées des fonctions sigmoïdes sont des courbes en cloche avec des valeurs allant de 0 à 0,25 :
Notre connaissance de la façon dont les réseaux de neurones effectuent la propagation avant et arrière est essentielle pour comprendre le problème du gradient qui disparaît.
Propagation avant
La structure de base d’un réseau de neurones est une couche d’entrée, une ou plusieurs couches cachées et une seule couche de sortie. Les poids du réseau sont initialisés de manière aléatoire pendant la propagation avant. Les caractéristiques d’entrée sont multipliées par les poids correspondants à chaque nœud de la couche cachée, et un biais est ajouté à la somme nette à chaque nœud. Cette valeur est ensuite transformée en sortie du nœud à l’aide d’une fonction d’activation. Pour générer la sortie du réseau de neurones, la sortie de la couche cachée est multipliée par les poids plus les valeurs de biais, et le total est transformé à l’aide d’une autre fonction d’activation. Ce sera la valeur prédite du réseau neuronal pour une valeur d’entrée donnée.
Propagation arrière
Lorsque le réseau génère une sortie, la fonction de perte (C) indique à quel point il a bien prédit la sortie. Le réseau effectue une propagation arrière pour minimiser la perte. Une méthode de propagation arrière minimise la fonction de perte en ajustant les poids et les biais du réseau de neurones. Dans cette méthode, le gradient de la fonction de perte est calculé par rapport à chaque poids du réseau.
En propagation arrière, le nouveau poids(w new ) d’un nœud est calculé en utilisant l’ancien poids(w old ) et le produit du taux d’apprentissage(ƞ) et du gradient de la fonction de perte
Avec la règle de la chaîne des dérivées partielles, nous pouvons représenter le gradient de la fonction de perte comme un produit des gradients de toutes les fonctions d’activation des nœuds par rapport à leurs poids. Par conséquent, les poids mis à jour des nœuds dans le réseau dépendent des gradients des fonctions d’activation de chaque nœud.
Pour les nœuds avec des fonctions d’activation sigmoïdes, nous savons que la dérivée partielle de la fonction sigmoïde atteint une valeur maximale de 0,25. Lorsqu’il y a plus de couches dans le réseau, la valeur du produit de la dérivée diminue jusqu’à ce qu’à un certain point, la dérivée partielle de la fonction de perte approche une valeur proche de zéro, et la dérivée partielle disparaît. Nous appelons cela le problème du gradient qui disparaît.
Avec des réseaux peu profonds, la fonction sigmoïde peut être utilisée car la petite valeur de gradient ne pose pas de problème. En ce qui concerne les réseaux profonds, le gradient qui disparaît peut avoir un impact significatif sur les performances. Les poids du réseau restent inchangés lorsque la dérivée disparaît. Pendant la propagation arrière, un réseau de neurones apprend en mettant à jour ses poids et ses biais pour réduire la fonction de perte. Dans un réseau avec un gradient qui disparaît, les poids ne peuvent pas être mis à jour, de sorte que le réseau ne peut pas apprendre. Les performances du réseau diminueront en conséquence.
Méthode pour surmonter le problème
Le problème du gradient qui disparaît est causé par la dérivée de la fonction d’activation utilisée pour créer le réseau de neurones. La solution la plus simple au problème est de remplacer la fonction d’activation du réseau. Au lieu de la sigmoïde, utilisez une fonction d’activation telle que ReLU.
Les unités rectifiées linéaires (ReLU) sont des fonctions d’activation qui génèrent une sortie linéaire positive lorsque des valeurs d’entrée positives leur sont appliquées. Si l’entrée est négative, la fonction renverra zéro.
La dérivée d’une fonction ReLU est définie comme étant égale à 1 pour les entrées supérieures à zéro et 0 pour les entrées négatives. Le graphique ci-dessous indique la dérivée d’une fonction ReLU.
Si la fonction ReLU est utilisée pour l’activation dans un réseau neuronal à la place d’une fonction sigmoïde, la valeur de la dérivée partielle de la fonction de perte aura des valeurs de 0 ou 1, ce qui empêche le gradient de disparaître. L’utilisation de la fonction ReLU empêche ainsi le gradient de disparaître. Le problème avec l’utilisation de ReLU est lorsque le gradient a une valeur de 0. Dans de tels cas, le nœud est considéré comme un nœud mort car les valeurs anciennes et nouvelles des poids restent les mêmes. Cette situation peut être évitée en utilisant une fonction ReLU qui fuit et empêche le gradient de tomber à la valeur zéro.
Une autre technique pour éviter le problème de gradient qui disparaît est l’initialisation des poids. Il s’agit du processus d’assignation de valeurs initiales aux poids dans le réseau neuronal afin que, lors de la rétropropagation, les poids ne disparaissent jamais.
En conclusion, le problème de gradient qui disparaît résulte de la nature de la dérivée partielle de la fonction d’activation utilisée pour créer le réseau neuronal. Le problème peut être pire dans les réseaux neuronaux profonds utilisant une fonction d’activation sigmoïde. Il peut être considérablement réduit en utilisant des fonctions d’activation telles que ReLU et ReLU fuit.
Tina Jacob est passionnée de science des données et croit que la vie consiste à apprendre et à grandir quoi qu’il arrive.
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Google AI dévoile Imagen Editor et EditBench pour améliorer et évaluer l’Inpainting d’image guidée par le texte.
- Forged in Flames Une start-up fusionne l’IA générative et la vision par ordinateur pour lutter contre les incendies de forêt.
- AI Voit Ce Que Vous Voyez Mind’s Eye est un Modèle d’IA Qui Peut Reconstruire des Scans Cérébraux en Images
- Il était une fois… une histoire de RAPIDS Aller et Retour
- Écrire des chansons avec GPT-4 Partie 3, Mélodies
- Formation intensive gratuite Full Stack LLM
- Performance surhumaine sur la référence Atari 100K La puissance de BBF – Un nouvel agent RL basé sur la valeur de Google DeepMind, Mila et l’Université de Montréal.