Régression linéaire: descente de gradient

La descente de gradient est une technique mathématique qui trouve de manière itérative les pondérations et les biais qui produisent le modèle présentant la perte la plus faible. La descente de gradient trouve le meilleur poids et le meilleur biais en répétant le processus suivant pour un certain nombre d'itérations définies par l'utilisateur.

Le modèle commence l'entraînement avec des pondérations et des biais aléatoires proches de zéro, puis répète les étapes suivantes:

  1. Calculez la perte avec le poids et le biais actuels.

  2. Déterminez la direction dans laquelle déplacer les poids et les biais qui réduisent la perte.

  3. Déplacez les valeurs de poids et de biais d'une petite quantité dans la direction qui réduit la perte.

  4. Revenez à l'étape 1 et répétez le processus jusqu'à ce que le modèle ne puisse plus réduire la perte.

Le schéma ci-dessous décrit les étapes itératives de la descente du gradient pour trouver les pondérations et les biais qui produisent le modèle présentant la perte la plus faible.

Figure 12 : Illustration du processus de descente de gradient.

Figure 12. La descente du gradient est un processus itératif qui trouve les pondérations et les biais qui produisent le modèle avec la perte la plus faible.

Cliquez sur l'icône Plus pour en savoir plus sur les mathématiques sous-jacentes à la descente du gradient.

Concrètement, nous pouvons suivre les étapes de la descente du gradient à l'aide d'un petit ensemble de données comprenant sept exemples de poids d'une voiture en livres et de son indice de consommation en miles par gallon:

Livres par milliers (fonctionnalité) Miles par gallon (libellé)
3.5 18
3,69 15
3.44 18
3,43 16
4,34 15
4,42 14
2,37 24
  1. Le modèle commence l'entraînement en définissant le poids et le biais sur zéro:
  2. $$ \small{Weight:\ 0} $$ $$ \small{Bias:\ 0} $$ $$ \small{y = 0 + 0(x_1)} $$
  3. Calculez la perte MSE avec les paramètres du modèle actuels:
  4. $$ \small{Loss = \frac{(18-0)^2 + (15-0)^2 + (18-0)^2 + (16-0)^2 + (15-0)^2 + (14-0)^2 + (24-0)^2}{7}} $$ $$ \small{Loss= 303.71} $$
  5. Calculez la pente de la tangente à la fonction de perte à chaque poids et au biais:
  6. $$ \small{Weight\ slope: -119.7} $$ $$ \small{Bias\ slope: -34.3} $$

    Cliquez sur l'icône Plus pour en savoir plus sur le calcul de la pente.

    Pour obtenir la pente des lignes tangentes au poids et au biais, nous prenons la dérivée de la fonction de perte par rapport au poids et au biais, puis nous résolvons les équations.

    Nous allons écrire l'équation de prédiction comme suit:
    $ f_{w,b}(x) = (w*x)+b $.

    Nous allons écrire la valeur réelle sous la forme: $ y $.

    Nous allons calculer la MSE à l'aide de la formule suivante:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
    où $i$ représente l'exemple d'entraînement $i$ et $M$ le nombre d'exemples.

    Dérivée pondérée

    La dérivée de la fonction de perte par rapport au poids s'écrit comme suit:
    $ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $

    et donne la valeur suivante:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $

    Nous commençons par additionner chaque valeur prédite moins la valeur réelle, puis nous la multiplions par deux fois la valeur de l'élément géographique. Nous divisons ensuite la somme par le nombre d'exemples. Le résultat est la pente de la ligne tangente à la valeur de la pondération.

    Si nous résolvons cette équation avec une pondération et un biais égaux à zéro, nous obtenons -119,7 pour la pente de la ligne.

    Dérivée du biais

    La dérivée de la fonction de perte par rapport au biais s'écrit comme suit:
    $ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $

    et donne la valeur suivante:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $

    Nous commençons par additionner chaque valeur prédite moins la valeur réelle, puis nous la multiplions par deux. Nous divisons ensuite la somme par le nombre d'exemples. Le résultat est la pente de la ligne tangente à la valeur du biais.

    Si nous résolvons cette équation avec une pondération et un biais égaux à zéro, nous obtenons -34,3 pour la pente de la ligne.

  7. Déplacez-vous d'une petite quantité dans la direction de la pente négative pour obtenir le poids et le biais suivants. Pour l'instant, nous allons définir arbitrairement la "petite somme" sur 0,01:
  8. $$ \small{New\ weight = old\ weight - (small\ amount * weight\ slope)} $$ $$ \small{New\ bias = old\ bias - (small\ amount * bias\ slope)} $$ $$ \small{New\ weight = 0 - (0.01)*(-119.7)} $$ $$ \small{New\ bias = 0 - (0.01)*(-34.3)} $$ $$ \small{New\ weight = 1.2} $$ $$ \small{New\ bias = 0.34} $$

Utilisez le nouveau poids et le nouveau biais pour calculer la perte, puis répétez l'opération. En effectuant le processus pendant six itérations, nous obtiendrions les poids, biais et pertes suivants:

Itération Poids Biais Perte (MSE)
1 0 0 303,71
2 1.2 0,34 170.67
3 2,75 0.59 67,3
4 3.17 0.72 50,63
5 3,47 0.82 42.1
6 3,68 0,9 37,74

Vous pouvez constater que la perte diminue à chaque mise à jour des poids et des biais. Dans cet exemple, nous nous sommes arrêtés après six itérations. En pratique, un modèle est entraîné jusqu'à ce qu'il converge. Lorsqu'un modèle converge, les itérations supplémentaires ne réduisent pas davantage la perte, car la descente de gradient a trouvé les poids et les biais qui minimisent presque la perte.

Si le modèle continue de s'entraîner après la convergence, la perte commence à fluctuer de manière minime, car le modèle met constamment à jour les paramètres autour de leurs valeurs les plus basses. Cela peut rendre difficile de vérifier que le modèle a effectivement convergé. Pour confirmer que le modèle a convergé, vous devez poursuivre l'entraînement jusqu'à ce que la perte se stabilise.

Convergence du modèle et courbes de perte

Lorsque vous entraînez un modèle, vous examinez souvent une courbe de perte pour déterminer si le modèle a convergé. La courbe de perte montre comment la perte change à mesure que le modèle s'entraîne. Voici à quoi ressemble une courbe de perte typique. La perte est représentée sur l'axe Y et les itérations sur l'axe X:


  
  
    Figure 13 Graphique de la courbe de perte montrant une forte baisse, puis une baisse plus faible.

Figure 13. Courbe de perte montrant la convergence du modèle autour de la 1 000e itération.

Vous pouvez constater que la perte diminue considérablement au cours des premières itérations, puis diminue progressivement avant de s'aplatir vers la 1 000e itération. Après 1 000 itérations, nous pouvons être presque certains que le modèle a convergé.

Dans les figures suivantes, nous dessinons le modèle à trois moments au cours du processus d'entraînement: au début, au milieu et à la fin. La visualisation de l'état du modèle lors des instantanés pendant le processus d'entraînement renforce le lien entre la mise à jour des poids et des biais, la réduction des pertes et la convergence du modèle.

Dans les figures, nous utilisons les pondérations et le biais dérivés à une itération donnée pour représenter le modèle. Dans le graphique avec les points de données et l'instantané du modèle, les lignes de perte bleues du modèle aux points de données indiquent la quantité de perte. Plus les lignes sont longues, plus les pertes sont importantes.

Dans la figure suivante, nous pouvons voir qu'autour de la deuxième itération, le modèle ne serait pas efficace pour effectuer des prédictions en raison de la forte perte.

Figure 14. Courbe de perte et graphique correspondant du modèle, qui s'éloigne des points de données.

Figure 14. Courbe de perte et instantané du modèle au début du processus d'entraînement.

Vers la 400e itération, nous pouvons voir que la descente du gradient a trouvé les poids et les biais qui produisent un meilleur modèle.

Figure 15. Courbe de perte et graphique correspondant du modèle, qui coupe les points de données, mais pas à l'angle optimal.

Figure 15. Courbe de perte et instantané du modèle vers le milieu de l'entraînement.

Vers la 1 000e itération, nous pouvons voir que le modèle a convergé, produisant un modèle avec la perte la plus faible possible.

Figure 16. Courbe de perte et graphique correspondant du modèle, qui s'adapte bien aux données.

Figure 16 : Courbe de perte et instantané du modèle vers la fin du processus d'entraînement.

Exercice: Vérifiez votre compréhension

Quel est le rôle de la descente du gradient dans la régression linéaire ?
La descente de gradient est un processus itératif qui trouve les meilleures pondérations et biais qui minimisent la perte.
La descente du gradient permet de déterminer le type de perte à utiliser lors de l'entraînement d'un modèle, par exemple L1 ou L2.
La descente du gradient n'est pas impliquée dans la sélection d'une fonction de perte pour l'entraînement du modèle.
La descente du gradient élimine les valeurs aberrantes de l'ensemble de données pour aider le modèle à effectuer de meilleures prédictions.
La descente du gradient ne modifie pas l'ensemble de données.

Convergence et fonctions convexes

Les fonctions de perte des modèles linéaires génèrent toujours une surface convexe. En raison de cette propriété, lorsqu'un modèle de régression linéaire converge, nous savons qu'il a trouvé les poids et les biais qui produisent la perte la plus faible.

Si nous graphons la surface de perte d'un modèle avec une seule caractéristique, nous pouvons voir sa forme convexe. Vous trouverez ci-dessous la surface de perte de l'ensemble de données sur les miles par gallon utilisé dans les exemples précédents. Le poids est sur l'axe X, le biais sur l'axe Y et la perte sur l'axe Z:

Figure 17. Graphique 3D de la surface de perte.

Figure 17. Surface de perte qui montre sa forme convexe.

Dans cet exemple, un poids de -5,44 et un biais de 35,94 génèrent la perte la plus faible, à savoir 5,54:

Figure 18. Graphique 3D de la surface de perte, avec (-5,44, 35,94, 5,54) en bas.

Figure 18 : Surface de perte montrant les valeurs de poids et de biais qui produisent la perte la plus faible.

Un modèle linéaire converge lorsqu'il a trouvé la perte minimale. Par conséquent, les itérations supplémentaires ne font que déplacer les valeurs de poids et de biais de très petites quantités autour du minimum. Si nous graphions les poids et les points de biais pendant la descente du gradient, les points ressembleraient à une balle roulant sur une colline, pour finalement s'arrêter au point où il n'y a plus de pente descendante.

Figure 19. Surface de perte tridimensionnelle convexe avec des points de descente de gradient se déplaçant vers le point le plus bas.

Figure 19 Graphique des pertes montrant les points de descente du gradient s'arrêtant au point le plus bas du graphique.

Notez que les points de perte noirs créent la forme exacte de la courbe de perte: une forte baisse avant de descendre progressivement jusqu'à atteindre le point le plus bas de la surface de perte.

Il est important de noter que le modèle ne trouve presque jamais le minimum exact pour chaque pondération et biais, mais une valeur très proche. Il est également important de noter que le minimum des poids et du biais ne correspond pas à une perte nulle, mais uniquement à une valeur qui produit la perte la plus faible pour ce paramètre.

En utilisant les valeurs de poids et de biais qui produisent la perte la plus faible (dans ce cas, un poids de -5,44 et un biais de 35,94), nous pouvons représenter le modèle graphiquement pour voir dans quelle mesure il s'adapte aux données:

Figure 20. Graphique des kilos en milliers par rapport aux miles par gallon, avec le modèle qui ajuste les données.

Figure 20. Modèle représenté graphiquement à l'aide des valeurs de pondération et de biais qui génèrent la perte la plus faible.

Il s'agit du meilleur modèle pour cet ensemble de données, car aucune autre valeur de poids et de biais ne produit un modèle avec une perte plus faible.