Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
G
gradient_descent
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ISC2
maths
gradient_descent
Commits
6a635ae2
Verified
Commit
6a635ae2
authored
11 months ago
by
iliya.saroukha
Browse files
Options
Downloads
Patches
Plain Diff
feat: can be considered as finished
parent
b7c76487
Branches
Branches containing commit
Tags
v1.0.0
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
report/report.qmd
+42
-43
42 additions, 43 deletions
report/report.qmd
with
42 additions
and
43 deletions
report/report.qmd
+
42
−
43
View file @
6a635ae2
...
...
@@ -28,7 +28,7 @@ avec le concept de la descente de gradient dans le contexte de l’apprentissage
machine et l’intelligence artificielle.
La descente de gradient (le concept en lui-même ainsi que les divers
algorithmes) s
on
t utilisé
s
dans l’entraînement des réseaux neuronaux lors de la
algorithmes)
e
st utilisé
e
dans l’entraînement des réseaux neuronaux lors de la
rétropropagation ("Backpropagation"). En bref, la rétropropagation consiste à
"remonter" dans le réseau depuis la couche de sortie en direction de la couche
d’entrée afin d’ajuster les poids de chaque neurones qui ont contribué à un
...
...
@@ -43,15 +43,15 @@ qui représente l’erreur commise lors d’une mauvaise classification.
À présent, nous allons présenter les diverses expériences effectuées, notamment
en ce qui concerne l'ajustement du **_learning rate_** (taux d'apprentissage)
$\lambda$ qui correspond donc à la taille du pas effectué à chaque itération des
des
diverses méthodes de descente. Ceci sera illustré principalement à travers
la
descente **simple**.
diverses méthodes de descente. Ceci sera illustré principalement à travers
la
descente **simple**.
Dans un second temps, nous présenterons l'impact du paramètre **_momentum_**
(inertie) $\gamma$ dans le cadre de la descente **Momentum**. À la suite de ceci,
nous tenterons de faciliter la visualisation de la méthode **Nesterov** en la
comparant immédiatement à la **Momentum**.
Par la suite, nous introduirons la méthode la plus élaborée de quatres
Par la suite, nous introduirons la méthode la plus élaborée de
s
quatres
présentées dans ce travail pratique, celle d'**Adam**. Initialement, nous allons
tenter d'étudier l'effet du _learning rate_ $\lambda$ sur cet algorithme et les
raisons pour lesquelles sa valeur devra diverger par rapport aux trois autres
...
...
@@ -63,8 +63,8 @@ dont ces deux paramètres permettent de rendre le _learning rate_ dynamique
(c'est-à-dire l'ajuster en fonction des asymétries possiblement introduites par
un gradient plus prononcé dans une des dimensions par rapport aux autres). Cette
notion de taux d'apprentissage dynamique provient de l'algorithme **RMSProp**
(_Root Mean Square Propagation_) qui en calculant la moyenne des carrés des
composantes du gradient permet d'établir un taux d'apprentissage variable par
(_Root Mean Square Propagation_) qui
,
en calculant la moyenne des carrés des
composantes du gradient
,
permet d'établir un taux d'apprentissage variable par
composante.
Les paramètres d'**Adam** permettent aussi d'émuler un comportement d'inertie
...
...
@@ -88,12 +88,12 @@ $$ {#eq-func-bol}
**n.b.** : Le gradient $\nabla$ de la fonction ci-dessus est accentué dans
la direction de l'axe $y$ à l'aide du facteur $k = 5$. Ceci aura son importance
pour
lors de l'explication de la problématique des ravines ainsi que de la
lors de l'explication de la problématique des ravines ainsi que de la
visualisation de la méthode d'**Adam**.
Sur les figures ci-dessous nous pouvons voir l'effet du _learning rate_ sur le
nombre d'itérations de l'algorithme avant qu'on n'atteigne le minimum se
situant en $
(x, y) =
(0, 0)$.
situant en $
f
(0, 0)$.
:::: {#fig-basegd-lr layout="[[1], [1,1]]"}
...
...
@@ -111,15 +111,15 @@ Dans le cas de la @fig-base-high-lr, nous pouvons voir que suite aux grands pas
effectués à chaque itération, la trajectoire est saccadée même si le minimum
est tout de même atteint. Le problème qui peut survenir suite à un $\lambda$ si
grand est le fait de potentiellement passer au-delà d'un fossé qui puisse contenir
le minimum recherché. Ce cas sera illustr
er
plus tard.
le minimum recherché. Ce cas sera illustr
é
plus tard.
### Conclusion intermédiaire
A travers les exemples présent
er
sur la @fig-basegd-lr, nous pouvons facilement
A travers les exemples présent
é
sur la @fig-basegd-lr, nous pouvons facilement
se convaincre que le bon choix de la valeur du taux d'apprentissage, comme
beaucoup de choses dans la vie, repose sur un compromis. La valeur de $\lambda$
ne doit pas être à la fois trop petite (sinon le nombre d'itérations deviendra
énorme) ni trop grande (risque de rater un minimum, en "sautant" par-dessus).
énorme)
,
ni trop grande (risque de rater un minimum, en "sautant" par-dessus).
Dès lors, la valeur du taux d'apprentissage choisie pour les algorithmes de
descente simple, Momentum et Nesterov sera de $\lambda = 1 \cdot 10^{-2}$.
...
...
@@ -135,12 +135,12 @@ d'accentuer la taille du pas en fonction de la topologie dans son voisinage.
De manière plus simple, cela signifie que si la pente est raide, on peut se
permettre de faire un plus grand. Inversement, si le taux de variation est faible
alors le pas devra être petit. Ceci permet de diminuer la quantité d'itérations
néc
é
ssaires pour atteindre un minimum.
néc
e
ssaires pour atteindre un minimum.
::: {.callout-note}
Une faible valeur de $\gamma$ implique le fait qu'on porte peu d'importance aux
pas précédents. En effet si $\gamma = 0$, alors on aboutit à une descente de
gradient simple.
gradient
**
simple
**
.
:::
:::: {#fig-momentum-gamma layout="[1, 1]"}
...
...
@@ -153,7 +153,7 @@ Introduction du paramètre _momentum_ $\gamma$
::::
Pour pouvoir mieux voir la différence avec la méthode simple, nous allons
définir la valeur de $\
l
am
bd
a = 0.9$. Grâce à cette valeur nous pouvons à présent
définir la valeur de $\
g
am
m
a = 0.9$. Grâce à cette valeur nous pouvons à présent
réellement apprécier la trajectoire totalement différente produite par la
descente **Momentum**.
...
...
@@ -187,11 +187,11 @@ La trajectoire empruntée par la descente **Nesterov** est _étrangement_
similaire à celle de **Momentum** à un détail près, elle est **moins erratique**.
Ceci est dû au fait qu'avant d'effectuer le pas (c'est-à-dire passer à la
prochaine itération), **Nesterov** pré-calcule $\nabla{f}(\vec{x}_{k + 1})$ pour
corriger le grand pas effectu
er
par **Momentum** de sorte à pousser la
trajectoire un peu plutôt dans la bonne direction vers le minimum. La
@fig-nesterov
l'illustre très bien, les deux trajectoires ont les mêmes
tendances sauf que
l'orange (Nesterov) se "redresse" plus tôt et atteint le
minimum plus rapidement
que Momentum (205 contre 317 itérations).
corriger le grand pas effectu
é
par **Momentum** de sorte à pousser la
trajectoire un peu plu
s
tôt dans la bonne direction vers le minimum. La
@fig-nesterov
l'illustre très bien, les deux trajectoires ont les mêmes
tendances sauf que
l'orange (Nesterov) se "redresse" plus tôt et atteint le
minimum plus rapidement
que Momentum (205 contre 317 itérations).
## Méthode d'Adam
...
...
@@ -202,7 +202,7 @@ bien résumés dans son nom. Essayons donc de le décortiquer :
- **_Adaptive_** $\rightarrow$ le principe "adaptatif" (ou dynamique) consiste à
tenter d'adapter le taux d'apprentissage par rapport aux spécificités de chaque
composantes / dimensions. En d'autres termes, le but est de diminuer le taux
d'apprentissage pour les dimensions ayant un fort gradient et invers
é
ment,
d'apprentissage pour les dimensions ayant un fort gradient et invers
e
ment,
accentuer ce taux pour les dimensions ayant une faible variation. Ceci permet
notamment de palier à certaines problématiques qui peuvent survenir lors d'une
descente de gradient sur une fonction _non-isotropique_ (possédant des
...
...
@@ -227,9 +227,9 @@ la convergence vers un minimum.
Variation du taux d'apprentissage -- Adam
::::
Grâce à la @fig-adam-lr, nous pouvons observer l'effet du
_learning rate_
Grâce à la @fig-adam-lr, nous pouvons observer l'effet du
taux d'apprentissage
$\lambda$ sur la vitesse de convergence de cette méthode. Ce à quoi il est
néc
é
ssaire de prêter attention est le fait que la valeur de $0.01$ utilisée
néc
e
ssaire de prêter attention est le fait que la valeur de $0.01$ utilisée
pour ce paramètre par les méthodes précédentes s'avère être beaucoup trop
faible dans le cas d'Adam. Le minimum n'est atteint qu'au bout de $2440$
itérations ce qui est approximativement trois fois plus que pour la méthode
...
...
@@ -247,11 +247,11 @@ les diverses méthodes abordés à travers la visualisation des trajectoires
différentes qu'elles tracent.
La méthode qui se distingue le plus reste quand même celle d'**Adam**, suite
au fait qu'elle prend en compte l'isotrop
i
e
présente dans
la fonction. En
au fait qu'elle prend en compte l'
aspect non-
isotrope
de
la fonction. En
l'occurrence, le gradient dans la direction de l'axe $y$ est beaucoup plus
prononcé que celui de l'axe $x$, or la trajectoire tracée par **Adam** ne
priorise pas forcément la dimension ayant la plus grande variation du gradient.
Cela lui permet donc de ne pas être "influenc
er
" par une dimension en
Cela lui permet donc de ne pas être "influenc
é
" par une dimension en
particulier. Ceci est important car dans le cas d'une vraie fonction de coût,
il est possible que la dimension ayant en général une faible variation du
gradient possède à un moment un minimum plus important que les autres directions.
...
...
@@ -288,10 +288,10 @@ Influence des paramètres $\beta_{1}$ et $\beta_{2}$ sur la méthode d'Adam
# Pièges
Après avoir pass
er
en revue les particularités de chaque algorithme de descente,
nous allons à présent parler de certains pièges auxquel
le
s ces méthodes peuvent
faire face. Nous présenterons les problématiques des ravines, des plateaux
ainsi
que des minimaux locaux.
Après avoir pass
é
en revue les particularités de chaque algorithme de descente,
nous allons à présent parler de certains pièges auxquels ces méthodes peuvent
faire face. Nous présenterons les problématiques des
_
ravines
_
, des
_
plateaux
_
ainsi
que des
_
minimaux locaux
_
.
## Ravines
...
...
@@ -300,14 +300,14 @@ illustré à l'aide la @fig-base-high-lr. Suite au fait que la fonction
$f(x, y) = x^2 + 5y^2$ présente une non-isotropie (en d'autres termes, le
gradient n'est pas uniforme dans toutes les dimensions), nous pouvons voir que
l'algorithme de descente simple avec un taux d'apprentissage de $\lambda = 0.1$
arrive
très rapidement
à descendre dans la "vallée"
,
au bout d'**une
seul
e
itération** suite
au fait que le gradient est très prononcé dans la direction
de l'axe $y$.
Cependant pour pouvoir par la suite converger vers le minimum,
**72**
itérations supplémentaires sont nécessaires car le gradient dans la direction
arrive à descendre dans la "vallée" au bout d'**une
unique itération** suit
e
au fait que le gradient est très prononcé dans la direction
de l'axe $y$.
Cependant pour pouvoir par la suite converger vers le minimum,
**72**
itérations supplémentaires sont nécessaires car le gradient dans la direction
de l'axe $x$ est comparativement très faible.
Une seconde problématique est aussi soulevée. Si la nature non-isotropique de
la fonction est couplée à un taux d'apprentissage "trop" élevé
e
, ceci peut
la fonction est couplée à un taux d'apprentissage "trop" élevé, ceci peut
potentiellement mener à une divergence de la descente comme l'illustre les
graphiques ci-dessous.
...
...
@@ -332,9 +332,9 @@ Concernant la problématique des plateaux, celle-ci est assez explicite. Si
$\nabla{f} \approx \vec{0}$, alors les diverses méthodes auront beaucoup de
peine à avancer / itérer. Ce phénomène peut être illustré à l'aide de la
fonction $f(x, y) = 1 - \exp(-10x^2 - y^2)$ dont la particularité est qu'elle
est extrêmement plate sauf dans le voisinage de $(0, 0)$ où se situe son
est extrêmement plate sauf dans le voisinage de $
f
(0, 0)$ où se situe son
minimum global. Par la suite nous effectuerons tout de même une descente réussie
sur cette fonction cependant le point de départ se situer
a plus près de la zon
e
sur cette fonction cependant le point de départ
devra
se situer
pas loin d
e
de l'extremum.
<!-- $$ -->
...
...
@@ -351,10 +351,10 @@ de l'extremum.
Illustration du piège posé par un plateau
::::
Les ci-dessus illustren
e
t bien le fait qu'en partant du point $(2, 2)$
de la fonction, même après $1 \cdot 10^{5}
- 1
$ itérations, les quatres méthodes
Les
graphiques
ci-dessus illustrent bien le fait qu'en partant du point $(2, 2)$
de la fonction, même après $1 \cdot 10^{5}$ itérations, les quatres méthodes
n'ont su avancé dans la direction du minimum suite au fait que le gradient
présente peu de variation et par-dessus tout, le fait qu'il est presque égal
e
présente peu de variation et par-dessus tout, le fait qu'il est presque égal
au vecteur nul.
## Minimums locaux
...
...
@@ -370,7 +370,7 @@ or il s'avère que le choix de celui-ci est souvent aléatoire.
Cette problématique sera illustrée à l'aide de divers graphiques lorsque nous
effectuerons les descentes de gradient sur la fonction d'**Ackley**. La
particularité de cette fonction est le fait qu'elle possède justement un très
grand nombre de minimum locaux et un minimum global
bien défini
en $(0, 0)$.
grand nombre de minimum locaux et un minimum global
qui se démarque
en $(0, 0)$.
# Descentes sur diverses fonctions
...
...
@@ -393,8 +393,7 @@ la problématique des plateaux. Les graphiques ci-dessous permettent de mieux
visualiser sa particularité principale, celle d'un minimum global très prononcé
en $(0, 0)$ mais d'une topologie extrêmement plate dans ses environs. La
@fig-well-topology démontre cet aspect de topologie plate à travers le fait
qu'aucune ligne de niveau ne s'affiche dans le voisinage très proche de
l'extremum.
qu'aucune ligne de niveau ne s'affiche dans le voisinage proche de l'extremum.
:::: {#fig-well layout="[1,1]"}
...
...
@@ -461,8 +460,8 @@ problématiques, nous allons à présent visualiser le problème des minimums
locaux et leur influence sur la recherche d'un minimum global. Pour faire ceci,
nous ferons appel à la fonction d'[Ackley](https://en.wikipedia.org/wiki/Ackley_function).
La raison de ce choix est le fait que cette fonction se prête très bien à cet
exercice suite au fait qu'elle possède une
grande
multitude de minimums locaux
avec un
minimum global en $f(0, 0)$. Voici la fonction d'Ackley :
exercice suite au fait qu'elle possède une multitude de minimums locaux
avec un
minimum global en $f(0, 0)$. Voici la fonction d'Ackley :
$$
\text{Ackley}(x, y) = -20\exp\left[-0.2\sqrt{0.5(x^2 + y^2)}\right] - \exp\left[0.5(\cos 2\pi x + \cos 2\pi y)\right] + e + 20
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment