Exemple de descente de gradient

Considérons la fonction \(f: \mathbb{R^2} \mapsto \mathbb{R} \) caractérisée par cette équation :

$$ f(x,y) = (x-2)^2 + 2(y-3)^2 $$

Voici la représentation 3D de \( f(x,y) \) :

Fonction à minimiser dans notre exemple de descente de gradient

Optimisation

Nous souhaitons appliquer l'algorithme de descente du gradient pour trouver le minimum de cette fonction. La mise à jour des coordonnées est donnée par :

$$ X_{n+1} = X_n - \alpha \nabla f(X_n) $$

Calculons le gradient de \( f(x,y) \) :

$$ \nabla f(X) = \begin{pmatrix} \frac{df}{dx} \\ \frac{df}{dy} \end{pmatrix} = \begin{pmatrix} 2x-4 \\ 4y-12 \end{pmatrix} $$

Les coordonnées seront itérativement mises à jour selon les formules suivantes :

$$ x_{n+1} = x_{n} - \alpha(2x_{n} - 4) $$ $$ y_{n+1} = y_{n} - \alpha(4y_{n} - 12) $$

Dans notre exemple, nous définissons arbitrairement le point de départ aux coordonnées \( X_0=(30,20) \). Voici une illustration de la convergence vers \( X_{200}=(2,3) \) après 200 itérations :

Implémentation en Python

Chemin suivi par l'algorithme de descente de gradient

Téléchargement et codes sources

Voir aussi


Dernière mise à jour : 30/01/2021