
Dans notre vie quotidienne, nous optimisons en permanence des variables en fonction de nos choix personnels, de nos exigences et de nos préférences, même inconsciemment. Nous utilisons des techniques d’optimisation tout au long de la journée. Par exemple, nous choisissons le chemin le plus court pour éviter les embouteillages lorsque nous nous rendons au travail, nous décidons de faire une promenade rapide sur le campus pendant notre temps libre et nous programmons les taxis à l’avance pour arriver à l’heure. La plupart des optimisations que nous faisons visent à gagner du temps, car le temps est très important dans le monde d’aujourd’hui.
L’optimisation est devenue une partie intégrante de nos vies et comme nos vies tournent autour des technologies, elle est également devenue une partie intégrante des produits technologiques. L’optimisation est le but ultime présent au cœur de toutes les techniques statistiques et d’apprentissage automatique qui sont largement utilisées dans la science des données. C’est pourquoi des algorithmes d’optimisation ont été créés ; l’un d’entre eux est l’algorithme de descente de gradient dans l’apprentissage automatique.
Qu’est-ce que la descente par gradient ?
La descente de gradient est un algorithme d’optimisation qui est utilisé pour trouver le minimum d’une fonction. En termes d’apprentissage automatique, il est utilisé pour mettre à jour les paramètres d’un modèle. En fonction des algorithmes utilisés, les paramètres peuvent être de différents types – coefficients (dans la régression linéaire) et poids (dans les réseaux neuronaux). Pour comprendre le concept de descente par gradient à travers un exemple concret, imaginez une situation hypothétique dans laquelle une personne doit descendre dans une vallée les yeux bandés. Une personne dans une telle situation commencerait par faire des pas prudents pour trouver une pente. Une fois qu’elle aura trouvé une pente descendante, elle la suivra et répétera ses pas jusqu’à ce qu’elle soit complètement descendue dans la vallée, en d’autres termes, qu’elle ait atteint le minimum.
C’est exactement ce que fait l’algorithme de descente en gradient dans une machine. L’inclinaison ou la pente est la fonction de coût et le rôle de la descente par gradient est de fournir la direction et la vitesse (taux d’apprentissage) du mouvement pour trouver un point où le coût est minimal ou, en d’autres termes, le minimum de la fonction de coût. Une fonction de coût est « une fonction qui fait correspondre un événement ou les valeurs d’une ou plusieurs variables à un nombre réel représentant intuitivement un « coût » associé à l’événement ».
L’application de la descente de gradient
L’objectif premier de tout algorithme d’apprentissage automatique est de construire un modèle. Un modèle est une hypothèse, qui peut être utilisée pour trouver une estimation de Y sur la base de X. Par exemple – Disons que nous avons des données sur différentes maisons concernant leur prix, leur taille, les matériaux, etc. et nous voulons prédire le coût d’une maison en fonction de sa taille. Pour une maison, on peut le faire par une analyse comparative manuelle, mais supposons que nous ayons besoin de connaître le coût de plusieurs maisons. Dans ce cas, nous voudrions prédire une sortie continue pour un nombre donné d’entrées. Il s’agit d’un problème de régression qui peut être résolu par un algorithme d’optimisation de l’apprentissage automatique, tel que la descente de gradient. La descente de gradient peut aider à trouver une ligne de meilleur ajustement pour un nombre donné d’entrées (valeurs X) et fournir un nombre quelconque de sorties (valeurs Y).
Types d’algorithmes de descente de gradient
- Descente de gradient par lots – Elle est utilisée pour traiter les exemples d’entraînement pour toutes les itérations. Il peut devenir coûteux en termes de calcul lorsqu’il y a beaucoup d’exemples d’entraînement. Dans ce cas, d’autres types de descente de gradient sont préférables.
- Descente de gradient stochastique – Le mot « stochastique » fait référence à une « probabilité aléatoire ». Pour une probabilité aléatoire, une sélection aléatoire est effectuée. Ainsi, dans une descente de gradient stochastique, au lieu de sélectionner l’ensemble des données, des échantillons aléatoires sont sélectionnés pour toutes les itérations. Comme ce type de descente par gradient n’utilise qu’un seul échantillon pour effectuer toutes les itérations, il n’est pas coûteux en termes de calcul. L’échantillon est mélangé et sélectionné au hasard dans l’ensemble de données. Les paramètres sont mis à jour après chaque répétition, ce qui rend cette méthode plus rapide que la descente de gradient par lots.
- Descente de gradient par mini-lots – Il s’agit de la forme la plus rapide de descente de gradient qui peut être utilisée même lorsqu’il y a un grand nombre d’exemples d’apprentissage. Elle traite le lot en une seule fois. Elle utilise très peu d’itérations, quel que soit le nombre d’échantillons d’entraînement.
Défis rencontrés dans l’exécution de la descente de gradient
La descente de gradient est un algorithme d’optimisation très utile, mais il n’est pas parfait et présente certains inconvénients. Il existe de nombreux cas dans lesquels la descente de gradient ne peut pas être utilisée ou ne fonctionne pas bien. Cela se produit lorsque l’on est confronté à différentes sortes de défis pendant l’exécution de la descente de gradient. Il y a principalement trois types de défis :
Défis en matière de données
Si les données sont disposées d’une manière qui pose un problème d’optimisation non convexe, l’exécution de la descente de gradient devient problématique. La descente par gradient ne fonctionne que pour les données disposées de manière à poser un problème d’optimisation convexe bien défini. Dans un problème d’optimisation convexe, il existe de nombreux points minimaux. Le point le plus bas est appelé le minimum global tandis que les autres sont des minima locaux. Il est important d’atteindre le minimum global en évitant les minima locaux. De plus, la descente par gradient ne peut pas être utilisée dans un problème de point de selle. Dans un tel problème, le gradient peut être nul même pour un point non optimal.
Les défis du gradient
Une exécution incorrecte lors de l’utilisation de la descente par gradient peut causer plusieurs problèmes tels qu’un problème de gradient évanescent. Cela se produit lorsque la taille du gradient est soit trop grande, soit trop petite, ce qui entraîne une absence de convergence.
Last modified: