03 Cours Deep
03 Cours Deep
03 Cours Deep
et apprentissage profond
E. Viennet
L2TI
Université Paris 13
2018-2019
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 1 / 73
Plan du cours
2 Perceptrons multi-couches
Exemples en 2 dimensions
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 2 / 73
Introduction au Deep Learning
Plan
2 Perceptrons multi-couches
Exemples en 2 dimensions
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 3 / 73
Introduction au Deep Learning
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 4 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
Coloriage
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 5 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
Super-résolution
image basse résolution (ici 8x8 pixels)
image haute résolution (ici 32x32)
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 6 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
Estimation de la pose
https://www.youtube.com/watch?v=pW6nZXeWlGM
Source: Z. Cao et al., Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields (2016)
https://arxiv.org/abs/1611.08050
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 7 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
https://www.youtube.com/watch?v=PCBTZh41Ris
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 8 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
https://cs.stanford.edu/people/karpathy/deepimagesent/
generationdemo/
Source: Karpathy et al. (2015) http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/
Karpathy_Deep_Visual-Semantic_Alignments_2015_CVPR_paper.pdf
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 9 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
https://www.youtube.com/watch?v=xhp47v5OBXQ
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 10 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
Source: https://ai.googleblog.com/2015/07/how-google-translate-squeezes-deep.html
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 11 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
https://www.youtube.com/watch?v=fa5QGremQf8
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 12 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
Peinture artistiques
https://deepart.io/
http://genekogan.com/works/style-transfer/
Source: Gatys et al. (2016) http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Gatys_
Image_Style_Transfer_CVPR_2016_paper.pdf
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 13 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
Véhicules autonomes
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 14 / 73
Introduction au Deep Learning Quelques applications au traitement d’images ou de vidéos
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 15 / 73
Introduction au Deep Learning Principe général
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 16 / 73
Introduction au Deep Learning Principe général
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 17 / 73
Introduction au Deep Learning Principe général
CHAPTER 1. INTRODUCTION
Output
CAR PERSON ANIMAL
(object identity)
Visible layer
(input pixels)
Source: Goodfellow 2016
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 18 / 73
Introduction
CHAPTER au Deep Learning
1. INTRODUCTION Principe général
Approches de l’apprentissage
Output
Mapping from
Output Output
features
Additional
Mapping from Mapping from layers of more
Output
features features abstract
features
Hand- Hand-
Simple
designed designed Features
features
program features
Deep
Classic learning
Rule-based
machine
Source: Goodfellow 2016 systems Representation
learning
learning
1957 : le perceptron
Rosenblatt propose le perceptron pour la classification
1 perceptron : 1 décision
si plusieurs classes (ex :
reconnaissance de chiffres) :
1 cellule de sortie par classe
enchaînement de plusieurs
couches : perceptron
multi-couche (MLP)
on introduit des non linéarités
entre les couches
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 21 / 73
Introduction au Deep Learning Histoire du connexionnisme
Années 90 :
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 22 / 73
Introduction au Deep Learning Histoire du connexionnisme
109
Dataset size (number examples)
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 24 / 73
Introduction au Deep Learning Histoire du connexionnisme
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 25 / 73
Introduction au Deep Learning Histoire du connexionnisme
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 26 / 73
Perceptrons multi-couches
Plan
2 Perceptrons multi-couches
Exemples en 2 dimensions
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 27 / 73
Perceptrons multi-couches
Inspiration biologique
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 28 / 73
Perceptrons multi-couches
Modèle simplifié :
X0
X1 w0
w1
X2
w2 X
... y = sign( wj xj + b)
...
...
... wp
Xp
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 29 / 73
Perceptrons multi-couches
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 30 / 73
Perceptrons multi-couches
Les MLP sont des modèles puissants : on peut montrer qu’un MLP est
un approximateur universel (Cybenko 1989) :
toute fonction (d’un compact vers un compact) peut être
approchée aussi bien que l’on veut par un MLP à trois couches,
avec suffisamment de neurones sur la couche cachée et une
sortie linéaire.
On peut donc résoudre tout problème de ML avec un MLP, si on arrive
à apprendre les poids...
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 31 / 73
Perceptrons multi-couches
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 32 / 73
Perceptrons multi-couches
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 33 / 73
Perceptrons multi-couches
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 34 / 73
Perceptrons multi-couches Exemples en 2 dimensions
Exemples en 2 dimensions
http://playground.tensorflow.org
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 35 / 73
Perceptrons multi-couches Exemples en 2 dimensions
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 36 / 73
Perceptrons multi-couches Exemples en 2 dimensions
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 37 / 73
Perceptrons multi-couches Exemples en 2 dimensions
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 38 / 73
Apprentissage par descente du gradient
Plan
2 Perceptrons multi-couches
Exemples en 2 dimensions
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 39 / 73
Apprentissage par descente du gradient
Apprentissage et optimisation
1 X
L = MSE = (ŷi − yi )2
m
i
Maximum de vraisemblance
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 40 / 73
Apprentissage par descente du gradient
Optimisation 1d
global maximum
4
local maximum
2
−2
local minimum
−4
global minimum
−6
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 41 / 73
Apprentissage par descente du gradient
ŷ = w.x
coût = (ŷ − y )2
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 42 / 73
Apprentissage par descente du gradient
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 43 / 73
Apprentissage par descente du gradient
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 44 / 73
Apprentissage par descente du gradient
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 45 / 73
Apprentissage par descente du gradient
voir 01-exemple-1d.ipynb
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 46 / 73
Apprentissage par descente du gradient
Apprentissage et optimisation
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 47 / 73
Apprentissage par descente du gradient
∂L
Gradient du coût par rapport à W : ∂w =?
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 48 / 73
Apprentissage par descente du gradient
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 49 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Chain rule
… LOSS
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 50 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Chain rule
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 51 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Chain rule
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 52 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Chain rule
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 53 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Chain rule
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 54 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
*
Source: Sung Kim, HKUST, http ://bit.ly/PyTorchZeroAll
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 55 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Forward pass x= 2, y = 3
*
Source: Sung Kim, HKUST, http ://bit.ly/PyTorchZeroAll
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 56 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
=2
*
=6
=3
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 57 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
*
=6
=5
=3
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 58 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
=y
*
=6
=x =5
=3
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 59 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
=y
*
=5 =6
*y
=1
5
=x =5
=3
0
x=1
= 5*
Source: Sung Kim, HKUST, http ://bit.ly/PyTorchZeroAll
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 60 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Computational graph
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 61 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Computational graph
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 62 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Computational graph
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 63 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Computational graph
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 64 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 65 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Backward propagation
=1
=1 =-1 =1
=1 =2
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 66 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Backward propagation
=1
=1 =-1 =1
=1 =2
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 67 / 73
Apprentissage par descente du gradient
Rétropropagation du gradient
Backward propagation
=1
=1 =-1 =1
=1 =2
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 68 / 73
Apprentissage par descente du gradient
Element Element
Set Set
+
+
⇥ ⇥ ⇥ Logistic
Regression
Logistic
Regression
w1 x1 w2 x2 w x
Exercice
Soit le modèle
ŷ = x 2 .w2 + x.w1 + b
loss = (ŷ − y )2
1 Calculer (manuellement) :
∂loss
=?
w1
∂loss
=?
w2
2 Coder ce calcul en Python.
3 Faire le même calcul avec PyTorch.
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 70 / 73
Apprentissage par descente du gradient
Résumé
Nous avons vu :
l’importance du Deep Learning dans de nombreuses applications
en vision ;
un bref historique de l’apprentissage des réseaux
connexionnistes ;
les principes de l’apprentissage par descente du gradient ;
le principe de l’algorithme de rétropropagation du gradient.
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 71 / 73
Apprentissage par descente du gradient
Installation de PyTorch
http://pytorch.org
conda install pytorch torchvision -c pytorch
Exemples : notebooks
02-pytorch-exemple-1d
Toy-Classif-2classes-simplifie
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 72 / 73
Apprentissage par descente du gradient
A suivre :
réseaux à convolutions
exemples
E. Viennet (Université Paris 13) EMA - Yaoundé 2019 - Deep Learning 1 2018-2019 73 / 73