18.2. Rétropropagation et formation des réseaux de neurones : calcul du gradient
La formation sur les réseaux neuronaux est un processus fondamental de l'apprentissage automatique qui consiste à optimiser les poids d'un réseau neuronal afin de minimiser une fonction de coût, généralement une mesure de l'erreur entre les prédictions du réseau et les valeurs réelles. L'algorithme de rétropropagation est la méthode centrale pour calculer les gradients nécessaires à la mise à jour des poids pendant l'entraînement.
Qu'est-ce que la rétropropagation ?
La rétropropagation est un algorithme efficace pour calculer le gradient de la fonction de coût par rapport à chaque poids du réseau neuronal. Il est utilisé conjointement avec un algorithme d'optimisation tel que la descente de gradient pour ajuster les pondérations afin de minimiser la fonction de coût.
Essentiellement, la rétropropagation effectue deux passages à travers le réseau neuronal : un passage vers l'avant, où les données d'entrée sont traitées pour générer la sortie, et un passage vers l'arrière, où l'erreur est propagée à travers le réseau pour calculer les gradients. p>
Le passage en avant
Lors du passage direct, les données d'entrée sont introduites dans le réseau neuronal et chaque neurone traite l'entrée en fonction de sa fonction d'activation. Pour un neurone individuel, la sortie est calculée comme une somme pondérée des entrées, suivie de l'application d'une fonction d'activation telle que la fonction sigmoïde, ReLU ou tanh.
Où w
sont les poids, x
sont les entrées, b
est le biais, z
est le somme pondérée des entrées, f
est la fonction d'activation et a
est la sortie du neurone.
Le passage arrière et le calcul du dégradé
Dans la passe arrière, l'erreur est calculée comme la différence entre la sortie prédite par le réseau et la sortie réelle. Cette erreur est ensuite utilisée pour calculer le gradient de la fonction de coût par rapport à chaque poids du réseau.
Le gradient est une mesure de la façon dont la fonction de coût change avec un petit changement de pondération. Le calcul du gradient est effectué en appliquant la règle de chaîne du calcul différentiel, qui permet de décomposer le gradient de la fonction de coût complexe en gradients de fonctions plus simples.
Pour un poids spécifique w_ij
qui connecte le neurone i
de la couche précédente au neurone j
de la couche suivante, le dégradé est calculé comme :
Où C
est la fonction de coût, a_j
est l'activation du neurone j
et z_j
est la somme pondérée des entrées du neurone j
. Le terme ∂C/∂a_j
est le gradient du coût par rapport à l'activation du neurone, ∂a_j/∂z_j
est le gradient de la fonction d'activation, et ∂z_j/∂w_ij
est simplement l'entrée du neurone i
, puisque z_j
est une somme pondérée des entrées.
Ce processus est effectué pour chaque poids du réseau, en passant de la couche de sortie aux couches cachées, en propageant l'erreur et en calculant les gradients. C'est le cœur de l'algorithme de rétropropagation.
Mise à jour des pondérations
Une fois les gradients calculés pour tous les poids, ils sont utilisés pour mettre à jour les poids dans la direction qui minimise la fonction de coût. Cela se fait généralement à l'aide de l'algorithme de descente de gradient ou de l'une de ses variantes, telle que la descente de gradient stochastique (SGD), l'élan ou Adam.
Les poids sont mis à jour en soustrayant une fraction du dégradé du poids actuel :
Où η
est le taux d'apprentissage, un hyperparamètre qui contrôle la taille du pas dans la direction du gradient négatif. Un taux d'apprentissage trop élevé peut amener l'algorithme à dépasser le minimum, tandis qu'un taux trop faible peut rendre l'entraînement trop lent ou le bloquer aux minimums locaux.
Conclusion
La rétropropagation est un algorithme puissant qui permet d'entraîner efficacement des réseaux de neurones profonds. En calculant le gradient de la fonction de coût par rapport à chaque poids, il permet au réseau d'apprendre à partir d'exemples de formation, en ajustant ses poids pour minimiser les erreurs de prédiction. Un choix judicieux de la fonction de coût, de la fonction d'activation, du taux d'apprentissage et de l'algorithme d'optimisation est crucial pour le succès de la formation d'un réseau neuronal.
Avec les progrès des bibliothèques d'apprentissage automatique telles que TensorFlow et PyTorch, le processus de mise en œuvre de rétropropagation et de formation des réseaux neuronaux est devenu plus accessible, permettant aux chercheurs et aux développeurs de créer et de former des modèles complexes avec une relative facilité.
/p>