Introduction au
Deep Learning
1. Introduction
1957 → Naissance du Perceptron
Depuis 2015 → Explosion des applications de Deep Learning :
- Vision par ordinateur
- Médecine
- Finance
- …
Introduction au Deep Learning 2
1. Introduction
Introduction au Deep Learning 3
1. Introduction
Puissance de calcul :
CPU vs GPU
→ CPUs sont très efficaces pour exécuter une succession d’opérations
→ GPUs sont très efficaces pour exécuter des opérations simultanément
Le Deep Learning est hautement parallélisable
Introduction au Deep Learning 4
1. Introduction
Les données :
→ Internet a rendu possible l’échange de données
→ Intérêt croissant pour les données et leur collecte
→ Nouvelles technologies (e.g. NoSQL)
Le Deep Learning nécessite beaucoup de données pour être efficace >< Machine
Learning classique
Introduction au Deep Learning 5
1. Introduction
Les librairies Open Source :
TensorFlow (Google) :
- Première version en 2015
- Seconde version (TF 2.0) en septembre 2019
PyTorch (Facebook) :
- Première version en 2016
→ Outils très jeunes !
Introduction au Deep Learning 6
1. Introduction
Le Deep Learning pour :
→ De gros volume de données
→ Des données peu ou pas structurées (image, son, texte)
→ Pour générer de nouvelles données
Introduction au Deep Learning 7
2. Le neurone
Neurone
Features
Somme pondérée
x1 * w1 + w2 * x2
x1
w1
x2 w2
Introduction au Deep Learning 8
2. Le neurone
Forward Propagation
0.2 * 2 + 0.3 * 0.5
Poids
2
0.55 0.55
Âge 0.5
Introduction au Deep Learning 9
2. Le neurone
On calcule une erreur de
Forward Propagation manière à modifier nos
0.2 * 2 + 0.3 * 0.5 poids
Poids
2
0.55 0.55 On répète cette opération
jusqu’à obtenir de petites
Âge 0.5
E = 1 - 0.55 = 0.45
erreurs
Backward Propagation
→ Descente de gradient
Introduction au Deep Learning 10
2. Le neurone
Forward Propagation
0.2 * 3 + 0.3 * 1
Poids
3
0.9 0.9
Âge 1
E = 1 - 0.9 = 0. 1
Backward Propagation
Introduction au Deep Learning 11
2. Le neurone
Loss
W1
Introduction au Deep Learning 12
2. Le neurone
“The Little Book of Deep Learning”, François Fleuret, v1.0 - 27/06/2023, p. 35
Introduction au Deep Learning 13
3. Les réseaux de neurones
x1
classe 0
x2 Argmax
classe 1
x3
Output layer
Input layer
Dense Dense
layer 1 layer 2
Hidden Layer
Introduction au Deep Learning 14
3. Les réseaux de neurones
“The Little Book of Deep Learning”, François Fleuret, v1.0 - 27/06/2023, p. 44
Introduction au Deep Learning 15
4. Batch, batch size, epoch
En pratique, on ne calcule pas une erreur après chaque sample, on préfère
travailler par batch de samples avant de calculer une erreur et de corriger les
poids.
batch = un sous ensemble du dataset
batch size = le nombre de samples par batch
On passe aussi plusieurs fois notre dataset dans le réseau.
epochs = le nombre de fois que le réseau ‘voit’ les données
Introduction au Deep Learning 16
4. Batch, batch size, epoch
dataset n = 15, batch = 3, batch size = 5
epoch 1
epoch 2
epoch 3
Introduction au Deep Learning 17
5. Les fonctions d’activation
Nous avons vu comment calculer la somme pondérée
Il est possible de moduler cette somme avec des fonctions d’activations :
- Linéaire
- Sigmoïde
- Softmax
- Tangente hyperbolique
- ReLU (Rectified Linear Unit)
- Leaky ReLU
Pourquoi ? → Non linéarité, normalisation des sommes pondérées
Introduction au Deep Learning 18
5.1. Sigmoïde et Softmax
Dans notre exemple du Perceptron, nous partions du principe que la valeur est
sortie était comprise entre 0 et 1
En réalité, la sortie d’un neurone n’est pas par défaut comprise entre 0 et 1
Une autre question se pose également, que faire si nous avons plus que deux
classes ?
→ Il faut pouvoir normaliser la sortie à l’aide d’une fonction d’activation
Introduction au Deep Learning 19
5.1. Sigmoïde et Softmax
Si on change la valeur de nos
entrées on obtient -0.4
-0.3 * 3 + 1 * 0.5
Poids
3
→ Difficile à interpréter
-0.4 -0.4
Âge 1
Introduction au Deep Learning 20
5.1. Sigmoïde et Softmax
La fonction sigmoïde permet de
remettre les valeurs sur une
-0.3 * 3 + 1 * 0.5
Poids
3 échelle comprise entre 0 et 1
-0.4 Sigmoïde 0.4625
→ Interprétable
Âge 1
→ Classification binaire (soit 0,
soit 1)
Introduction au Deep Learning 21
5.1. Sigmoïde et Softmax
On ne peut plus utiliser la fonction
sigmoïde au delà de 2 classes.
5 5
x1
Il faut trouver une autre solution pour
exprimer ceci sous forme de
x2 7 7
probabilité
x3
3 3 → Softmax
Introduction au Deep Learning 22
5.1. Sigmoïde et Softmax
5
x1 0.12
x2 7 Softmax 0.87
x3 0.02
3
Introduction au Deep Learning 23
5.2. Non linéarité
Jusqu’ici on utilisait les fonctions uniquement pour moduler la couche de sortie,
mais on peut également les utiliser pour moduler les sorties des couches cachées
→ Pour apporter de la non linéarité
Introduction au Deep Learning 24
5.2. Non linéarité
x1
Fonction Fonction
x2 Softmax
d’activation d’activation
x3
Dense Dense
Input layer Output layer
layer 1 layer 2
Introduction au Deep Learning 25
5.2. Non linéarité
Introduction au Deep Learning 26
5.2. Non linéarité
Introduction au Deep Learning 27
5.2. Non linéarité
Introduction au Deep Learning 28
5.2. Non linéarité
Introduction au Deep Learning 29
6. Les architectures
Il existe des architectures de réseaux de neurones particulières :
→ Convolution Neural Network (CNN)
→ Recurrent Neural Network (RNN)
→ Long Short Term Memory (LSTM)
→ Generative Adversarial Network (GAN)
→ ...
Introduction au Deep Learning 30
CNN
Convolutional Neural Networks
1. Introduction
Fashion mnist noir et blanc :
- shape = (28,28,1)
.
shape . Softmax
(784,) .
y
128
Introduction au Deep Learning 32
1. Introduction
L’approche avec de simples couches denses pose un problème. En effet, le
nombre de paramètres à calculer explose très vite :
- Des images avec une shape (28,28,1) connectées à un couche dense de
128 unités : 28 * 28 * 1 * 128 + 128 = 100 480 paramètres
- Image shape (28,28,3) : 28 * 28 * 3 * 128 + 128 = 301 184 paramètres
- Image shape = (224,224,3) : 224 * 224 * 3 * 128 + 128 = 19 267 712
Introduction au Deep Learning 33
1. Introduction
Les CNN permettent d’extraire l’information utile tout en réduisant la quantité
d’information à traiter. Un CNN est principalement composé de deux opérations :
1. Une opération avec les couches de convolutions qui doit permettre d’extraire
l’information utile. Distinguer le bruit de l’information.
2. Une opération de pooling qui permet de drastiquement réduire la quantité
d’information.
Introduction au Deep Learning 34
2. La convolution
Une convolution désigne le fait de balayer une image avec un filtre.
Ce filtre doit permettre de faire ressortir certains éléments.
Meijering
Filter
Introduction au Deep Learning 35
2. La convolution
Introduction au Deep Learning 36
2. La convolution
Quelques notions importantes pour une opération de convolution :
- kernel_size : au plus cette valeur est petite, au plus on capture une
information locale
- Stride : désigne le pas. Un stride plus élevé diminue la quantité d’informations
en sortie et peut jouer le rôle de pooling (cfr. infra)
- Padding : permet de conserver un taille d’entrée et de sortie constante pour
un stride de 1
Introduction au Deep Learning 37
2. La convolution
valid
Introduction au Deep Learning 38
2. La convolution
valid
Introduction au Deep Learning 39
2. La convolution
Introduction au Deep Learning 40
2. La convolution
Introduction au Deep Learning 41
2. La convolution
Dans le cas des images, il s’agit bien de convolutions 2D même avec des images
sur plusieurs canaux (avec couleurs par exemple)
Chacun des canaux est scanné indépendamment des autres avec le même kernel
et ensuite les canaux sont sommés.
Introduction au Deep Learning 42
2. La convolution
Introduction au Deep Learning 43
3. Le pooling
L’opération de pooling est en réalité également une opération de convolution mais
avec deux différences majeures :
1. La fonction utilisée n’est pas un produit scalaire et n’est pas une couche
d’apprentissage
2. Contrairement aux convolutions que nous venons de voir dont le rôle est
d’extraire de l’information, l’opération de pooling doit condenser l’information
Introduction au Deep Learning 44
3. Le pooling
valid
Introduction au Deep Learning 45
4. Architecture
En pratique :
- On constitue plusieurs filtres
- On peut enchaîner les convolutions
- Le pooling permet de réduire la quantité de pixels
- On relie toutes nos convolutions à une simple couche dense
→ Permet d’extraire les données importantes des informations.
Ex : VGG16
Introduction au Deep Learning 46
4. Architecture
Output
Input Conv Pooling Dense
Introduction au Deep Learning 47
4. Architecture
Introduction au Deep Learning 48
Introduction au Deep Learning 49
Introduction au Deep Learning 50
5. Data Augmentation
La Data Augmentation permet de créer des copies des images originales tout en les
modifiant légèrement. Ces modifications permettent d’obtenir artificiellement plus de
diversité dans le jeu de données ce qui, en théorie, doit permettre de contrer l’overfitting.
Comment modifier des images :
- Rotation
- Inverser haut/bas, droite/gauche
- Distorsion
- Inverser les canaux de couleurs
Introduction au Deep Learning 51
5. Data Augmentation
À chaque epoch, le modèle est entraîné avec des images qui diffèrent légèrement.
Introduction au Deep Learning 52
6. Autres architectures
Jusqu’ici, nous avons utilisé des modèles séquentiels relativement simples mais il
existe d’autres architectures plus complexes.
Ces architectures ne peuvent se construire qu’en passant par l’API fonctionnelle
de Keras.
- Inception
- Resnet
- Mobilenet
- ConvNeXt
Introduction au Deep Learning 53
6. Autres architectures
InceptionV3
Introduction au Deep Learning 54
6. Autres architectures
CNN + XGBOOST
XGBOOST
Input Conv Pooling Dense
Introduction au Deep Learning 55
AE
Autoencoders
1. Introduction
Les autoencodeurs correspondent à une architecture particulière de réseau de
neurones qui possède deux entités :
- L’encodeur qui a pour vocation de projeter l’information dans un nouvel
espace réduit (espace latent). Il s’agit donc d’une réduction de la
dimensionnalité
- Le décodeur reconstruit l’information sur base de l’espace latent
→ Il s’agit d’un apprentissage non supervisé
Introduction au Deep Learning 57
1. Introduction
Encoder Decoder
Représentation classique d’un AE
avec une couche d’entrée projetée
dans un espace latent à l’aide d’une
simple couche dense et ensuite
reconstruite avec une autre couche
Latent dense.
space
Dense
Input
Introduction au Deep Learning 58
2. Application aux images
Dans le cadre des images, les autoencoders peuvent servir de débruiteur.
L’encoder sera constitué de couches de convolution avec comme objectif de
projeter notre image dans un espace latent.
Le décodeur lui reconstruira une image débruitée.
Introduction au Deep Learning 59
2. Application aux images
(28,28,1) (28,28,1)
(14,14,16) (14,14,16)
Latent
space
(20,)
Flatten Dense Dense Reshape
(20) (14*14*16)
Conv2D Conv2D Transpose
(16,3, (1, 3,
strides=2, padding=same) strides=2, padding=same)
Introduction au Deep Learning 60
2. Application aux images
Introduction au Deep Learning 61
Autres architectures
Intuition, exemples
1. RNN
Capacité à gérer des séquences :
- Des lettres, des mots
- Des images
- Du son, des paroles
- …
Introduction au Deep Learning 63
1. RNN
Capacité à gérer des séquences :
- Des lettres, des mots
- Des images
- Du son, des paroles
- …
Introduction au Deep Learning 64
1. RNN
Capacité à gérer des séquences :
- Des lettres, des mots
- Des images
- Du son, des paroles
- …
Introduction au Deep Learning 65
1. RNN
Capacité à gérer des séquences :
- Des lettres, des mots
- Des images
- Du son, des paroles
- …
Introduction au Deep Learning 66
1. RNN
→ Il faut avoir une mémoire pour prédire le déplacement d’un objet
Où les utilise-t-on ?
- Reconnaissance vocale
- Voiture autonome
- Génération de texte
- Génération de musique
LSTM, BI-LSTM sont des RNN améliorés
Introduction au Deep Learning 67
2. GAN
Architecture récente (2014)
L’idée est simple, on met deux réseaux en compétition :
- Un générateur
- Un discriminateur
L’objectif du générateur est de produire de l’information que le discriminateur ne
pourra pas identifier comme fausse
Introduction au Deep Learning 68
2. GAN
Où les utilise-t-on ?
- Deepfake :
- Vidéo 1
- Vidéo 2
- Faux visages
- Génération de collections de mode
- Modélisation 3D (Architecture, chimie, pharmacie)
- ...
Introduction au Deep Learning 70
3. Reinforcement Learning
Cas particulier puisque le réseau de neurone doit se débrouiller :
- Sans données
- Sans règles
Les données sont inhérentes à l’environnement
On ne fournit qu’une seule chose : une récompense
Introduction au Deep Learning 71
3. Reinforcement Learning
Difficile à mettre en oeuvre dans la réalité :
- Simulation
- Réalité
Très souvent appliqué aux jeux :
e.g. société DeepMind :
- AlphaGo
- Starcraft 2
Introduction au Deep Learning 72