Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Méthode de Descente de Gradient | Analyse Mathématique
Mathématiques pour l'Analyse de Données et la Modélisation
course content

Contenu du cours

Mathématiques pour l'Analyse de Données et la Modélisation

Mathématiques pour l'Analyse de Données et la Modélisation

1. Concepts Mathématiques de Base et Définitions
2. Algèbre Linéaire
3. Analyse Mathématique

book
Méthode de Descente de Gradient

Nous savons comment résoudre des problèmes d'optimisation pour la fonction d'une variable en utilisant l'algorithme décrit dans le chapitre précédent. Mais que pouvons-nous faire si nous avons une fonction de plusieurs variables ? Nous pouvons nous tourner vers une méthode numérique - la descente de gradient.

Qu'est-ce que la descente de gradient ?

Le gradient est un vecteur qui consiste en toutes les dérivées partielles de la fonction :

Ainsi, le problème de minimisation de la fonction F(x1,..,xn) peut être résolu en construisant la séquence d'approximations suivante :

Nous fixons une certaine valeur initiale x0 et une valeur η représentant la vitesse de la descente de gradient. Ensuite, nous commençons le processus itératif selon la formule ci-dessus.

Critères d'arrêt de l'algorithme

Les critères d'arrêt des itérations peuvent être les suivants :

  1. Arrêter l'algorithme après un certain nombre d'itérations ;
  2. Itérer jusqu'à ce que la condition suivante soit remplie :

Remarque

Les valeurs eps = 10**(-6) ou eps = 10**(-9) sont couramment utilisées comme critère d'arrêt du processus d'itération.

Nous devons prêter attention à deux caractéristiques importantes de la méthode de descente de gradient :

  1. Cette méthode ne peut trouver que le point de minimum de la fonction F(x). Si vous souhaitez trouver un point de maximum, vous pouvez considérer la fonction -F(x) et utiliser la descente de gradient pour cela ;
  2. Si nous comparons l'algorithme que nous avons discuté précédemment avec la descente de gradient, nous pouvons voir que la descente de gradient effectue une tâche similaire à la première étape de l'algorithme - trouver une valeur critique, qui pourrait être un point minimum potentiel. En conséquence, il est possible que le point trouvé par la descente de gradient soit soit un minimum local dans un sous-ensemble du domaine, soit pas un point minimum du tout.

Exemple

Découvrons comment résoudre le problème d'optimisation en Python :

12345678910111213141516171819
import numpy as np from scipy.optimize import minimize # Define the Rosenbrock function def rosenbrock(x): return (1 - x[0])**2 + 100*(x[1] - x[0]**2)**2 # Initial guess for x and y x0 = np.array([2, 2]) # Use scipy.optimize.minimize to find the minimum of the Rosenbrock function result = minimize(rosenbrock, x0) # Extract the optimal x and the minimum value of the Rosenbrock function optimal_x = result.x min_value = result.fun print(f'Optimal x: {optimal_x}') print(f'Minimum value of the Rosenbrock function: {min_value:.4f}')
copy

Dans cet exemple, nous définissons la fonction de Rosenbrock, fixons une estimation initiale pour x, puis utilisons scipy.optimize.minimize pour trouver le minimum de la fonction de Rosenbrock. L'attribut result.x contient le x optimal, et result.fun contient la valeur minimale de la fonction de Rosenbrock.

Remarque

La fonction de Rosenbrock est souvent utilisée comme référence pour tester et comparer les algorithmes d'optimisation en raison de sa nature non convexe et de la présence d'une vallée de minimum étroite et courbée.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6
We're sorry to hear that something went wrong. What happened?
some-alt