From 6fb6dc5ccbec1fa5205fc2d93d0518fdec9a02cc Mon Sep 17 00:00:00 2001
From: Orestis Malaspinas <orestis.malaspinas@hesge.ch>
Date: Thu, 10 Sep 2020 14:46:35 +0200
Subject: [PATCH] updated optim chapter

---
 03_optimisation.md | 34 ++++++++++++++++++++++++++++++----
 1 file changed, 30 insertions(+), 4 deletions(-)

diff --git a/03_optimisation.md b/03_optimisation.md
index 9fce76f..f19a34c 100644
--- a/03_optimisation.md
+++ b/03_optimisation.md
@@ -717,7 +717,7 @@ Avec ce qui précède, voyez-vous une façon de trouver le minimum de la fonctio
 
 ---
 
-<!-- Une méthode pour trouver le minimum de $f(x,y)$ est la méthode de la *descente de gradient*. Cette méthode
+Une méthode pour trouver le minimum de $f(x,y)$ est la méthode de la *descente de gradient*. Cette méthode
 correspond intuitivement à la méthode que suivrait un skieur pour arriver le plus vite possible en bas d'une montagne. Pour ce faire, il suivrait toujours la pente
 la plus raide possible.
 
@@ -726,8 +726,8 @@ itérative. Soient donnés un point de départ $\vec x_0$,
 et une fonction objectif $f(\vec x)$, on va approximer
 le zéro itérativement avec une suite $\vec x_1$, $\vec x_2$, ... telle que
 \begin{align}
-\vec x_1&=x_0-\lambda\cdot f(\vec x_0),\\
-\vec x_2&=x_1-\lambda\cdot f(\vec x_1),\\
+\vec x_1&=x_0-\lambda\cdot \nabla f(\vec x_0),\\
+\vec x_2&=x_1-\lambda\cdot \nabla f(\vec x_1),\\
 \cdots
 \vec x_{n+1}&=x_n-\lambda\cdot f(\vec x_n),
 \end{align}
@@ -738,6 +738,31 @@ peut se voir dans la @fig:gradient.
 ![Suite d'étapes pour la descente de gradient. En bleu on voit les courbes de niveaux (les courbes où $f(\vec x)$ est constante). Source: Wikipedia
 <https://bit.ly/2Fhvn7p>](https://upload.wikimedia.org/wikipedia/commons/f/ff/Gradient_descent.svg){#fig:gradient width=70%}
 
+---
+
+#### Exemple (quelques itérations) {-}
+
+Prenons la fonction objectif $f(x,y)$ suivante
+$$
+f(x,y)=x^2+y^2,
+$$
+et son gradient
+$$
+\nabla f(x,y)=2x+2y.
+$$
+Si on prend comme point de départ $\vec x_0=(1,0.5)$ et $\lambda=0.25$, on a
+\begin{align}
+\vec x_1=\vec x_0-\lambda\cdot \nabla f(\vec x_0)=(1,0.5)-0.25\cdot (2\cdot 1, 2\cdot 0.5)=(0.5, 0.25),\\
+\vec x_2=\vec x_1-\lambda\cdot \nabla f(\vec x_1)=(0.5,0.25)-0.25\cdot (2\cdot 0.5, 2\cdot 0.25)=(0.25, 0.125),\\
+\cdots
+\end{align}
+En changeant $\lambda=0.5$, on voit qu'on arrive sur le zéro de la fonction en une itération
+\begin{align}
+\vec x_1=\vec x_0-\lambda\cdot \nabla f(\vec x_0)=(1,0.5)-0.5\cdot (2\cdot 1, 2\cdot 0.5)=(0, 0).
+\end{align}
+
+---
+
 Comme pour les fonction à une seule variable, il est nécessaire de spécifier une condition d'arrêt pour
 la descente de gradient. En général, on choisit une tolérance, $\varepsilon>0$, et la condition d'arrêt s'écrit
 $$
@@ -749,5 +774,6 @@ Dépendant de la valeur de $\lambda$ la *convergence* de la méthode peut varier
 il faut une énorme quantité d'itérations pour atteindre le minimum. A l'inverse, en choisissant un $\lambda$ trop grand,
 nous ne somme pas sûrs que nous convergerons un jour. En effet, on pourrait s'éloigner de plus en plus
 du minimum plutôt que de sen approcher. En général, on choisit $\lambda\in[0,1)$ mais il n'y a pas de méthode générale pour en choisir une valeur "optimale".
-Cela signifie que pour une fonction quelconque, $\lambda$ est choisi de façon empirique. -->
+Cela signifie que pour une fonction quelconque, $\lambda$ est choisi de façon empirique.
+
 
-- 
GitLab