Qu'est ce qu'un réseau LSTM ?

Qu’est ce qu’un réseau LSTM ?

Un des avantages des réseaux de neurones réside dans la diversité des architectures existantes. Dans cet article, on parle des LSTM, une architecture de réseaux de neurones très utilisée pour le traitement du langage.

Réseaux Neuronaux Récurrents

Les réseaux neuronaux récurrents sont les plus efficaces pour gérer des entrées de différentes tailles étant donné qu’ils possèdent une mémoire court terme. Ils permettent aussi une meilleure compréhension du contexte puisqu’ils peuvent traiter des paquets de données quasi simultanément.

Malheureusement, cette mémoire à court terme n’a pas une durée de vie suffisante pour certaines tâches à cause d’un problème célèbre appelé le Vanishing Gradient Problem.

illustration d'un réseau de neurones récurrent (RNN)
Schéma d’une réseau neuronal récurrent

Qu’est ce que le vanishing Gradient Problem ?

En utilisant la rétropropagation, un réseau récurrent peut retracer les dépendances arbitraires qu’il trouve dans les données d’entrée. Cependant les gradients à long terme qui sont rétropropagés peuvent tendre vers zéro (on dit qu’ils disparaissent) ou peuvent tendre vers l’infini (on dit qu’ils explosent). Dans les deux cas on perd l’information qu’on voulait garder en mémoire.

vanishing et exploding gradient
Schémas de la disparition et de l’explosion du gradient

Long Short-Term Memory

Comment les LSTM permettent d’éviter le vanishing gradient ?

Un nouveau sous-type de réseau est donc apparu pour essayer de contourner cette problématique : ce sont les réseaux LSTM qui contiennent une mémoire à court terme capable de durer assez longtemps pour qu’on la qualifie de mémoire longue à court terme. De ce fait, on évite le problème de fuite du gradient même s’il peut arriver encore que notre gradient explose.

comment les lstm résolvent le problème du vanishing gradient
Comparaison entre RNN et LSTM

Architecture des LSTM

Une cellule d’un réseau LSTM est principalement composée d’un input gate, un output gate et un forget gate.

schèma d'un neurone lstm
Schéma simplifié d’une cellule d’un réseau LSTM

La principale idée derrière un LSTM est de diviser le signal qui traverse notre réseau en deux parties bien distinctes :

  • Court Terme à travers le hidden state
  • Long Terme à travers le cell state

Etapes LSTM

Un réseau LSTM effectue durant chaque passage les 5 étapes suivantes :

  • Détection des informations passées dans le cell state via le forget gate
  • Choix des informations pertinentes à long terme à travers l’input gate
  • Ajout des informations choisies au cell state
  • Détection des informations importantes à court terme dans le cell state
  • Génération du nouveau hidden state à travers l’output gate

La relation de récurrence d’un LSTM comprend donc une variable h pour le hidden state et une variable c pour le cell state :

ht , ct = f(xt , ht-1 , ct-1)

lstm, unté récurrente
Cellule d’un réseau LSTM

Limites du réseau

Malgré le fait que les LSTM règlent en partie le Vanishing Gradient Problem, le modèle n’est pas pour autant parfait. En effet, il comprend de nombreux défauts parfois assez compliqués à surpasser. Parmi eux, on peut citer les problèmes d’overfitting (quand le modèle colle trop aux données d’entraînement) ou encore le fait que le modèle est fortement affecté par les initialisations de poids aléatoires.

Qu'est ce qu'un réseau LSTM ?
Schémas de l’overfitting et underfitting

Applications : les LSTM pour générer de paroles de rap

Maintenant qu’on a vu le côté théorique derrière les réseaux LSTM, il est temps de voir le côté pratique et comment ils peuvent être utilisés pour faire des choses assez originales et drôles.

Après avoir récolté les paroles de plus de 100 rappeurs français sur Genius en utilisant à la fois l’API et des techniques de Web Scraping avec BeautifulSoup, j’ai entraîné un petit réseau LSTM à générer des paroles de rap français à partir d’une petite phrase en input. Vous pouvez retrouver tout le code et le dataset utilisé sur le repo git suivant : https://github.com/Adib-Habbou/french-rap-lyrics-generator

Le modèle s’avère être assez vulgaire et grossier, ce qui nous rappelle encore une fois qu’un modèle c’est avant tout les données sur lesquelles on l’entraîne et que si l’on ne fait pas attention aux données qu’on lui donne, on peut malheureusement se retrouver avec des résultats inattendues voire dangereux.

Comme cela s’est avéré être le cas pour l’IA de Microsoft Tay qui est très vite devenue raciste à cause des tweets sur lesquelles le modèle a été entraîné, ou encore DALL-E d’OpenAI qui comporte un bon nombre de biais racistes et misogynes.

Pour aller plus loin