Réduction de la perte : la descente de gradient

Le schéma représentant l'approche itérative (figure 1) contenait une étape très allusive intitulée "Calculer les mises à jour des paramètres". Remplaçons ce tour de passe-passe algorithmique par des informations plus concrètes.

Imaginons que nous disposions du temps et des ressources informatiques nécessaires pour calculer la perte correspondant à toutes les valeurs possibles de \(w_1\). Pour les types de problèmes de régression examinés jusqu'ici, le tracé représentant la perte rapportée à \(w_1\) sera toujours convexe. En d'autres termes, ce tracé aura toujours la forme d'un bol, comme dans la figure suivante :

Un autre point sur la courbe en forme de U, plus proche du point correspondant au minimum

Figure 2 : Les problèmes de régression se traduisent par des tracés perte/pondération convexes.

 

Les problèmes convexes possèdent un minimum unique : leurs courbes ne présentent qu'un point dont la pente est exactement égale à 0. Ce minimum désigne le point de convergence de la fonction de perte.

Il serait inefficace de déterminer le point de convergence en calculant la fonction de perte pour chaque valeur imaginable de \(w_1\) pour l'intégralité de l'ensemble de données. Il existe pour cela un meilleur outil, très utilisé pour le Machine Learning, appelé la descente de gradient.

La première étape de l'application de la descente de gradient consiste à choisir une valeur de départ pour \(w_1\). Cette valeur de départ importe peu. De nombreux algorithmes attribuent à \(w_1\) la valeur 0 ou une valeur aléatoire. Comme le montre la figure suivante, nous avons choisi un point légèrement supérieur à 0.

Un autre point sur la courbe en forme de U, plus proche du point correspondant au minimum

Figure 3 : Point de départ d'une descente de gradient

L'algorithme de descente de gradient calcule ensuite le gradient de la courbe de perte au point de départ. En bref, un gradient est un vecteur de dérivées partielles indiquant la direction à suivre pour atteindre le minimum recherché. Comme vous pouvez le constater, le gradient de perte est équivalent à la dérivée pour chaque valeur de pondération (comme illustré en figure 3).

Un gradient étant un vecteur, il présente les deux caractéristiques suivantes :

  • une direction
  • une magnitude

Le gradient indique toujours la direction de la croissance maximale de la fonction de perte. L'algorithme de descente de gradient fait un pas dans le sens inverse afin de réduire la perte aussi rapidement que possible.

Un autre point sur la courbe en forme de U, plus proche du point correspondant au minimum

Figure 4 : La descente de gradient utilise des gradients négatifs.

Pour déterminer le point suivant dans la courbe de la fonction de perte, l'algorithme de descente de gradient ajoute une fraction de la magnitude du gradient au point de départ, comme illustré dans la figure suivante :

Un autre point sur la courbe en forme de U, plus proche du point correspondant au minimum

Figure 5 : Un pas de gradient nous positionne au point suivant de la courbe de perte.

La descente de gradient répète alors ce processus, se rapprochant ainsi progressivement du minimum.