Aller au contenu
English

Perte et gradients

  • Leçon 11
  • 45 min
  • Module 4 : Comment les modèles apprennent
Leçon 11 sur 18 · Mathématiques et statistiques essentielles pour l'IAPerte et gradients

Ce que vous saurez faire

Mesurez l’erreur d’un modèle avec un seul nombre. Trouvez ensuite dans quelle direction modifier le modèle pour réduire ce nombre. Ces deux idées, la perte et le gradient, permettent à tous les réseaux de neurones d’apprendre.

Carnet JupyterFacultatif : vérifier les nombres dans un carnetColab · Kaggle · GitHub · en anglais

Le carnet (notebook) Jupyter est facultatif : vous pouvez suivre cette leçon avec une calculatrice. Il calcule la perte et le gradient du modèle de billets de soutien pour toute valeur de w. Il trace aussi la courbe de perte avec des barres de texte. Il effectue des étapes de descente de gradient avec une trace textuelle et mesure deux dérivées partielles. La pratique guidée et la variante autonome comprennent des vérifications. Il utilise seulement la bibliothèque standard de Python, donc il ne nécessite aucune installation.

Le carnet est en anglais. Colab et Kaggle ouvrent votre propre copie. Il faut un compte Google ou Kaggle gratuit. Vous êtes bloqué ? Consultez le carnet de solution.

Avant de commencerCe qu’il faut savoir et avoir sous la mainEnviron 45 minutes

Ce que vous devez savoir

Ce que vous devez préparer (le carnet n’en a pas besoin)

  • Une calculatrice. Celle d’un téléphone suffit.
  • Votre fichier c03-notes.md, avec le titre ## How models learn (comment les modèles apprennent). Vous avez ajouté ce titre dans l’encadré « Avant de commencer » de Fonctions et variation. Si vous ne trouvez pas le fichier, créez un fichier vide portant ce nom et ajoutez le titre. Cette leçon n’utilise pas les réponses précédentes.

Le carnet a été testé dans Jupyter avec Python 3.14.6 (bibliothèque standard seulement).

  • Journaux d’entraînement. Un script d’entraînement affiche des lignes comme step 200 loss 0.418 (étape 200, perte 0,418). La perte est le nombre que l’entraînement tente de réduire. Si elle ne diminue pas, le modèle n’apprend pas.
  • Choisir une perte. Une bibliothèque vous demande de choisir une fonction de perte. L’erreur quadratique moyenne (MSE) est le choix habituel quand le modèle prédit un nombre, comme des minutes ou un prix. Une autre perte, l’entropie croisée, est courante pour les classes, comme l’équipe responsable d’un billet.
  • Gradients dans les cadriciels. Dans PyTorch, une ligne, loss.backward(), calcule le gradient pour chaque paramètre du modèle. Ensuite, l’optimiseur modifie un peu chaque paramètre. Cette leçon montre ce que cette ligne calcule, avec un modèle à un seul paramètre.

Dans la dernière leçon, le modèle de Tomás était minutes = w × longueur. La droite avec w = 6 semblait proche des quatre billets, mais « proche » n’était pas un nombre. Priya en fait un nombre.

Pour chaque billet, l’erreur est le nombre réel de minutes moins le nombre prédit. Ensuite, elle élève chaque erreur au carré et calcule la moyenne des carrés :

Billet Longueur x Minutes réelles y Prédiction 6 × x Erreur y − prédiction Erreur au carré
T-3101 1 7 6 1 1
T-3102 2 13 12 1 1
T-3103 3 17 18 −1 1
T-3104 4 26 24 2 4
Somme 7

La moyenne des erreurs au carré est 7 ÷ 4 = 1,75. Ce nombre est l’erreur quadratique moyenne (MSE).

Une perte est un nombre qui mesure l’erreur d’un modèle sur un ensemble d’exemples. Plus elle est faible, mieux c’est, et 0 signifie qu’il n’y a aucune erreur. Ici, la perte est la MSE, en minutes au carré. Le carré joue deux rôles :

  • Il élimine le signe. Une erreur de −1 et une erreur de +1 sont aussi mauvaises l’une que l’autre. Sans le carré, elles s’annuleraient.
  • Il donne plus de poids aux grandes erreurs. L’erreur pour T-3104 est de 2 minutes, mais elle ajoute 4 à la somme. Une erreur de 4 minutes ajouterait 16, autant que seize erreurs de 1 minute.
L(w)=1n∑i=1n(yi−wxi)2L(w) = \frac{1}{n} \sum_{i=1}^{n} \left( y_i - w x_i \right)^2

Lisez cette formule ainsi : « La perte à w est la moyenne, sur les n billets, des différences au carré entre les minutes réelles et prédites. » Vous avez rencontré le symbole de somme dans le module 1.

Priya fait le même calcul pour d’autres valeurs de w :

w Prédictions Erreurs Erreurs au carré Somme Perte (MSE)
2 2, 4, 6, 8 5, 9, 11, 18 25, 81, 121, 324 551 137,75
5 5, 10, 15, 20 2, 3, 2, 6 4, 9, 4, 36 53 13,25
6 6, 12, 18, 24 1, 1, −1, 2 1, 1, 1, 4 7 1,75
7 7, 14, 21, 28 0, −1, −4, −2 0, 1, 16, 4 21 5,25

La perte est une fonction de w : chaque valeur de w donne une perte. Tracez-la pour plusieurs valeurs, et vous obtenez la courbe de perte :

La perte du modèle pour chaque valeur de w. La courbe forme un bol dont le fond est à w ≈ 6,27.
Description textuelle du graphique

L’axe horizontal représente w, de 2 à 10,5. L’axe vertical représente la perte. La courbe forme un bol. À w = 2, la perte est de 137,75. Elle descend à 13,25 à w = 5, puis à 1,75 à w = 6. Elle atteint son minimum, environ 1,22, à w ≈ 6,27. Ensuite, elle remonte : 5,25 à w = 7 et environ 135,6 à w = 10,5.

Le point le plus bas est à w ≈ 6.27, avec une perte d’environ 1,22. La perte n’atteint jamais 0, car aucune droite ne passe par les quatre points. Pour ce petit modèle, vous pourriez trouver le fond à partir du graphique. Un vrai modèle possède des millions de paramètres, donc personne ne peut tracer sa courbe de perte. L’entraînement doit trouver le fond sans voir toute la courbe. Il connaît seulement la pente à sa position actuelle.

Placez-vous à une valeur de w sur la courbe de perte. La pente de la courbe à cet endroit vous indique deux choses :

  • Le signe donne la direction. Une pente négative signifie que la perte diminue vers la droite. Une valeur de w plus grande est donc préférable. Une pente positive signifie qu’une valeur de w plus petite est préférable.
  • La grandeur indique à quel point la pente est raide. Une pente de grande amplitude signifie que la perte change rapidement ici. Vous êtes donc probablement loin du fond.

Cette pente est le gradient : la dérivée de la perte par rapport à un paramètre. Avec un seul paramètre, le gradient est un nombre. Son unité est la « perte par unité de w », ici des minutes au carré par (minute par cent mots). En pratique, on écrit rarement cette unité, mais le sens reste le même : variation de perte par unité de variation de w.

Explorer

Lisez le gradient à n'importe quelle valeur de w

w
2
Perte
137,75
Pente (gradient)
−64
Pour réduire la perte
augmenter w

La pente est de −64 : elle est négative, donc la perte baisse vers la droite. Un w plus grand réduit la perte.

050100150Perte (erreur quadratique moyenne)246810w (minutes par cent mots)w = 2
050100150Perte (erreur quadratique moyenne)510w (minutes par cent mots)w = 2
La courbe de perte du modèle de billets, avec la tangente au w choisi. L'affichage indique la pente et la direction qui réduit la perte.
Description textuelle de l’explorateur

Le graphique montre la courbe de perte pour w allant de 1 à 11,5. Au départ, le point est à w = 2, avec une perte de 137,75. La tangente y descend fortement : la pente est de −64, donc une valeur de w plus grande réduit la perte. Le curseur, un glissement ou les touches fléchées déplacent le point entre w = 2 et w = 10,5. À w = 5, la pente est de −19. À w = 6, elle est de −4. À w ≈ 6,27, elle est de 0 : c’est le fond de la courbe. À w = 7, elle est de +11, donc une valeur de w plus petite réduit la perte.

Pour ce modèle, le gradient a une formule courte. Vous n’avez pas besoin de la démontrer :

dLdw=15w−94\frac{dL}{dw} = 15w - 94

Lisez-la ainsi : « La dérivée de la perte par rapport à w égale 15 fois w, moins 94. » À w = 6, elle vaut 90 − 94 = −4. À w = 2, elle vaut 30 − 94 = −64.

Le gradient est une moyenne sur les billets, comme la perte. Chaque billet ajoute sa propre contribution : 2 × (prédiction − valeur réelle) × longueur. À w = 6 :

Billet Prédiction − valeur réelle × longueur × 2 = contribution de ce billet
T-3101 6 − 7 = −1 −1 −2
T-3102 12 − 13 = −1 −2 −4
T-3103 18 − 17 = 1 3 6
T-3104 24 − 26 = −2 −8 −16
Moyenne −16 ÷ 4 = −4

Chaque billet tire w dans sa propre direction. T-3103 dit « réduisez w », car le modèle prédit trop de minutes pour lui. Les trois autres disent « augmentez w », et T-3104, le billet le plus long, tire le plus fort. Le gradient est la moyenne de toutes ces forces. Retenez ce tableau : dans la prochaine leçon, il explique pourquoi les vraies courbes d’entraînement sont bruitées.

Priya peut maintenant améliorer w sans voir la courbe. Elle utilise la règle de mise à jour :

wnew=w−η×dLdww_{\text{new}} = w - \eta \times \frac{dL}{dw}

Lisez-la ainsi : « Le nouveau w est l’ancien w moins le taux d’apprentissage multiplié par le gradient. » La lettre grecque η (êta) est le taux d’apprentissage. C’est un petit nombre choisi par une personne, qui détermine l’ampleur de chaque changement. Une application de la règle est une étape. Cette méthode est la descente de gradient : descendre la courbe de perte, une étape à la fois.

Deux détails font fonctionner la règle :

  • Le signe moins inverse la direction. Un gradient négatif (la perte diminue vers la droite) augmente w.
  • Le taux d’apprentissage garde le pas petit. À w = 2, le gradient est de −64. Sans taux d’apprentissage, w passerait à 66, bien au-delà du fond.

Priya commence à w = 2 avec un taux d’apprentissage de 0,05. À chaque étape, elle calcule le gradient (15w − 94), le déplacement (−0,05 × gradient) et le nouveau w :

Étape w avant Gradient 15w − 94 Déplacement −0,05 × gradient w après Perte après
1 2 −64 +3,2 5,2 9,75
2 5,2 −16 +0,8 6,0 1,75
3 6,0 −4 +0,2 6,2 1,25

La perte descend de 137,75 à 9,75, puis à 1,75, puis à 1,25. Les pas deviennent plus petits d’eux-mêmes : le taux d’apprentissage reste le même, mais le gradient diminue près du fond. La courbe y est plus plate. Après trois étapes, w = 6.2 est proche de la meilleure valeur, 6,27.

Grace demande ce que cela signifie pour elle. Le modèle dit maintenant : chaque centaine de mots d’un billet ajoute environ 6,2 minutes de travail.

Explorer

Descente de gradient sur le modèle de billets

Étape
8
w
6,267
Perte
1,217
Pente (gradient)
−0,001
Prochain pas = −taux × pente
0

Convergence après 8 étapes : la pente est presque nulle, donc les pas sont presque nuls aussi.

0100200300Perte (erreur quadratique moyenne)24681012w (minutes par cent mots)w = 6,27
0100200300Perte (erreur quadratique moyenne)510w (minutes par cent mots)w = 6,27
050100150Perte après chaque étape0246810Étape
050100150Perte après chaque étape0510Étape
La courbe de perte du modèle de billets. Chaque étape déplace w de −taux d'apprentissage × gradient. Le graphique du bas montre la perte après chaque étape, comme un journal d'entraînement.
Description textuelle de l’explorateur

Le graphique du haut est la courbe de perte du modèle de billets. Il forme un bol dont le fond est à w ≈ 6,27, avec une perte d’environ 1,217. La balle commence à w = 2. Le curseur du taux d’apprentissage propose 13 valeurs de 0,005 à 0,16; il commence à 0,05. Step (étape) effectue une mise à jour, Play (lecture) la répète, et Reset (réinitialiser) revient à w = 2. L’affichage indique le numéro d’étape, w, la perte, le gradient et le prochain déplacement. Avec un taux d’apprentissage de 0,05, w passe par 2, 5,2, 6,0, 6,2 et 6,25. La perte affiche 1,217 après cinq étapes. Sans JavaScript, le graphique montre les huit premières étapes à 0,05. Le graphique du bas montre la perte après chaque étape : elle passe de 137,75 à 9,75 après la première étape, puis s’aplatit.

Essayez quelques autres taux d’apprentissage dans l’outil d’exploration avant de continuer. La prochaine leçon explique ce que vous voyez.

Les vrais modèles ont plus d’un paramètre. Tomás en ajoute un deuxième, un nombre fixe de minutes pour chaque billet, b :

minutes=w×length+b\text{minutes} = w \times \text{length} + b

Le paramètre b est un biais : il déplace toute la droite vers le haut ou le bas. Maintenant, la perte dépend de deux boutons de réglage, w et b. Pour trouver la direction de chaque bouton, Priya ajuste légèrement un seul bouton à la fois et garde l’autre fixe. Elle commence à w = 6, b = 0, où la perte est de 1,75 :

Changement w b Perte Variation de perte Variation de perte ÷ petit ajustement Pente exacte (très petit ajustement)
Départ 6 0 1,75
Augmenter w de 0,1 6,1 0 1,425 −0,325 −3,25 −4
Augmenter b de 0,1 6 0,1 1,61 −0,14 −1,4 −1,5

Chaque pente exacte est une dérivée partielle : la pente de la perte pour un paramètre, quand tous les autres restent fixes. Les mathématiciens l’écrivent avec un d arrondi, ∂ :

∂L∂w=−4,∂L∂b=−1.5\frac{\partial L}{\partial w} = -4, \qquad \frac{\partial L}{\partial b} = -1.5

Lisez-les ainsi : « La dérivée partielle de la perte par rapport à w est −4 » et « par rapport à b est −1,5 ». Le gradient est la liste de toutes les dérivées partielles : ici (−4, −1,5). Les deux sont négatives, donc la règle de mise à jour augmente un peu w et b. La même règle s’applique à chaque paramètre, avec sa propre dérivée partielle.

Un grand modèle de langage possède des milliards de paramètres. Son gradient est une liste de milliards de dérivées partielles, une par paramètre. Une méthode appelée rétropropagation les calcule toutes à la fois. La règle de mise à jour modifie ensuite un peu chaque paramètre, à chaque étape. L’idée est la même que dans le tableau ci-dessus.

Vérifiez vous-même le tableau de Priya. Écrivez les résultats dans c03-notes.md.

  1. Pour chaque billet, calculez la prédiction 7 × longueur. Résultat attendu : 7, 14, 21, 28.
  2. Calculez chaque erreur, valeur réelle − prédiction. Résultat attendu : 0, −1, −4, −2.
  3. Élevez chaque erreur au carré. Résultat attendu : 0, 1, 16, 4.
  4. Additionnez les carrés et divisez par 4. Résultat attendu : 21 ÷ 4 = 5,25.
  5. Calculez le gradient à w = 7 avec 15w − 94. Résultat attendu : 105 − 94 = 11.
  6. Écrivez dans quelle direction la règle de mise à jour déplace w, et pourquoi.
Afficher un exemple de réponse

La perte à w = 7 est de 5,25, supérieure à 1,75 à w = 6. Le gradient est de +11 : il est positif, donc la perte augmente vers la droite. La règle de mise à jour soustrait le taux d’apprentissage multiplié par 11, donc w diminue. Avec un taux d’apprentissage de 0,05, le déplacement est de −0,55, et le nouveau w est de 6,45.

Vérification : un seul billet, T-3103, contribue 16 sur les 21. Une grande erreur détermine la majeure partie de la perte.

Commencez à w = 8 avec un taux d’apprentissage de 0,05.

  1. Calculez la perte à w = 8.
  2. Faites deux pas avec la règle de mise à jour. Pour chaque pas, écrivez le gradient, le déplacement et le nouveau w.
  3. Calculez la perte après le deuxième pas. Comparez le sens des déplacements avec l’exemple de Priya.
Afficher un exemple de réponse
  1. Prédictions : 8, 16, 24, 32. Erreurs : −1, −3, −7, −6. Carrés : 1, 9, 49, 36. Somme : 95. Perte : 95 ÷ 4 = 23,75.
  2. Pas 1 : gradient 15 × 8 − 94 = 26. Déplacement : −0,05 × 26 = −1,3. Nouveau w = 6,7. Pas 2 : gradient 15 × 6,7 − 94 = 6,5. Déplacement : −0,325. Nouveau w = 6,375.
  3. Prédictions : 6,375, 12,75, 19,125, 25,5. Erreurs : 0,625, 0,25, −2,125, 0,5. Carrés : 0,390625, 0,0625, 4,515625, 0,25. Somme : 5,21875. Perte : environ 1,30.

Les déplacements sont négatifs ici, car le gradient est positif. Le modèle prédit trop de minutes, donc w diminue. Dans l’exemple de Priya, les déplacements étaient positifs. La règle de mise à jour trouve le sens toute seule.

Exécutez du Python dans votre navigateur

Facultatif : vérifier la perte et le gradient

Cet encadré calcule la perte et le gradient pour n’importe quel w. Exécutez le code, puis ajoutez 8 et 6,375 à la liste et vérifiez vos réponses. Dans un contexte professionnel, une bibliothèque calcule la perte pour vous. Par exemple, mean_squared_error (erreur quadratique moyenne) dans scikit-learn, ou MSELoss (perte par erreur quadratique moyenne) dans PyTorch.

Erreur courante

Mesurer avec les erreurs seules : les erreurs s'annulent

Symptôme : un rapport indique : « Le modèle avec w = 6.3 a une erreur moyenne de 0 minute. Il est parfait. » Mais l’erreur pour T-3103 atteint presque 2 minutes.

Cause : le rapport prend la moyenne des erreurs sans les élever au carré. À w = 6.3, les erreurs sont 0,7, 0,4, −1,9 et 0,8. Leur somme est 0, donc l’erreur moyenne est 0, même si chaque prédiction est fausse.

Solution : élevez les erreurs au carré (MSE), ou prenez leurs valeurs absolues (erreur absolue moyenne), avant de calculer la moyenne. La MSE à w = 6.3 est de 1,225, et non de 0. Une erreur moyenne proche de 0 montre seulement que le modèle ne prédit ni trop haut ni trop bas globalement.

Vérifiez votre compréhension

Pourquoi la perte utilise-t-elle les erreurs au carré plutôt que les erreurs elles-mêmes? Donnez les deux raisons.

Afficher la réponse

D’abord, le carré élimine le signe. Les erreurs au-dessus et au-dessous de la valeur réelle ne peuvent donc pas s’annuler. Ensuite, les grandes erreurs comptent davantage : une erreur de 4 ajoute 16, mais une erreur de 1 ajoute seulement 1. Un modèle avec une seule très mauvaise prédiction obtient une perte élevée.

Vérifiez votre compréhension

À w = 7, le gradient est +11. Prédisez : la règle de mise à jour augmente-t-elle ou diminue-t-elle w? Avec un taux d'apprentissage de 0,05, quel est le nouveau w?

Afficher la réponse

Elle le diminue. Le gradient est positif, donc la perte augmente vers la droite. Le signe moins dans la règle déplace w vers la gauche. Le déplacement est −0,05 × 11 = −0,55, donc le nouveau w est 7 − 0,55 = 6,45.

Vérifiez votre compréhension

Un modèle a deux paramètres. Aux valeurs actuelles, les dérivées partielles sont −4 pour w et +2 pour b. Que fait la règle de mise à jour à chaque paramètre, et pourquoi?

Afficher la réponse

Elle augmente w, car sa dérivée partielle est négative : la perte diminue quand w augmente. Elle diminue b, car sa dérivée partielle est positive : la perte augmente quand b augmente. Chaque paramètre se déplace dans le sens opposé à sa propre dérivée partielle.

Récapitulatif

  • La perte est un nombre qui mesure à quel point un modèle se trompe. L’erreur quadratique moyenne élève chaque erreur au carré. Les erreurs ne peuvent donc pas s’annuler, et les grandes erreurs comptent davantage.
  • La courbe de perte montre la perte pour chaque valeur d’un paramètre. L’entraînement cherche son point le plus bas.
  • Le gradient est la pente de la perte. Son signe donne le sens, et sa grandeur indique à quel point la pente est forte.
  • La règle de mise à jour, w − taux d’apprentissage × gradient, fait un pas vers le bas. Les pas deviennent plus petits d’eux-mêmes près du minimum.
  • Avec plusieurs paramètres, chacun a une dérivée partielle. Le gradient est la liste de ces dérivées, et la même règle met à jour chaque paramètre.

Ensuite, vous verrez ce qui arrive quand le taux d’apprentissage est trop petit ou trop grand. Vous verrez aussi pourquoi les courbes d’entraînement réelles présentent des fluctuations.

Leçon suivante : Le comportement de l'optimisation