Académique Documents
Professionnel Documents
Culture Documents
Deep Learning: Apprentissage Profond
Deep Learning: Apprentissage Profond
Apprentissage Profond
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
• 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?
• 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
[ He X1
likes
X2
pets ]
X3
Sana Hamdi 13
Exemple textuel
a1 a2 a3
[ He
X1
likes
X2
pets ]
X3
Sana Hamdi 14
15
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
Sana Hamdi 21
Architecture d’un RNN traditionnel à deux
couches
Sana Hamdi 22
Avantages
Sana Hamdi 23
Inconvénients
Sana Hamdi 24
25
Retro-propagation temporelle
Fonction de perte
Sana Hamdi 26
Rétro-propagation temporelle
L<1> L<2> L<t> L<t+1>
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:
[I like pets ]
Sana Hamdi 32
Plusieurs à Plusieurs: Tx= Ty
subject verb object
Exemple:
• Reconnaissance d’entité
[I like pets ]
Sana Hamdi 33
Plusieurs à Plusieurs: Tx≠Ty
Exemple: Ty = 5 [ il aime les animaux domestiques]
• Traduction automatique
• Traduction automatique
Encodeur
Décodeur
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.
• 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).
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
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
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
at-1,xt
ĉt candidate
ft ct
forget gate output
ct ot at
new cell state
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