La rétropropagation est l'algorithme d'entraînement le plus courant pour les réseaux de neurones. Elle rend possible la descente de gradient pour les réseaux de neurones multicouches. De nombreuses bibliothèques de code de machine learning (telles que 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 un aperçu des concepts liés au fonctionnement de la rétropropagation:
Bonnes pratiques pour l'entraînement de 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.
Dégradés qui disparaissent
Les gradients des couches de réseau neuronal inférieures (celles qui sont plus proches de la couche d'entrée) peuvent devenir très petits. Dans les réseaux profonds (réseaux avec plusieurs couches cachées), le calcul de ces gradients peut impliquer de prendre le produit de nombreux petits termes.
Lorsque les valeurs du gradient s'approchent de 0 pour les couches inférieures, les gradients indiquent "disparition". Les couches avec des gradients qui disparaissent s'entraînent très lentement, voire pas du tout.
La fonction d'activation ReLU permet d'éviter la disparition des gradients.
Gradients explosifs
Si les pondérations d'un réseau sont très importantes, les gradients des couches inférieures impliquent le produit de nombreux termes de grande taille. Dans ce cas, vous pouvez avoir des gradients explosifs: des gradients qui deviennent trop importants pour converger.
La normalisation des lots peut aider à éviter l'explosion des gradients, tout comme la réduction du taux d'apprentissage.
Unités ReLU inactives
Une fois que la somme pondérée d'une unité ReLU passe en dessous de 0, l'unité ReLU peut se bloquer. Il renvoie 0, ce qui ne contribue en rien à la sortie du réseau, et les gradients ne peuvent plus y circuler lors de la rétropropagation. Avec une source de gradients coupée, l'entrée du ReLU peut ne jamais changer suffisamment pour ramener la somme pondérée au-dessus de 0.
Réduire le 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 l'activation d'unités sur le réseau pendant un pas de la descente de gradient. Plus il y a d'abandons, plus la régularisation est poussée:
- 0,0 = pas de régularisation par abandon.
- 1,0 = abandon maximal. Le modèle n'apprend rien.
- Les valeurs comprises entre 0,0 et 1,0 sont plus efficaces.