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

feat: problems done

parent 9f9d6c75
No related branches found
No related tags found
No related merge requests found
Pipeline #32453 failed
Source diff could not be displayed: it is too large. Options to address this: view the blob.
Source diff could not be displayed: it is too large. Options to address this: view the blob.
...@@ -297,22 +297,45 @@ que des minimaux locaux. ...@@ -297,22 +297,45 @@ que des minimaux locaux.
Le problèmes des ravines auxquelles nous avons fait référence précédemment est Le problèmes des ravines auxquelles nous avons fait référence précédemment est
illustré à l'aide la @fig-base-high-lr. Suite au fait que la fonction 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 très rapidement à descendre dans la "vallée", au bout d'**une seule
itération** suite au fait que le gradient est très prononcé dans la direction 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, 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 **72** itérations supplémentaires sont nécessaires car le gradient dans la direction
de l'axe $x$ est comparativement très faible. Ceci implique donc le fait que de l'axe $x$ est comparativement très faible.
la convergence n'est pas forcément garantie dépendamment de la fonction sur
laquelle la descente est effectuée. 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
potentiellement mener à une divergence de la descente comme l'illustre les
graphiques ci-dessous.
::: {.callout-important}
Il est pertinent de noter le fait que le taux d'apprentissage $\lambda$ ne fut
augmenté que d'un dixième par rapport à la @fig-base-high-lr. Cet ajustement
léger mène donc à une divergence.
:::
:::: {#fig-ravine layout="[1,1]"}
![Graphique de la fonction](./figs/f/ravine_graph.svg){#fig-ravine-graph width="70%"}
![Lignes de niveaux de la fonction](./figs/f/ravine_topology.svg){#fig-ravine-topology width="70%"}
Cas de divergence de la descente
::::
## Plateaux ## Plateaux
Concernant la problématique des plateaux, celle-ci est assez explicite. Si Concernant la problématique des plateaux, celle-ci est assez explicite. Si
$||\nabla{f}|| \approx 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. Ceci est très bien illustré à l'aide de l'@eq-func-well. 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
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
de l'extremum.
<!-- $$ --> <!-- $$ -->
<!-- \nabla{f}(2, 2) &= \begin{bmatrix} 20e^{-10x^{2} - y^{2}}x\\ 2e^{-10x^{2} - y^{2}}y \end{bmatrix} \\ --> <!-- \nabla{f}(2, 2) &= \begin{bmatrix} 20e^{-10x^{2} - y^{2}}x\\ 2e^{-10x^{2} - y^{2}}y \end{bmatrix} \\ -->
...@@ -328,33 +351,34 @@ peine à avancer / itérer. Ceci est très bien illustré à l'aide de l'@eq-fun ...@@ -328,33 +351,34 @@ peine à avancer / itérer. Ceci est très bien illustré à l'aide de l'@eq-fun
Illustration du piège posé par un plateau Illustration du piège posé par un plateau
:::: ::::
La @fig-flatness-issue montrent bien le fait qu'en partant du point $(2, 2)$ Les ci-dessus illustrenet 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} - 1$ itérations, les quatres méthodes
n'ont su avancé dans la direction du minimum suite au fait que la norme du n'ont su avancé dans la direction du minimum suite au fait que le gradient
gradient dans cette région de la fonction est extrêmement faible. présente peu de variation et par-dessus tout, le fait qu'il est presque égale
au vecteur nul.
\newpage
## Minimums locaux ## Minimums locaux
Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim La problématique des minimums locaux est aussi assez explicite. Il se peut
labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. qu'une fonction en possède une multitude. Par conséquent, dépendamment du point
Nisi anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum de départ initial, il se peut qu'en effectuant une descente simple ou une
Lorem est aliquip amet voluptate voluptate dolor minim nulla est proident. descente Momentum qui n'a su accumuler assez d'inertie, on se retrouve coincé
Nostrud officia pariatur ut officia. Sit irure elit esse ea nulla sunt ex dans un minimum local. Ceci n'est bien évidemment pas idéal car à présent le
occaecat reprehenderit commodo officia dolor Lorem duis laboris cupidatat but final d'atteindre un minimum global dépend aussi du point de départ choisi,
officia voluptate. Culpa proident adipisicing id nulla nisi laboris ex in or il s'avère que le choix de celui-ci est souvent aléatoire.
Lorem sunt duis officia eiusmod. Aliqua reprehenderit commodo ex non excepteur
duis sunt velit enim. Voluptate laboris sint cupidatat ullamco ut ea Cette problématique sera illustrée à l'aide de divers graphiques lorsque nous
consectetur et est culpa et culpa duis. 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)$.
# Descentes sur diverses fonctions # Descentes sur diverses fonctions
Après avoir pu discuter de manière détaillée des diverses méthodes de descente Après avoir pu discuter de manière détaillée des diverses méthodes de descente
ainsi que de leurs implications sur la vitesse de convergence et les ainsi que des problématiques qui peuvent survenir suite aux particularités
trajectoires tracées, nous pouvons à présent un peu nous amuser en essayant de topologiques de la fonction à optimiser, nous pouvons à présent un peu nous
trouver les minimums de fonctions non-triviales à l'aide des méthodes de amuser en essayant de trouver les minimums globaux de certaines fonctions
descente étudiées. non-triviales à l'aide des méthodes étudiées précédemment.
## Le "puit" ## Le "puit"
...@@ -364,25 +388,33 @@ $$ ...@@ -364,25 +388,33 @@ $$
f(x, y) = 1 - \exp(-10x^2 - y^2) f(x, y) = 1 - \exp(-10x^2 - y^2)
$$ {#eq-func-well} $$ {#eq-func-well}
Nous avons déjà brièvement introduit cette fonction lors de la discussion de
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.
:::: {#fig-well layout="[1,1]"} :::: {#fig-well layout="[1,1]"}
![Graphique de la fonction "puit"](./figs/puit/graph.svg){#fig-well-graph} ![Graphique de la fonction "puit"](./figs/puit/graph.svg){#fig-well-graph}
![Méthodes de descentes](./figs/puit/topology.svg){#fig-well-topology} ![Lignes de niveaux de descentes](./figs/puit/topology.svg){#fig-well-topology}
Descentes sur la fonction "puit" -- $f(x, y) = 1 - \exp(-10x^2 - y^2)$ Descentes sur la fonction "puit"
:::: ::::
### Valeur de la fonction de coût ### Valeur de la fonction de coût
Le graphique ci-dessous permet d'illustrer clairement l'évolution de la valeur Le graphique ci-dessous permet d'illustrer clairement l'évolution de la valeur
de la fonction de coût $f$ par rapport au nombre d'itérations effectuées par de la fonction de coût $f$ par rapport au nombre d'itérations effectuées par
chaque méthode. Nous pouvons voir qu'**Adam** ait atteint le minimum en premier, chaque méthode. Nous pouvons voir qu'**Adam** a atteint le minimum en premier,
au bout de seulement $275$ itérations. **Momentum** et **Nesterov** sont tous deux au bout de seulement $275$ itérations. **Momentum** et **Nesterov** sont tous deux
très similaires, $\sim 2'000$ itérations. Puis finalement la méthode de base qui très similaires, $\sim 2'000$ itérations. Puis finalement la méthode de base qui
nécessité $17'452$ itérations pour y parvenir. nécessite $17'452$ itérations pour y parvenir.
![Évolution de la valeur de la fonction de coût](./figs/puit/cost_function.svg){#fig-well-cost-function width="80%"} ![Évolution de la valeur de la fonction de coût "puit"](./figs/puit/cost_function.svg){#fig-well-cost-function width="55%"}
## Rosenbrock ## Rosenbrock
...@@ -392,11 +424,11 @@ $$ {#eq-func-rosenbrock} ...@@ -392,11 +424,11 @@ $$ {#eq-func-rosenbrock}
:::: {#fig-rosenbrock layout="[1,1]"} :::: {#fig-rosenbrock layout="[1,1]"}
![Graphique de la fonction Rosenbrock](./figs/rosenbrock/graph.svg){#fig-rosenbrock-graph width="80%"} ![Graphique de la fonction Rosenbrock](./figs/rosenbrock/graph.svg){#fig-rosenbrock-graph}
![Méthodes de descentes](./figs/rosenbrock/topology.svg){#fig-rosenbrock-topology width="80%"} ![Méthodes de descentes](./figs/rosenbrock/topology.svg){#fig-rosenbrock-topology}
Descentes sur la fonction Rosenbrock Graphique des descentes sur la fonction de Rosenbrock
:::: ::::
## Ackley ## Ackley
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment