SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Réseaux de neurones récurrents
NATURAL LANGUAGE PROCESSING
(NLP)
juillet 2020
JAOUAD DABOUNOU
FST de Settat
Université Hassan 1er
RNN
2
Couche cachée 1 Couche de sortieCouche cachée 2Couche d’entrée
Réseau de neurones traditionnel
Exemple d’architecture :
J. DABOUNOU - FST DE SETTAT
Réseau de neurones traditionnel
3J. DABOUNOU - FST DE SETTAT
• Taille fixe de la couche d'entrée
• Taille fixe de la couche de sortie
• Architecture fixe du réseau
• Ne tiennent pas compte de l’ordre des données
• Non adaptées aux séries temporelles
Limites des architectures traditionnelles :
Introductionau RNN
4
Un réseau de neurones récurrent (RNN, recurrent neural network) est un type de réseau de neurones artificiels
principalement utilisé dans la reconnaissance automatique de la parole, dans l'écriture manuscrite et dans le
traitement automatique du langage naturel, en particulier dans la traduction automatique.
Les RNN sont conçus de manière à reconnaître les caractéristiques séquentielles et pour prédire le scénario
suivant le plus probable.
Ils se distinguent des réseaux de neurones traditionnels en ce sens qu'ils utilisent des boucles de rétroaction pour
traiter une séquence de données qui façonne le résultat final, lui-même pouvant être une séquence de données.
Ces boucles de rétroaction permettent aux informations de persister, effet souvent assimilé à la mémoire.
Les RNN sont ainsi en mesure de traiter des données séquentielles et temporelles.
J. DABOUNOU - FST DE SETTAT
Concept de mémoire
RNN et modèles de langue
5
On rappelle qu’un modèle de langue est :
• une représentation de la manière dont se comprend une langue, se construisent ses phrases et se
coordonnent ses mots.
• Un ensemble de régularités linguistiques et de structures latentes utilisées pour s’exprimer dans une langue,
porter et communiquer un sens.
• la manifestation de l’ensemble de normes, cultures et habitudes langagières à travers l’ordonnancement des
mots et phrases, partagées par une communauté qui s’exprime dans une langue donnée.
Les RNN sont utilisés dans des modèles de langue performants. Ils considèrent à la fois l'entrée textuelle actuelle
et une «unité de contexte» construite sur ce qu'ils ont vu précédemment pour prédire l’unité suivante.
J. DABOUNOU - FST DE SETTAT
Modèles de Langue traditionnels
Dans un modèle de langue, le sens d’un mot est lié au contexte de son utilisation. Un modèle de langue calcule alors
une probabilité pour une séquence de mots P(w1, . . . , wk). On a par exemple:
P(Omar enfant est un petit) < P(Omar est un petit enfant)
Les modèles vont se différencier par la manière dont ils calculent cette probabilité et par la longueur des séquences
considérées. Ainsi, traditionnellement, pour les unigrammes et bigrammes
p w2 w1 =
count(w1, w2)
count(w1)
, p w3 w1, w2 =
count(w1, w2, w3)
count(w1, w2)
Pour les n-grammes
p wn w1
n−1
=
count(w1
n
)
count(w1
n−1
)
Enfin :
p (w1
n
) = p(w1) p(w2|w`1) p(w3|w1
2
) … p(wn|w1
n−1
)
Les RNN améliorent cette prise en compte du contexte et acceptent des tailles de fenêtres variables pour le contexte.
J. DABOUNOU - FST DE SETTAT 6
Prédire le mot suivant dans une séquence
7
Marrakech est la capitale touristique du Maroc
J. DABOUNOU - FST DE SETTAT
Etant donnés ces mots Prédire le mot suivant
Les RNN (et des algorithmes à base de RNN) ont montré leur utilité dans de nombreuses applications. Ils prédisent
avec efficacité le mot suivant dans une phrase:
Traduction automatique
8J. DABOUNOU - FST DE SETTAT
La traduction automatique est basée principalement sur les réseaux de neurones récurrents.
Réseaux Récurrents
9
Un réseau récurrent parcourt successivement les entrées x1 à xT. T étant la longueur
de la séquence. À l’instant t, la tème cellule combine l’entrée courante xt avec l’état cachée
au pas précédent ht-1 pour calculer l’état ht.
J. DABOUNOU - FST DE SETTAT
xtht-1
ht
tanh
Vecteur d’entrée
à l'instant t
Vecteur de sortie
xt
𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐳t=Softmax
(𝐖hz 𝐡t)
Etat caché à l'instant t
Réseaux Récurrents
10J. DABOUNOU - FST DE SETTAT
xtht-1
ht
tanh
tanh
Vecteur d’entrée
à l'instant t
Vecteur de sortie
xt
𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐳t=Softmax
(𝐖hz 𝐡t)
Etat caché à l'instant t
𝐡t = 𝐭𝐚𝐧𝐡(𝐖h [𝐡t−1, 𝐱t])
[𝐡t−1, 𝐱t] tanh
𝐡t−1
𝐱t
ht
concaténation
Un réseau récurrent parcourt successivement les entrées x1 à xT. T étant la longueur
de la séquence. À l’instant t, la tème cellule combine l’entrée courante xt avec l’état cachée
au pas précédent ht-1 pour calculer l’état ht.
Réseaux Récurrents
11
Un réseaux récurrent parcourt successivement les entrées x1 à xT. À l’instant t, la tème cellule
combine l’entrée courante xt avec l’état cachée au pas précédent ht-1 pour calculer l’état ht.
J. DABOUNOU - FST DE SETTAT
xt
zt
ht
La ligne qui entoure la couche cachée du réseau de neurones
récurrent s'appelle la boucle temporelle.
Elle indique que la couche cachée génère non seulement
une sortie, mais que la sortie est renvoyée en tant qu'entrée
dans la même couche à l’instant suivant.
Réseaux Récurrents
12J. DABOUNOU - FST DE SETTAT
L’expression :
𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
est parfois remplacée par :
𝐡t = 𝐟 𝐖(𝐡t−1, 𝐱t) = 𝐭𝐚𝐧𝐡(𝐖h concat 𝐡t−1, 𝐱t )
Ou encore
𝐡t = 𝐟 𝐖(𝐡t−1, 𝐱t) = 𝐭𝐚𝐧𝐡(𝐖h [𝐡t−1, 𝐱t])
A noter que les paramètres 𝐖hh et 𝐖xh (ou 𝐖h) sont les mêmes à tous les instants t.
Pour t=0, on utilise un état caché initialisé aléatoirement.
zt est une distribution de probabilité sur le vocabulaire elle prédit un mot en sortie.
Parfois on omet la fonction softmax. La sortie devient simplement: 𝐳t=𝐖hz
t
𝐡t
Vecteur d’entrée
à l'instant t
Vecteur de sortie
xt
𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐳t=Softmax
(𝐖hz 𝐡t)
Etat caché à l'instant t
Dérouler un réseau récurrent
13
On propose souvent une présentation du réseau récurrent déroulé pour mieux comprendre son fonctionnement.
J. DABOUNOU - FST DE SETTAT
xt
zt
ht =
x0
z0
h0
x1
z1
h1
xt-1
zt-1
ht-1
xt
zt
ht
…
xT
zT
hT
…
14
Réseau RNN traditionnel
J. DABOUNOU - FST DE SETTAT
𝐡t = 𝐭𝐚𝐧𝐡(𝐖h [𝐡t−1, 𝐱t])
[𝐡t−1, 𝐱t] tanh
𝐡t−1
𝐱t
ht
xt-1
ht-1 ht
tanh
tanh
tanh
xt
ht+1
ht+2
xt+1
Un RNN peut ainsi être assimilé à un feedforward neural network comme le montre la figure suivante :
Prédire le mot suivant
15
Un réseau récurrent peut par exemple générer une séquence de mots à partir d’un premier mot entré,
« Marrakech » dans l’exemple suivant :
J. DABOUNOU - FST DE SETTAT
x0
z0
h0
x1
z1
h1
x4
z4
h4
x5
z5
h5
Marrakech
x2
z2
h2
x3
z3
h3
est
est
la
la
capitale
capitale
touristique
touristique
du
du
Maroc
Réseau récurrent pour la traduction
16
Un réseau récurrent peut aussi être utilisé dans la traduction automatique. Nous présentons ci-dessous une architecture
simplifiée basée sur un réseau récurrent. Nous allons revenir à cet exemple avec plus de détails (encodeur/décodeur,
modèle de traduction,…) dans de futures présentations.
J. DABOUNOU - FST DE SETTAT
x1
,
x0
Marrakech
x2
ville
x3
fantastique
x4
!
x5
z0
<eos>
Marrakech
z1
,
z2
fantastic
z3
city
z4
!
Les entrées du réseau sont une représentation vectorielle des mots (One-hot encoding, word embedding,…) et non les
mots eux-mêmes.
Fonction perte du réseau récurrent
17J. DABOUNOU - FST DE SETTAT
L
x0
z0
h0
x1
z1
h1
xt-1
zt-1
ht-1
xt
zt
ht
…
xT
zT
hT
…
𝐖hh 𝐖hh 𝐖hh 𝐖hh
𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh
𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz
L0 L1 Lt-1 Lt LT
On se place dans un problème de classification de séquences. A chaque pas de temps t, le réseau reçoit une entrée xt
et retourne une sortie zt. Soit yt la sortie souhaitée. Soit  le vecteur des paramètres du réseau obtenus à partir de
𝐖hh, 𝐖xh et 𝐖hz. Le modèle doit minimiser la log-vraisemblance négative :
LL  = −
t=1
𝐓
log P(𝐲t|𝐱t)
Pour illustrer les concepts introduits, on se place dans un problème de classification de séquences de mots. Pour
chaque pas de temps t=1,T, soient xt l'entrée du réseau, zt le mot retourné et yt le mot attendu.
On a ztRV où V est la taille du vocabulaire. A chaque pas de temps t=1,T (donc pour chaque mot) on calcule la
fonction de perte d'entropie croisée selon l’expression :
Lt  = −
k=1
𝐕
𝐲t,k log(𝐳t,k)
Fonction perte du réseau récurrent
18J. DABOUNOU - FST DE SETTAT
L
x0
z0
h0
x1
z1
h1
xt-1
zt-1
ht-1
xt
zt
ht
…
xT
zT
hT
…
𝐖hh 𝐖hh 𝐖hh 𝐖hh
𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh
𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz
L0 L1 Lt-1 Lt LT
Apprentissage du réseau récurrent
19
L’apprentissage se fait par rétropropagation du gradient de la fonction de perte sur une séquence ou sur un ensemble
de séquences (si taille du batch > 1) :
𝜕L 
𝜕
=
t=1
𝐓
𝜕Lt 
𝜕
J. DABOUNOU - FST DE SETTAT
x0
z0
h0
x1
z1
h1
xt-1
zt-1
ht-1
xt
zt
ht
…
xT
zT
hT
…
L0 L1 Lt-1 Lt LT
𝐖hh 𝐖hh 𝐖hh 𝐖hh
𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh
𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz
𝜕Lt 
𝜕
=
𝜕Lt 
𝜕ht
𝜕ht
𝜕
=
𝜕Lt 
𝜕𝐳t
𝜕𝐳t
𝜕ht
𝜕ht
𝜕
Lt  = −
k=1
𝐕
𝐲t,k log(𝐳t,k)
𝐳t=Softmax (𝐖hz 𝐡t)
Apprentissage du réseau récurrent
20
L’apprentissage se fait par rétropropagation du gradient de la fonction de perte sur une séquence ou sur un ensemble
de séquences (si taille du batch > 1) :
𝜕L 
𝜕
=
t=1
𝐓
𝜕Lt 
𝜕
J. DABOUNOU - FST DE SETTAT
x0
z0
h0
x1
z1
h1
xt-1
zt-1
ht-1
xt
zt
ht
…
xT
zT
hT
…
L0 L1 Lt-1 Lt LT
𝐖hh 𝐖hh 𝐖hh 𝐖hh
𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh
𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz
𝜕Lt 
𝜕
=
𝜕Lt 
𝜕ht
𝜕ht
𝜕
=
𝜕Lt 
𝜕𝐳t
𝜕𝐳t
𝜕ht
𝜕ht
𝜕
𝜕ht
𝜕
=
𝜕ht
𝜕ht−1
𝜕ht−1
𝜕ht−2
…
𝜕h2
𝜕h1
𝜕h1
𝜕h0
𝜕h0
𝜕
Apprentissage du réseau récurrent
21
L’apprentissage se fait par rétropropagation du gradient de la fonction de perte sur une séquence ou sur un ensemble
de séquences (si taille du batch > 1) :
𝜕L 
𝜕
=
t=1
𝐓
𝜕Lt 
𝜕
J. DABOUNOU - FST DE SETTAT
x0
z0
h0
x1
z1
h1
xt-1
zt-1
ht-1
xt
zt
ht
…
xT
zT
hT
…
L0 L1 Lt-1 Lt LT
…
𝜕Lt
𝜕ht𝜕ht
𝜕ht−1
𝜕ht−1
𝜕ht−2
𝜕h2
𝜕h1
𝜕h1
𝜕h0
𝐖hh 𝐖hh 𝐖hh 𝐖hh
𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh
𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz
On parle alors de rétropropagation
à travers le temps (Back prop
through time BPTT).
𝜕Lt 
𝜕
=
𝜕Lt 
𝜕ht
𝜕ht
𝜕
=
𝜕Lt 
𝜕𝐳t
𝜕𝐳t
𝜕ht
𝜕ht
𝜕
=
𝜕Lt 
𝜕𝐳t
𝜕𝐳t
𝜕ht
𝜕ht
𝜕ht−1
𝜕ht−1
𝜕ht−2
…
𝜕h2
𝜕h1
𝜕h1
𝜕h0
𝜕h0
𝜕
Vanishing Gradients du RNN
22
On a :
𝐡t = tanh(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
On pose t = 𝐖hh 𝐡t−1 + 𝐖xh 𝐱t, ainsi 𝐡t = tanh(t)
𝜕𝐡t
𝜕𝐡t−1
=
𝜕𝐡t
𝜕t
𝜕t
𝜕𝐡t−1
= diag(tanh′(t))𝐖hh
tanh’(x) = 1 – tanh2
(x)
est bornée par α=1. Si on avait choisi une sigmoïde  à la place de tanh, alors ’ serait bornée par α=0.25 par exemple.
On peut ainsi écrire :
𝜕ht
𝜕ht−1
…
𝜕h1
𝜕h0
 (α 𝐖hh )
t
J. DABOUNOU - FST DE SETTAT
Vanishing Gradients du RNN
23
On a :
𝜕Lt 
𝜕
=
𝜕Lt 
𝜕ht
𝜕ht
𝜕
=
𝜕Lt 
𝜕𝐳t
𝜕𝐳t
𝜕ht
𝜕ht
𝜕
=
𝜕Lt 
𝜕𝐳t
𝜕𝐳t
𝜕ht
𝜕ht
𝜕ht−1
𝜕ht−1
𝜕ht−2
…
𝜕h2
𝜕h1
𝜕h1
𝜕h0
𝜕h0
𝜕
𝜕ht
𝜕ht−1
𝜕ht−1
𝜕ht−2
…
𝜕h2
𝜕h1
𝜕h1
𝜕h0
 (α 𝐖hh )
t
Deux situations se présentent :
1. α 𝐖hh < 1, alors il y a disparition du gradient (vanishing gradient):
Donc
𝜕Lt 
𝜕
devient presque nul surtout lorsque T est grand (séquence longue)
2. α 𝐖hh > 1, alors il y a explosion du gradient (exploding gradient).
Dans les deux cas, le réseau récurrent trouve des difficultés à apprendre.
J. DABOUNOU - FST DE SETTAT
Marrakech est la capitale touristique du
Maroc avec ses bâtiments généralement de couleur rouge.
Limites des réseaux RNN
24J. DABOUNOU - FST DE SETTAT
Etant donnés ces mots Prédire le mot suivant
Les RNN ne permettent pas de mémoriser les dépendances à long ou très long terme. Par exemple, dans la phrase
suivante, le réseau récurrent risque de ne pas considérer le lien entre les mots « Marrakech » et « rouge » :
Solutions au Pb du vanishing gradient
25J. DABOUNOU - FST DE SETTAT
Pour éviter la disparition ou l’explosion du gradient :
• Arrêter la rétropropagation après K termes, même si cela ne permet pas de mettre à jour tous les
poids,
• Maintenir le gradient dans un intervalle fixé à l’avance,
• Pénaliser ou appliquer des techniques pour ajuster le gradient
Reste que les LSTM sont considérés comme incontournables pour la mise en œuvre des RNN. Ces
réseaux seront décrits dans une future présentation.
Réseaux LSTM
26J. DABOUNOU - FST DE SETTAT
Les réseaux LSTM (Long Short Term Memory ou mémoire à long terme et à court terme ) sont un type spécial de
RNN, capable d'apprendre les dépendances à long terme. Ils ont été introduits par Hochreiter et Schmidhuber en
1997, et ont été par la suite affinés et popularisés à travers plusieurs travaux. Ils fonctionnent extrêmement bien sur
une grande variété de problèmes et sont maintenant largement utilisés.
xt
ht-1
ht
ht
ct-1 + ctx
 
x
tanh
tanh
x

forget
gate
input
gate
output
gate
Nous allons présenter les LSTM dans une suite
de transformations des réseaux RNN standard.
Nous utiliserons alors les symboles suivants(*) :
(*)http://colah.github.io/posts/2015-08-Understanding-LSTMs/
27
RNN standard
J. DABOUNOU - FST DE SETTAT
𝐡t = 𝐭𝐚𝐧𝐡(𝐖h [𝐡t−1, 𝐱t])
𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
xt
ht-1
ht
tanh
[𝐡t−1, 𝐱t] tanh
𝐡t−1
𝐱t
ht
tanh
Pour un RNN standard, l'état caché est actualisé par la formule :
tanh
ht
xt
ht-1 ht
tanh est utilisée pour aider à réguler les valeurs circulant à
travers le réseau. La fonction tanh écrase les valeurs pour
qu'elles soient toujours comprises entre -1 et 1.
Réseaux RNN
28J. DABOUNOU - FST DE SETTAT
tanh
ht
xt
tanh
ht+1
xt+1
tanh
ht-1
xt-1
Tous les réseaux de neurones récurrents ont la forme d'une chaîne de modules (ou cellules) répétitifs de réseau de
neurones. Dans les RNN standard, ce module répétitif aura une structure très simple, telle qu'une seule couche de
tanh.
Réseaux LSTM
29J. DABOUNOU - FST DE SETTAT
xt+1
ht+1
+x
 
x
tanh
tanh
x

xt
ht
+x
 
x
tanh
tanh
x

xt-1
ht-1
+x
 
x
tanh
tanh
x

Les LSTM ont également cette structure en chaîne, sauf que le module répétitif au lieu d'avoir une seule couche de
réseau de neurones dispose de quatre, qui ont des rôles spéciaux que nous allons détailler par la suite.
Cellule RNN
30J. DABOUNOU - FST DE SETTAT
𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
Le plus souvent ce réseau ne gère pas bien les
dépendances à long terme à cause de la
disparition du gradient (vanishing gradient)
comme conséquence de l'utilisation de tanh.
tanh
ht
xt
ht-1 ht
Etat caché
= sortie
sortie
entrée
Nous allons présenter les LSTM dans une suite de transformations du réseau RNN standard. L'état caché est
actualisé par la formule :
Equations
Construire la cellule LSTM
31J. DABOUNOU - FST DE SETTAT
𝐜t = 𝐜t−1 + 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐡t = 𝐭𝐚𝐧𝐡(𝐜t)
Cette fois, on est assuré que l'état caché ht calculé
à l'instant t tient compte de tous les états cachés
précédents.
tanh
ht
xt
ht
ct-1 ct
tanh
+
ht-1
Les LSTM sont explicitement conçus pour éviter le problème de dépendance à long terme. On introduit une nouvelle
variable ct qui permettra de se souvenir des informations pendant de longues périodes.
La mise à jour des variables se fera alors selon les équations suivantes :
Equations :
Construire la cellule LSTM
32J. DABOUNOU - FST DE SETTAT
𝐜t = 𝐜t−1 + 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐡t = 𝐭𝐚𝐧𝐡(𝐜t)
tanh
ht
xt
ht
ct-1 ct
tanh
+
ht-1
Les LSTM sont explicitement conçus pour éviter le problème de dépendance à long terme. On introduit une nouvelle
variable ct qui permettra de se souvenir des informations pendant de longues périodes.
ct est appelée état de la cellule.
La mise à jour des variables se fera alors selon les équations suivantes :
Equations :
Inconvénient :
Le passé est toujours aussi important que le présent.
Ce qui n'est pas pertinent.
Solution idéale :
Permettre au réseau de garder ou d'oublier les informations
du passé selon qu'elles soient déterminantes ou pas.
Construire la cellule LSTM
33J. DABOUNOU - FST DE SETTAT
𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t)
𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐡t = 𝐭𝐚𝐧𝐡(𝐜t)
ht
tanh
xt
ct-1

ct
ht-1 ht
x +
tanh
La solution adoptée est de pondérer la mémoire du passé représentée par ct par un réseau de neurones avec une seule
couche sigmoïde. Ce réseau va apprendre à oublier les informations non pertinentes. Il est appelé porte d'oubli ou
forget gate.
Equations :
 x =
1
1 + e−x
0   x  1
ht
tanh
xt
ct-1

ct
ht-1 ht
x +
tanh
34
Construire la cellule LSTM
J. DABOUNOU - FST DE SETTAT
xt
ht-1 ft

[𝐡t−1, 𝐱t] 
𝐡t−1
𝐱t
ft

𝐟t ∗ 𝐜t−1
∗
∗
∗
∗
𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t)
𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐡t = 𝐭𝐚𝐧𝐡(𝐜t)
Equations :
0.2
-0.4
0.75
0.83
ct-1=
0.9
0.01
0.3
0.95
ft= ct=
0.18
0.00
0.23
0.79
𝐟t ∗ 𝐜t−1
oubli
Construire la cellule LSTM
35J. DABOUNOU - FST DE SETTAT
xt
ht-1
ct-1
 
x
tanh
ct
ht
ht
+x
tanh
𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t)
𝐢t = (𝐖hi 𝐡t−1 + 𝐖xi 𝐱t)
𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐢t ∗ 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐡t = 𝐭𝐚𝐧𝐡(𝐜t)
Une autre porte est ajoutée pour pondérer la mise à jour (additive) de l'état de la cellule ct par la sortie tanh prenant
comme entrée ht-1 et xt. Cette porte qui s'appelle input gate va apprendre à utiliser, à ignorer ou à moduler les
informations entrées selon leur importance.
Equations :
-0.77
-0.03
0.01
0.00
Construire la cellule LSTM
36J. DABOUNOU - FST DE SETTAT
xt
ht-1
ht
ht
ct-1 + ctx
 
x
tanh
tanh
x

𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t)
𝐢t = (𝐖hi 𝐡t−1 + 𝐖xi 𝐱t)
𝐨t = (𝐖ho 𝐡t−1 + 𝐖xo 𝐱t)
𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐢t ∗ 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐡t = 𝐨t ∗ 𝐭𝐚𝐧𝐡(𝐜t)
De la même manière, une porte de sortie est ajoutée pour pondérer la mise à jour de l'état caché ht. Cela permet de
décider quelles informations l'état caché ht doit porter. Cette porte qui s'appelle output gate.
Equations :
-0.8
-0.3
0.64
-0.01
𝐭𝐚𝐧𝐡(𝐜t) =
0.96
0.1
0.01
0.38
ot= ht=
non retenu
retenu
Etat caché ht
LSTM, une synthèse
37J. DABOUNOU - FST DE SETTAT
Forget gate :
Dans le cas extrême, indique à l'état de la cellule (mémoire à long-terme) les informations à oublier (multiplication
par 0) ou à conserver (multiplication par 1).
Input gate :
déterminer quelles informations produite par la couche tanh doivent entrer dans l'état de la cellule (donc à
sauvegarder dans la mémoire à long terme).
Output gate :
Indique les informations qui doivent passer au prochain état caché ht.
Calcul de ct et de ht :
𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐢t ∗ 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t)
𝐡t = 𝐨t ∗ 𝐭𝐚𝐧𝐡(𝐜t)
L'état de la cellule ct parcourt toute la chaîne du réseau avec
des interactions linéaires mineures, ce qui leur permet de
transporter efficacement les informations.
Les portes (gates) permettent de réguler intelligemment ces informations. xt
ht-1
ht
ht
ct-1 + ctx
 
x
tanh
tanh
x

forget
gate
input
gate
output
gate
𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t)
𝐢t = (𝐖hi 𝐡t−1 + 𝐖xi 𝐱t)
𝐨t = (𝐖ho 𝐡t−1 + 𝐖xo 𝐱t)
Réseau LSTM
38J. DABOUNOU - FST DE SETTAT
xt+1
ht+1
+x
 
x
tanh
tanh
x

xt
ht
+x
 
x
tanh
tanh
x

xt-1
ht-1
+x
 
x
tanh
tanh
x


Weitere ähnliche Inhalte

Was ist angesagt?

Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNN
SALMARACHIDI1
 

Was ist angesagt? (20)

Présentation pfe
Présentation pfePrésentation pfe
Présentation pfe
 
Cours rn 2006
Cours rn 2006Cours rn 2006
Cours rn 2006
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
RNN avec mécanisme d'attention
RNN avec mécanisme d'attentionRNN avec mécanisme d'attention
RNN avec mécanisme d'attention
 
Perceptron monocouche en français
Perceptron monocouche en françaisPerceptron monocouche en français
Perceptron monocouche en français
 
classification des images couleurs par un réseau de neurone quaternionique ré...
classification des images couleurs par un réseau de neurone quaternionique ré...classification des images couleurs par un réseau de neurone quaternionique ré...
classification des images couleurs par un réseau de neurone quaternionique ré...
 
Voyage dans le monde du Deep Learning
Voyage dans le monde du Deep LearningVoyage dans le monde du Deep Learning
Voyage dans le monde du Deep Learning
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
Les reseaux profonds
Les reseaux profondsLes reseaux profonds
Les reseaux profonds
 
Ia project Apprentissage Automatique
Ia project Apprentissage AutomatiqueIa project Apprentissage Automatique
Ia project Apprentissage Automatique
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 
5.5 Clustering
5.5 Clustering5.5 Clustering
5.5 Clustering
 
Intelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielleIntelligence Artificielle : Introduction à l'intelligence artificielle
Intelligence Artificielle : Introduction à l'intelligence artificielle
 
Deep learning
Deep learningDeep learning
Deep learning
 
Deep Learning: Recurrent Neural Network (Chapter 10)
Deep Learning: Recurrent Neural Network (Chapter 10) Deep Learning: Recurrent Neural Network (Chapter 10)
Deep Learning: Recurrent Neural Network (Chapter 10)
 
Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNN
 
Agents intelligents
Agents intelligentsAgents intelligents
Agents intelligents
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Algorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learningAlgorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learning
 

Mehr von Jaouad Dabounou

Mehr von Jaouad Dabounou (18)

اللغة والذكاء الاصطناعي.pdf
اللغة والذكاء الاصطناعي.pdfاللغة والذكاء الاصطناعي.pdf
اللغة والذكاء الاصطناعي.pdf
 
Mrbml004 : Introduction to Information Theory for Machine Learning
Mrbml004 : Introduction to Information Theory for Machine LearningMrbml004 : Introduction to Information Theory for Machine Learning
Mrbml004 : Introduction to Information Theory for Machine Learning
 
Projection sur les ensembles convexes fermés
Projection sur les ensembles convexes fermésProjection sur les ensembles convexes fermés
Projection sur les ensembles convexes fermés
 
Projection d’un point sur un ensemble
Projection d’un point sur un ensembleProjection d’un point sur un ensemble
Projection d’un point sur un ensemble
 
Fonction distance à un ensemble
Fonction distance à un ensembleFonction distance à un ensemble
Fonction distance à un ensemble
 
Théorèmes de Carathéodory
Théorèmes de CarathéodoryThéorèmes de Carathéodory
Théorèmes de Carathéodory
 
Intérieurs relatifs d’ensembles convexes
Intérieurs relatifs d’ensembles convexesIntérieurs relatifs d’ensembles convexes
Intérieurs relatifs d’ensembles convexes
 
Topologie des ensembles convexes
Topologie des ensembles convexesTopologie des ensembles convexes
Topologie des ensembles convexes
 
Analyse Convexe TD – Série 1 avec correction
Analyse Convexe TD – Série 1 avec correctionAnalyse Convexe TD – Série 1 avec correction
Analyse Convexe TD – Série 1 avec correction
 
Modèles de langue : Ngrammes
Modèles de langue : NgrammesModèles de langue : Ngrammes
Modèles de langue : Ngrammes
 
Analyse Factorielle des Correspondances
Analyse Factorielle des CorrespondancesAnalyse Factorielle des Correspondances
Analyse Factorielle des Correspondances
 
Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes Principales
 
W2 vec001
W2 vec001W2 vec001
W2 vec001
 
Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes Principales
 
Analyse numérique interpolation
Analyse numérique interpolationAnalyse numérique interpolation
Analyse numérique interpolation
 
Polycopie Analyse Numérique
Polycopie Analyse NumériquePolycopie Analyse Numérique
Polycopie Analyse Numérique
 
Sélection de contrôles avec correction
Sélection de contrôles avec correctionSélection de contrôles avec correction
Sélection de contrôles avec correction
 
Dérivation et Intégration numériques
Dérivation et Intégration numériquesDérivation et Intégration numériques
Dérivation et Intégration numériques
 

Réseaux de neurones récurrents et LSTM

  • 1. Réseaux de neurones récurrents NATURAL LANGUAGE PROCESSING (NLP) juillet 2020 JAOUAD DABOUNOU FST de Settat Université Hassan 1er RNN
  • 2. 2 Couche cachée 1 Couche de sortieCouche cachée 2Couche d’entrée Réseau de neurones traditionnel Exemple d’architecture : J. DABOUNOU - FST DE SETTAT
  • 3. Réseau de neurones traditionnel 3J. DABOUNOU - FST DE SETTAT • Taille fixe de la couche d'entrée • Taille fixe de la couche de sortie • Architecture fixe du réseau • Ne tiennent pas compte de l’ordre des données • Non adaptées aux séries temporelles Limites des architectures traditionnelles :
  • 4. Introductionau RNN 4 Un réseau de neurones récurrent (RNN, recurrent neural network) est un type de réseau de neurones artificiels principalement utilisé dans la reconnaissance automatique de la parole, dans l'écriture manuscrite et dans le traitement automatique du langage naturel, en particulier dans la traduction automatique. Les RNN sont conçus de manière à reconnaître les caractéristiques séquentielles et pour prédire le scénario suivant le plus probable. Ils se distinguent des réseaux de neurones traditionnels en ce sens qu'ils utilisent des boucles de rétroaction pour traiter une séquence de données qui façonne le résultat final, lui-même pouvant être une séquence de données. Ces boucles de rétroaction permettent aux informations de persister, effet souvent assimilé à la mémoire. Les RNN sont ainsi en mesure de traiter des données séquentielles et temporelles. J. DABOUNOU - FST DE SETTAT Concept de mémoire
  • 5. RNN et modèles de langue 5 On rappelle qu’un modèle de langue est : • une représentation de la manière dont se comprend une langue, se construisent ses phrases et se coordonnent ses mots. • Un ensemble de régularités linguistiques et de structures latentes utilisées pour s’exprimer dans une langue, porter et communiquer un sens. • la manifestation de l’ensemble de normes, cultures et habitudes langagières à travers l’ordonnancement des mots et phrases, partagées par une communauté qui s’exprime dans une langue donnée. Les RNN sont utilisés dans des modèles de langue performants. Ils considèrent à la fois l'entrée textuelle actuelle et une «unité de contexte» construite sur ce qu'ils ont vu précédemment pour prédire l’unité suivante. J. DABOUNOU - FST DE SETTAT
  • 6. Modèles de Langue traditionnels Dans un modèle de langue, le sens d’un mot est lié au contexte de son utilisation. Un modèle de langue calcule alors une probabilité pour une séquence de mots P(w1, . . . , wk). On a par exemple: P(Omar enfant est un petit) < P(Omar est un petit enfant) Les modèles vont se différencier par la manière dont ils calculent cette probabilité et par la longueur des séquences considérées. Ainsi, traditionnellement, pour les unigrammes et bigrammes p w2 w1 = count(w1, w2) count(w1) , p w3 w1, w2 = count(w1, w2, w3) count(w1, w2) Pour les n-grammes p wn w1 n−1 = count(w1 n ) count(w1 n−1 ) Enfin : p (w1 n ) = p(w1) p(w2|w`1) p(w3|w1 2 ) … p(wn|w1 n−1 ) Les RNN améliorent cette prise en compte du contexte et acceptent des tailles de fenêtres variables pour le contexte. J. DABOUNOU - FST DE SETTAT 6
  • 7. Prédire le mot suivant dans une séquence 7 Marrakech est la capitale touristique du Maroc J. DABOUNOU - FST DE SETTAT Etant donnés ces mots Prédire le mot suivant Les RNN (et des algorithmes à base de RNN) ont montré leur utilité dans de nombreuses applications. Ils prédisent avec efficacité le mot suivant dans une phrase:
  • 8. Traduction automatique 8J. DABOUNOU - FST DE SETTAT La traduction automatique est basée principalement sur les réseaux de neurones récurrents.
  • 9. Réseaux Récurrents 9 Un réseau récurrent parcourt successivement les entrées x1 à xT. T étant la longueur de la séquence. À l’instant t, la tème cellule combine l’entrée courante xt avec l’état cachée au pas précédent ht-1 pour calculer l’état ht. J. DABOUNOU - FST DE SETTAT xtht-1 ht tanh Vecteur d’entrée à l'instant t Vecteur de sortie xt 𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐳t=Softmax (𝐖hz 𝐡t) Etat caché à l'instant t
  • 10. Réseaux Récurrents 10J. DABOUNOU - FST DE SETTAT xtht-1 ht tanh tanh Vecteur d’entrée à l'instant t Vecteur de sortie xt 𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐳t=Softmax (𝐖hz 𝐡t) Etat caché à l'instant t 𝐡t = 𝐭𝐚𝐧𝐡(𝐖h [𝐡t−1, 𝐱t]) [𝐡t−1, 𝐱t] tanh 𝐡t−1 𝐱t ht concaténation Un réseau récurrent parcourt successivement les entrées x1 à xT. T étant la longueur de la séquence. À l’instant t, la tème cellule combine l’entrée courante xt avec l’état cachée au pas précédent ht-1 pour calculer l’état ht.
  • 11. Réseaux Récurrents 11 Un réseaux récurrent parcourt successivement les entrées x1 à xT. À l’instant t, la tème cellule combine l’entrée courante xt avec l’état cachée au pas précédent ht-1 pour calculer l’état ht. J. DABOUNOU - FST DE SETTAT xt zt ht La ligne qui entoure la couche cachée du réseau de neurones récurrent s'appelle la boucle temporelle. Elle indique que la couche cachée génère non seulement une sortie, mais que la sortie est renvoyée en tant qu'entrée dans la même couche à l’instant suivant.
  • 12. Réseaux Récurrents 12J. DABOUNOU - FST DE SETTAT L’expression : 𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) est parfois remplacée par : 𝐡t = 𝐟 𝐖(𝐡t−1, 𝐱t) = 𝐭𝐚𝐧𝐡(𝐖h concat 𝐡t−1, 𝐱t ) Ou encore 𝐡t = 𝐟 𝐖(𝐡t−1, 𝐱t) = 𝐭𝐚𝐧𝐡(𝐖h [𝐡t−1, 𝐱t]) A noter que les paramètres 𝐖hh et 𝐖xh (ou 𝐖h) sont les mêmes à tous les instants t. Pour t=0, on utilise un état caché initialisé aléatoirement. zt est une distribution de probabilité sur le vocabulaire elle prédit un mot en sortie. Parfois on omet la fonction softmax. La sortie devient simplement: 𝐳t=𝐖hz t 𝐡t Vecteur d’entrée à l'instant t Vecteur de sortie xt 𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐳t=Softmax (𝐖hz 𝐡t) Etat caché à l'instant t
  • 13. Dérouler un réseau récurrent 13 On propose souvent une présentation du réseau récurrent déroulé pour mieux comprendre son fonctionnement. J. DABOUNOU - FST DE SETTAT xt zt ht = x0 z0 h0 x1 z1 h1 xt-1 zt-1 ht-1 xt zt ht … xT zT hT …
  • 14. 14 Réseau RNN traditionnel J. DABOUNOU - FST DE SETTAT 𝐡t = 𝐭𝐚𝐧𝐡(𝐖h [𝐡t−1, 𝐱t]) [𝐡t−1, 𝐱t] tanh 𝐡t−1 𝐱t ht xt-1 ht-1 ht tanh tanh tanh xt ht+1 ht+2 xt+1 Un RNN peut ainsi être assimilé à un feedforward neural network comme le montre la figure suivante :
  • 15. Prédire le mot suivant 15 Un réseau récurrent peut par exemple générer une séquence de mots à partir d’un premier mot entré, « Marrakech » dans l’exemple suivant : J. DABOUNOU - FST DE SETTAT x0 z0 h0 x1 z1 h1 x4 z4 h4 x5 z5 h5 Marrakech x2 z2 h2 x3 z3 h3 est est la la capitale capitale touristique touristique du du Maroc
  • 16. Réseau récurrent pour la traduction 16 Un réseau récurrent peut aussi être utilisé dans la traduction automatique. Nous présentons ci-dessous une architecture simplifiée basée sur un réseau récurrent. Nous allons revenir à cet exemple avec plus de détails (encodeur/décodeur, modèle de traduction,…) dans de futures présentations. J. DABOUNOU - FST DE SETTAT x1 , x0 Marrakech x2 ville x3 fantastique x4 ! x5 z0 <eos> Marrakech z1 , z2 fantastic z3 city z4 ! Les entrées du réseau sont une représentation vectorielle des mots (One-hot encoding, word embedding,…) et non les mots eux-mêmes.
  • 17. Fonction perte du réseau récurrent 17J. DABOUNOU - FST DE SETTAT L x0 z0 h0 x1 z1 h1 xt-1 zt-1 ht-1 xt zt ht … xT zT hT … 𝐖hh 𝐖hh 𝐖hh 𝐖hh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz L0 L1 Lt-1 Lt LT On se place dans un problème de classification de séquences. A chaque pas de temps t, le réseau reçoit une entrée xt et retourne une sortie zt. Soit yt la sortie souhaitée. Soit  le vecteur des paramètres du réseau obtenus à partir de 𝐖hh, 𝐖xh et 𝐖hz. Le modèle doit minimiser la log-vraisemblance négative : LL  = − t=1 𝐓 log P(𝐲t|𝐱t)
  • 18. Pour illustrer les concepts introduits, on se place dans un problème de classification de séquences de mots. Pour chaque pas de temps t=1,T, soient xt l'entrée du réseau, zt le mot retourné et yt le mot attendu. On a ztRV où V est la taille du vocabulaire. A chaque pas de temps t=1,T (donc pour chaque mot) on calcule la fonction de perte d'entropie croisée selon l’expression : Lt  = − k=1 𝐕 𝐲t,k log(𝐳t,k) Fonction perte du réseau récurrent 18J. DABOUNOU - FST DE SETTAT L x0 z0 h0 x1 z1 h1 xt-1 zt-1 ht-1 xt zt ht … xT zT hT … 𝐖hh 𝐖hh 𝐖hh 𝐖hh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz L0 L1 Lt-1 Lt LT
  • 19. Apprentissage du réseau récurrent 19 L’apprentissage se fait par rétropropagation du gradient de la fonction de perte sur une séquence ou sur un ensemble de séquences (si taille du batch > 1) : 𝜕L  𝜕 = t=1 𝐓 𝜕Lt  𝜕 J. DABOUNOU - FST DE SETTAT x0 z0 h0 x1 z1 h1 xt-1 zt-1 ht-1 xt zt ht … xT zT hT … L0 L1 Lt-1 Lt LT 𝐖hh 𝐖hh 𝐖hh 𝐖hh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz 𝜕Lt  𝜕 = 𝜕Lt  𝜕ht 𝜕ht 𝜕 = 𝜕Lt  𝜕𝐳t 𝜕𝐳t 𝜕ht 𝜕ht 𝜕 Lt  = − k=1 𝐕 𝐲t,k log(𝐳t,k) 𝐳t=Softmax (𝐖hz 𝐡t)
  • 20. Apprentissage du réseau récurrent 20 L’apprentissage se fait par rétropropagation du gradient de la fonction de perte sur une séquence ou sur un ensemble de séquences (si taille du batch > 1) : 𝜕L  𝜕 = t=1 𝐓 𝜕Lt  𝜕 J. DABOUNOU - FST DE SETTAT x0 z0 h0 x1 z1 h1 xt-1 zt-1 ht-1 xt zt ht … xT zT hT … L0 L1 Lt-1 Lt LT 𝐖hh 𝐖hh 𝐖hh 𝐖hh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz 𝜕Lt  𝜕 = 𝜕Lt  𝜕ht 𝜕ht 𝜕 = 𝜕Lt  𝜕𝐳t 𝜕𝐳t 𝜕ht 𝜕ht 𝜕 𝜕ht 𝜕 = 𝜕ht 𝜕ht−1 𝜕ht−1 𝜕ht−2 … 𝜕h2 𝜕h1 𝜕h1 𝜕h0 𝜕h0 𝜕
  • 21. Apprentissage du réseau récurrent 21 L’apprentissage se fait par rétropropagation du gradient de la fonction de perte sur une séquence ou sur un ensemble de séquences (si taille du batch > 1) : 𝜕L  𝜕 = t=1 𝐓 𝜕Lt  𝜕 J. DABOUNOU - FST DE SETTAT x0 z0 h0 x1 z1 h1 xt-1 zt-1 ht-1 xt zt ht … xT zT hT … L0 L1 Lt-1 Lt LT … 𝜕Lt 𝜕ht𝜕ht 𝜕ht−1 𝜕ht−1 𝜕ht−2 𝜕h2 𝜕h1 𝜕h1 𝜕h0 𝐖hh 𝐖hh 𝐖hh 𝐖hh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖xh 𝐖hz 𝐖hz 𝐖hz 𝐖hz𝐖hz On parle alors de rétropropagation à travers le temps (Back prop through time BPTT). 𝜕Lt  𝜕 = 𝜕Lt  𝜕ht 𝜕ht 𝜕 = 𝜕Lt  𝜕𝐳t 𝜕𝐳t 𝜕ht 𝜕ht 𝜕 = 𝜕Lt  𝜕𝐳t 𝜕𝐳t 𝜕ht 𝜕ht 𝜕ht−1 𝜕ht−1 𝜕ht−2 … 𝜕h2 𝜕h1 𝜕h1 𝜕h0 𝜕h0 𝜕
  • 22. Vanishing Gradients du RNN 22 On a : 𝐡t = tanh(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) On pose t = 𝐖hh 𝐡t−1 + 𝐖xh 𝐱t, ainsi 𝐡t = tanh(t) 𝜕𝐡t 𝜕𝐡t−1 = 𝜕𝐡t 𝜕t 𝜕t 𝜕𝐡t−1 = diag(tanh′(t))𝐖hh tanh’(x) = 1 – tanh2 (x) est bornée par α=1. Si on avait choisi une sigmoïde  à la place de tanh, alors ’ serait bornée par α=0.25 par exemple. On peut ainsi écrire : 𝜕ht 𝜕ht−1 … 𝜕h1 𝜕h0  (α 𝐖hh ) t J. DABOUNOU - FST DE SETTAT
  • 23. Vanishing Gradients du RNN 23 On a : 𝜕Lt  𝜕 = 𝜕Lt  𝜕ht 𝜕ht 𝜕 = 𝜕Lt  𝜕𝐳t 𝜕𝐳t 𝜕ht 𝜕ht 𝜕 = 𝜕Lt  𝜕𝐳t 𝜕𝐳t 𝜕ht 𝜕ht 𝜕ht−1 𝜕ht−1 𝜕ht−2 … 𝜕h2 𝜕h1 𝜕h1 𝜕h0 𝜕h0 𝜕 𝜕ht 𝜕ht−1 𝜕ht−1 𝜕ht−2 … 𝜕h2 𝜕h1 𝜕h1 𝜕h0  (α 𝐖hh ) t Deux situations se présentent : 1. α 𝐖hh < 1, alors il y a disparition du gradient (vanishing gradient): Donc 𝜕Lt  𝜕 devient presque nul surtout lorsque T est grand (séquence longue) 2. α 𝐖hh > 1, alors il y a explosion du gradient (exploding gradient). Dans les deux cas, le réseau récurrent trouve des difficultés à apprendre. J. DABOUNOU - FST DE SETTAT
  • 24. Marrakech est la capitale touristique du Maroc avec ses bâtiments généralement de couleur rouge. Limites des réseaux RNN 24J. DABOUNOU - FST DE SETTAT Etant donnés ces mots Prédire le mot suivant Les RNN ne permettent pas de mémoriser les dépendances à long ou très long terme. Par exemple, dans la phrase suivante, le réseau récurrent risque de ne pas considérer le lien entre les mots « Marrakech » et « rouge » :
  • 25. Solutions au Pb du vanishing gradient 25J. DABOUNOU - FST DE SETTAT Pour éviter la disparition ou l’explosion du gradient : • Arrêter la rétropropagation après K termes, même si cela ne permet pas de mettre à jour tous les poids, • Maintenir le gradient dans un intervalle fixé à l’avance, • Pénaliser ou appliquer des techniques pour ajuster le gradient Reste que les LSTM sont considérés comme incontournables pour la mise en œuvre des RNN. Ces réseaux seront décrits dans une future présentation.
  • 26. Réseaux LSTM 26J. DABOUNOU - FST DE SETTAT Les réseaux LSTM (Long Short Term Memory ou mémoire à long terme et à court terme ) sont un type spécial de RNN, capable d'apprendre les dépendances à long terme. Ils ont été introduits par Hochreiter et Schmidhuber en 1997, et ont été par la suite affinés et popularisés à travers plusieurs travaux. Ils fonctionnent extrêmement bien sur une grande variété de problèmes et sont maintenant largement utilisés. xt ht-1 ht ht ct-1 + ctx   x tanh tanh x  forget gate input gate output gate Nous allons présenter les LSTM dans une suite de transformations des réseaux RNN standard. Nous utiliserons alors les symboles suivants(*) : (*)http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  • 27. 27 RNN standard J. DABOUNOU - FST DE SETTAT 𝐡t = 𝐭𝐚𝐧𝐡(𝐖h [𝐡t−1, 𝐱t]) 𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) xt ht-1 ht tanh [𝐡t−1, 𝐱t] tanh 𝐡t−1 𝐱t ht tanh Pour un RNN standard, l'état caché est actualisé par la formule : tanh ht xt ht-1 ht tanh est utilisée pour aider à réguler les valeurs circulant à travers le réseau. La fonction tanh écrase les valeurs pour qu'elles soient toujours comprises entre -1 et 1.
  • 28. Réseaux RNN 28J. DABOUNOU - FST DE SETTAT tanh ht xt tanh ht+1 xt+1 tanh ht-1 xt-1 Tous les réseaux de neurones récurrents ont la forme d'une chaîne de modules (ou cellules) répétitifs de réseau de neurones. Dans les RNN standard, ce module répétitif aura une structure très simple, telle qu'une seule couche de tanh.
  • 29. Réseaux LSTM 29J. DABOUNOU - FST DE SETTAT xt+1 ht+1 +x   x tanh tanh x  xt ht +x   x tanh tanh x  xt-1 ht-1 +x   x tanh tanh x  Les LSTM ont également cette structure en chaîne, sauf que le module répétitif au lieu d'avoir une seule couche de réseau de neurones dispose de quatre, qui ont des rôles spéciaux que nous allons détailler par la suite.
  • 30. Cellule RNN 30J. DABOUNOU - FST DE SETTAT 𝐡t = 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) Le plus souvent ce réseau ne gère pas bien les dépendances à long terme à cause de la disparition du gradient (vanishing gradient) comme conséquence de l'utilisation de tanh. tanh ht xt ht-1 ht Etat caché = sortie sortie entrée Nous allons présenter les LSTM dans une suite de transformations du réseau RNN standard. L'état caché est actualisé par la formule : Equations
  • 31. Construire la cellule LSTM 31J. DABOUNOU - FST DE SETTAT 𝐜t = 𝐜t−1 + 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐡t = 𝐭𝐚𝐧𝐡(𝐜t) Cette fois, on est assuré que l'état caché ht calculé à l'instant t tient compte de tous les états cachés précédents. tanh ht xt ht ct-1 ct tanh + ht-1 Les LSTM sont explicitement conçus pour éviter le problème de dépendance à long terme. On introduit une nouvelle variable ct qui permettra de se souvenir des informations pendant de longues périodes. La mise à jour des variables se fera alors selon les équations suivantes : Equations :
  • 32. Construire la cellule LSTM 32J. DABOUNOU - FST DE SETTAT 𝐜t = 𝐜t−1 + 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐡t = 𝐭𝐚𝐧𝐡(𝐜t) tanh ht xt ht ct-1 ct tanh + ht-1 Les LSTM sont explicitement conçus pour éviter le problème de dépendance à long terme. On introduit une nouvelle variable ct qui permettra de se souvenir des informations pendant de longues périodes. ct est appelée état de la cellule. La mise à jour des variables se fera alors selon les équations suivantes : Equations : Inconvénient : Le passé est toujours aussi important que le présent. Ce qui n'est pas pertinent. Solution idéale : Permettre au réseau de garder ou d'oublier les informations du passé selon qu'elles soient déterminantes ou pas.
  • 33. Construire la cellule LSTM 33J. DABOUNOU - FST DE SETTAT 𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t) 𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐡t = 𝐭𝐚𝐧𝐡(𝐜t) ht tanh xt ct-1  ct ht-1 ht x + tanh La solution adoptée est de pondérer la mémoire du passé représentée par ct par un réseau de neurones avec une seule couche sigmoïde. Ce réseau va apprendre à oublier les informations non pertinentes. Il est appelé porte d'oubli ou forget gate. Equations :  x = 1 1 + e−x 0   x  1
  • 34. ht tanh xt ct-1  ct ht-1 ht x + tanh 34 Construire la cellule LSTM J. DABOUNOU - FST DE SETTAT xt ht-1 ft  [𝐡t−1, 𝐱t]  𝐡t−1 𝐱t ft  𝐟t ∗ 𝐜t−1 ∗ ∗ ∗ ∗ 𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t) 𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐡t = 𝐭𝐚𝐧𝐡(𝐜t) Equations : 0.2 -0.4 0.75 0.83 ct-1= 0.9 0.01 0.3 0.95 ft= ct= 0.18 0.00 0.23 0.79 𝐟t ∗ 𝐜t−1 oubli
  • 35. Construire la cellule LSTM 35J. DABOUNOU - FST DE SETTAT xt ht-1 ct-1   x tanh ct ht ht +x tanh 𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t) 𝐢t = (𝐖hi 𝐡t−1 + 𝐖xi 𝐱t) 𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐢t ∗ 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐡t = 𝐭𝐚𝐧𝐡(𝐜t) Une autre porte est ajoutée pour pondérer la mise à jour (additive) de l'état de la cellule ct par la sortie tanh prenant comme entrée ht-1 et xt. Cette porte qui s'appelle input gate va apprendre à utiliser, à ignorer ou à moduler les informations entrées selon leur importance. Equations :
  • 36. -0.77 -0.03 0.01 0.00 Construire la cellule LSTM 36J. DABOUNOU - FST DE SETTAT xt ht-1 ht ht ct-1 + ctx   x tanh tanh x  𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t) 𝐢t = (𝐖hi 𝐡t−1 + 𝐖xi 𝐱t) 𝐨t = (𝐖ho 𝐡t−1 + 𝐖xo 𝐱t) 𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐢t ∗ 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐡t = 𝐨t ∗ 𝐭𝐚𝐧𝐡(𝐜t) De la même manière, une porte de sortie est ajoutée pour pondérer la mise à jour de l'état caché ht. Cela permet de décider quelles informations l'état caché ht doit porter. Cette porte qui s'appelle output gate. Equations : -0.8 -0.3 0.64 -0.01 𝐭𝐚𝐧𝐡(𝐜t) = 0.96 0.1 0.01 0.38 ot= ht= non retenu retenu Etat caché ht
  • 37. LSTM, une synthèse 37J. DABOUNOU - FST DE SETTAT Forget gate : Dans le cas extrême, indique à l'état de la cellule (mémoire à long-terme) les informations à oublier (multiplication par 0) ou à conserver (multiplication par 1). Input gate : déterminer quelles informations produite par la couche tanh doivent entrer dans l'état de la cellule (donc à sauvegarder dans la mémoire à long terme). Output gate : Indique les informations qui doivent passer au prochain état caché ht. Calcul de ct et de ht : 𝐜t = 𝐟t ∗ 𝐜t−1 + 𝐢t ∗ 𝐭𝐚𝐧𝐡(𝐖hh 𝐡t−1 + 𝐖xh 𝐱t) 𝐡t = 𝐨t ∗ 𝐭𝐚𝐧𝐡(𝐜t) L'état de la cellule ct parcourt toute la chaîne du réseau avec des interactions linéaires mineures, ce qui leur permet de transporter efficacement les informations. Les portes (gates) permettent de réguler intelligemment ces informations. xt ht-1 ht ht ct-1 + ctx   x tanh tanh x  forget gate input gate output gate 𝐟t = (𝐖hf 𝐡t−1 + 𝐖xf 𝐱t) 𝐢t = (𝐖hi 𝐡t−1 + 𝐖xi 𝐱t) 𝐨t = (𝐖ho 𝐡t−1 + 𝐖xo 𝐱t)
  • 38. Réseau LSTM 38J. DABOUNOU - FST DE SETTAT xt+1 ht+1 +x   x tanh tanh x  xt ht +x   x tanh tanh x  xt-1 ht-1 +x   x tanh tanh x 