Réduction de la perte: la descente de gradient

Le schéma représentant l'approche itérative (Figure 1) contenait une zone verte ondulée intitulée "Calculer les mises à jour des paramètres". Nous allons maintenant remplacer cette astuce basée sur des algorithmes par une solution plus concrète.

Supposons que nous disposions du temps et des ressources de calcul nécessaires pour calculer la perte pour toutes les valeurs possibles de \(w_1\). Pour les types de problèmes de régression que nous avons examinés, le tracé qui s'ensuit entre la perte et \(w_1\) sera toujours convexe. En d'autres termes, le tracé sera toujours en forme de bol, comme ceci:

Graphique d'une courbe en forme de U, où l'axe vertical est étiqueté comme perte et l'axe horizontal est étiqueté comme valeur de pondération w i.

Figure 2 Les problèmes de régression permettent d'obtenir des tracés perte/pondération convexes.

 

Les problèmes convexes n'ont qu'un seul minimum ; autrement dit, un seul point où la pente est exactement égale à 0. C'est à ce minimum que la fonction de perte converge.

Calculer la fonction de perte pour chaque valeur concevable de \(w_1\)sur l'ensemble de données serait un moyen inefficace de trouver le point de convergence. Examinons un meilleur mécanisme, très utilisé pour le machine learning, appelé descente de gradient.

La première étape de la descente de gradient consiste à choisir une valeur de départ (un point de départ) pour \(w_1\). Peu importe le point de départ. Par conséquent, de nombreux algorithmes définissent simplement \(w_1\) sur 0 ou choisissent une valeur aléatoire. La figure suivante montre que nous avons choisi un point de départ légèrement supérieur à 0:

Graphique représentant une courbe en forme de U. Un point situé à mi-hauteur du côté gauche de la courbe est intitulé "Point de départ".

Figure 3. Point de départ de la descente de gradient.

L'algorithme de descente de gradient calcule ensuite le gradient de la courbe de perte au point de départ. Ici, dans la figure 3, le gradient de la perte est égal à la dérivée (pente) de la courbe, et vous indique dans quel sens est "plus chaud" ou "plus froid". Lorsqu'il existe plusieurs pondérations, le gradient est un vecteur de dérivées partielles par rapport aux pondérations.

Notez qu'un gradient est un vecteur. Il présente donc les deux caractéristiques suivantes:

  • une direction
  • une magnitude

Le gradient indique toujours la direction de l'augmentation la plus prononcée de la fonction de perte. L'algorithme de descente de gradient fait un pas dans la direction du gradient négatif afin de réduire la perte le plus rapidement possible.

Graphique représentant une courbe en forme de U. Un point situé sur le côté gauche de la courbe est intitulé "Point de départ". Une flèche libellée "dégradé négatif" pointe de ce point vers la droite.

Figure 4 La descente de gradient repose sur des gradients négatifs.

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

Graphique représentant une courbe en forme de U. Un point situé sur le côté gauche de la courbe est intitulé "Point de départ". Une flèche libellée "dégradé négatif" pointe de ce point vers la droite. Une autre flèche pointe de l'extrémité de la première flèche vers le bas jusqu'à un deuxième point de la courbe. Le deuxième point est intitulé "next point" (point suivant).

Figure 5. Un pas de gradient nous amène au point suivant sur la courbe de fonction de perte.

La descente de gradient répète ensuite ce processus, se rapprochant de plus en plus du minimum.