R ÉSEAU DE NEURONES - C OMPLÉMENTS
I NTRODUCTION AU DEEP LEARNING
Théo Lopès-Quintas
BPCE Payment Services,
Université Paris Dauphine
13 janvier 2025
1 Meilleure descente de gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Avec momentum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 AdaGrad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 RMSProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Adam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Échéancier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Classique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Par cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Régularisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Couche Batch Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Régularisation L2 et Weight Decay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
M EILLEURE DESCENTE DE GRADIENT
F ORMULATION D ’ UN PROBLÈME DE M ACHINE L EARNING
Dans le cadre supervisé, nous avons accès à un dataset D défini comme :
Nombre d’informations
( )
′
d
D= (xi , yi ) | ∀i ⩽ n , xi ∈ R , yi ∈ Y
Nombre d’observations
Avec Y ⊆ R pour un problème de régression et Y ⊂ N dans le cadre d’une classification. Les
problèmes de Machine Learning supervisé peuvent souvent s’écrire sous la forme d’une optimisation
d’une fonction de perte L : Rd × Mn,d′ × Rn → R+ comme :
Vecteur des paramètres optimaux
θ∗ = arg min L(θ, X, y)
d
θ∈R
Dimension du vecteur de paramètres
Dans la suite, pour simplifier les notations, nous omettrons la dépendance de L en X (matrice des
informations) et y (vecteur réponse). Notons qu’en général, nous avons d ̸= d′ et dans le cas du deep
learning, très souvent d >> d′ .
1 / 23
M EILLEURE DESCENTE DE GRADIENT
AVEC MOMENTUM
Paramètre du momentum
(
vt+1 = γt vt + (1 − γt )∇L(θt )
(1)
θt+1 = θt − ηt vt+1
Vecteur de vélocité
Avec cette version, on conserve dans la mise à jour des poids la tendance de déplacement des poids
dans l’espace des paramètres pour accélérer la descente. A noter que la valeur du momentum γt doit
être dans l’intervalle [0, 1].
Update sans momentum Update avec momentum
La descente de gradient avec momentum
peut parfois rater le minimum et faire
machine arrière. Ce phénomène peut être
mitigé à l’aide d’un choix précis du learning Momentum
rate. Cet hyper-paramètre est de loin le •
paramètre le plus sensible sur l’ensemble des θt
schémas que nous présenterons •
θt−1
2 / 23
Figure – Effet du momentum sur la mise à jour des poids
M EILLEURE DESCENTE DE GRADIENT
A DA G RAD : U NE PREMIÈRE RÉPONSE
g = gt + ∇L(θt )2 avec g0 = 0
t+1
∇L(θt ) (AdaGrad, 2011)
θt+1
= θt − η √
gt+1 + ε
Nombre pour éviter des problèmes numériques
θ1
Première initialisation •
Si le gradient a une magnitude •
plus importante dans une ••
•
direction, elle sera privilégiée • ••••
•
pendant l’optimisation. •• •
••••••• ••••••• • θ0
AdaGrad [Duchi et al., 2011]
••• •
propose de normaliser le ••
•• •
gradient pour avoir un ••
apprentissage uniforme. •
• Deuxième initialisation
Figure – 10 étapes de descente de gradient pour la fonction f (x, y) = x2 + 3y2
avec AdaGrad pour deux initialisations différentes 3 / 23
M EILLEURE DESCENTE DE GRADIENT
A DA G RAD : R ÉPONSE IMPARFAITE
= gt + ∇L(θt )2
gt+1
avec g0 = 0
∇L(θt ) (AdaGrad, 2011)
θt+1
= θt − η √
gt+1 + ε
Cependant avec ce schéma, AdaGrad tend à avoir un apprentissage qui ralenti au fil de
l’entraînement puisque (gt )t est croissante.
50
40
Norme de gt
30
20
10
0
0 2 4 6 8 10
4 / 23
Étapes t
M EILLEURE DESCENTE DE GRADIENT
RMSP ROP : D EUXIÈME RÉPONSE
Contrôle la mémoire des précédents gradients, α ⩾ 0
= α gt + (1 − α )∇L(θt )2
gt+1
avec g0 = 0
∇L(θt ) (RMSProp, 2012)
θt+1
= θt − η √
gt+1 + ε
50
40
Norme de gt
RMSProp [Hinton et al., 2012] cherche
aussi à permettre un apprentissage 30
uniforme dans toutes les directions,
mais le fait avec une moyenne mobile 20
exponentielle. Cela permet à (gt )t de
pouvoir décroître. 10
0
0 2 4 6 8 10
Étapes t
5 / 23
Figure – Norme de gt pour RMSProp et AdaGrad
M EILLEURE DESCENTE DE GRADIENT
A DAM : C OMBINER A DA G RAD ET RMSP ROP
mt+1 = β1 mt + (1 − β1 )∇L(θt ) avec m0 = 0
mt+1
m̂t+1 =
1 − β1t+1
vt+1 = β2 vt + (1 − β2 )∇L(θt )2 avec v0 = 0
vt+1 (Adam, 2014)
v̂t+1 =
1 − β2t+1
m̂t+1
θt+1
= θt − η p
v̂t+1 + ε
Adam [Kingma and Ba, 2015] s’est rapidement imposé comme un excellent schéma d’optimisation
pour l’apprentissage d’un réseau de neurones. Il ressemble à une version accélérée de RMSProp,
étudions plus en détail ses moyennes mobiles.
6 / 23
M EILLEURE DESCENTE DE GRADIENT
A DAM : C ORRECTION DU BIAIS DE L’ INITIALISATION
Si l’on reprend une partie d’Adam, par exemple pour la suite (vt )t∈N :
vt+1 = β2 vt + (1 − β2 )∇L(θt )2 avec v0 = 0
vt+1
v̂t+1 =
1 − β2t+1
On remarque que :
vt = β2 vt−1 + (1 − β2 )L(θt )2
h i
= β22 vt−2 + (1 − β2 ) β2 L(θt−1 )2 + L(θt )2
t
X
= β2t v0 + (1 − β2 ) β2t−i L(θi )2
i=1
Si l’on suppose que les gradients sont identiquement distribués, on obtient :
h t
iX h i
E [vt ] = (1 − β2 )E L(θt )2 β2t−i ⇐⇒ E [vt ] = E L(θt )2 (1 − β2t )
i=1
D’où on déduis la correction apportée par la suite (v̂t )t∈N . Le calcul est le même pour la suite (m̂t )t∈N .
7 / 23
M EILLEURE DESCENTE DE GRADIENT
A DAM : I NTERPRÉTATION DU LEARNING RATE
h i
Puisque les suites (v̂t )t∈N et (m̂t )t∈N sont des estimateurs non biaisés de E [L(θt )] et E L(θt )2 , on doit
pouvoir obtenir une information sur la mise à jour des paramètres. h i
On considère une variable aléatoire X telle que E [X] existe et E X2 existe et n’est pas nulle. Alors,
puisque la fonction x 7→ x2 est une fonction convexe, avec l’inégalité de Jensen on a :
h i E [X]2 |E [X]|
E X2 ⩾ E [X]2 ⇐⇒ h i ⩽ 1 ⇐⇒ r h i ⩽ 1
E X2 E X2
Dans notre cas, avec les mêmes hypothèses pour L(θt ) que pour X, on définit ∆t = θt − θt−1 et on a :
m̂t |m̂t |
∆t = η p donc |∆t | = η p
v̂t v̂t
|E [L(θt )]|
|∆t | ∼ η q ainsi |∆t | ≲ η
E [L(θt )]2
8 / 23
M EILLEURE DESCENTE DE GRADIENT
Q UEL OPTIMIZER CHOISIR ?
De nombreuses autres possibilités existent, et chaque année plusieurs optimiseurs sont proposés.
C’est pourquoi [Schmidt et al., 2021] propose de comparer équitablement quinze optimiseurs sur
différentes tâches. Il en ressort deux informations :
▶ Adam est l’optimiseur le plus performant sur le plus de tâches, sans pour autant être clairement
supérieur. RMSProp et l’accélération de Nesterov restant des alternatives très intéressantes.
▶ Choisir les meilleurs hyperparamètres est tout aussi efficace voire plus efficace que de changer
d’optimiseur.
Perhaps the most important takeaway from our study is hidden in plain sight : the field
is in danger of being drowned by noise. Different optimizers exhibit a surprisingly similar
performance distribution compared to a single method that is re-tuned or simply re-run with
different random seeds. It is thus questionable how much insight the development of new
methods yields, at least if they are conceptually and functionally close to the existing population.
— Robin Schmidt, Frank Schneider et Philipp Hennig (2021)
9 / 23
É CHÉANCIER
I L FAUT UN ÉCHÉANCIER POUR SGD
On se place dans le cadre d’une optimisation d’une fonction de perte L non convexe, mais β-smooth.
On conserve les hypothèses (??) de l’annexe de la séance 1, et on note θ∗ = arg min L (θ)
θ∈Rd
Théorème 1 (Pas de descente décroissant)
1
On considère une descente de gradient stochastique avec ηt une suite décroissante telle que ηt ∈ 0, et que :
β
+∞
X +∞
X
ηt = +∞ et ηt2 < +∞
t=0 t=0
Alors, pour tout T ⩾ 1 :
1 X T−1
lim E T−1 ηt ∥∇L (θt ) ∥2 = 0
T→+∞ X
t=0
η t
t=0
Nous n’avons plus cette fois une convergence dans un intervalle proche du minimum, mais une
convergence vers un point de gradient nul. D’où la nécessité d’avoir un échéancier pour le choix du
learning rate. De même pour Nesterov, nous avions besoin d’un échéancier pour le momentum.
10 / 23
É CHÉANCIER
C LASSIQUE
Les succès de l’ensemble des schémas précédents sont conditionnés à un bon choix du learning rate η,
même dans le cas adaptatif. Il est possible de le conserver constant pour la totalité de l’entraînement
mais il existe des échéanciers pour modifier η au cours de l’entraînement.
Learning rate
Learning rate
Learning rate
Époque Époque Époque
(a) Linear Decay (b) Polynomial Decay (c) Cosinus Decay
Figure – Exemples d’échanciers du learning rate avec échauffements
Il n’y a pas de consensus sur l’utilisation ou non d’un échauffement. De même, ces échéanciers
tendent vers 0, mais il est plus utile de le conserver à une valeur non nulle.
11 / 23
É CHÉANCIER
PAR CYCLE
L’article Cyclical Learning Rates for Training Neural Network [Smith, 2017] propose une nouvelle
manière de définir un échéancier 1
The essence of this learning rate policy comes from the observation that increasing the learning
rate might have a short term negative effect and yet achieve a longer term beneficial effect
— Leslie Smith (2015)
La première manière de faire varier la valeur est triangulaire :
Borne maximum
Step size Borne minimum
Figure – Échéancier triangulaire pour le learning rate
1. A noter que cette proposition est antérieure à Attention is all you need, elle s’applique donc à l’ensemble des réseaux par construction.
12 / 23
É CHÉANCIER
PAR CYCLE ET AVEC RESTART
L’échéancier cosinus introduit en 2016 dans l’article SGDR : Stochastic gradient descent with warm restart
[Loshchilov and Hutter, 2016] est devenu standard dans les réseaux Transformers 2 .
Nombre d’itérations réalisées dans le cycle i
1 Tcur
i i i
ηt = ηmin + ηmax − ηmin 1 + cos π
2 Ti
Nombre d’itérations à réaliser dans le cycle i
Borne maximum
Step size Borne minimum
13 / 23
Figure – Échéancier cosinus pour le learning rate
R ÉGULARISATION
D ROPOUT
Le dropout [Srivastava et al., 2014] est introduit en 2014 par Nitish Srivastava, Geoffrey Hinton, Alex
krizhevsky, Ilya Sutskever et Ruslan Salakhutinov. Lors de l’entraînement, le dropout va supprimer de
la chaîne d’entraînement des neurones avec une proportion 1 − p à chaque couche, dont l’input, sauf
l’output. On obtient à chaque passe forward un sous-ensemble du réseau initial.
(a) Entraînement classique (b) Entraînement avec dropout
Figure – Réseau de neurones avec et sans dropout
L’exploitation du réseau de neurones nécessite comportement déterministe. Classiquement, la
prédiction finale d’un ensemble est construite en faisant la moyenne arithmétique des prédictions. Ici,
conserver l’ensemble des réseaux est trop coûteux en mémoire, donc nous allons approcher ce
comportement en faisant la moyenne géométrique : chaque poids est multipliés par la proportion p de
dropout. 14 / 23
R ÉGULARISATION
C OUCHE Batch Normalization
Sergey Ioffe et Christian Szegedy publie en 2015 l’article Batch normalization : Accelerating deep network
training by reducing internal covariate shift [Ioffe and Szegedy, 2015] où l’on peut lire :
Training Deep Neural Networks is complicated by the fact that the distribution of each layer’s
inputs changes during training, as the parameters of the previous layers change. This slows
down the training by requiring lower learning rates and careful parameter initialization, and
makes it notoriously hard to train models with saturating nonlinearities
— Sergey Ioffe, Christian Szegedy (2015)
Ce phénomène est appelé l’internal covariate shift et fait partie de la famille des shifts qui existent en
Machine Learning 3 . Pour essayer de contrer ses effets est proposé une nouvelle couche dans un
réseau de neurones : Batch Normalization.
3. Il s’agit de l’ensemble des changements qui peuvent se produire pendant l’entraînement ou l’utilisation d’un algorithme. Par exemple le changement de distribution entre le dataset
de train et le dataset de test.
15 / 23
R ÉGULARISATION
C OUCHE Batch Normalization : P REMIÈRE APPROXIMATION
L’idée est de pousser l’idée de normaliser les inputs à l’ensemble des couches, pas seulement la
première. Si nous le faisions systématiquement avec l’ensemble du dataset, alors nous devons calculer
les nouvelles valeurs pour normaliser pour chaque couche à chaque époques. Donc calculer des
matrices de variance-covariance ainsi que leurs racine carré inverse : c’est très coûteux.
Pour tout de même approcher l’idée de normaliser chaque couche, l’article propose une première
simplification. La première est que chaque dimensions du vecteur d’input sera normalisée
indépendamment :
Dimension k du vecteur input x ∈ Rd
x(k) − x(k)
x̂(k) =
σx(k)
Ecart-type de x(k) calculé sur le training set
Ce genre de transformation, appliqué à chaque couche, peut changer ce que chaque couche représente.
Normaliser les inputs d’une fonction d’activation sigmoid les contraints à être proche de 0 donc du
régime presque linéaire de sigmoid.
16 / 23
R ÉGULARISATION
C OUCHE Batch Normalization : S ECONDE APPROXIMATION
Pour ne pas le perdre, on introduit deux paramètres pour chaque couche l ⩽ L que le réseau va
apprendre pour permettre de conserver le pouvoir de représentation du réseau. Si l’on note z l’output
de la couche Batch-Normalization, on a :
z(k) = γ (k) x̂(k) + β (k)
Les paires (γ (k) , β (k) ) sont apprises avec le modèle. Si l’on utilise une descente de gradient stochastique
alors on ne peut plus utiliser l’ensemble du dataset pour normaliser. C’est ici qu’intervient la seconde
simplification : chaque mini-batch B produit une estimation de la moyenne et de la variance.
m
1 X
µB = xj
m
j=1
x i − µB
x̂i = r
σB2 + ε
m ε > 0 pour prévenir les instabilités numériques
1 X
σB2 = (xi − µB )2
m
j=1
Et le résultat de la couche de batch-normalization comme : zi = γ x̂i + β 17 / 23
R ÉGULARISATION
C OUCHE Batch Normalization : E N PRATIQUE
L’introduction de celle nouvelle brique dans l’architecture d’un réseau de neurones permet d’accélérer
sa convergence, de manière saine, si l’on modifie également le reste des paramètres. Dans l’article, et
dans la pratique, il est conseillé quand on utilise Batch Normalization d’augmenter le learning rate et
de supprimer ou réduire le dropout par exemple.
Position de la couche
Si l’article est clair sur la position de cette couche par rapport à l’activation (fonction d’activation puis
Batch Normalization), dans la pratique ce n’est pas ce qui semble fonctionner le mieux. En témoigne
le commentaire de François Chollet 4 suite à une question sur GitHub :
I haven’t gone back to check what they are suggesting in their original paper, but I can guarantee
that recent code written by Christian [Szegedy] applies relu before BN. It is still occasionally a
topic of debate, though.
— François Chollet (2016)
Par expérience, nous conseillons de suivre cette recommandation.
4. François Chollet est un chercheur chez Google qui a, entre autre, écrit Keras et un des livres références (si ce n’est le) sur le Deep Learning.
18 / 23
R ÉGULARISATION
P ROBLÈME DE LA RÉGULARISATION
[Krogh and Hertz, 1991] montre qu’avoir un réseau de neurones avec une magnitude de poids faible
permet de limiter le sur-apprentissage.
Une manière classique pour régulariser un réseau de neurones est de modifier la fonction de perte
que l’on optimise. Le plus souvent on exploite la régularisation L2 :
λ
Lλ (w) = L(w) + ∥w∥22 avec λ ⩾ 0
2
Dans le cas d’une descente de gradient classique, cela donne le schéma d’optimisation :
wt+1 = wt − ηt ∇Lλ (wt ) par définition de la descente de gradient
= wt − ηt ∇L(wt ) − ηt λwt par définition de Lλ
Le terme supplémentaire ηt λwt est appelé le weight decay.
19 / 23
R ÉGULARISATION
P ROBLÈME DE LA RÉGULARISATION
Mais si l’on considère une descente de gradient avec momentum :
vt+1 = βvt + (1 − β)∇Lλ (wt ) par définition
= βvt + (1 − β) [∇L(wt ) + λwt ] par définition de Lλ
wt+1 = wt − ηt (βvt + (1 − β) [∇L(wt ) + λwt ])
= wt − ηt βvt − ηt (1 − β)∇L(wt ) − ηt (1 − β)λwt
Autrement dit, nous avons une propagation de la régularisation dans le schéma de descente, ce qui
n’est pas souhaité. Pour conserver le comportement observé dans une descente de gradient classique,
[Loshchilov and Hutter, 2019] propose simplement de modifier le schéma de descente plutôt que la
fonction de perte.
Ainsi, dès lors que l’on utilise une méthode adaptative, il faut préférer le weight decay à la
régularisation L2 . L’omniprésence d’Adam dans la littérature a amené à la création d’AdamW qui est
Adam intégrant le weight decay.
20 / 23
B IBLIOGRAPHIE I
Duchi, J., Hazan, E., and Singer, Y. (2011).
Adaptive subgradient methods for online learning and stochastic optimization.
Journal of machine learning research.
Hinton, G., Srivastava, N., and Swersky, K. (2012).
Neural networks for machine learning lecture 6a overview of mini-batch gradient descent.
Cited on.
Hoffmann, J., Borgeaud, S., Mensch, A., Buchatskaya, E., Cai, T., Rutherford, E., Casas, D. d. L.,
Hendricks, L. A., Welbl, J., Clark, A., et al. (2022).
Training compute-optimal large language models.
arXiv preprint arXiv :2203.15556.
Ioffe, S. and Szegedy, C. (2015).
Batch normalization : Accelerating deep network training by reducing internal covariate shift.
International conference on machine learning.
Kingma, D. P. and Ba, J. (2015).
Adam : A method for stochastic optimization.
In International Conference on Learning Representations (ICLR).
21 / 23
B IBLIOGRAPHIE II
Krogh, A. and Hertz, J. (1991).
A simple weight decay can improve generalization.
Advances in neural information processing systems.
Loshchilov, I. and Hutter, F. (2016).
Sgdr : Stochastic gradient descent with warm restarts.
arXiv preprint arXiv :1608.03983.
Loshchilov, I. and Hutter, F. (2019).
Decoupled weight decay regularization.
International Conference on Learning Representations (ICLR).
Schmidt, R. M., Schneider, F., and Hennig, P. (2021).
Descending through a crowded valley-benchmarking deep learning optimizers.
In International Conference on Machine Learning. PMLR.
Smith, L. N. (2017).
Cyclical learning rates for training neural networks.
In 2017 IEEE winter conference on applications of computer vision (WACV), pages 464–472. IEEE.
Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., and Salakhutdinov, R. (2014).
Dropout : a simple way to prevent neural networks from overfitting.
The journal of machine learning research.
22 / 23
B IBLIOGRAPHIE III
23 / 23