Introduction aux Réseaux de Neurones
Introduction aux Réseaux de Neurones
Machine Learning
Cédric RICHARD
Université Côte d’Azur
Réseaux de neurones artificiels
L’ère de l’IA
DEEP LEARNING
REINFORCEMENT LEARNING
c
!Patrick Perez ([Link])
1
Réseaux de neurones artificiels
L’ère de l’IA
c
!TheScientist
2
Réseaux de neurones artificiels
Apprentissage profond en quelques mots
3
Réseaux de neurones artificiels
Applications clés
4
Réseaux de neurones artificiels
Machine Learning
x machine* ŷ
5
Réseaux de neurones artificiels
Exemples en traitement d’images
⊲ détection d’objet : catégoriser des objects et les repérer avec une boîte
⊲ segmentation d’objet : identification des pixels appartenant à un objet
⊲ segmentation d’instance : différencier les objets d’une même classe
6
Réseaux de neurones artificiels
Exemples en traitement d’images
x machine ŷ
7
Réseaux de neurones artificiels
Exemples en traitement d’images
x machine ŷ
8
Réseaux de neurones artificiels
Exemples en traitement audio
x machine ŷ
• classification audio
• marquage automatique
• segmentation audio
• recommandation musicale
• transcription de musique
• detection d’apparition
9
Réseaux de neurones artificiels
Traitement automatique du langage
x machine ŷ
• classification de texte
• modélisation linguistique
Mourante, elle vous sera comptée comme le froment. Sombre comme une • reconnaissance de la parole
figure de femme, portant une lance et une épée. Maintenues par la
peur, il prit l’usage des sondes, ce fut elle encore qui le soutint, • génération de légendes
pendant plusieurs années, mais peu honorable. Enchanté est-il d’entrer
en scène. Nouvelles promesses de l’autre un cadenas. • traduction automatique
• synthèses de documents
• systèmes de question-réponse
10
Réseaux de neurones artificiels
Modèle
influx nerveux
axone synapse
nucléus
influx nerveux
corps cellulaire
11
Réseaux de neurones artificiels
Modèle de neurone
x1 w1 synapse
axone w1 x 1
dendrite corps ! #
"
cellulaire σ wi x i + w0
i
w2 x 2 !
x2 wi x i + w0 σ(·)
i fonction axone
d’activation
w3 x 3
x3
w0
biais
12
Réseaux de neurones artificiels
Fonctions d’activation
0.8 0.6 4
0.6 0.2 3
0.5 0 2.5
0.4 -0.2 2
0.2 -0.6 1
0 -1 0
-5 -4 -3 -2 -1 0 1 2 3 4 5 -5 -4 -3 -2 -1 0 1 2 3 4 5 -5 -4 -3 -2 -1 0 1 2 3 4 5
1 exp(a) − exp(−a)
σ(a) = σ(a) = σ(a) = max{0, a}
1 + exp(−a) exp(a) + exp(−a)
13
Réseaux de neurones artificiels
Architecture neuronale
entrée
couche ℓ couche ℓ + 1
! "# $ ! "# $
xℓ
xℓ−1
14
Réseaux de neurones artificiels
Représentation simplifié
couche ℓ − 1 couche ℓ
15
Réseaux de neurones artificiels
Perceptron multicouche
couche cachée
16
Réseaux de neurones artificiels
Perceptron multicouche
couche de sortie
couche d’entrée
couche cachée 1
couche cachée 2
17
Réseaux de neurones artificiels
Perceptron multicouche
18
Réseaux de neurones artificiels
Formulation du perceptron multicouche à L couches
x0 = x
19
Réseaux de neurones artificiels
Théorème d’approximation universelle
Cybenko (1989)
Soit σ : IR → IR continue et sigmoïdale (lim−∞ σ = 0 et lim+∞ σ = 1)
L’ensemble des réseaux de neurones (??) est dense dans C([0, 1]D , IR)
Hornik (1991)
Soit K ⊂ IRD un compact. Soit σ : IR → IR continue, bornée et non-constante
L’ensemble des réseaux de neurones (??) est dense dans C(K, IR)
20
Réseaux de neurones artificiels
Fonction objectif
N
X
∗
θ = arg min J f (xn , θ), y n
θ
n=1
où
21
Réseaux de neurones artificiels
Régression
Fonction de perte
Comme pour la régression linéaire, on utilise généralement l’écart quadratique :
Couche de sortie
Comme fonction d’activation φ(·), on utilise généralement l’application identité :
φ(x) = x
22
Réseaux de neurones artificiels
Classification à C classes ω1 , . . . , ωC
Fonction de perte
Comme pour la régression logistique, on utilise généralement l’entropie croisée :
C
X
J (ŷ, y) = − yi log ŷi
i=1
Couche de sortie
Puisque l’entropie croisée opère sur des distributions de probabilité, la fonction
d’activation φ(·) de la couche de sortie doit faire en sorte que y en soit une
La fonction d’activation φ(·) est généralement la fonction softmax multidim. :
exp xi
φi (x) = PC , ∀i = 1, . . . , C
j=1 exp xj
23
Réseaux de neurones artificiels
Classification à C classes ω1 , . . . , ωC
24
Réseaux de neurones artificiels
Apprentissage supervisé
( )(
, “chien” )(
, “chien” )(
, “chat” ) ...
, “ara”
“chien”
compare
x0 x1 ... xL−1 “chat”
∆W1 ∆W2
. . . ∆WL−1 ∆WL
25
Réseaux de neurones artificiels
Apprentissage par rétropropagation du gradient
N
X
∗
θ = arg min J f (xn , θ), y n
θ
n=1
26
Réseaux de neurones artificiels
Gradient
z
z = J(θ)
θ2
! "
θ1
θ o θ=
θ2
θ1 courbe de niveau
∇J(θ o )
27
Réseaux de neurones artificiels
Gradient
28
Réseaux de neurones artificiels
Gradient
J(θ)
θ2 θ1
29
Réseaux de neurones artificiels
Descente de gradient
ce qui signifie que θ est une amélioration par rapport à θ o au sens du critère J (θ)
lorsque l’on souhaite minimiser celui-ci
30
Réseaux de neurones artificiels
Algorithme de descente du gradient
Algorithme du gradient :
Choisir un point initial θ (0) , un seuil ǫ, et un pas d’apprentissage µ > 0
Itérer les étapes suivantes à partir de k = 0
1. Calculer ∇J (θ(k) )
2. Test d’arrêt (exemple) : si k∇J (θ(k) )k < ǫ, arrêt
3. Nouvel itéré : θ (k+1) = θ (k) − µ∇J (θ(k) )
31
Réseaux de neurones artificiels
Tests d’arrêt
En pratique, on préconise
32
Réseaux de neurones artificiels
Choix du pas d’apprentissage µ
En pratique
1
⊲ pas fixe lorsque la fonction objectif est L-Lipschitz (µ < L)
⊲ pas variable par recherche linéaire
33
Réseaux de neurones artificiels
Choix du pas d’apprentissage µ
4 4 4
3 3 3
2 2 2
1 1 1
0 0 0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
4 4 4
3 3 3
2 2 2
1 1 1
0 0 0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
itermax = 10
34
Réseaux de neurones artificiels
Choix du pas d’apprentissage µ
35
Réseaux de neurones artificiels
Algorithme de descente du gradient : optimums locaux
36
Réseaux de neurones artificiels
Algorithme de descente du gradient : optimums locaux
37
Réseaux de neurones artificiels
Algorithme de descente du gradient : optimums locaux
38
Réseaux de neurones artificiels
Apprentissage de réseau de neurones
39
Réseaux de neurones artificiels
Algorithme général
40
Réseaux de neurones artificiels
Algorithme général
fin
fin
41
Réseaux de neurones artificiels
Principe de la rétropropagation du gradient
ŷ = Fun(xℓ−1 , Wℓ , Wℓ+1 , . . . , WL ), ℓ = 1, . . . , L − 1
42
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche
ŷ
xi !
z = Wx
ŷj
ŷ = φ(z)
43
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche
z ŷ
!
φ z = Wx
xi wji ŷ = φ(z)
zj ŷj
φ
∂J ∂J ∂zj
φ = ·
∂wji ∂zj ∂wji
! "# $
44
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche
z ŷ
!
φ z = Wx
xi wji ŷ = φ(z)
zj ŷj
φ
δjz
∂J ∂J ∂zj ∂zj
φ = · = δjz ·
∂wji ∂zj ∂wji ∂wji
! "# $
45
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche
z ŷ
!
φ z = Wx
xi wji ŷ = φ(z)
zj ŷj
φ
δjz
∂J ∂zj
φ = δjz · = δjz · xi
∂wji ∂wji
! "# $
46
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 1 couche
∂J
Le résultat précédent, ∂wji = δjz xi , permet de réécrire le gradient recherché sous
forme matricielle :
∇W J = δ z x⊤
47
Réseaux de neurones artificiels
Calcul de δjz
∂J X ∂J ∂ ŷp
δjz , = ·
∂zj p
∂ ŷp ∂zj
En pratique
On trouve surtout ŷj = φ(zj ), en particulier pour les couches cachées. Alors :
∂J ∂ ŷj
δjz = ·
∂ ŷj ∂zj
∂ ŷp
car ∂ ẑj = 0 si p 6= j. En notant ⊙ le produit terme à terme, on écrit
∂J
δ z = φ′ (z) ⊙
∂ ŷ
48
Réseaux de neurones artificiels à 1 couche
Application à la régression
Fonction d’activation
La fonction d’activation de sortie φ, i.e., la fonction identité φ(z) = z, conduit à :
φ′ (z) = 1
49
Réseaux de neurones artificiels à 1 couche
Application à la régression
δ z = ŷ − y
Conclusion
Étant donné un élément de la base d’apprentissage (x, y), on en déduit que le
gradient de J par rapport à W pour le couple entrée-sortie (x, y) est donné par
∇W J = (ŷ − y) x⊤
50
Réseaux de neurones artificiels à 1 couche
Application à la régression
fin
fin
51
Réseaux de neurones artificiels à 1 couche
Application à la classification à C classes ω1 , . . . , ωC
En conséquence
∂J 1 ∂J
=− si p = i0 , sinon =0
∂ ŷp ŷi0 ∂ ŷp
Fonction d’activation
La fonction d’activation de sortie φ, i.e., la fonction softmax, conduit à :
∂ ŷp ∂ ŷp
= ŷp (1 − ŷp ) si p = j, sinon = −ŷp ŷj
∂zj ∂zj
52
Réseaux de neurones artificiels à 1 couche
Application à la classification à C classes ω1 , . . . , ωC
P ∂J ∂ ŷp
Parce que δjz = p ∂ ŷp · ∂zj , en combinant les résultats précédents, on obtient :
δ z = ŷ − y
Conclusion
Étant donné un élément de la base d’apprentissage x0 ∈ ωi0 , on en déduit que le
gradient de J par rapport à W pour le couple entrée-sortie (x, y) est donné par
∇W J = (ŷ − y) x⊤
53
Réseaux de neurones artificiels à 1 couche
Application à la classification à C classes ω1 , . . . , ωC
fin
fin
54
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches
u h
σ
x z ŷ
ui hi
σ
φ
wji
zj ŷj
xm σ φ
δjz δjy
φ
σ
σ ! "# $
! "# $
couche d’entrée couche de sortie
couche cachée
∂J
= δjz · hi
∂wji
55
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches
u h
σ
x z ŷ
ui hi
σ
δiu δih φ
wji
zj ŷj
xm σ φ
δjz δjy
φ
σ
σ ! "# $
! "# $
couche d’entrée couche de sortie
couche cachée
∂J ! ∂J zj !
= · = δjz · wji ! δih
∂hi j
∂zj ∂hi j
56
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches
u h
σ
x z ŷ
ui hi
σ
δiu δih φ
vim zj ŷj
xm σ φ
δjz
φ
σ
σ ! "# $
! "# $
couche d’entrée couche de sortie
couche cachée
57
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches
u h
σ
x z ŷ
ui hi
σ
δiu δih φ
vim zj ŷj
xm σ φ
δjz δjy
φ
σ
σ ! "# $
! "# $
couche d’entrée couche de sortie
couche cachée
∂J ∂ui
= δiu · = δiu · xm
∂vim ∂vim
58
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau à 2 couches
Les résultats précédents permettent d’écrire le gradient recherché par rapport aux
poids V de la couche cachée sous forme matricielle :
∇V J = δ u x⊤
∂J
δ u = σ ′ (u) ⊙
∂h
Les 2 expressions ci-dessus sont identiques à celles d’un réseau à 1 couche
∂J
Seul le calcul de ∂h change, en faisant intervenir le couplage avec la couche
suivante via δ z ainsi
∂J
, δh = U ⊤ δz
∂h
59
Réseaux de neurones artificiels
Calcul du gradient : cas d’un réseau multicouche
En observant que u tient le même rôle que z, et que la sortie h tient le rôle d’entrée
pour la couche suivante, on est en mesure de généraliser l’algorithme à L couches
Calcul du gradient pour chaque couche Wℓ=1,...,L en (xn , y n )
calculer la sortie estimée ŷ n au point (xn , y n ) souhaité;
∂J
δ xL = ;
∂ ŷ
pour ℓ = L à 1 faire
δ zℓ = σ ′ (z ℓ ) ⊙ δ xℓ
δ xℓ−1 = Wℓ⊤ δ zℓ
∇Wℓ J = δ zℓ x⊤
ℓ−1
fin
Remarque : changer σ(·) par φ(·) pour la couche ℓ = L
60
Réseaux de neurones artificiels
Dérivées usuelles
61
Réseaux de neurones artificiels
Entrées et/ou sorties structurées
62
Réseaux de neurones artificiels
Réseaux de neurones convolutifs
Constat
Pour une image RGB de taille 256 × 256 × 3, chaque neurone de la première couche
cachée connecté à tous les pixels comporterait 2 · 105 poids synaptiques à estimer.
Pour une couche cachée comportant autant de neurones que de pixels, le nombre
total de poids s’élève à : 4 · 1010
Élements de solution
⊲ Prise en compte la corrélation spatiale des images
⊲ Invariance en translation
63
Réseaux de neurones artificiels
Réseaux de neurones convolutifs
64
Réseaux de neurones artificiels
Couches constitutives
65
Réseaux de neurones artificiels
Couche de convolution
66
Réseaux de neurones artificiels
Couche de convolution : noyau ou filtre
noyau
de convolution
parcours
du volume d’entrée
produit de convolution
1 neurone
67
Réseaux de neurones artificiels
Couche de convolution : produit de convolution
zero-padding
Activation map
-25
-25
68
Réseaux de neurones artificiels
Couche de convolution : pas de chevauchement
pas de chevauchement = 1
69
Réseaux de neurones artificiels
Couche de convolution : synthèse
32 28
Couche de convolution
6 filtres de taille 5x5
32 28
3 6
70
Réseaux de neurones artificiels
Couche de pooling
71
Réseaux de neurones artificiels
Couche de pooling
Max-pool
avec un opérateur 2 X 2
224 X 224
112 X 112
pooling
72
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : récapitulatif
f. maps
f. maps
entrée
f. maps
sortie
73
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : LeNet5 (Le Cun, 1998)
74
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : AlexNet (Krizhevsky et al., 2012)
2012 :
1.2MM images (app.)
50M images (val.)
150M images (test)
1M catégories
75
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : AlexNet (Krizhevsky et al., 2012)
76
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : VGG (Simonyan et al., 2014)
77
Réseaux de neurones artificiels
Réseaux de neurones convolutifs : ImageNet
78