18.1. Rétropropagation et formation sur les réseaux neuronaux : qu'est-ce que la rétropropagation ?
La rétropropagation est une méthode fondamentale dans la formation des réseaux de neurones, en particulier dans les architectures d'apprentissage profond. Cette méthode est chargée d'ajuster les poids synaptiques d'un réseau neuronal afin de minimiser la différence entre la sortie prédite par le réseau et la sortie attendue, c'est-à-dire l'erreur. La rétropropagation est appliquée après la propagation vers l'avant, où les signaux d'entrée traversent le réseau pour générer une sortie.
Pour comprendre la rétropropagation, il est important de d'abord comprendre le concept de gradient. Le gradient est un vecteur qui pointe dans la direction de la plus grande augmentation d’une fonction. En termes de réseaux de neurones, nous nous intéressons au gradient de l'erreur par rapport aux poids des réseaux, car nous voulons savoir comment ajuster les poids pour réduire l'erreur. La rétropropagation calcule en fait efficacement ces gradients à l'aide du calcul différentiel, en particulier la règle de la chaîne.
Le processus de rétropropagation commence par le calcul de l'erreur à la sortie du réseau. Cette erreur est généralement calculée comme la différence entre la sortie prévue du réseau et la sortie réelle (ou attendue), souvent en utilisant une fonction de coût telle que l'entropie croisée ou l'erreur quadratique moyenne. Une fois l'erreur calculée, l'étape suivante consiste à la propager à travers le réseau, de la dernière couche à la première, en mettant à jour les poids dans chaque couche au fur et à mesure que l'erreur les traverse.
Les poids sont mis à jour conformément à la règle de mise à jour de la descente de gradient, où le poids actuel est ajusté dans la direction opposée au gradient de l'erreur par rapport à ce poids. Mathématiquement, cela s'exprime comme suit :
Où W est le poids actuel, η est le taux d'apprentissage et ∂E/∂W est le gradient de l'erreur E par rapport au poids W. Le taux d'apprentissage est un hyperparamètre qui détermine la taille du pas que nous prendre vers l’erreur minimale. Si le taux d’apprentissage est très élevé, nous pouvons dépasser le minimum ; s'il est trop petit, l'entraînement peut être très lent ou bloqué dans les minimums locaux.
C'est dans le calcul du gradient de l'erreur par rapport aux poids que la règle de la chaîne entre en jeu. Pour un réseau comportant plusieurs couches, l’erreur d’une couche dépend des poids de cette couche, mais également des poids des couches suivantes. La règle de chaîne vous permet de calculer ces dépendances afin de déterminer comment l'erreur dans une couche de sortie affecte les pondérations d'une couche précédente.
Un aspect important de la rétropropagation est le concept de différenciation automatique, qui est une technique qui vous permet de calculer efficacement les gradients. Au lieu de calculer manuellement les dérivées partielles de chaque poids, les bibliothèques modernes d'apprentissage profond telles que TensorFlow et PyTorch utilisent la différenciation automatique pour calculer ces gradients rapidement et avec précision.
En outre, il existe plusieurs variantes et améliorations de la méthode de descente de gradient, telles que la descente de gradient stochastique (SGD), Moment, Adagrad, RMSprop et Adam. Ces méthodes cherchent à accélérer la convergence et à éviter des problèmes tels que les minima locaux et les points de selle.
En résumé, la rétropropagation est un algorithme essentiel pour l'apprentissage des réseaux de neurones. Il nous permet d'ajuster la pondération d'un réseau de manière à minimiser les erreurs de sortie, et c'est l'une des raisons pour lesquelles l'apprentissage profond a connu un tel succès dans une variété de tâches complexes, de la reconnaissance d'images au traitement du langage naturel, voire aux jeux et à la robotique. . Une compréhension approfondie de la rétropropagation est cruciale pour quiconque souhaite travailler sérieusement avec les réseaux de neurones et l'apprentissage profond.