Vous êtes sur la page 1sur 66

Deep Learning

Apprentissage Profond

Dr. Sana Hamdi sana.hamdi@fst.utm.tn


RNN
Les Réseaux de neurones Récurrents
3

Motivation
Introduction

• x w a y
• Bloc basique: y = g(a) et a = w*x+b
• a = transformation linéaire
• g = opération non-linéaire sur chaque élément (tanh, relu, etc..)

Sana Hamdi 4
Réseau Multicouche

x wi-1 ai-1 wi ai wi+1 ai+1 y

• Même entrée et sortie pour tous les exemples (même forme et même taille)
• Simple: composition des blocs basiques
• On apprend les paramètres avec rétro-propagation
Efficace pour les données séquentielles ?
Sana Hamdi 5
Données Séquentielles
Les éléments (souvent de vecteurs multidimensionnels) se succèdent dans le
temps :
• Cadres d’une vidéo
• Echantillons d’un signal audio
• Série temporelle financière (prix, bourse)
• Lettres dans un mot, mots dans une phrase
• Etc.
Sana Hamdi 6
Exemples d’application
• Speech recognition  The quick brown fox jumped over the lazy dog

• Music generation 
There is nothing to like in
• Sentiment Classification this movie. 
• DNA sequence analysis AGCCCCTGTGAGGAA AGCCCCTGTGAGGAA
• Machine translation Voulez-vous chanter avec moi?  Do you want to sing with me?

• Video activity recognition  Running


• Name Entity recognition Yesterday, Harry Potter met  Yesterday, Harry Potter met Hermione Granger
Hermione Granger.
Sana Hamdi cours d’Andrew Ng / Coursera7
Pourquoi pas l’approche directe?

• Entrées/Sorties de dimension différentes pour les éléments d’un seul training set
• Séquence longues, chaque élément de la séquence est un vecteur de dimension élevée
• Pas de transfert/partage de features appris à des positions différentes dans la séquence
(effet de mémoire dans la séquence)
Sana Hamdi 8
Exemple textuel

He
X1
likes
X2
pets
X3
Sana Hamdi 9
Exemple textuel
subject
y1
way
a1

wxa

[ He X1
likes
X2
pets ]
X3
Sana Hamdi 10
Exemple textuel
subject verb
y1 y2
way way
a1 a2

wW
xa
W
wxa

[ He X1
likes
X2
pets ]
X3
Sana Hamdi 11
Exemple textuel
subject verb
y1 y2 y3
way way way
a1 a2 a3 Pas de contexte: chaque
décision est prise
indépendamment!
wxa wxa wxa

[ He X1
likes
X2
pets ]
X3
Sana Hamdi 12
Vers le réseau récurrent …
subject verb object
y1 y2 y3
way way way
a1 a2 a3
waa waa

wxa wxa wxa

[ He X1
likes
X2
pets ]
X3
Sana Hamdi 13
Exemple textuel

a1 a2 a3

Maintenant a3 pourra contenir de l'information


sur toute la séquence

[ He
X1
likes
X2
pets ]
X3
Sana Hamdi 14
15

Réseaux de Neurones Récurrents


Modélisation des séquences

1. Être capable de traiter les séquences de longueur variable:


x1, x2, x3,…, xt-1, xt, xt+1, …
2. Garder la trace des dépendances à long terme
3. Conserver l’information sur l’ordre
4. Partager les paramètres le long de la séquence

Sana Hamdi 16
Modélisation des séquences
Fonctions qui dépendent pas seulement de leur entrée mais aussi des entrées précédentes
 conduisent a des implémentations complexes.
À chaque instant t, le passage vers l’avant (forward pass) est modélisé par les équations:
yt = g1(way at+by)
at = g2(wxa xt + waa at-1 +ba)
Où wxa, waa , way , ba et by sont des coefficients indépendants du temps et où g1 et g2
sont des fonctions d'activation.

Sana Hamdi 17
Architecture d’un RNN traditionnel

Sana Hamdi 18
Architecture d’un RNN traditionnel

y1 = g1(way a1+by)
a<1>
a1 = tanh(wxa x1 + waa a0 +ba)
tanh

Sana Hamdi 19
Architecture d’un RNN traditionnel
• La tème cellule n’est rien d’autre qu’une couche dense de taille R, dont l’entrée
est la concaténation de xt (de taille M) et at-1 (de taille R). La fonction
d’activation classique utilisée pour les cellules du RNN est la tangente
hyperbolique tanh.
• Le modèle prend en entrée un tableau de N séquences, chacune de
longueur T éléments (mots par exemple), où chaque élément est un vecteur
numérique de taille M.

Sana Hamdi 20
Architecture d’un RNN traditionnel

• at = tanh( WT * concat (xt, at-1) + b )


• où W et b sont les poids appris par le modèle :
 W est une matrice de taille (R + M) x R
 b un vecteur de taille R

Sana Hamdi 21
Architecture d’un RNN traditionnel à deux
couches

Sana Hamdi 22
Avantages

• Possibilité de prendre en compte des entrées de différentes tailles


• La taille du modèle n'augmente pas avec la taille de l'entrée
• Les calculs prennent en compte les informations antérieures
• Les coefficients (les poids) sont indépendants du temps

Sana Hamdi 23
Inconvénients

• Le temps de calcul est long


• Difficulté d'accéder à des informations d'un passé lointain (modèle à
mémoire courte)
• Impossibilité de prendre en compte des informations futures

Sana Hamdi 24
25

Retro-propagation temporelle
Fonction de perte

• Dans le contexte des RNN, la fonction de perte globale L prend en compte


la perte à chaque temps t de la manière suivante :
1 𝑇 <t> <t>, y<t>)
L(ŷ, y) = 𝑡=1 L (ŷ
𝑇
1 𝑇 <t> <t>))+(1−y <t>)log((1−ŷ<t>)))
= 𝑡=1 −(y log(ŷ
𝑇

Sana Hamdi 26
Rétro-propagation temporelle
L<1> L<2> L<t> L<t+1>

Back-propagation through time (BPTT)


𝑇
𝜕𝐿 1 𝜕L<t>(ŷ<t>, y<t>)
=
𝜕𝑤 𝑇 𝜕𝑤
Sana Hamdi 𝑡=1 27
Rétro-propagation temporelle
Sachant que:
• a<1>=tanhW(x1, a<0>)
• a<2>=tanhW(x2, a<1>) =tanhW(x2, tanhW(x1, a<0>))
• a<3>=tanhW(x3, a<2>) =tanhW(x3, tanhW(x2, tanhW(x1, a<0>))
• .........

Sana Hamdi 28
29

Topologies RNN
Un à un: Tx=Ty =1

𝑦
• Réseau de neurones
Traditionnel

Sana Hamdi 30
Un à plusieurs: Tx=1, Ty>1

Exemple:

• Génération de la musique
• Sous-titrage des images

Sana Hamdi 31
Plusieurs à un: Tx>1, Ty=1
Positive

Exemple:

• Catégorie d’une phrase

• Classification des sentiments

[I like pets ]
Sana Hamdi 32
Plusieurs à Plusieurs: Tx= Ty
subject verb object
Exemple:

• Étiquetage de chaque partie de la phrase

• Reconnaissance d’entité

[I like pets ]
Sana Hamdi 33
Plusieurs à Plusieurs: Tx≠Ty
Exemple: Ty = 5 [ il aime les animaux domestiques]

• Traduction automatique

[He likes pets ] Tx =3


Sana Hamdi 34
Plusieurs à Plusieurs: Tx≠Ty
Exemple: Ty = 5 [ il aime les animaux domestiques]

• Traduction automatique
Encodeur

Décodeur

[He likes pets ] Tx =3


Sana Hamdi 35
36

Problèmes des gradients


Problèmes des gradients
a1
• On peut penser un RNN comme: g(...g(g(g(x0,a0),x1),x2)...,xt)
○ Si wa>1 on peut avoir une explosion du gradient g
○ Si wa<1 on a une disparition du gradient

Sana Hamdi 37
Problème de l'explosion du gradient
• L'augmentation très rapide des valeurs des gradients pendant la rétro-propagation
entraînant un dépassement de la capacité de la représentation interne des nombres et
l'arrêt de l'apprentissage.
• Solutions :
 Meilleures techniques d'initialisation
 Le choix de fonctions d'activation non saturantes comme la fonction linéaire rectifiée (ReLU)
 La normalisation par lots
 L'écrêtage de gradient (gradient clipping): imposer un seuil sur les valeurs que les gradients
peuvent prendre.
Sana Hamdi 38
Problème de disparition de gradient
• Diminution très rapide des valeurs des gradients pendant la rétro-
propagation entraînant l'annulation du gradient et l'arrêt de l'apprentissage.
• Cause : calcul des dérivées des fonctions composées (chain rule) qui conduit
à la multiplication de beaucoup de valeurs proches de zéro.

la fonction sigmoide et sa dérivée la fonction tanh et sa dérivée


Sana Hamdi 39
Problème de disparition de gradient
• La mise à jour par descente de gradient ne modifie que très peu les poids des connexions de
couches inférieures : w:=w–α⋅dw
 RNN peut facilement oublier des données un petit peu anciennes (ou des mots assez éloignés du
mot courant dans un texte) lors de la phase d’apprentissage: sa mémoire est courte.
• Exemple:
1. This restaurant which was opened last year by my aunt and my dad …….. serves authentic
Chinese food.
2. These restaurants which were opened last year by my aunt and my dad…… serve authentic
Indian food.
• Ces dépendances à long terme ne sont pas prises en consideration par l’architecture RNN de
base .
Sana Hamdi 40
Vers une meilleure architecture

• Les LSTM et GRU ont été créés comme méthodes permettant de gérer
efficacement la mémoire à court et long terme grâce à leurs systèmes de
portes.
• Une cellule (neurone) d’un RNN est finalement très simple (on concatène
deux vecteurs puis on applique tanh dessus), ce n’est pas le cas du LSTM et
du GRU.

Sana Hamdi 41
42

LSTM
LSTM
• Long Short-Term Memory, est une cellule composée de trois « portes » : ce sont des
zones de calculs qui régulent le flot d’informations (en réalisant des actions
spécifiques). On a également deux types de sorties (nommées états).

o Forget gate (porte d’oubli)


o Input gate (porte d’entrée)
o Output gate (porte de sortie)
o Hidden state (état caché)
o Cell state (état de la cellule, mémoire)

Sana Hamdi 43
Opérations interne dans une cel LSTM

Sana Hamdi 44
Opérations interne dans une cel LSTM

Sana Hamdi 45
Opérations interne dans une cel LSTM

Sana Hamdi 46
Les poids liés aux portes
• Les entrées de chaque porte sont pondérées par des poids liés aux portes
ainsi que par un biais. On a 4 matrices de poids (leurs dimensions dépendent
des dimensions de at−1 et xt) :
 W f : pondère l’entrée de la porte d’oubli (forget gate)
 W i : pondère l’entrée de la porte d’entrée (input gate)
 W C : pondère les données qui vont se combiner à la porte
d’entrée pour mettre à jour l’état de la cellule (cell state)
 W o : pondère l’entrée de la porte de sortie (output gate)

Cellule LSTM
Sana Hamdi 47
Porte d’oubli (forget gate)
• Cette porte décide de quelle information doit être conservée ou jetée
• L’information de l’état caché précédent est concaténé à la donnée en entrée
puis on y applique la fonction sigmoïde afin de normaliser les valeurs entre 0
et 1. ft = σ(wf[at-1, xt]+bf)
• Si la sortie de la sigmoïde est proche de 0, cela signifie que l’on doit oublier
l’information et si on est proche de 1 alors il faut la mémoriser pour la
suite.

Sana Hamdi 48
Fonctionnement de la porte d’oubli

ct-1 previous cell state

ft forget gate output


ft

at-1 at-1, xt

Sana Hamdi xt 49
Porte d’entrée (input gate)
• La porte d’entrée a pour rôle d’extraire l’information de la donnée courante: on va
appliquer en parallèle une sigmoïde et une tanh aux deux données concaténées.
• Sigmoïde va renvoyer un vecteur pour lequel une coordonnée proche de 0 signifie
que la coordonnée en position équivalente dans le vecteur concaténé n’est pas
importante. A l’inverse, une coordonnée proche de 1 sera jugée ''importante'':
it = σ(wi[at-1, xt]+bf)
• Tanh va simplement normaliser les valeurs (les écraser) entre -1 et 1 pour éviter les
problèmes de surcharge de l’ordinateur en calculs. ĉt = tanh(wC[at-1, xt]+bC)
• Le produit des deux permettra donc de ne garder que les informations importantes,
les autres étant quasiment remplacées par 0
Sana Hamdi 50
Fonctionnement de la porte d’entrée

ct-1 previous cell state


it x ĉt
ft ft
forget gate output
it ĉt
it input gate output

at-1,xt at-1,xt at-1,xt


ĉt candidate

Sana Hamdi 51
Etat de la cellule (cell state)
• L’état de la cellule se calcule assez simplement à partir de la porte d’oubli et de la
porte d’entrée
1. On multiplie coordonnée à coordonnée la sortie de l’oubli avec l’ancien état de la
cellule. Cela permet d’oublier certaines informations de l’état précédent qui ne
servent pas pour la nouvelle prédiction à faire.
2. On additionne le tout (coordonnée à coordonnée) avec la sortie de la porte
d’entrée, ce qui permet d’enregistrer dans l’état de la cellule ce que le LSTM (parmi
les entrées et l’état caché précédent) a jugé pertinent.
ct= (ct-1 * ft) + (it * ĉt )
Sana Hamdi 52
Mise à jour de l’état de la cellule d’un LSTM

ct-1 ct-1 ct-1 x ft ct


previous cell state
it x ĉt
ft ft
forget gate output

it input gate output

at-1,xt
ĉt candidate

ct new cell state


Sana Hamdi 53
Porte de sortie (output gate)
• La porte de sortie doit décider de quel sera le prochain état caché at, qui contient
des informations sur les entrées précédentes du réseau et sert aux prédictions
at= ot * tanh(ct)
• Le nouvel état de la cellule calculé juste avant est normalisé entre -1 et 1 grâce à
tanh: tanh(ct)
• Le vecteur concaténé de l’entrée courante avec l’état caché précédent passe dans une
fonction sigmoïde dont le but est de décider des informations à conserver (proche
de 0 signifie que l’on oublie, et proche de 1 que l’on va conserver cette coordonnée
de l’état de la cellule). ot = σ(wo[at-1, xt]+bo)
Sana Hamdi 54
Fonctionnement de la porte de sortie

ft ct
forget gate output

it input gate output

ct ot at
new cell state

ot output gate output at-1,xt

at hidden state

Sana Hamdi 55
56

BiLSTM
BiLSTM
• Contrairement au LSTM standard, pour le BiLSTM (LSTM bidirectionnel),
l'entrée circule dans les deux sens et il est capable d'utiliser les informations
des deux côtés.
• BiLSTM ajoute une couche LSTM supplémentaire, qui inverse le sens du flux
d'informations.
 la séquence d'entrée est renvoyée dans la couche LSTM supplémentaire.
Ensuite, les sorties des deux couches LSTM sont combinées de plusieurs
manières (la moyenne, la somme, la multiplication ou la concaténation).
Sana Hamdi 57
Illustration BiLSTM

Sana Hamdi 58
Intérêts
« Apple is something that… » Apple peut référer à un fruit ou à la société Apple.
 LSTM ne sait pas ce que signifie "Apple", car il ne connaît pas le contexte du futur.
 En revanche, BiLSTM aura un output différent pour chaque mot de la séquence
dans ces deux phrases :
« Apple is something that competitors simply cannot reproduce »
« Apple is something that I like to eat »

Sana Hamdi 59
60

GRU
GRU
• Gated Recurrent Unit dispose de deux portes et un état en sortie :
o Reset gate (porte de reset)
o Update gate (porte de mise à jour)
o Cell state (état de la cellule)

Cellule GRU
Sana Hamdi 61
Porte de reset (reset gate)
• Cette porte sert à contrôler combien d’information passée le réseau doit
oublier.
• L’état caché précédent, concaténé avec les données d’entrée, passe par une
sigmoïde (pour ne conserver que les coordonnées pertinentes) puis est
multiplié par l’ancien état caché : on n’en conserve donc que les coordonnées
importantes (telles qu’elles) de l’état précédent (on a donc perdu une partie
de l’état précédent dans cette porte).

Sana Hamdi 62
Porte de mise à jour (update gate)
• Cette porte agit exactement de la même manière que les portes oubli et
d’entrée du LSTM : elle décide des informations à conserver et de celles à
oublier.
• Les données d’entrées et l’ancien état caché sont concaténés et passent par
une fonction sigmoïde dont le rôle est de déterminer quelles sont les
composantes importantes.

Sana Hamdi 63
Sortie du réseau GRU

L’état caché précédent (partiellement effacé par la porte de reset) est combiné
avec l’entrée du réseau et normalisé par un tanh entre -1 et 1. On vient ensuite
annuler toutes ses coordonnées jugées “inutiles pour les prédictions” (grâce à la
sortie de la porte de mise à jour), puis on y ajoute les coordonnées de l’état
caché précédent jugées “inutiles” (en ayant, cette fois, annulé toutes les
coordonnées pertinentes).

Sana Hamdi 64
GRU

Sana Hamdi 65
GRU vs LSTM
Avantages GRU :
• Demandent moins de ressources que les LSTM
• Convergent plus vite
• Performances comparables avec LSTM
Avantages LSTM : pour de datasets très grands ou des séquences très longues

Sana Hamdi 66

Vous aimerez peut-être aussi