Suivez nous sur
Classe de maître IA :

AI 101

Qu'est-ce que la rétropropagation ?

mm
Le kit de préparation mis à jour on

Qu'est-ce que la rétropropagation ?

Les systèmes d'apprentissage en profondeur sont capables d'apprendre des modèles extrêmement complexes, et ils y parviennent en ajustant leurs poids. Comment les poids d'un réseau de neurones profond sont-ils ajustés exactement ? Ils sont ajustés par un processus appelé rétropropagation. Sans rétropropagation, les réseaux neuronaux profonds ne seraient pas capables d’effectuer des tâches telles que la reconnaissance d’images et l’interprétation du langage naturel. Comprendre le fonctionnement de la rétropropagation est essentiel pour comprendre les réseaux de neurones profonds en général. Parlons donc de la rétropropagation et voyons comment le processus est utilisé pour ajuster les pondérations d'un réseau.

La rétropropagation peut être difficile à comprendre et les calculs utilisés pour effectuer la rétropropagation peuvent être assez complexes. Cet article s'efforcera de vous donner une compréhension intuitive de la rétropropagation, en utilisant peu de mathématiques complexes. Cependant, une discussion sur les mathématiques derrière la rétropropagation est nécessaire.

Le but de la rétropropagation

Commençons par définir l'objectif de la rétropropagation. Les poids d'un réseau neuronal profond sont la force des connexions entre les unités d'un réseau neuronal. Lorsque le réseau neuronal est établi, des hypothèses sont faites sur la façon dont les unités d'une couche sont connectées aux couches qui lui sont jointes. Au fur et à mesure que les données se déplacent dans le réseau neuronal, les pondérations sont calculées et des hypothèses sont formulées. Lorsque les données atteignent la couche finale du réseau, une prédiction est faite sur la façon dont les entités sont liées aux classes du jeu de données. La différence entre les valeurs prédites et les valeurs réelles est la perte/l'erreur, et l'objectif de la rétropropagation est de réduire la perte. Ceci est accompli en ajustant les pondérations du réseau, rendant les hypothèses plus proches des vraies relations entre les entités en entrée.

Formation d'un réseau de neurones profonds

Avant que la rétropropagation puisse être effectuée sur un Réseau neuronal, la passe d'entraînement régulière/en avant d'un réseau de neurones doit être effectuée. Lorsqu'un réseau de neurones est créé, un ensemble de poids est initialisé. La valeur des pondérations sera modifiée au fur et à mesure que le réseau est formé. La passe d'entraînement vers l'avant d'un réseau de neurones peut être conçue comme trois étapes distinctes : l'activation des neurones, le transfert des neurones et la propagation vers l'avant.

Lors de la formation d'un réseau de neurones profonds, nous devons utiliser plusieurs fonctions mathématiques. Les neurones d'un réseau neuronal profond sont composés des données entrantes et d'une fonction d'activation, qui détermine la valeur nécessaire pour activer le nœud. La valeur d'activation d'un neurone est calculée avec plusieurs composants, étant une somme pondérée des entrées. Les poids et les valeurs d'entrée dépendent de l'index des nœuds utilisés pour calculer l'activation. Un autre nombre doit être pris en compte lors du calcul de la valeur d'activation, une valeur de biais. Les valeurs de biais ne fluctuent pas, elles ne sont donc pas multipliées avec le poids et les entrées, elles sont simplement ajoutées. Tout cela signifie que l'équation suivante pourrait être utilisée pour calculer la valeur d'activation :

Activation = somme (poids * entrée) + biais

Une fois le neurone activé, une fonction d'activation est utilisée pour déterminer quelle sera la sortie de la sortie réelle du neurone. Différentes fonctions d'activation sont optimales pour différentes tâches d'apprentissage, mais les fonctions d'activation couramment utilisées incluent la fonction sigmoïde, la fonction Tanh et la fonction ReLU.

Une fois que les sorties du neurone sont calculées en exécutant la valeur d'activation via la fonction d'activation souhaitée, la propagation vers l'avant est effectuée. La propagation vers l'avant consiste simplement à prendre les sorties d'une couche et à en faire les entrées de la couche suivante. Les nouvelles entrées sont ensuite utilisées pour calculer les nouvelles fonctions d'activation, et la sortie de cette opération est transmise à la couche suivante. Ce processus se poursuit jusqu'à la fin du réseau de neurones.

Rétropropagation dans le réseau

Le processus de rétropropagation prend en compte les décisions finales de la passe d'entraînement d'un modèle, puis il détermine les erreurs dans ces décisions. Les erreurs sont calculées en comparant les sorties/décisions du réseau et les sorties attendues/souhaitées du réseau.

Une fois que les erreurs dans les décisions du réseau ont été calculées, ces informations sont rétropropagées à travers le réseau et les paramètres du réseau sont modifiés en cours de route. La méthode utilisée pour mettre à jour les poids du réseau est basée sur le calcul, en particulier, elle est basée sur la règle de la chaîne. Cependant, une compréhension du calcul n'est pas nécessaire pour comprendre l'idée de derrière la rétropropagation. Sachez simplement que lorsqu'une valeur de sortie est fournie par un neurone, la pente de la valeur de sortie est calculée avec une fonction de transfert, produisant une sortie dérivée. Lors de la rétropropagation, l'erreur pour un neurone spécifique est calculée selon ce qui suit formule:

erreur = (expected_output – actual_output) * pente de la valeur de sortie du neurone

Lors d'une opération sur les neurones de la couche de sortie, la valeur de classe est utilisée comme valeur attendue. Une fois l'erreur calculée, l'erreur est utilisée comme entrée pour les neurones dans la couche cachée, ce qui signifie que l'erreur pour cette couche cachée est les erreurs pondérées des neurones trouvés dans la couche de sortie. Les calculs d'erreur remontent à travers le réseau le long du réseau de pondérations.

Une fois les erreurs du réseau calculées, les poids du réseau doivent être mis à jour. Comme mentionné, le calcul de l'erreur implique de déterminer la pente de la valeur de sortie. Une fois la pente calculée, un processus appelé descente de pente peut être utilisé pour ajuster les poids dans le réseau. Une pente est une pente dont l'angle/la pente peut être mesuré. La pente est calculée en traçant « y sur » ou la « montée » sur la « course ». Dans le cas du réseau neuronal et du taux d'erreur, le « y » est l'erreur calculée, tandis que le « x » correspond aux paramètres du réseau. Les paramètres du réseau ont une relation avec les valeurs d'erreur calculées et, à mesure que les pondérations du réseau sont ajustées, l'erreur augmente ou diminue.

La « descente de gradient » est le processus de mise à jour des poids afin que le taux d'erreur diminue. La rétropropagation est utilisée pour prédire la relation entre les paramètres du réseau de neurones et le taux d'erreur, qui configure le réseau pour la descente de gradient. La formation d'un réseau avec descente de gradient impliquait de calculer les poids par propagation vers l'avant, de rétropropager l'erreur, puis de mettre à jour les poids du réseau.

Blogueur et programmeur spécialisé dans Machine Learning et L'apprentissage en profondeur les sujets. Daniel espère aider les autres à utiliser le pouvoir de l'IA pour le bien social.