Qu'est-ce que la descente de gradient ?
Découvrez la descente de gradient, un algorithme d'optimisation utilisé pour entraîner des modèles d'apprentissage automatique en minimisant les erreurs entre les résultats prédits et réels.
Arrière-plan noir et bleu
Qu'est-ce que la descente de gradient ?

La descente de gradient est un algorithme d'optimisation couramment utilisé pour entraîner des modèles d'apprentissage automatique et des réseaux neuronaux.  Les données d'entraînement aident ces modèles à 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 des paramètres. Jusqu'à ce que la fonction soit proche de zéro 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 d'apprentissage automatique sont optimisés et acquièrent une précision satisfaisante, ils peuvent se révéler des outils puissants pour l'intelligence artificielle (IA) et les applications informatiques.

Comment fonctionne la descente de gradient ?

Avant de nous plonger en détail dans la descente de gradient, il peut être utile de revoir certains concepts de la régression linéaire. Vous vous souvenez peut-être de la formule suivante pour la pente d'une ligne, soit 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 en statistiques et d'avoir trouvé la ligne de meilleur ajustement, ce qui nécessitait de calculer l'erreur entre le résultat réel et le résultat prédit (y-hat) à l'aide de la formule de l'erreur quadratique moyenne. L'algorithme de descente de gradient se comporte de manière similaire, mais il est basé sur une fonction convexe.

Le point de départ est juste un point arbitraire qui nous permet d'évaluer la performance. À partir de ce point de départ, nous trouverons la dérivée (ou la pente) et nous pourrons alors utiliser une ligne tangente pour observer la raideur de la pente. La pente informera les mises à jour des paramètres, c'est-à-dire les pondérations et le biais. La pente au point de départ sera plus forte, mais au fur et à mesure que de nouveaux paramètres seront générés, la pente devrait progressivement diminuer jusqu'à atteindre le point le plus bas de la courbe, appelé point de convergence.   

Comme pour la recherche de 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 la prédiction et le y réel. Pour ce faire, elle a besoin de deux points de données – une direction et un taux d'apprentissage. Ces facteurs déterminent les calculs de dérivée partielle des itérations futures, ce qui permet d'arriver progressivement au minimum local ou global (c'est-à-dire au point de convergence).

  • Le taux d'apprentissage (également appelé taille d'étapes ou alpha) est la taille des étapes choisies pour atteindre le minimum. Il s'agit généralement d'une petite valeur, qui est évaluée et mise à jour en fonction du comportement de la fonction de coût. Un taux d'apprentissage élevé se traduit par des étapes plus grandes, mais risque de dépasser le minimum. À l'inverse, un taux d'apprentissage faible a des étapes de petite taille. S'il présente l'avantage d'une plus grande précision, le nombre d'itérations compromet l'efficacité globale, car il faut 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 le y réel et le y prédit à sa position actuelle. Elle améliore l'efficacité du modèle d'apprentissage automatique en fournissant un retour d'information au modèle afin qu'il puisse ajuster les paramètres pour minimiser l'erreur et trouver le minimum local ou global. Elle itère continuellement, en 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 égale à zéro. À ce stade, le modèle cesse d'apprendre. En outre, bien que les termes de fonction de coût et de fonction de perte soient considérés comme synonymes, il existe une légère différence entre eux. Il est à noter qu'une fonction de perte se réfère à l'erreur d'un exemple de formation, tandis qu'une fonction de coût calcule l'erreur moyenne sur l'ensemble d'un jeu d'entraînement.
Types de descente de gradient

Il existe trois types d'algorithme 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 jeu d'entraînement, en mettant à jour le modèle seulement lorsque tous les exemples d'apprentissage ont été évalués. Ce processus est appelé époque d'entraînement.

Bien que ce traitement par lots offre un calcul efficace, le temps de traitement peut être long pour les grands jeux de données d'entraînement, car il doit stocker toutes les données en mémoire. La descente de gradient par lots produit aussi généralement un gradient d'erreur et une convergence stables, mais parfois le point de convergence n'est pas idéal, trouvant le minimum local et non le minimum global.

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 d'entraînement un par un. Comme un seul exemple d'entraînement est nécessaire, il est plus facile de les stocker en mémoire. Bien que ces mises à jour fréquentes puissent offrir 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. Ses mises à jour fréquentes peuvent donner lieu à des gradients bruyants, mais peuvent aussi être utiles pour échapper au minimum local et trouver le minimum global.

Descente de gradient par mini-lots
 

La descente de gradient par mini-lots combine des concepts de descente de gradient par lots et de descente de gradient stochastique. Elle divise le jeu de données d'entraînement en petits lots et effectue des mises à jour sur chacun de ces lots. Cette approche crée 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 son lot de difficultés. Citons notamment :

Minima locaux et points de selle
 

Pour les problèmes convexes, la descente de gradient peut facilement trouver le minimum global, mais lorsque 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 donner cette pente. Ce sont les minima locaux et les points de selle. 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. En revanche, avec les points de selle, 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. Son nom s'inspire de celui de la selle d'un cheval.

Les gradients bruyants peuvent aider le gradient à échapper aux minimums locaux et aux points de selle.

Disparition et explosion des gradients
 

Dans les réseaux neuronaux plus profonds, notamment les réseaux neuronaux 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 des gradients : ce problème se produit lorsque le gradient est trop faible. Au fur et à mesure que nous reculons pendant la rétropropagation, le gradient continue de diminuer, ce qui fait que les premières couches du réseau apprennent plus lentement que les dernières. Lorsque cela se produit, les paramètres de poids sont mis à jour jusqu'à ce qu'ils deviennent insignifiants (c'est-à-dire égaux à 0), ce qui donne un algorithme qui n'apprend plus.
  • Explosion des gradients : ce problème se produit lorsque le gradient est trop important, créant un modèle instable. Dans ce cas, les poids du modèle deviennent trop importants et finissent par être représentés par NaN. Une solution à ce problème 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 flux de travaux métier à vos opérations IT, nous avons la solution qu'il vous faut avec l'automatisation basée sur l'IA. Découvrez comment les grandes entreprises se transforment.

Explorer les technologies basées sur l'IA
Ressources Un algorithme efficace et distribué de descente de gradient stochastique pour les applications d'apprentissage en profondeur

IBM Research propose un algorithme de descente de gradient stochastique distribué, synchrone en masse, qui permet l'agrégation de gradients épars à partir d'apprenants individuels.

Pour aller plus loin

IBM a toujours été un leader dans le domaine de la recherche sur les technologies basées sur l'IA destinées aux entreprises. La compagnie a aussi été une pionnière de l'apprentissage automatique et de l'apprentissage en profondeur dans de nombreux secteurs. Fondés sur des décennies de recherche et des années d'expérience, les produits et solutions IBM offrent aux entreprises les outils d'IA dont elles ont besoin pour transformer leurs flux de travaux et améliorer l'automatisation et l'efficacité. Si vous souhaitez exécuter des modèles d'apprentissage automatique, partout et dans n'importe quel cloud, explorez IBM Watson Machine Learning pour lancer en production vos projets open source de science des données.

Explorer les technologies basées sur l'IA