À l’instar des réseaux neuronaux traditionnels, tels que les réseaux neuronaux à action directe et les réseaux neuronaux convolutifs (CNN), les réseaux neuronaux récurrents utilisent les données d’entraînement pour apprendre. Les RNN utilisent leur « mémoire » : les informations des entrées antérieures ont une influence sur l’entrée et la sortie en cours.
Alors que les réseaux d’apprentissage profond traditionnels supposent que les entrées et les sorties sont indépendantes les unes des autres, la sortie des RNN dépend des éléments antérieurs de la séquence. Bien que les événements futurs soient également utiles pour déterminer la sortie d’une séquence donnée, les réseaux neuronaux récurrents unidirectionnels ne peuvent pas tenir compte de ces événements dans leurs prédictions.
Prenons une expression idiomatique, telle que « être cloué au lit », qui est couramment utilisée lorsqu’une personne est malade, pour nous aider dans l’explication des RNN. Pour qu’elle ait un sens, elle doit être exprimée dans cet ordre spécifique. Par conséquent, les réseaux récurrents doivent tenir compte de la position de chaque mot dans la phrase idiomatique, puis ils utilisent cette information pour prédire le mot suivant dans la séquence.
Chaque mot de l’expression « être cloué au lit » fait partie d’une séquence, où l’ordre compte. Le RNN suit le contexte en maintenant un état masqué à chaque intervalle temporel. Une boucle de rétroaction est créée en passant l’état masqué d’une étape à l’autre. L’état masqué agit comme une mémoire qui stocke des informations sur les entrées précédentes. À chaque intervalle temporel, le RNN traite l’entrée actuelle (par exemple, un mot dans une phrase) ainsi que l’état masqué de l’intervalle temporel précédent. Cela permet au RNN de « se souvenir » des points de données précédents et d’utiliser ces informations pour influencer la sortie actuelle.
Une autre caractéristique distinctive des réseaux récurrents est qu’ils partagent des paramètres sur chaque couche du réseau. Alors que les réseaux à propagation avant ont des poids différents sur chaque nœud, les réseaux neuronaux récurrents partagent le même paramètre de poids au sein de chaque couche du réseau. Cela dit, ces poids sont toujours ajustés au cours des processus de rétropropagation et de descente de gradient afin de faciliter l’apprentissage par renforcement.
Les réseaux neuronaux récurrents utilisent des algorithmes de propagation avant et de rétropropagation à travers le temps (« Backpropagation Through Time » ou BPTT) pour déterminer les gradients (ou les différences), ce qui est légèrement différent de la rétropropagation traditionnelle, car elle est propre aux données séquentielles. Les principes de la BPTT sont les mêmes que ceux de la rétropropagation traditionnelle : le modèle s’entraîne lui-même en calculant les erreurs de sa couche de sortie à sa couche d’entrée. Ces calculs nous permettent d’ajuster les paramètres du modèle de manière appropriée. La BPTT diffère de l’approche traditionnelle en ce sens qu’elle additionne les erreurs à chaque intervalle temporel, alors que les réseaux à propagation à action directe n’ont pas besoin d’additionner les erreurs, car ils ne partagent aucun paramètre sur chaque couche.