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
Branches
No related tags found
No related merge requests found
Pipeline #32453 failed
This diff is collapsed.
This diff is collapsed.
......@@ -297,22 +297,45 @@ que des minimaux locaux.
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
$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
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
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. Ceci implique donc le fait que
la convergence n'est pas forcément garantie dépendamment de la fonction sur
laquelle la descente est effectuée.
**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
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
Concernant la problématique des plateaux, celle-ci est assez explicite. Si
$||\nabla{f}|| \approx 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.
$\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
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} \\ -->
......@@ -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
::::
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
n'ont su avancé dans la direction du minimum suite au fait que la norme du
gradient dans cette région de la fonction est extrêmement faible.
\newpage
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
au vecteur nul.
## Minimums locaux
Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim
labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet.
Nisi anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum
Lorem est aliquip amet voluptate voluptate dolor minim nulla est proident.
Nostrud officia pariatur ut officia. Sit irure elit esse ea nulla sunt ex
occaecat reprehenderit commodo officia dolor Lorem duis laboris cupidatat
officia voluptate. Culpa proident adipisicing id nulla nisi laboris ex in
Lorem sunt duis officia eiusmod. Aliqua reprehenderit commodo ex non excepteur
duis sunt velit enim. Voluptate laboris sint cupidatat ullamco ut ea
consectetur et est culpa et culpa duis.
La problématique des minimums locaux est aussi assez explicite. Il se peut
qu'une fonction en possède une multitude. Par conséquent, dépendamment du point
de départ initial, il se peut qu'en effectuant une descente simple ou une
descente Momentum qui n'a su accumuler assez d'inertie, on se retrouve coincé
dans un minimum local. Ceci n'est bien évidemment pas idéal car à présent le
but final d'atteindre un minimum global dépend aussi du point de départ choisi,
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)$.
# Descentes sur diverses fonctions
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
trajectoires tracées, nous pouvons à présent un peu nous amuser en essayant de
trouver les minimums de fonctions non-triviales à l'aide des méthodes de
descente étudiées.
ainsi que des problématiques qui peuvent survenir suite aux particularités
topologiques de la fonction à optimiser, nous pouvons à présent un peu nous
amuser en essayant de trouver les minimums globaux de certaines fonctions
non-triviales à l'aide des méthodes étudiées précédemment.
## Le "puit"
......@@ -364,25 +388,33 @@ $$
f(x, y) = 1 - \exp(-10x^2 - y^2)
$$ {#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]"}
![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
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
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
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
......@@ -392,11 +424,11 @@ $$ {#eq-func-rosenbrock}
:::: {#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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment