Régression linéaire: descente de gradient

La descente de gradient est 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 permet de trouver la pondération et le 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 à l'aide de la pondération et du biais actuels.

  2. Déterminer la direction du déplacement des pondérations et des biais qui réduisent la perte.

  3. Déplacez légèrement les valeurs de pondération et de biais dans la direction de perte de données.

  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 de gradient pour déterminer les pondérations et les biais qui produisent le modèle avec la perte la plus faible.

Figure 12 : Illustration du processus de descente de gradient.

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

Cliquez sur l'icône Plus pour en savoir plus sur les calculs derrière la descente de gradient.

Concrètement, nous pouvons suivre les étapes de la descente de gradient à l'aide d'un petit ensemble de données comportant sept exemples illustrant le poids d'une voiture en livres. et sa puissance en miles par gallon:

Livres en 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 la pondération 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 actuels du modèle:
  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. Calculer la pente de la tangente par rapport à la fonction de perte pour chaque pondération et le 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 droites tangentes à l'épaisseur, nous prenons la dérivée de la fonction de perte la pondération et le biais, puis résoudre équations.

    Nous allons écrire l'équation permettant de réaliser une prédiction sous la forme suivante:
    $ f_{w,b}(x) = (w*x)+b $.

    Nous écrirons la valeur réelle comme suit: $ y $.

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

    Dérivée de la pondération

    La dérivée de la fonction de perte par rapport à la pondération est écrite comme suit:
    $ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $

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

    Nous additionnons d'abord chaque valeur prédite moins la valeur réelle puis multipliez le résultat par deux fois la valeur de la caractéristique. Nous divisons ensuite la somme par le nombre d'exemples. Le résultat est la pente de la tangente par rapport à la valeur de la pondération.

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

    Dérivée des biais

    La dérivée de la fonction de perte par rapport à le 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 renvoie:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $

    Nous additionnons d'abord chaque valeur prédite moins la valeur réelle puis multipliez le résultat par deux. Ensuite, nous divisons la somme par le nombre d'exemples. Le résultat est la pente de la droite tangente à la valeur du biais.

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

  7. Déplacez-vous légèrement dans la direction de la pente négative pour obtenir la pondération et le biais suivants. Pour l'instant, nous allons définir arbitrairement "petite quantité" sous la forme 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 la nouvelle pondération et le nouveau biais pour calculer la perte et la répétition. Achèvement le processus pour six itérations, nous obtiendrions les pondérations, biais et pertes:

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 pondérations et des biais. Dans cet exemple, nous nous sommes arrêtés après six itérations. En pratique, un modèle s'entraîne converge. Lorsqu'un modèle converge, les itérations supplémentaires ne réduisent pas davantage la perte car la descente de gradient a révélé les pondérations et pour minimiser la perte.

Si le modèle continue à entraîner une convergence passée, la perte commence à fluctuent légèrement à mesure que le modèle met à jour paramètres autour de leurs valeurs les plus basses. Cela peut rendre difficile et vérifier que le modèle a bien convergé. Pour confirmer le modèle la convergence, vous devez poursuivre l'entraînement jusqu'à ce que la perte soit stabilisée.

Modéliser les courbes de convergence et de perte

Lorsque vous entraînez un modèle, vous observez souvent une perte la courbe pour déterminer si le modèle présente convergée. La courbe de fonction de perte montre l'évolution de la perte lors de l'entraînement du modèle. Voici à quoi ressemble une perte typique de la courbe de service. La perte est sur l'axe des y et les itérations sur l'axe des x:


  
  
    Figure 13 Graphique de courbe de fonction de perte montrant une forte baisse, puis une légère baisse.

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

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

Dans les figures suivantes, le modèle est dessiné sur trois points au cours de l'entraînement. processus: le début, le milieu et la fin. Visualiser l'état du modèle au niveau des instantanés pendant le processus d'entraînement renforce le lien entre les pondérations et les biais, la réduction de la perte et la convergence du modèle.

Dans les figures, nous utilisons les pondérations et biais dérivés lors d'une itération spécifique pour : représentent le modèle. Dans le graphique contenant les points de données et l'instantané du modèle, les lignes de perte bleues entre le modèle et les points de données indiquent l'ampleur de la perte. La plus les droites sont longues, plus la perte est importante.

La figure suivante montre qu'à la deuxième itération, le modèle ne permet pas de faire des prédictions en raison de la perte élevée.

Figure 14. La courbe de fonction de perte et le graphe correspondant du modèle, qui s'incline en s'éloignant des points de données.

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

Aux alentours de la 400e itération, nous pouvons voir que la descente de gradient a révélé de pondération et de biais qui produisent un meilleur modèle.

Figure 15. La courbe de fonction de perte et le graphe correspondant du modèle, qui traverse les points de données, mais pas sous l'angle optimal.

Figure 15. Courbe de perte et instantané du modèle à mi-parcours de l'entraînement.

Aux alentours de la 1 000e itération, nous constatons que le modèle a convergé. produisant un modèle avec la perte la plus faible possible.

Figure 16. Courbe de perte et graphe correspondant du modèle, qui correspond bien aux données.

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

Exercice: tester vos connaissances

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

Fonctions de convergence et convexes

Les fonctions de perte des modèles linéaires produisent toujours convexe. Suite à Pour cette propriété, lorsqu'un modèle de régression linéaire converge, nous savons que le modèle trouvé les pondérations et biais qui produisent la perte la plus faible.

Si nous créons un graphique du graphe de fonction de perte d'un modèle comportant une seule caractéristique, nous pouvons voir convexe. Voici le graphe de fonction de perte de l'ensemble de données "miles par gallon" utilisés dans les exemples précédents. Le poids est sur l'axe des x, le biais sur l'axe des y. et la perte sur l'axe Z:

Figure 17. Graphique 3D du graphe de fonction de perte.

Figure 17. Graphe de fonction de perte montrant sa forme convexe.

Dans cet exemple, une pondération de -5,44 et un biais de 35,94 produisent la perte la plus faible à 5:54 :

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

Figure 18 : Graphe de perte montrant les valeurs de pondération et de biais qui produisent la perte la plus faible.

Un modèle linéaire converge lorsqu'il trouve la perte minimale. Par conséquent, des données supplémentaires les itérations font uniquement que la descente de gradient déplace les valeurs de pondération et de biais de très petites valeurs autour du minimum. Si nous créions un graphique des pondérations et des points de biais Pendant la descente de gradient, les points ressemblent à une boule s'arrêtent enfin au point où il n'y a plus de pente descendante.

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

Figure 19 : Graphique de perte montrant les points de descente de gradient s'arrêtant au point le plus bas sur le graphique.

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

Notez que le modèle ne trouve quasiment jamais le code exact minimum pour chaque pondération et biais, mais trouve une valeur très proche de cette valeur. Il est également important de noter que le minimum pour les pondérations et les biais correspond à zéro perte, seule une valeur produisant la perte la plus faible pour cette valeur .

Utiliser les valeurs de pondération et de biais qui produisent la perte la plus faible, dans ce cas avec une pondération de -5,44 et un biais de 35,94. Nous pouvons représenter graphiquement le modèle qu'elle s'adapte aux données:

Figure 20. Graphique représentant les livres en milliers et les miles par gallon, avec le modèle ajustant les données.

Figure 20. Modèle représenté sous forme de graphique à partir des valeurs de pondération et de biais qui produisent la perte la plus faible.

Ce modèle serait le plus adapté à cet ensemble de données, car il n'y a aucun autre biais ni pondération pour produire un modèle avec une perte plus faible.