Accueil
Thèmes
gradient descent
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.
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.
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).
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.
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.
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.
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.
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 :
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.
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.
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.
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émentez des arbres de décision à boosting de gradient à l’aide de l’algorithme XGBoost pour effectuer une tâche de classification.