Entraîner des réseaux de neurones: bonnes pratiques

Cette section explique les cas de défaillance de la rétropropagation et le moyen le plus courant de régulariser un réseau de neurones.

Cas d'échec

La rétropropagation peut être à l'origine de plusieurs problèmes courants.

Disparition des gradients

Les gradients des couches inférieures (les plus proches de l'entrée) peuvent devenir très petits. Dans les réseaux profonds, le calcul de ces gradients peut impliquer le produit de nombreux petits termes.

Lorsque les gradients disparaissent vers 0 pour les couches inférieures, l'entraînement de ces couches est très lent, voire pas du tout.

La fonction d'activation ReLU peut aider à empêcher la disparition des gradients.

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 de grande taille. Dans ce cas, les gradients peuvent exploser, c'est-à-dire ceux qui deviennent trop grands pour converger.

La normalisation des lots peut aider à éviter l'explosion des gradients, tout comme la baisse du taux d'apprentissage.

Unités ReLU inactives

Lorsque la somme pondérée d'une unité ReLU passe en dessous de 0, celle-ci peut se bloquer. Elle génère 0 activation, ce qui ne contribue pas à la sortie du réseau, et les gradients ne peuvent plus y circuler lors de la rétropropagation. Lorsqu'une source de gradients est coupée, l'entrée de la fonction ReLU risque de ne pas changer suffisamment pour que la somme pondérée redevienne supérieure à 0.

Diminuer le taux d'apprentissage peut aider à empêcher les unités ReLU de s'épuiser.

Régularisation par abandon

Une autre forme de régularisation, appelée abandon, est utile pour les réseaux de neurones. Elle "abandonne" de manière aléatoire des activations d'unités dans un réseau pour un seul pas de gradient. Plus il y a d'abandons, plus la régularisation est solide:

  • 0,0 = aucune régularisation par abandon.
  • 1,0 = abandonner tout. Le modèle n'apprend rien.
  • Les valeurs comprises entre 0,0 et 1,0 sont plus utiles.