Suivez nous sur

Qu'est-ce que la rétropropagation ?

AI 101

Qu'est-ce que la rétropropagation ?

mm

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.