RÉSEAUX DE NEURONES
RÉCURRENTS (RNN)
TRAITEMENT DES DONNÉES SÉQUENTIELLES AVEC DEEP LEARNING
PLAN DU COURS
Introduction aux données séquentielles
Problèmes des réseaux de neurones classiques
avec les séquences
Architecture des RNN
Fonctionnement des RNN
Problèmes des RNN : vanishing/exploding
gradients
Variantes des RNN : LSTM et GRU
LES DONNÉES SÉQUENTIELLES ?
.
Les données séquentielles sont des données ordonnées dans le
temps ou selon une séquence où l'ordre a un sens (contexte)
Séquence de mots :
• Textes
Sons :
• Parole, bruit
Images :
• Vidéos
séries temporelles
• (prix du bitcoin, météo).
QUELLES TÂCHES PEUT-ON RÉALISER AVEC
DES DONNÉES SÉQUENTIELLES ?
Séries temporelles :Prédiction de séries
temporelles comme la prévision du marché
boursier.
Traitement du langage naturel (NLP) :
Texte et analyse de sentiment.
Traduction automatique :Traduire un
texte d’une langue à une autre.
QUELLES TÂCHES PEUT-ON RÉALISER AVEC
DES DONNÉES SÉQUENTIELLES ?
• Reconnaissance vocale
• Génération de musique
• Analyse de séquences ADN
CATÉGORIES DE MODÉLISATION POUR
DONNÉES SÉQUENTIELLES
Image Music Sentiment Machine Speech
classificati generation classification translation recognitio
on n
Image Video activity
captioning recognition
LIMITES DES RÉSEAUX DE NEURONES
CLASSIQUES (MLP)
MLPs supposent que les entrées sont
indépendantes les unes des autres.
Impossible de capturer la dépendance
temporelle entre les éléments d'une séquence.
Exemple : prédire le mot suivant dans une
phrase nécessite de "se souvenir" du contexte
précédent.
LIMITES DES MLP CLASSIQUES
Exemple:
Phrase 1 :
"He took a bite of the apple.
Ici, “apple” = fruit
Pourquoi ? Le verbe "took a bite" indique une action associée à un aliment.
Phrase 2 :
"She bought a new Apple phone."
Ici, “Apple” = entreprise / technologie
Pourquoi ? Le mot "phone" change totalement le sens de "Apple" → on parle
ici de la marque Apple Inc.
Le sens d’un mot dépend du
contexte
LES RÉSEAUX DE NEURONES RÉCURRENTS
(RNN)
Les RNN sont conçus pour gérer des séquences de longueur
variable.
Ils possèdent une mémoire qui leur permet de capturer
les dépendances temporelles dans les données.
Ils ont également la capacité de traiter les entrées dans
un ordre séquentiel, ce qui leur permet de capturer les
modèles dépendants de l'ordre.
Les RNN sont devenus l'approche standard pour traiter des
données séquentielles telles que la parole, le texte et les
séries temporelles.
COMMENT FONCTIONNE UN RNN ?
Un RNN traite les données séquentiellement, en mémorisant
l'information d'une étape à l'autre grâce à une boucle récurrente.
Xi : Entrée séquentielle :
Chaque élément de la séquence
(ex. : un mot, un caractère, un
signal) est traité un par un.
hi : État caché (mémoire)
t1 t2 t3 (hidden state) à linstant ti
10
Yi : Sortie à linstant ti
COMMENT FONCTIONNE UN RNN ?
À chaque étape, le RNN met à jour un
état caché h_t qui stocke
l’information de l’entrée actuelle et
de la mémoire du passé :
• x_t
+c :) l’entrée à l’instant t
•h_{t-1} : l’état caché précédent
(mémoire)
•f : fonction d’activation (souvent
11
tanh ou ReLU)
BACK PROPAGATION THROUGH TIME (BPTT)
La Backpropagation Through Time (BPTT) est l’algorithme
utilisé pourde
Principe entraîner un RNN.
fonctionnement
1.Propagation avant (forward pass)
Calcul des états cachés et des sorties
2.Calcul de la perte
3.Rétropropagation dans le temps
(BPTT)
Propagation de l'erreur de sortie vers les
états cachés précédents :
12
4.Mise à jour des poids (ex. avec descente
de gradient)
BACK PROPAGATION THOUGH TIME (BPTT)
Supposons que :
La sortie est linéaire (f est une function linéaire) :
Et L est la function de loss MSE à l’instant t=3:
L₃ = ½ (y₃ - ŷ₃)² ⇒ ∂L₃/∂ŷ₃ = - (y₃
- ŷ₃)
ŷ₃⋅ =
Mise à jour : V ← V +η ⋅ (y₃ - ŷ₃) h₃V ⋅ h₃ ⇒ ∂ŷ₃/∂V = h₃
BACK PROPAGATION THOUGH TIME (BPTT)
Assume that
14
BACK PROPAGATION THOUGH TIME
15
EXEMPLE
Prédire le mot suivant dans « le chat mange du poisson »
Séquences d’entrée et sorties attendues :
Entrée Sortie attendue
["le"] "chat"
["le", "chat"] "mange"
["le", "chat",
"du"
"mange"]
["le", "chat",
"poisson"
"mange", "du"]
EXEMPLE
prédire le mot suivant dans "le chat mange du poisson" détaille
de l'application de rnn
Entrée : Le → chat → mange du →
↓ ↓ ↓
[h1] ─────▶ [h2] ─────▶ [h3] ─────▶ [h4]
↓ ↓ ↓
↓ du
chat mange Prédiction : “poisson"
Une fois le modèle entraîné :
On donne : le chat mange du
Le modèle renvoie : " poisson "
LES LIMITES DE RNN VANILLA
Explosion du gradient
Disparition du gradient (vanishing gradient)
Exemple : signal qui diminue ou explose
18
EXPLOSION DU GRADIENT AVEC VANILLA
RNNS
Ce problème se produit lorsque les gradients utilisés
pour mettre à jour les poids du réseau deviennent trop
grands pendant la rétropropagation
Cela provoque des valeurs de poids extrêmement
grandes et des mises à jour instables.
EXPLOSION DU GRADIENT AVEC VANILLA
RNNS
Pour éviter les gradients explosifs, on peut utiliser le
gradient clipping.
L'idée est de limiter la taille des gradients à un certain
seuil, afin d'éviter qu'ils ne deviennent trop grands.
La formule pour le gradient clipping est la suivante :
Où : g est le gradient de la fonction de perte.
∥g∥ est la norme du gradient.
20
DISPARITION DU GRADIENT (VANISHING
GRADIENTS) WITH VANILLA RNNS
Les gradients deviennent très petits en
remontant le temps → les poids ne sont presque
pas mis à jour.
Impact: Le réseau a du mal à apprendre les
dépendances à long terme.
DISPARITION DU GRADIENT (VANISHING
GRADIENTS) WITH VANILLA RNNS
Solutions :
• Utiliser Truncated BPTT (Backpropagation Through Time tronquée) :
Cela consiste à limiter la durée de la rétropropagation à travers le
temps, en coupant l'apprentissage après un certain nombre d'étapes
temporelles.
• Ce qui permet d'éviter que les gradients ne disparaissent sur des
séquences très longues.
• Utiliser des architectures adaptées comme :
• LSTM (Long Short-Term Memory)
• GRU (Gated Recurrent Unit)
→ Ces architectures permettent de conserver des informations
plus longtemps grâce à des portes qui contrôlent le flux
TRUNCATE BPTT / LSTM / GRU
TRUNCATE BPTT
Principe de Truncated BPTT :
Au lieu de propager les gradients à travers toutes les étapes temporelles de la
séquence, Truncated BPTT coupe cette rétropropagation après un certain nombre
d'étapes temporelles, appelé la longueur de la fenêtre (ou "chunk size")
Forward
propagation
Backward propagation
Avantages :
• Aide à éviter les gradients explosifs / qui disparaissent.
• Beaucoup plus rapide que la rétropropagation à travers le temps classique (BPTT), et
également moins complexe.
Inconvénient :
24
• Les dépendances plus longues que la longueur de la fenêtre ne sont pas apprises
pendant le processus d'entraînement.
LSTM
LSTM (Long Short-Term Memory )est une variante des réseaux de neurones
récurrents (RNNs) conçue pour résoudre les problèmes des RNN classiques, tels que:
Les gradients qui disparaissent
L'incapacité d'apprendre des dépendances à long terme.
But principal :Mémoriser des informations pertinentes dans une séquence
tout en oubliant les informations inutiles — sur le long terme et le court terme.
25
LSTM: ARCHITECTURE
Cellule de mémoire (Memory Cell) : Elle stocke
l'information sur le long terme. C'est la partie centrale
du LSTM qui conserve les informations pertinentes au fil
du temps.
Portes : Il y a trois types de portes dans un LSTM :
1. Porte d'entrée (Input Gate) : Contrôle quelles
informations de l'entrée actuelle doivent être
ajoutées à la cellule de mémoire.
2. Porte d'oubli (Forget Gate) : Détermine
quelles informations doivent être oubliées de la
cellule de mémoire.
3. Porte de sortie (Output Gate) : Contrôle
quelles informations de la cellule de mémoire
doivent être envoyées à la sortie du LSTM.
26
LONG SHORT-TERM MEMORY (LSTM)
À chaque instant 𝑡, la cellule reçoit
:
: L’entrée actuelle (ex. mot, valeur
temporelle)
: La sortie précédente (état
caché)
: L’état mémoire précédent
Ces éléments vont être utilisés
dans des calculs successifs pour
27
produire deux sorties :
: La nouvelle sortie (état caché)
LSTM: PORTE D'ENTRÉE (INPUT GATE)
La porte d'entrée décide quelles
nouvelles informations doivent
être ajoutées à la cellule de
mémoire.
Elle utilise:
• Une fonction sigmoïde pour décider
quelles valeurs mettre à jour
• Une fonction tanh pour créer un
vecteur de nouvelles valeurs candidate
qui peuvent être ajoutées à la
mémoire.
28
LSTM: PORTE D'ENTRÉE (INPUT GATE)
i1 : Le filtre sélectionne quelles informations
peuvent passer à travers et quelles informations
doivent être rejetées.
La fonction sigmoïde transformera les valeurs pour
qu'elles soient comprises entre 0 et 1.
•0 indique que la partie de l'information n'est pas
importante.
•1 indique que l'information sera utilisée.
i2 : Utilise la fonction tanh pour réguler le réseau.
29
LSTM: PORTE D'ENTRÉE (INPUT GATE)
Le résultat final représente l'information à conserver dans
la mémoire à long terme et à utiliser comme sortie.
30
LSTM: PORTE D'OUBLI (FORGET GATE)
Porte d'oubli (Forget Gate) :
À chaque étape, la porte d'oubli décide quelle partie de l'information
dans la cellule de mémoire doit être oubliée.
Elle prend en entrée l'état caché précédent et l'entrée actuelle, et
passe cette information par une fonction sigmoïde pour produire une
valeur entre 0 et 1.
Si la valeur est proche de 0, cela
signifie que l'information doit être
oubliée
31
sinon elle doit être conservée.
LSTM: MISE À JOUR DE L’ÉTAT DE
MÉMOIRE CT
La cellule de mémoire est mise à jour en combinant l'ancienne
mémoire, qui a été filtrée par la porte d'oubli, avec la nouvelle
information filtrée par la porte d'entrée.
𝐶 𝑡 = 𝐶𝑡 − 1 ∗ 𝑓 +𝑖𝑖𝑛
32
LSTM:PORTE DE SORTIE (OUTPUT GATE)
La porte de sortie va prendre en compte l’entrée actuelle, la
mémoire à court terme précédente, et la nouvelle
mémoire à long terme pour produire la nouvelle mémoire à
court terme.
La mémoire à court terme précédente et l’entrée actuelle sont
passées dans une fonction sigmoïde pour créer le filtre.
La nouvelle mémoire à long terme est ensuite passée dans une
fonction d’activation tanh :
33
LSTM:PORTE DE SORTIE (OUTPUT GATE)
La porte de sortie va prendre en compte l’entrée actuelle, la
mémoire à court terme précédente, et la nouvelle
mémoire à long terme pour produire la nouvelle mémoire à
court terme.
La mémoire à court terme précédente et l’entrée actuelle sont
passées dans une fonction sigmoïde pour créer le filtre.
34
LONG SHORT-TERM MEMORY (LSTM)
La nouvelle mémoire à long terme est ensuite
passée dans une fonction d’activation tanh :
35
GRU (GATED RECURRENT UNITS)
Une variante de l’architecture RNN introduite en 2014 par Cho et
al.Utilise des mécanismes de portes (gating) pour contrôler et gérer
le flux d’informations entre les cellules du réseau neuronal.
36
RESET GATE
La porte de réinitialisation contrôle
combien d'information du passé doit
être prise en compte dans la nouvelle
mémoire
Si : ≈ 0 → On oublie le passé → GRU
"réinitialise" comme
s’il commençait à zéro
Si ≈1→ On garde l'état précédent → la
mémoire précédente est importante
37
UPDATE GATE
Le but de la porte de mise à
jour est d’aider le modèle à
déterminer quelle quantité
d’informations passées,
stockées dans l’état caché
précédent, doit être conservée
pour les étapes futures.
38
COMBINING THE OUTPUTS
: Le but de cette opération est de
permettre à la porte de mise à
jour (Update) de déterminer
quelle portion des nouvelles
informations doit être stockée
dans l’état caché.
39