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.
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.
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.
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.
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)
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.
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
- Un des premiers papiers scientifiques : https://cutt.ly/UZnNet4
- Librairie Python pour créer des LSTM : https://cutt.ly/NZnNg7r
- Article sur l’IA raciste de Microsoft : https://cutt.ly/YZLQ79W
Leave a Comment