Skip to content
Snippets Groups Projects
Verified Commit 6a635ae2 authored by iliya.saroukha's avatar iliya.saroukha :first_quarter_moon:
Browse files

feat: can be considered as finished

parent b7c76487
No related branches found
No related tags found
No related merge requests found
...@@ -28,7 +28,7 @@ avec le concept de la descente de gradient dans le contexte de l’apprentissage ...@@ -28,7 +28,7 @@ avec le concept de la descente de gradient dans le contexte de l’apprentissage
machine et l’intelligence artificielle. machine et l’intelligence artificielle.
La descente de gradient (le concept en lui-même ainsi que les divers La descente de gradient (le concept en lui-même ainsi que les divers
algorithmes) sont utilisés dans l’entraînement des réseaux neuronaux lors de la algorithmes) est utilisée dans l’entraînement des réseaux neuronaux lors de la
rétropropagation ("Backpropagation"). En bref, la rétropropagation consiste à rétropropagation ("Backpropagation"). En bref, la rétropropagation consiste à
"remonter" dans le réseau depuis la couche de sortie en direction de la couche "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 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. ...@@ -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 À 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) 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 $\lambda$ qui correspond donc à la taille du pas effectué à chaque itération des
des diverses méthodes de descente. Ceci sera illustré principalement à travers diverses méthodes de descente. Ceci sera illustré principalement à travers la
la descente **simple**. descente **simple**.
Dans un second temps, nous présenterons l'impact du paramètre **_momentum_** 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, (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 nous tenterons de faciliter la visualisation de la méthode **Nesterov** en la
comparant immédiatement à la **Momentum**. 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 des quatres
présentées dans ce travail pratique, celle d'**Adam**. Initialement, nous allons 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 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 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 ...@@ -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 (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 un gradient plus prononcé dans une des dimensions par rapport aux autres). Cette
notion de taux d'apprentissage dynamique provient de l'algorithme **RMSProp** notion de taux d'apprentissage dynamique provient de l'algorithme **RMSProp**
(_Root Mean Square Propagation_) qui en calculant la moyenne des carrés des (_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 composantes du gradient, permet d'établir un taux d'apprentissage variable par
composante. composante.
Les paramètres d'**Adam** permettent aussi d'émuler un comportement d'inertie Les paramètres d'**Adam** permettent aussi d'émuler un comportement d'inertie
...@@ -88,12 +88,12 @@ $$ {#eq-func-bol} ...@@ -88,12 +88,12 @@ $$ {#eq-func-bol}
**n.b.** : Le gradient $\nabla$ de la fonction ci-dessus est accentué dans **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 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**. visualisation de la méthode d'**Adam**.
Sur les figures ci-dessous nous pouvons voir l'effet du _learning rate_ sur le 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 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]]"} :::: {#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 ...@@ -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 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 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 grand est le fait de potentiellement passer au-delà d'un fossé qui puisse contenir
le minimum recherché. Ce cas sera illustrer plus tard. le minimum recherché. Ce cas sera illustré plus tard.
### Conclusion intermédiaire ### Conclusion intermédiaire
A travers les exemples présenter 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 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$ 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 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 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}$. 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. ...@@ -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 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 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 alors le pas devra être petit. Ceci permet de diminuer la quantité d'itérations
nécéssaires pour atteindre un minimum. nécessaires pour atteindre un minimum.
::: {.callout-note} ::: {.callout-note}
Une faible valeur de $\gamma$ implique le fait qu'on porte peu d'importance aux 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 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]"} :::: {#fig-momentum-gamma layout="[1, 1]"}
...@@ -153,7 +153,7 @@ Introduction du paramètre _momentum_ $\gamma$ ...@@ -153,7 +153,7 @@ Introduction du paramètre _momentum_ $\gamma$
:::: ::::
Pour pouvoir mieux voir la différence avec la méthode simple, nous allons Pour pouvoir mieux voir la différence avec la méthode simple, nous allons
définir la valeur de $\lambda = 0.9$. Grâce à cette valeur nous pouvons à présent définir la valeur de $\gamma = 0.9$. Grâce à cette valeur nous pouvons à présent
réellement apprécier la trajectoire totalement différente produite par la réellement apprécier la trajectoire totalement différente produite par la
descente **Momentum**. descente **Momentum**.
...@@ -187,11 +187,11 @@ La trajectoire empruntée par la descente **Nesterov** est _étrangement_ ...@@ -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**. 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 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 prochaine itération), **Nesterov** pré-calcule $\nabla{f}(\vec{x}_{k + 1})$ pour
corriger le grand pas effectuer par **Momentum** de sorte à pousser la corriger le grand pas effectué par **Momentum** de sorte à pousser la
trajectoire un peu plutôt dans la bonne direction vers le minimum. La @fig-nesterov trajectoire un peu plus tôt dans la bonne direction vers le minimum. La
l'illustre très bien, les deux trajectoires ont les mêmes tendances sauf que @fig-nesterov l'illustre très bien, les deux trajectoires ont les mêmes
l'orange (Nesterov) se "redresse" plus tôt et atteint le minimum plus rapidement tendances sauf que l'orange (Nesterov) se "redresse" plus tôt et atteint le
que Momentum (205 contre 317 itérations). minimum plus rapidement que Momentum (205 contre 317 itérations).
## Méthode d'Adam ## Méthode d'Adam
...@@ -202,7 +202,7 @@ bien résumés dans son nom. Essayons donc de le décortiquer : ...@@ -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 à - **_Adaptive_** $\rightarrow$ le principe "adaptatif" (ou dynamique) consiste à
tenter d'adapter le taux d'apprentissage par rapport aux spécificités de chaque 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 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 inversement,
accentuer ce taux pour les dimensions ayant une faible variation. Ceci permet accentuer ce taux pour les dimensions ayant une faible variation. Ceci permet
notamment de palier à certaines problématiques qui peuvent survenir lors d'une notamment de palier à certaines problématiques qui peuvent survenir lors d'une
descente de gradient sur une fonction _non-isotropique_ (possédant des descente de gradient sur une fonction _non-isotropique_ (possédant des
...@@ -227,9 +227,9 @@ la convergence vers un minimum. ...@@ -227,9 +227,9 @@ la convergence vers un minimum.
Variation du taux d'apprentissage -- Adam 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 $\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écessaire 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 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$ 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 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 ...@@ -247,11 +247,11 @@ les diverses méthodes abordés à travers la visualisation des trajectoires
différentes qu'elles tracent. différentes qu'elles tracent.
La méthode qui se distingue le plus reste quand même celle d'**Adam**, suite La méthode qui se distingue le plus reste quand même celle d'**Adam**, suite
au fait qu'elle prend en compte l'isotropie 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 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 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. priorise pas forcément la dimension ayant la plus grande variation du gradient.
Cela lui permet donc de ne pas être "influencer" 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, 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 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. 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 ...@@ -288,10 +288,10 @@ Influence des paramètres $\beta_{1}$ et $\beta_{2}$ sur la méthode d'Adam
# Pièges # Pièges
Après avoir passer en revue les particularités de chaque algorithme de descente, Après avoir passé en revue les particularités de chaque algorithme de descente,
nous allons à présent parler de certains pièges auxquelles ces méthodes peuvent 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 faire face. Nous présenterons les problématiques des _ravines_, des _plateaux_
que des minimaux locaux. ainsi que des _minimaux locaux_.
## Ravines ## Ravines
...@@ -300,14 +300,14 @@ illustré à l'aide la @fig-base-high-lr. Suite au fait que la fonction ...@@ -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 $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 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$ 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 seule arrive à descendre dans la "vallée" au bout d'**une unique itération** suite
itération** suite au fait que le gradient est très prononcé dans la direction au fait que le gradient est très prononcé dans la direction de l'axe $y$.
de l'axe $y$. Cependant pour pouvoir par la suite converger vers le minimum, Cependant pour pouvoir par la suite converger vers le minimum, **72**
**72** itérations supplémentaires sont nécessaires car le gradient dans la direction itérations supplémentaires sont nécessaires car le gradient dans la direction
de l'axe $x$ est comparativement très faible. de l'axe $x$ est comparativement très faible.
Une seconde problématique est aussi soulevée. Si la nature non-isotropique de 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 potentiellement mener à une divergence de la descente comme l'illustre les
graphiques ci-dessous. graphiques ci-dessous.
...@@ -332,9 +332,9 @@ Concernant la problématique des plateaux, celle-ci est assez explicite. Si ...@@ -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 $\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 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 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 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 situera plus près de la zone sur cette fonction cependant le point de départ devra se situer pas loin de
de l'extremum. de l'extremum.
<!-- $$ --> <!-- $$ -->
...@@ -351,10 +351,10 @@ de l'extremum. ...@@ -351,10 +351,10 @@ de l'extremum.
Illustration du piège posé par un plateau Illustration du piège posé par un plateau
:::: ::::
Les ci-dessus illustrenet bien le fait qu'en partant du point $(2, 2)$ 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} - 1$ itérations, les quatres méthodes 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 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 égale présente peu de variation et par-dessus tout, le fait qu'il est presque égal
au vecteur nul. au vecteur nul.
## Minimums locaux ## Minimums locaux
...@@ -370,7 +370,7 @@ or il s'avère que le choix de celui-ci est souvent aléatoire. ...@@ -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 Cette problématique sera illustrée à l'aide de divers graphiques lorsque nous
effectuerons les descentes de gradient sur la fonction d'**Ackley**. La 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 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 # Descentes sur diverses fonctions
...@@ -393,8 +393,7 @@ la problématique des plateaux. Les graphiques ci-dessous permettent de mieux ...@@ -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é 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 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 @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 qu'aucune ligne de niveau ne s'affiche dans le voisinage proche de l'extremum.
l'extremum.
:::: {#fig-well layout="[1,1]"} :::: {#fig-well layout="[1,1]"}
...@@ -461,8 +460,8 @@ problématiques, nous allons à présent visualiser le problème des minimums ...@@ -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, 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). 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 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 exercice suite au fait qu'elle possède une multitude de minimums locaux avec un
avec un minimum global en $f(0, 0)$. Voici la fonction d'Ackley : 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 \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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment