0% ont trouvé ce document utile (0 vote)
39 vues71 pages

Introduction au Deep Learning et ses concepts

Le document présente une introduction au Deep Learning, abordant son historique, ses applications, et les différences entre les CPU et GPU pour le traitement des données. Il décrit également les concepts fondamentaux tels que les neurones, les réseaux de neurones, les architectures spécifiques comme les CNN et RNN, ainsi que des techniques comme la Data Augmentation. Enfin, il mentionne les librairies open source populaires comme TensorFlow et PyTorch, et les besoins en données pour l'efficacité du Deep Learning.

Transféré par

lucaselsastephanie
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
39 vues71 pages

Introduction au Deep Learning et ses concepts

Le document présente une introduction au Deep Learning, abordant son historique, ses applications, et les différences entre les CPU et GPU pour le traitement des données. Il décrit également les concepts fondamentaux tels que les neurones, les réseaux de neurones, les architectures spécifiques comme les CNN et RNN, ainsi que des techniques comme la Data Augmentation. Enfin, il mentionne les librairies open source populaires comme TensorFlow et PyTorch, et les besoins en données pour l'efficacité du Deep Learning.

Transféré par

lucaselsastephanie
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi