Qu’est-ce que la descente de gradient ?
Appliquer une descente de gradient avec watsonx.ai S’abonner aux actualités concernant l’IA
Illustration avec collage de pictogrammes de nuages, graphique circulaire et pictogrammes graphiques
Qu’est-ce que la descente de gradient ?

La descente de gradient est un algorithme d’optimisation couramment utilisé pour entraîner les modèles de machine learning et les réseaux neuronaux. Ce type d’algorithme entraîne les modèles de machine learning par réduction des erreurs entre les résultats prédits et les résultats réels.

Les données d’entraînement permettent à ces modèles d’apprendre au fil du temps, et la fonction de coût dans la descente de gradient agit spécifiquement comme un baromètre, évaluant sa précision à chaque itération des mises à jour de paramètres. Jusqu’à ce que la fonction soit proche ou égale à zéro, le modèle continue à ajuster ses paramètres pour obtenir l’erreur la plus faible possible. Une fois que les modèles de machine learning sont optimisés pour la précision, ils peuvent constituer de puissants outils pour l’intelligence artificielle (IA) et les applications informatiques.

IBM nommé leader par Gartner

Découvrez pourquoi IBM a été nommé leader dans le rapport Magic Quadrant 2023 de Gartner consacré aux services cloud d'IA pour les développeurs.

Contenu connexe

Obtenir l’ebook sur Presto

Comment fonctionne la descente de gradient ?

Avant d’examiner en détail la descente de gradient, revoyons certains concepts de la régression linéaire. Vous vous souvenez peut-être de la formule suivante pour calculer la pente d’une droite, à savoir y = mx + b, où m représente la pente et b l’ordonnée à l’origine sur l’axe des y.

Vous vous souvenez peut-être aussi d’avoir tracé un nuage de points dans les statistiques et d’avoir trouvé la ligne de meilleur ajustement, ce qui nécessitait de calculer l’erreur entre la sortie réelle et la sortie prédite (y-hat) à l’aide de la formule d’erreur quadratique moyenne. L’algorithme de descente de gradient se comporte de la même manière, sauf qu’il est basé sur une fonction convexe.

Le point de départ n’est qu’un point arbitraire qui nous permet d’évaluer les performances. À partir de ce point de départ, nous allons trouver la dérivée (ou la pente) et, à partir de là, nous pourrons utiliser une ligne tangente pour observer l’inclinaison de la pente. La pente renseigne sur les mises à jour des paramètres, c’est-à-dire les poids et les biais. La pente au point de départ est plus forte, mais au fur et à mesure que de nouveaux paramètres sont générés, elle devrait progressivement diminuer jusqu’à atteindre le point le plus bas de la courbe, dénommé point de convergence.  

Comme pour trouver la ligne de meilleur ajustement dans la régression linéaire, l’objectif de la descente de gradient est de minimiser la fonction de coût, ou l’erreur entre y prédit et y réel. Pour ce faire, deux points de données sont nécessaires : une orientation et un taux d’apprentissage. Ces facteurs déterminent les calculs de dérivée partielle des itérations futures, ce qui lui permet d’atteindre progressivement le minimum local ou global (c’est-à-dire le point de convergence).

  • Le taux d’apprentissage (également appelé taille de pas ou alpha) est la taille des pas effectués pour atteindre le minimum. Généralement faible, cette valeur est évaluée et mise à jour en fonction du comportement de la fonction de coût. Des taux d’apprentissage élevés se traduisent par des pas plus importants, mais avec le risque de dépasser le minimum. Inversement, un faible taux d’apprentissage présente des pas réduits. Bien qu’elles améliorent la précision, le nombre d’itérations compromet l’efficacité globale, car cela prend plus de temps et de calculs pour atteindre le minimum.
  • La fonction de coût (ou de perte) mesure la différence, ou l’erreur, entre y réel et y prévu à sa position actuelle. Elle améliore l’efficacité du modèle de machine learning en lui fournissant des informations qui l’aident à ajuster les paramètres afin de minimiser l’erreur et de trouver le minimum local ou global. L’algorithme itère en continu, se déplaçant dans la direction de la descente la plus raide (ou du gradient négatif) jusqu’à ce que la fonction de coût soit proche de zéro ou nulle. À ce stade, le modèle cesse d’apprendre. De plus, bien que les termes fonction de coût et fonction de perte soient considérés comme synonymes, il existe une légère différence entre eux. En effet, une fonction de perte fait référence à l’erreur d’un exemple d’entraînement, tandis qu’une fonction de coût calcule l’erreur moyenne sur la totalité d’un ensemble d’entraînement.
Types de descente de gradient

Il existe trois types d’algorithmes d’apprentissage par descente de gradient : la descente de gradient par lots, la descente de gradient stochastique et la descente de gradient par mini-lots.

Descente de gradient par lots
 

La descente de gradient par lots additionne l’erreur pour chaque point d’un ensemble d’entraînement, en ne mettant à jour le modèle qu’après l’évaluation de tous les exemples d’entraînement. Ce processus est appelé une époque d’entraînement.

Bien que ce traitement par lots offre une efficacité de calcul, il peut néanmoins nécessiter un temps de traitement long pour les grands ensembles de données d’entraînement, car toutes les données doivent être stockées en mémoire. Par ailleurs, la descente de gradient par lots produit généralement un gradient d’erreur et une convergence stables, mais parfois ce point de convergence qui trouve le minimum local par rapport au minimum global n’est pas idéal.

Descente de gradient stochastique
 

La descente de gradient stochastique (SGD) exécute une époque d’entraînement pour chaque exemple de l’ensemble de données et met à jour les paramètres de chaque exemple un par un. Comme vous n’avez besoin que d’un seul exemple d’entraînement, les données sont plus faciles à stocker en mémoire. Bien que ces mises à jour fréquentes offrent plus de détails et de rapidité, elles peuvent entraîner des pertes d’efficacité de calcul par rapport à la descente de gradient par lots. Ces mises à jour fréquentes peuvent augmenter le bruit dans les gradients, mais ceci peut aussi être utile pour échapper le minimum local et trouver le minimum global.

Descente de gradient par mini-lots
 

La descente de gradient en mini-lots combine les concepts de descente de gradient par lots et de descente de gradient stochastique. L’ensemble de données d’entraînement est divisé en lots de petite taille et les mises à jour s’effectuent sur chacun de ces lots. Cette approche offre un équilibre entre l’efficacité de calcul de la descente de gradient par lots et la vitesse de la descente de gradient stochastique.

Défis liés à la descente de gradient

Bien que la descente de gradient soit l’approche la plus courante pour les problèmes d’optimisation, elle comporte néanmoins un certain nombre de défis. En voici quelques-uns :

Minimum local et points-selles
 

Pour les problèmes convexes, la descente de gradient permet de trouver facilement le minimum global, mais à mesure que des problèmes non convexes apparaissent, la descente de gradient peut avoir du mal à trouver le minimum global, là où le modèle obtient les meilleurs résultats.

Rappelons que lorsque la pente de la fonction de coût est égale ou proche de zéro, le modèle cesse d’apprendre. Quelques scénarios au-delà du minimum global peuvent également produire cette pente, à savoir les minima locaux et les points-selles. Les minima locaux imitent la forme d’un minimum global, où la pente de la fonction de coût augmente de part et d’autre du point actuel. Cependant, dans le cas des points-selles, le gradient négatif n’existe que d’un côté du point, atteignant un maximum local d’un côté et un minimum local de l’autre. Leur nom s’inspire de celui d’une selle de cheval.

Les gradients comportant du bruit peuvent aider à échapper les minimums locaux et les points-selles.

Disparition et explosion de gradients
 

Dans les réseaux neuronaux plus profonds, notamment les réseaux de neurones récurrents, nous pouvons également rencontrer deux autres problèmes lorsque le modèle est entraîné avec la descente de gradient et à la rétropropagation.

  • Disparition de gradients : ce phénomène se produit lorsque le gradient est trop petit. À mesure que nous reculons pendant la rétropropagation, le gradient continue de diminuer, ce qui entraîne un apprentissage des couches antérieures du réseau plus lent que les couches ultérieures. Dans ce cas, les paramètres de pondération sont mis à jour jusqu’à ce qu’ils deviennent non significatifs, c’est-à-dire à 0, soit un algorithme qui n’apprend plus.
  • Explosion des gradients : cela se produit lorsque le gradient est trop important, ce qui crée un modèle instable. Dans ce cas, les poids du modèle deviennent trop importants et sont finalement représentés par NaN. La solution consiste à utiliser une technique de réduction de la dimensionnalité, qui peut aider à minimiser la complexité du modèle.
  •  
Solutions connexes
Technologies basées sur l’IA

De vos workflows métier à vos opérations informatiques, l’automatisation basée sur l’IA est là pour vous aider. Découvrez comment les grandes entreprises se transforment.

Découvrir les technologies basées sur l’IA
Ressources Algorithme de descente de gradient stochastique efficace et distribué pour les applications de deep learning

IBM Research propose un algorithme de descente de gradient stochastique distribué et synchrone en masse qui permet d’agréger des gradients épars d’apprenants individuels.

Implémenter XGBoost dans R

Implémentez des arbres de décision à boosting de gradient à l’aide de l’algorithme XGBoost pour effectuer une tâche de classification.

Passez à l’étape suivante

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio professionnel de nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai Réserver une démo live