-
INTRODUCTION AUXRÉSEAUX DE NEURONESRétropropagation du gradient
Pascal Germain*, 2019
* Merci spécial à Philippe Giguère pour m’avoir permis de réutiliser une partie de ces transparents.
http://www2.ift.ulaval.ca/~pgiguere/index.html
-
Illustration et nomenclature
2
x1
x2
x3
ŷ1
ŷ2…
couches cachéescouche
d’entrée
couche de sortie
Couches du réseau
largeu r
(3) (2) (1)ŷ f f f x
-
Choix à faire• Architecture– # couches– # neurones (cachés) par couche– type de couche
• Forme de la sortie & fonction de sortie• Fonction de perte• Optimiseur – et autres « détails »
3
-
Comparaison avec les méthodes «classiques»• Beaucoup de méthodes d’apprentissage
sont convexes–Moindre carrés– Regression logistique– SVM
• Les réseaux de neurones sont non-convexes– Abandon de garanties théoriques– Le résultat varie selon l’initialisation de la descente en
gradient.– On doit accepter que les minimums locaux peuvent être de
bonnes solutions.– La recherche montre que les solutions sont en fait souvent
points de selle• ratio (points de selle)/(minimum locaux) augmente
exponentiellement avec nombre paramètres à optimiser5
Voir Goodfellow et al.
Section 8.2.3
-
Exemple point de selle• Dérivées partielles nulles au point de selle
6https://www.safaribooksonline.com/library/view/fundamentals-of-deep/9781491925607/ch04.html
-
Profil de la fonction de perte
7Adapté de cs231n
Minimum
-
Algorithme de rétropropagation («backprop»)
-
Règle de dérivation en chaîne
9
Par exemple:
Donc :
-
10
xx v h w f
-
Règle de dérivation en chaîne
11
On écrit aussi:
-
12
xx v h w f
-
13
x
w1
a1*
ɸ1f1
w2
a2*
ɸ2f2
wK
aK*
ɸKfK
y
LF
f1 f2w1 w2x
Étape 1: Propagation avant Étape 2: Rétropropagation du gradient
-
14
x
w1
a1*
ɸ1f1
w2
a2*
ɸ2f2
wK
aK*
ɸKfK
y
LF
f1 f2w1 w2x
-
15
ɸD
wD
*
ɸk+1fkak
*
ɸ1
w1
**
+
W(k)fkfk-1
-
f
f
f
f
W11W 12
W 13
( 1)1
kh
( 1)2
kh
( 1)3
kh
( )1
ka
( )2
ka
( )3
ka
( )4
ka
( )1
kh
( )2
kh
( )3
kh
( )4
kh
-
f
f
f
f
W11W 12
W 13
( 1)1
kh
( 1)2
kh
( 1)3
kh
( )1
ka
( )2
ka
( )3
ka
( )4
ka
( )1
kh
( )2
kh
( )3
kh
( )4
kh
-
Différentiation automatique dans un graphe de calcul
-
• Algorithme qui calcule tous les gradients dans un graphe de calcul quelconque.
• N’est pas l’algo d’optimisation!• Mais tous les algos d’optimisation des réseaux de
neurones utilisent les gradients calculés par backprop.• Basé sur la règle de dérivation en chaîne• Les librairies modernes de réseau de neurones
effectuent le calcul des dérivés automatiquement(comme pyTorch et TensorFlow).
19
«Backprop» et différentiation automatique
-
20
f = (u+v)w
=
u=
f=
w=
+ *v=
Instanciation des les variables:u=2v=3w=4
2
3
4
5 20
nœud : variablearête : opération
Évalue le graphe pour avoir f : Propagation avant (forward pass)
Exemple sur un graphe de calcul simple
-
Exemple sur un graphe de calcul simple
21
f=(u+v)w
À partir d’un graphe de calcul évalué :
On ajoute une variable pour stocker les gradients :
t1=5
u=2
f=20
w=4
+ *v=3
df/dudf/dw
df/dfdf/dv df/dt1t1=5
u=
f=
w=
+ *v=
2
3
4
20
-
Exemple sur un graphe de calcul simple
22
f=(u+v)w
t1=5
u=2
f=20
w=4
+ *v=3
df/dudf/dw
df/dfdf/dv df/dt1
u=
f=
w=
+ *v=
2
3
4
t1=5 20
1
4 4
4 5
1
f=t1w, t1=u+v
(Pourquoi /df? On cherche les dérivées partielle p.r. à la sortie, f)
ff
fw
1( ) ft w
w f 1
1t 1
ft
11( ) ft w
t f
1w
fu
fv
11 4f
t
1
1
t fu t
1
1
t fv t
1
1 4ft
À partir d’un graphe de calcul évalué :
On ajoute une variable pour stocker les gradients :
-
Déduisons les règles de base
23
t1=5
u=2
f=20
w=4
+ *v=3
df/dudf/dw
df/dfdf/dv df/dt1+
g
somme a+ba
b
g
g
fw
1( ) ft w
w f 1
1t 1
ft
11( ) ft w
t f
1w
fu
fv
11 4f
t
1
1
t fu t
1
1
t fv t
1
1 4ft
-
*g
a
b
produit a*b
24
t1=5
u=2
f=20
w=4
+ *v=3
df/dudf/dw
df/dfdf/dv df/dt1+
g´a
´b
somme a+ba
b
g
g
produit a*b
bg
ag
fw
1( ) ft w
w f 1
ftf
1
ft
11( ) ft w
t f
fwf
fu
fv
11 4f
t
1
1
t fu t
1
1
t fv t
1
1 4ft
Déduisons les règles de base
-
Dérivées des fonctions de d’activation et de perte classiques
-
26
Dérivées de fonctions de perte
-
27
Dérivées de fonctions de perte
-
28
Dérivées de fonctions d’activation
-
29
Dérivées de fonctions d’activation
-
30
Dérivées de fonctions d’activation
-
31
Dérivées de fonctions d’activation
Slide 1Illustration et nomenclatureChoix à faireComparaison avec autres méthodesExemple point de selleProfil de la fonction de perte L(q)_clipboard0Slide 8Choix à faire_clipboard0Slide 10Choix à faire_clipboard0_clipboard0Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18backpropExemple graphe calculExemple sur graphe calcul simpleExemple sur graphe calcul simpleTirer des règles de baseTirer des règles de baseSlide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31