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.
Avant de nous plonger en détail dans la descente du 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, à partir de là, nous pourrons 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 sont 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 lui permet d'arriver progressivement au minimum local ou global (c'est-à-dire au 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 en mini-lot.
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.
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 utile pour échapper au minimum local et trouver le minimum global.
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.
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 :
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.
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.
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.
Inscrivez-vous pour obtenir un IBMid et créer votre compte IBM Cloud.