Qu’est-ce que la descente de gradient ?

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.

Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets.

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.

Groupe d’experts | Podcast

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l'actualité et des dernières tendances dans le domaine de l’IA.

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
IBM watsonx.ai

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 d’entreprise 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
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Bénéficiez d’un accès centralisé aux fonctionnalités couvrant le cycle de développement de l’IA. Produisez des solutions IA puissantes offrant des interfaces conviviales, des workflows et un accès à des API et SDK conformes aux normes du secteur.

Découvrir watsonx.ai Réserver une démo en direct