Maîtrise des RNN et LSTM
Limites des RNN simples
Pourquoi les RNN simples ont une mémoire courte
Les réseaux de neurones récurrents, ou RNN, sont conçus pour gérer des données séquentielles, comme des séries temporelles ou du texte. Ils possèdent une sorte de mémoire qui leur permet de prendre en compte les informations précédentes pour prendre une décision sur l'élément actuel. Pensez à la lecture d'une phrase : vous comprenez chaque mot en vous basant sur ceux qui l'ont précédé. Un RNN essaie de faire la même chose.
Cependant, cette mémoire n'est pas parfaite. Pour des séquences courtes, un RNN simple fonctionne assez bien. Mais lorsque la séquence s'allonge, comme pour analyser des données météorologiques sur plusieurs années, sa mémoire commence à flancher. Il a du mal à relier une information actuelle à un événement lointain dans le passé. Cette limitation est l'un des plus grands défis des RNN classiques.
Apprendre du passé
Comment un RNN apprend-il ? Il utilise un processus appelé (BPTT). Imaginez que vous suivez une longue recette de cuisine et que le plat final est raté. Pour comprendre votre erreur, vous remontez mentalement chaque étape : avez-vous mis trop de sel au début ? Pas assez fait cuire un ingrédient au milieu ?
La BPTT fonctionne de manière similaire. Après avoir traité une séquence et fait une prédiction, le modèle compare son résultat à la réalité. Si sa prédiction est fausse, un signal d'erreur est généré. Ce signal remonte alors la séquence, étape par étape, en ajustant légèrement les "décisions" internes (les poids du réseau) à chaque pas de temps pour que la prochaine prédiction soit meilleure. Le but est de corriger les erreurs passées qui ont conduit au mauvais résultat final.
Cette méthode est efficace pour les dépendances à court terme. Si le plat a un goût étrange parce que vous avez ajouté l'ingrédient A juste avant l'ingrédient B, le modèle peut facilement faire le lien. Mais que se passe-t-il si l'erreur provient d'une étape effectuée il y a 50 pas de temps ? Le signal de correction doit voyager très loin en arrière. Et c'est là que le bât blesse.
Le gradient qui disparaît
Le signal de correction qui se propage en arrière est appelé le gradient. Pour le calculer, la BPTT utilise la règle de dérivation en chaîne, ce qui implique de multiplier une série de petites valeurs (les dérivées) les unes avec les autres, une pour chaque pas de temps.
Le problème, c'est que ces valeurs sont souvent inférieures à 1. Que se passe-t-il lorsque vous multipliez plusieurs nombres inférieurs à 1 ensemble ? Le résultat devient de plus en plus petit, tendant vers zéro. Par exemple, , puis , et ainsi de suite. Après des dizaines de multiplications, le résultat est pratiquement zéro. C'est le : le signal de correction s'évanouit avant d'atteindre les étapes lointaines.
En conséquence, le modèle ne peut pas apprendre les dépendances à long terme dans les données. Si une tempête de neige en janvier a un impact sur la consommation d'énergie en mars, un RNN simple aura du mal à établir ce lien. Son "souvenir" de la tempête se sera évaporé au moment où il essaiera de corriger ses prévisions pour mars.
À l'inverse, si les dérivées sont supérieures à 1, leur multiplication répétée peut faire exploser le gradient, le rendant infiniment grand. C'est le problème du gradient explosif, qui rend également l'entraînement instable. Heureusement, ce dernier est plus facile à gérer que son homologue évanescent.
Un gradient qui disparaît empêche le réseau d'apprendre des relations de cause à effet éloignées dans le temps, limitant sa mémoire aux événements récents.
Cette limitation fondamentale des RNN simples a conduit les chercheurs à développer des architectures plus complexes, capables de préserver l'information sur de plus longues périodes. C'est ce qui a donné naissance à des modèles comme le LSTM (Long Short-Term Memory), que nous explorerons prochainement.