La rétropropagation désigne 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 les calculs sous-jacents vous-même. Regardez la vidéo suivante pour découvrir Présentation des concepts du fonctionnement de la rétropropagation:
Bonnes pratiques pour l'entraînement des réseaux de neurones
Cette section décrit les cas de défaillance de la rétropropagation et les pour régulariser un réseau de neurones.
Disparition des gradients
Les gradients pour le neurone inférieur couches réseau (celles qui sont les plus proches de la couche d'entrée) peuvent devenir très petites. Dans les réseaux profonds (réseaux avec plusieurs couches cachées), le calcul de ces gradients peut impliquer de prendre produit par de nombreux petits termes.
Lorsque les valeurs du gradient approchent 0 pour les couches inférieures, les gradients dit "va disparaître". L'entraînement des couches avec des gradients qui disparaissent est très lent, ou pas du tout.
La fonction d'activation ReLU permet d'éviter la disparition des gradients.
Explosion des gradients
Si les pondérations d'un réseau sont très élevées, alors les gradients des couches inférieures les couches impliquent les produits de nombreux termes importants. Dans ce cas, vous pouvez avoir Les gradients explosifs: des gradients trop grands pour converger.
La normalisation des lots peut aider à empêcher l'explosion des gradients, tout comme la réduction de la valeur du taux d'apprentissage.
Unités ReLU inactives
Lorsque la somme pondérée d'une unité ReLU est inférieure à 0, celle-ci peut obtenir bloqué. Il renvoie 0, qui ne contribue rien à la sortie du réseau, et les gradients ne peuvent plus y circuler lors de la rétropropagation. Avec un source des gradients tronqué, il est possible que l'entrée de la fonction ReLU ne change pas assez pour ramener la somme pondérée au-dessus de 0.
La réduction du taux d'apprentissage peut aider à empêcher les unités ReLU de tomber en panne.
Régularisation par abandon
Il existe une autre forme de régularisation, appelée régularisation par abandon, est utile pour les réseaux de neurones. Elle "abandonne" de manière aléatoire d'activations unitaires 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 = aucune 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 utiles.