RNN & LSTM : comprendre les séquences
Mémoire contextuelle
Prédire le prochain mot d’une phrase nécessite de connaître les mots précédents. Un CNN ne retient pas l’ordre ; un RNN, si. Chaque neurone récurrent possède une boucle qui lui permet de propager l’information à l’instant suivant.
Entrées de longueur variable
Les textes n’ont pas tous la même taille, pas plus que les séries temporelles. Les RNN s’adaptent naturellement grâce au déroulement temporel (unrolled network).
RNN classique
La rétropropagation dans le temps (BPTT) multiplie les mêmes poids à chaque pas. Si les poids sont < 1, le gradient tend vers zéro (vanishing) → le réseau oublie les informations anciennes. Si >1, explosion. Les RNN simples ne capturent que des dépendances courtes (5-10 pas).
Cellule LSTM
Introduit un état cellulaire (cell state) qui traverse la chaîne avec des portes (forget, input, output) contrôlées par des sigmoïdes. Le gradient peut circuler presque inchangé, permettant de retenir des informations sur des centaines de pas. Idéal pour le texte, la parole, les séries financières.
# Pseudo-code d'une cellule LSTM (simplifié) ft = sigmoid(Wf · [h_{t-1}, x_t] + bf) # porte oubli it = sigmoid(Wi · [h_{t-1}, x_t] + bi) # porte entrée ot = sigmoid(Wo · [h_{t-1}, x_t] + bo) # porte sortie c_t = ft * c_{t-1} + it * tanh(Wc · [h_{t-1}, x_t] + bc) h_t = ot * tanh(c_t)
Analyse de sentiment
Classification de commentaires (positif/négatif) en conservant le contexte sur plusieurs phrases.
Traduction automatique
Architectures encodeur-décodeur (seq2seq) avec LSTM, avant l’ère des Transformers.
Prévision financière
Cours de bourse, demande énergétique, météo : les LSTM modélisent les dépendances temporelles longues.
Reconnaissance vocale
Transcription audio en texte, chaque frame dépend des précédentes.
GRU (Gated Recurrent Unit)
Version simplifiée du LSTM avec deux portes (reset, update) et moins de paramètres. Souvent aussi performant pour des séquences de taille modérée. Plus rapide à entraîner.
Bidirectionnel (BiLSTM)
Deux couches récurrentes : une lit la séquence de gauche à droite, l’autre de droite à gauche. La sortie concatène les deux contextes. Indispensable pour le tagging de mots (NER, POS).
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Embedding model = Sequential() model.add(Embedding(vocab_size, 128, input_length=maxlen)) model.add(LSTM(64, dropout=0.2, return_sequences=False)) model.add(Dense(1, activation='sigmoid')) # classification binaire model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
Ce réseau peut être entraîné sur des critiques de films, des tweets, ou tout corpus textuel. ISOSET propose des notebooks guidés pour maîtriser ces briques.
Loin des cours magistraux rébarbatifs, les ateliers ISOSET plongent les apprenants dans des projets concrets : analyse de séquences d’ADN, génération de texte, prévisions de ventes. Chaque participant code un LSTM de A à Z, débugue les problèmes de gradient, et compare ses résultats avec des GRU. Les formateurs, experts en deep learning, fournissent des retours individualisés. À l’issue de la formation, les stagiaires repartent avec un portfolio d’applications NLP opérationnelles. Les témoignages soulignent la montée en compétence fulgurante.
Détection de fraudes
Les séquences de transactions bancaires sont analysées par un LSTM qui mémorise les comportements suspects sur plusieurs jours.
Dossiers patients
Extraction d’entités médicales (NER) avec BiLSTM + CRF, pour structurer les comptes-rendus hospitaliers.