Apprentissage Profond
« Deep Learning »
Auditoire :
2ème Année Cycle Ingénieur
Faculté des Sciences de Sfax
Préparé par :
Emna Jammouci FENDRI
email : [Link]@[Link]
CHAPITRE 5 : LES RÉSEAUX DE
NEURONES RÉCURRENTS (RNN)
2
Les RNNs (origine)
⚫ Séquences temporelles
⚫ Différents types de données : Audio, Texte, Trajectoire, Vidéo, Données décrivant des
phénomènes physiques dans le temps
3
Les RNNs (origine)
⚫ Séquences temporelles = Données apparaissent dans un ordre particulier
= Données de tailles arbitraires
⚫ Applications :
4
Les RNNs (origine)
⚫ Séquences temporelles = Données ordonnancées dans le temps
⚫ Limites des ANN/CNN pour le cas des séquences temporelles : l’ordre des
données est très important et si on mélange les données, on perd leur sens
5
Les RNNs (Modes d’utilisation)
⚫ On distingue 4 modes d’utilisation:
⚫ One to many
⚫ Many to One
⚫ Many to many
6
Les RNNs (Modes d’utilisation)
⚫ One to many
⚫ Une séquence en sortie : comme le cas de la
description textuelle d’une image
⚫ Many to One
⚫ Une séquence en entrée et une classe en
sortie : comme l’analyse de sentiment
⚫ Many to many :
⚫ Une séquence en entrée et une séquence en
sortie
⚫ On peut distinguer différentes applications :
⚫ Traduction
⚫ Classification des différentes images d’une vidéo
7
Les RNNs (Modes d’utilisation)
⚫ One to many
⚫ Une séquence en sortie : comme le cas de la description textuelle d’une image
8
Les RNNs (Modes d’utilisation)
⚫ Many to One
⚫ Une séquence en entrée et une classe en sortie : comme l’analyse de sentiment
Vidéo Texte
Sentiment
9
Les RNNs (Modes d’utilisation)
⚫ Many to many :
⚫ Une séquence en entrée et une séquence en sortie
⚫ On peut distinguer différentes applications :
⚫ Traduction
⚫ Classification des différentes images d’une vidéo
Traduction Classification
10
Comment faire avec des données textuelles ?
⚫ Quels types d’entrées pour des réseaux de neurones ?
⚫ Ce que nous savons faire : vecteur, image
⚫ Et le texte ?
Comment construire un descripteur pour ce type de données?
➔ Encodage 11
Codification des données textuelles ?
⚫ Etapes du prétraitement des données textuelles
⚫ Nettoyage : Variable selon la source des données
⚫ Normalisation des données :
⚫ Tokenisation, ou découpage du texte en plusieurs pièces appelés tokens
⚫ Stemming : un même mot peut se retrouver sous différentes formes en fonction du
genre (masculin féminin), du nombre (singulier, pluriel), la personne (moi, toi, eux…)
etc. Le stemming désigne généralement le processus brut qui consiste à découper la
fin des mots dans afin de ne conserver que la racine du mot.(Exemple : « trouverez »
-> « trouv »)
⚫ Lemmatisation : cela consiste à réaliser la même tâche mais en utilisant un
vocabulaire et une analyse fine de la construction des mots. La lemmatisation permet
donc de supprimer uniquement les terminaisons inflexibles et donc à isoler la forme
canonique du mot, connue sous le nom de lemme. Exemple : « trouvez » -> trouver
⚫ Autres opérations : suppression des chiffres, ponctuation, symboles et stopwords,
passage en minuscule. 12
EnCodage des données textuelles
⚫ One hot encoding : La représentation vectorielle la plus classique des
mots est le « one hot encoding ».
⚫ Une dimension est allouée pour chaque mot du vocabulaire.
⚫ Chaque mot du vocabulaire est représenté comme un vecteur binaire
avec toutes ses valeurs nulles à l’exception de l’index du mot.
13
EnCodage des données textuelles
⚫ One hot encoding :
14
EnCodage des données textuelles
⚫ One hot encoding : Quelles limites ?
Taille !
⚫ Quelles Solutions ?
⚫ One hot Vector
⚫ Embedding
15
EnCodage des données textuelles
⚫ One hot Vector
⚫ La taille du vecteur est indépendante de la taille de la phrase
⚫ La taille est plus petite (comparée à One Hot Encoding) mais on perd
16
des informations sur les mots (ordre + fréquence)
EnCodage des données textuelles
⚫ Embedding
17
EnCodage des données textuelles
⚫ Embedding :
⚫ Ces techniques permettent de représenter chaque mot d'un vocabulaire par un vecteur de
haute dimension.
⚫ La particularité des embeddings de mots est qu'ils parviennent à capturer la signification
sémantique des mots. Par exemple, dans l'espace des embeddings, les mots sémantiquement
similaires se trouvent près les uns des autres.
18
EnCodage des données textuelles
⚫ Embedding Layers in Keras
⚫ Utilisable comme une couche simple
⚫ Cette couche permet de construire le dictionnaire de vecteurs qu’elle optimisera au cours de
l’apprentissage, en fonction du résultat attendu et non de la sémantique pure
⚫ L’embedding Keras est donc adapté à la classification d’une phrase mais ne peut pas identifier
si deux phrases sont similaires ou non
⚫ La sortie de la couche est un ensemble de vecteurs
19
EnCodage des données textuelles
⚫ Embedding Layers in Keras
20
EnCodage des données textuelles
⚫ Embedding Layers in Keras
21
EnCodage des données textuelles
⚫ Word2Vec
⚫ Approche ayant pour objectif de constituer des dictionnaires dont la représentation vectorielle des
mots est basée sur le contexte et donc de la sémantique.
⚫ Des dictionnaires construits à partir de gros corpus sont disponibles.
⚫ On distingue Deux modèles :
⚫ Continuous Bag-of-Words (CBOW) : Embedding based on the prediction of the word according to its context.
⚫ Skip-Gram (SG : Embedding based on context prediction from the word.
22
EnCodage des données textuelles
⚫ Continuous Bag-of-Words
23
EnCodage des données textuelles
⚫ Skip-Gram
24
PRINCIPE DES RNN
25
Les RNNs (principe)
Neurone Classique Neurone récurrent
26
Les RNNs (principe)
⚫ Neurone récurrent
27
Les RNNs (principe)
⚫ Neurone récurrent vs Couche récurrente (cellule)
28
Les RNNs (principe)
⚫ Couche récurrente (cellule)
29
Les RNNs (Exemple)
⚫ A chaque étape, on considère
l’élément en cours de la
séquence temporelle pour
calculer la sortie Yti
correspondante tout en prenant
en considération le résultat
précédemment calculé et placé
dans la mémoire Yti-1.
⚫ Initialement la mémoire contient
un vecteur nul
⚫ La taille des sorties Yti dépend
du nombre d’unités de la cellule
récurrente 30
Limites des RNNs simples
⚫ Au fil du temps, on perd le lien entre le début de la séquence temporelle
et l’élément en cours.
⚫ Mémoire courte
⚫ Convergence très faible
⚫ Risque de dissolution/explosion du gradient (vanishing/exploding gradients)
31
RNNs
⚫ Problèmes
⚫ Disparition du gradient (Gradient Vanishing)
⚫ Explosion du gradient
⚫ Solution
⚫ LSTM
⚫ GRU
⚫ Bi-LSTM
32
Long Short-Term Memory (LSTM)
⚫ Réseau de neurones récurrents
⚫ Tenir compte de
⚫ La mémoire longue
⚫ La mémoire immédiate
⚫ Une cellule LSTM contient trois
opérations :
⚫ Forget gate : capacité à oublier de
l’information jugée inutile
⚫ Input gate : capacité à ajouter une
nouvelle information jugée utile
⚫ Output gate : détermine l’état de la
cellule à partir de ce qui est oublié et
ce qui est ajouté 33
Long Short-Term Memory (LSTM)
34
Long Short-Term Memory (LSTM)
⚫ Forget Gate
⚫ Output Gate
⚫ Input Gate
35
Long Short-Term Memory (LSTM)
36
GRU (Gated Recurrent Unit)
⚫ Gated Recurrent Unit (GRU) est un type de réseau neuronal récurrent (RNN)
⚫ GRU est plus rapide et plus efficace que LSTM, mais il peut ne pas capturer
les dépendances à long terme aussi bien que LSTM. LSTM est plus précis
lors de l'utilisation d'ensembles de données avec des séquences plus
longues.
⚫ Le GRU a moins de paramètres que LSTM, car il n'a pas de porte de sortie.
37
GRU (Gated Recurrent Unit)
⚫ Porte de reset (reset gate)
⚫ Sert à contrôler combien d’information passée le
réseau doit oublier. On n’en conserve donc que les
coordonnées importantes (telles qu’elles) de l’état
précédent
⚫ 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.
⚫ 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é. On vient ensuite annuler toutes ses
coordonnées jugées « inutiles pour les prédictions »
puis on y ajoute les coordonnées de l’état caché
précédent jugées « inutiles » 38
GRU vs LSTM
LSTM
GRU
39
Réseaux de neurones récurrents (RNN)
⚫ Recurrent layers
LSTM layer
GRU layer
SimpleRNN layer
TimeDistributed layer
Bidirectional layer
ConvLSTM1D layer
ConvLSTM2D layer
ConvLSTM3D layer
Base RNN layer
[Link] 41
Long Short-Term Memory (LSTM)
⚫ LSTM correspond à une couche en keras
[Link](
units,
activation="tanh",
recurrent_activation="sigmoid",
use_bias=True,
kernel_initializer="glorot_uniform",
recurrent_initializer="orthogonal",
bias_initializer="zeros",
unit_forget_bias=True,
kernel_regularizer=None,
recurrent_regularizer=None,
bias_regularizer=None,
activity_regularizer=None,
kernel_constraint=None,
recurrent_constraint=None,
bias_constraint=None,
dropout=0.0,
recurrent_dropout=0.0,
seed=None,
return_sequences=False,
return_state=False,
go_backwards=False,
stateful=False, [Link]
unroll=False, 42
**kwargs
[Link]
Long Short-Term Memory (LSTM)
Input : 32 Séquences de 20 vecteurs de 8 composantes
LSTM de 16 unités
Output : 32 vecteurs de 16 (Nbres d’unités) composantes
[Link]
43
[Link]
Long Short-Term Memory (LSTM)
Input : 32 Séquences de 20 vecteurs de 8 composantes
LSTM de 18 unités
Output : 32 vecteurs de 18 (Nbres d’unités) composantes
[Link]
44
[Link]