La rétropropagation est l'algorithme d'entraînement le plus courant pour les réseaux de neurones. Elle rend la descente de gradient possible pour les réseaux de neurones multicouches. De nombreuses bibliothèques de code de machine learning (comme Keras) gèrent automatiquement la rétropropagation. Vous n'avez donc pas besoin d'effectuer vous-même les calculs sous-jacents. Regardez la vidéo suivante pour obtenir une présentation conceptuelle du fonctionnement de la rétropropagation :
Bonnes pratiques pour l'entraînement des réseaux de neurones
Cette section explique les cas d'échec de la rétropropagation et la méthode la plus courante pour régulariser un réseau de neurones.
Disparition des gradients
Les gradients des couches inférieures du réseau de neurones (celles qui sont les plus proches de la couche d'entrée) peuvent devenir très petits. Dans les réseaux profonds (réseaux comportant plusieurs couches cachées), le calcul de ces gradients peut impliquer le produit de nombreux petits termes.
Lorsque les valeurs de gradient approchent de 0 pour les couches inférieures, on dit que les gradients "s'annulent". Les calques avec des gradients qui s'annulent s'entraînent très lentement, voire pas du tout.
La fonction d'activation ReLU peut aider à éviter les gradients qui s'annulent.
Explosion des gradients
Si les pondérations d'un réseau sont très élevées, les gradients des couches inférieures impliquent des produits de nombreux termes importants. Dans ce cas, vous pouvez avoir des gradients explosifs, c'est-à-dire des gradients qui deviennent trop grands pour converger.
La normalisation par lot peut aider à éviter l'explosion des gradients, tout comme la réduction du taux d'apprentissage.
Unités ReLU mortes
Une fois que la somme pondérée d'une unité ReLU est inférieure à 0, l'unité ReLU peut se bloquer. Elle génère 0, ne contribuant en rien à la sortie du réseau, et les gradients ne peuvent plus la traverser lors de la rétropropagation. Si une source de gradients est coupée, l'entrée de ReLU ne changera peut-être jamais assez pour ramener la somme pondérée au-dessus de 0.
La diminution du taux d'apprentissage peut aider à éviter la mort des unités ReLU.
Régularisation par abandon
Une autre forme de régularisation, appelée régularisation par abandon, est utile pour les réseaux de neurones. Elle consiste à "abandonner" de manière aléatoire les activations d'unités dans un réseau pour un pas de gradient unique. Plus il y a d'abandons, plus la régularisation est poussée :
- 0,0 = pas de régularisation par abandon
- 1,0 = abandon de tous les nœuds. (le modèle n'apprend rien).
- Les valeurs comprises entre 0.0 et 1.0 sont plus efficaces.