Rétropropagation dans les réseaux de neurones : algorithme d’apprentissage automatique et exemple

⚡ Résumé intelligent

La rétropropagation est l'algorithme d'entraînement principal d'un réseau neuronal, ajustant finement chaque poids à partir de l'erreur mesurée lors de l'époque précédente afin que le modèle généralise mieux sur des données non vues, une couche à la fois.

  • (I.e. Idée centrale : La règle de la chaîne donne le gradient de la perte pour chaque poids, une couche à la fois.
  • ☑️ Boucle d'entraînement : Passage avant, mesure de l'erreur, propagation en sens inverse, mise à jour des poids, et répétition.
  • Deux variantes: La rétropropagation statique associe une entrée fixe à une sortie fixe ; la rétropropagation récurrente se stabilise d’abord, puis se propage.
  • 🧪 Pourquoi c'est important: La descente de gradient reste pratique pour les réseaux profonds uniquement parce que les gradients sont réutilisés couche par couche.
  • Limites connues : Les performances dépendent de la qualité des données d'entrée, et les échantillons bruités faussent les poids appris.
  • ⚙️ Santé du gradient : La multiplication de nombreuses petites dérivées entraîne la disparition des gradients ; la fonction ReLU et la normalisation réduisent cet effet.

Rétropropagation dans les réseaux de neurones : algorithme d’apprentissage automatique

Qu'est-ce qu'un réseau de neurones artificiels ?

Un réseau de neurones artificiels est un ensemble d'unités d'entrée/sortie interconnectées, chaque connexion ayant un poids. Il permet de construire des modèles prédictifs à partir de vastes bases de données et s'inspire du système nerveux humain. Ce type de réseau prend en charge la compréhension d'images, l'apprentissage automatique, la synthèse vocale et de nombreuses autres tâches de reconnaissance de formes.

La rétropropagation est l'algorithme qui détermine quelles doivent être ces pondérations ; il est donc préférable de considérer ces deux idées conjointement.

Qu'est-ce que la rétropropagation ?

La rétropropagation est essentielle à l'apprentissage des réseaux de neurones. Il s'agit d'une méthode d'ajustement fin des poids d'un réseau de neurones en fonction du taux d'erreur obtenu lors de l'itération précédente. Un ajustement précis des poids permet de réduire les taux d'erreur et d'améliorer la fiabilité du modèle en augmentant sa capacité de généralisation.

La rétropropagation dans un réseau neuronal est une forme abrégée de « propagation vers l'arrière des erreurs ». Il s'agit d'une méthode standard de formation de réseaux de neurones artificiels. Cette méthode permet de calculer le gradient d'une fonction de perte par rapport à tous les poids du réseau.

Deux termes sont souvent confondus. La rétropropagation uniquement calcule le gradient ; un optimiseur tel que la descente de gradient est ce qui en fait change Les poids sont calculés à l'aide de ce gradient. Presque tous les frameworks modernes effectuent automatiquement la rétropropagation grâce à leur moteur de différence automatique.

Comment fonctionne l'algorithme de rétropropagation

L'algorithme de rétropropagation du gradient dans un réseau de neurones calcule le gradient de la fonction de perte pour un poids donné, selon la règle de la chaîne. Il traite efficacement les données couche par couche, contrairement à un calcul direct naïf. Il calcule le gradient, mais ne précise pas son utilisation. Il généralise ce calcul dans la règle delta.

C'est la règle de la chaîne qui rend ce système efficace. L'influence d'un poids initial sur la perte finale est le produit des dérivées locales le long du chemin vers la sortie ; ainsi, l'algorithme met en cache le résultat intermédiaire de chaque couche lors du retour et le réutilise pour chaque poids de la couche inférieure au lieu de recalculer l'ensemble du réseau pour chaque poids.

Pour mieux comprendre, prenons l'exemple du schéma de réseau de neurones à rétropropagation suivant. La figure tracen une seule passe complète : les entrées arrivent par la gauche, les activations se déplacent vers l’avant à travers la couche cachée jusqu’à la sortie, et l’erreur mesurée remonte ensuite le long des mêmes connexions pour corriger les poids.

Diagramme de l'algorithme de rétropropagation montrant la propagation avant à travers les couches d'entrée, cachées et de sortie, et la propagation de l'erreur en sens inverse.

  1. Entrées X, arrivent par le chemin préconnecté
  2. L'entrée est modélisée à l'aide de poids réels W. Les poids sont généralement sélectionnés de manière aléatoire.
  3. Calculez la sortie pour chaque neurone depuis la couche d'entrée, jusqu'aux couches cachées, jusqu'à la couche de sortie.
  4. Calculer l'erreur dans les résultats :
    ErrorB= Actual Output – Desired Output
    
  5. Revenez de la couche de sortie à la couche cachée pour ajuster les pondérations de manière à réduire l'erreur.
  6. Répétez le processus jusqu'à obtenir le résultat souhaité.

De nombreux manuels scolaires écrivent la même quantité que souhaité moins réelLes deux conventions fonctionnent, car le signe est absorbé lors de la soustraction de l'optimiseurtracc'est le gradient, à condition de conserver une convention unique sur l'ensemble du réseau.

En pratique, l'erreur est rarement une simple sous-routine.tracUne fonction de perte, telle que l'erreur quadratique moyenne pour la régression ou l'entropie croisée pour la classification, convertit les différences par sortie en un nombre unique que la rétropropagation du gradient calcule réellement.

Pourquoi avons-nous besoin d’une rétropropagation ?

Les avantages les plus importants de la rétropropagation sont :

  • La rétropropagation est rapide, simple et facile à programmer
  • Il n'ajoute aucun nouveau paramètre ; le réglage que vous effectuez relève de l'optimiseur et du réseau, principalement le taux d'apprentissage et le nombre d'entrées.
  • C'est une méthode flexible car elle ne nécessite aucune connaissance préalable du réseau.
  • C'est une méthode standard qui fonctionne généralement bien
  • Il n’est pas nécessaire de mentionner spécialement les caractéristiques de la fonction à apprendre.

En clair, sans moyen efficace d'obtenir des gradients, l'entraînement d'un réseau plus profond qu'une seule couche serait impraticable sur le plan informatique.

Qu’est-ce qu’un réseau Feed Forward ?

Un réseau neuronal feedforward est un réseau neuronal artificiel dans lequel les nœuds ne forment jamais un cycle. Ce type de réseau neuronal comporte une couche d’entrée, des couches cachées et une couche de sortie. Il s’agit du premier et du plus simple type de réseau neuronal artificiel.

Cette distinction est importante ici car la propagation avant de la rétropropagation est exactement une propagation avant ; seule la correction d'erreur s'effectue dans la direction opposée.

Types de réseaux de rétropropagation

Il existe deux types de réseaux de rétropropagation :

  • Rétropropagation statique
  • Rétropropagation récurrente

Rétropropagation statique

Il s'agit d'un type de réseau de rétropropagation qui produit une carteping Il s'agit d'une entrée statique pour une sortie statique. Cette méthode est utile pour résoudre des problèmes de classification statique comme la reconnaissance optique de caractères.

Rétropropagation récurrente

Rétropropagation récurrente dans data mining Le signal est propagé jusqu'à l'obtention d'une valeur fixe. Ensuite, l'erreur est calculée et propagée en sens inverse.

La principale différence entre ces deux méthodes est que la carteping La rétropropagation est rapide en statique, tandis qu'elle est non statique en récurrence. Le tableau ci-dessous compare les deux.

Critère Rétropropagation statique rétropropagation récurrente
Carteping Entrée statique vers sortie statique Non statique ; le réseau se stabilise avant que l’erreur ne soit utilisée.
Speed Rapide, un seul passage par échantillon L'activation est itérée plus lentement jusqu'à stabilisation.
Forme du réseau Progression sans cycles Contient des connexions de rétroaction
Utilisation typique Reconnaissance optique de caractères, classification à taille fixe Problèmes dont le résultat dépend d'un état interne stable

Histoire de la rétropropagation

  • En 1961, le concept de base de la rétropropagation continue a été dérivé dans le contexte de la théorie du contrôle par J. Kelly, Henry Arthur et E. Bryson.
  • En 1969, Bryson et Ho ont proposé une méthode d’optimisation de système dynamique en plusieurs étapes.
  • En 1970, Seppo Linnainmaa a publié le mode inverse de la différentiation automatique, la méthode de calcul sur laquelle repose la rétropropagation moderne.
  • En 1974, Werbos évoquait la possibilité d'appliquer ce principe dans un réseau de neurones artificiels.
  • En 1982, Hopfield a présenté son idée de réseau neuronal.
  • En 1986, grâce aux efforts de David E. Rumelhart, Geoffrey E. Hinton et Ronald J. Williams, la rétropropagation a été reconnue.
  • En 1989, Yann LeCun et ses collègues ont entraîné un réseau convolutif avec rétropropagation pour lire des chiffres manuscrits, l'une des premières applications pratiques à grande échelle.
  • En 1993, Wan a été la première personne à remporter un concours international de reconnaissance de formes grâce à la méthode de rétropropagation.
  • En 2006, les travaux de Hinton sur les réseaux de croyances profonds et le pré-entraînement couche par couche ont relancé l'intérêt pour l'entraînement des réseaux profonds, qui avait stagné en raison de la disparition des gradients.
  • En 2010, Xavier Glorot et Yoshua Bengio ont analysé pourquoi les réseaux profonds étaient difficiles à entraîner et ont introduit une initialisation des poids améliorée, qui, associée aux activations ReLU, a rendu la rétropropagation profonde pratique.
  • En 2012, AlexNet (Krizhevsky, Sutskever et Hinton) a remporté le concours ImageNet en utilisant la rétropropagation accélérée par GPU, déclenchant le boom moderne de l'apprentissage profond.
  • En 2014, l'optimiseur Adam (Kingma et Ba) a été introduit et est rapidement devenu la variante de descente de gradient par défaut utilisée avec la rétropropagation.
  • En 2015, la normalisation par lots et les réseaux résiduels (ResNet) ont résolu les problèmes de flux de gradient dans les réseaux très profonds, permettant la rétropropagation à travers des centaines de couches.
  • Entre 2015 et 2017, TensorFlow et PyTorch a fait de la différentiation automatique une fonctionnalité standard du logiciel, de sorte que les gradients n'avaient plus besoin d'être calculés manuellement.
  • L'architecture Transformer a été introduite en 2017 et est entraînée de bout en bout par rétropropagation, tout comme les grands modèles de langage construits sur elle.
  • En 2019, Bengio, Hinton et LeCun ont reçu le prix ACM AM Turing pour leurs travaux sur les réseaux neuronaux profonds.
  • En 2020, l'article « Backpropagation and the Brain » (Lillicrap, Santoro, Marris, Akerman et Hinton) a avancé que le cerveau pourrait se rapprocher d'un apprentissage de type rétropropagation, relançant ainsi le débat sur la plausibilité biologique.
  • En 2022, Hinton a proposé l'algorithme Forward-Forward, une méthode d'entraînement qui évite complètement le retour en arrière.
  • En 2024, John Hopfield et Geoffrey Hinton ont reçu le prix Nobel de physique pour leurs découvertes fondamentales qui ont permis l'apprentissage automatique grâce aux réseaux neuronaux artificiels.
  • En 2025, les méthodes forward-forward ont été étendues aux réseaux convolutionnels, démontrant que l'entraînement sans rétropropagation pouvait fonctionner pour les tâches de classification d'images.
  • En 2026, la rétropropagation reste l'algorithme d'entraînement standard pour la quasi-totalité des modèles d'apprentissage profond, tandis que la recherche se poursuit sur des méthodes d'apprentissage sans gradient, locales et parallèles qui réduisent son coût en mémoire et en calcul.

Points clés de la rétropropagation

  • Simplifie la structure du réseau en supprimant les liens pondérés qui ont le moins d'effet sur le réseau entraîné.
  • Vous devez étudier un groupe de valeurs d'entrée et d'activation pour développer la relation entre les couches d'entrée et les unités cachées.
  • Il permet d'évaluer l'impact d'une variable d'entrée donnée sur une sortie du réseau. Les connaissances acquises grâce à cette analyse doivent être représentées dans des règles.
  • La rétropropagation est particulièrement utile pour les réseaux de neurones profonds travaillant sur des projets sujets aux erreurs, tels que la reconnaissance d'images ou de parole.
  • La rétropropagation tire parti des règles de chaîne et de puissance, ce qui lui permet de fonctionner avec un nombre quelconque de sorties.

Meilleure pratique pour la rétropropagation

La rétropropagation dans un réseau de neurones peut être expliquée à l'aide de l'analogie du lacet de chaussure. Les mises à jour des poids se comportent comme la tension d'un lacet : trop faible et rien ne tient, trop forte et quelque chose casse.

Tension de la dentelle Ce que cela signifie pendant l'entraînement
Tension insuffisante Insuffisamment contraignant et trop lâche — le modèle est sous-ajusté
Trop de tension Trop de contraintes (surentraînement) ; processus trop lent ; risque accru de rupture
Tirer plus sur un lacet que sur l'autre Malaise (biais) — une partie du réseau domine l'adéquation

Deux habitudes pratiques découlent de cette analogie : adapter les entrées avant l’entraînement afin qu’aucune caractéristique ne soit plus déterminante que les autres, et surveiller la perte de validation afin de relâcher la tension avant que le surentraînement ne s’installe.

Inconvénients de l'utilisation de la rétropropagation

  • Les performances réelles de la rétropropagation sur un problème spécifique dépendent des données d'entrée.
  • L'algorithme de rétro-propagation dans l'exploration de données peut être très sensible aux données bruyantes
  • Sur un mini-lot, la rétropropagation doit être implémentée avec une approche matricielle ;ping Le traitement par exemple, un à la fois, est nettement plus lent.
  • Dans les réseaux profonds, la multiplication répétée de petites dérivées peut réduire les gradients à zéro, de sorte que les premières couches apprennent à peine — le problème de disparition du gradient décrit dans le Google Cours intensif d'apprentissage automatique.

Aucun de ces éléments n'exclut la méthode. Ce sont les raisons pour lesquelles les praticiens privilégient les activations ReLU, la normalisation et des stratégies d'apprentissage rigoureuses lorsqu'ils passent d'un réseau peu profond à un réseau plus complexe. l'apprentissage en profondeur .

FAQ

La rétropropagation calcule le gradient de la fonction de perte par rapport à chaque poids. La descente de gradient est l'optimiseur qui utilise ce gradient pour déplacer chaque poids. L'un mesure la pente ; l'autre effectue le déplacement.

Le taux d'apprentissage détermine l'amplitude du déplacement de chaque poids le long de son gradient. Trop faible, l'entraînement est très lent ; trop élevé, la fonction de perte oscille ou diverge. Les algorithmes qui diminuent progressivement le taux d'apprentissage convergent généralement de manière plus fiable.

La rétropropagation temporelle entraîne les réseaux récurrents en déroulant la séquence en une chaîne de copies, puis en appliquant la rétropropagation classique à travers cette chaîne. Les longues séquences sont généralement tronquées, car les gradients s'annulent ou divergent au fil des itérations.

Toute fonction de perte différentiable convient. L'erreur quadratique moyenne est adaptée à la régression, l'entropie croisée binaire aux problèmes à deux classes et l'entropie croisée catégorielle aux couches de sortie multiclasses. Ce choix modifie le gradient de la couche de sortie, et non l'algorithme de rétrogradation lui-même.

Les outils de recherche automatisés explorent les taux d'apprentissage, les largeurs de couches et les paramètres de régularisation bien plus rapidement que la méthode manuelle par essais et erreurs. Optimisation bayésienne et arrêt précoce.ping Les planificateurs éliminent rapidement les exécutions peu performantes, réservant ainsi les ressources de calcul aux configurations qui réduisent réellement les pertes de validation.

Copilote GitHub Ce générateur crée des boucles d'entraînement, des vérifications de gradient et des définitions de couches à partir d'un court commentaire, ce qui réduit le travail répétitif. Vérifiez les dérivées produites à l'aide d'une vérification numérique du gradient, car un signe apparemment plausible mais erroné peut être enregistré sans que cela ne soit pris en compte lors de l'entraînement.

Les poids importants entraînent une augmentation des produits en arrière à chaque couche, jusqu'à ce que les mises à jour dépassent le seuil et que la perte devienne instable. Écrêtage du dégradépingDes poids initiaux plus faibles, la normalisation par lots et un taux d'apprentissage plus faible permettent tous de maintenir les valeurs dans une plage acceptable.

Un lot est l'ensemble des échantillons traités avant une mise à jour des poids. Une itération correspond à une mise à jour unique. Une époque correspond à un passage complet sur l'ensemble d'entraînement, comprenant autant d'itérations que de lots.

Résumez cet article avec :