Créer avec l’IA

Que sont les paramètres, la perte et l’apprentissage, et à quoi ressemblent-ils quand on les regarde changer?

Écrit en date du · Publié le · Mis à jour le · Par Robert Scales, avec l’aide d’outils d’IA · 5 min de lecture

Réponse courte

Les paramètres sont les nombres que le modèle a le droit de modifier, la perte est un seul nombre qui dit à quel point il se trompe, et l’apprentissage est la poussée répétée de chaque paramètre dans la direction qui réduit la perte. Un modèle à deux paramètres rend tout cela visible : on le voit retrouver la conversion Celsius-Fahrenheit en une cinquantaine d’étapes.

Un grand modèle de langage compte des milliards de paramètres, beaucoup trop pour les regarder. Les idées sont identiques avec deux, et avec deux, on peut afficher chaque valeur à chaque étape. Ce projet n’exige que Python et NumPy, une bibliothèque de tableaux de nombres.

Voici le montage. Prenez 200 températures, en Celsius et en Fahrenheit, avec un peu de bruit de mesure. Ne donnez pas la règle de conversion au programme. Donnez-lui un modèle à deux paramètres, w et b, qui prédit w × entrée + b, et laissez-le les trouver.

La boucle d’apprentissage en dix lignes

import numpy as np
rng = np.random.default_rng(0)
c = rng.uniform(-30, 40, 200)
f = 1.8 * c + 32 + rng.normal(0, 1.0, 200)   # la règle, plus du bruit
x = c / 40.0                                  # entrée mise à l'échelle

w, b, lr = 0.0, 0.0, 0.3
for step in range(301):
    error = w * x + b - f
    loss = (error ** 2).mean()                # à quel point c'est faux, en un seul nombre
    if step in (0, 1, 2, 5, 10, 20, 50, 100, 300):
        print(step, round(w, 3), round(b, 3), round(loss, 3))
    w -= lr * 2 * (error * x).mean()          # poussée contre la pente de la perte
    b -= lr * 2 * error.mean()
print("pente par degré :", round(w / 40, 3), "décalage :", round(b, 2))

La perte est ici l’erreur quadratique moyenne : la moyenne des erreurs de chaque prédiction, au carré. Les deux lignes qui mettent à jour w et b utilisent le gradient, la pente de la perte par rapport à chaque paramètre. Il répond à une seule question : si ce nombre montait un peu, la perte monterait-elle ou descendrait-elle, et à quelle vitesse? Déplacer chaque nombre à contre-pente, c’est la descente de gradient. Le taux d’apprentissage, lr, dit quelle est la taille de chaque déplacement.

À quoi ça ressemble

Mesuré ici (NumPy 2.5.4, Python 3.14, Apple M5 Max). w est donné par 40 degrés parce que l’entrée a été mise à l’échelle; la vraie valeur est 72.

ÉtapewbPerte
00,0000,0003 544,176
117,34327,5421 052,205
228,18836,537546,490
546,78938,213177,752
1061,32834,71832,403
2069,98632,4332,031
5071,84531,9411,042
30071,85531,9391,042

La règle finale est F = 1,796 × C + 31,94, contre les vrais 1,8 et 32. Trois choses méritent un second regard.

  • b dépasse jusqu’à 38, puis revient. L’apprentissage ne suit pas un chemin droit, même sur le problème le plus simple qui soit.
  • La perte s’arrête à 1,042, pas à zéro. Le bruit ajouté a une variance d’environ 1, et aucune droite ne peut prédire du bruit aléatoire. Une perte qui cesse de baisser n’est pas toujours un problème.
  • Les premiers gains sont énormes et les derniers, minuscules. La chute entre les étapes 0 et 1 dépasse tout ce qui suit. Une courbe se lit mieux sur une échelle logarithmique.

Pour être sûr qu’un gradient est juste, mesurez-le. Poussez w d’une toute petite quantité de chaque côté et voyez de combien la perte bouge. À w=3, b=5, la formule donne −53,97233 et la poussée aussi. Cette vérification attrape de vrais bogues quand on écrit une boucle d’entraînement à la main.

Le réglage qui décide de tout

Le taux d’apprentissage est le premier réglage à connaître. Trop bas, le progrès se traîne; trop haut, le modèle ne se stabilise jamais. Voici ce conseil en chiffres, chaque exécution durant 100 étapes à partir du même départ.

Taux d’apprentissagePerte après 100 étapesCe qui s’est passé
0,0012 568,6À peine commencé
0,01381,6Encore loin
0,11,061Presque arrivé
0,31,042Terminé
0,61,042Terminé
1,0792 760 607 948Explosion
1,2DivergenceArrêt quand la perte a dépassé 10^30
2,0DivergenceArrêt quand la perte a dépassé 10^30

Remarquez à quel point le bon et le catastrophique sont proches : 0,6 fonctionne et 1,0 envoie la perte dans les centaines de milliards. Rien ne vous avertit avant le précipice.

La mise à l’échelle de l’entrée compte tout autant. Avec les valeurs Celsius brutes plutôt que c / 40, les taux de 0,01 et 0,003 ont divergé, et le taux stable de 0,001 n’a atteint qu’une perte de 631 après 100 étapes. Les mêmes données et le même modèle exigent beaucoup plus d’étapes quand une entrée est grande. C’est pourquoi les recettes d’entraînement normalisent les entrées.

Le véritable entraînement utilise rarement cette mise à jour toute simple. Adam conserve des estimations courantes des gradients de chaque paramètre et ajuste chaque pas en conséquence, ce qui le rend bien moins capricieux quant à ces réglages. Cela signifie aussi des nombres de plus à stocker pour chaque paramètre, ce qui revient dans le projet sur la mémoire.

À essayer : remplacez la vraie règle par f = -40 + 0.5 * c, gardez tout le reste et prédisez le w final avant de lancer le code.

Pourquoi un plus gros modèle n’apprend-il pas simplement davantage?

Une droite ne peut pas tout représenter, et ajouter des droites n’aide pas si rien ne les plie. XOR est le test classique : la sortie vaut 1 quand exactement une des deux entrées est active. Entraîné pendant 5 000 étapes avec une sortie sigmoïde, le modèle en ligne droite se stabilise à 0,5 pour les quatre cas, le mieux qu’il puisse faire. L’ajout d’une couche cachée avec une fonction non linéaire change ce que le modèle est capable d’exprimer.

Mais la capacité ne garantit pas le succès. Voici les résultats de 50 départs aléatoires chacun, mesurés ici :

Unités cachéesParamètresXOR résolu
0 (une droite)3Non : les sorties restent à 0,5 (une exécution)
2942 sur 50
31346 sur 50
41750 sur 50
83350 sur 50

Deux unités cachées suffisent en principe, et pourtant 8 départs sur 50 sont restés coincés. La capacité supplémentaire a facilité la recherche. Cela explique en partie pourquoi les modèles pratiques dépassent le strict minimum, et pourquoi la graine peut changer votre résultat. Plus de paramètres, c’est aussi plus de place pour mémoriser plutôt que généraliser, le piège que la recette d’entraînement d’Andrej Karpathy vous dit d’utiliser exprès : obtenir d’abord un modèle capable de surapprendre, puis le retenir. La taille d’un modèle fixe ce qu’il pourrait apprendre. S’il l’apprend vraiment dépend des données, des réglages et des vérifications honnêtes qui viennent ensuite dans cette série.

Téléchargez le code de cette série (zip), avec tous les scripts et les résultats enregistrés.

Sources

  1. Linear regression: Hyperparameters — Google for Developers
  2. Adam: A Method for Stochastic Optimization — arXiv, 22 décembre 2014
  3. A Recipe for Training Neural Networks — Andrej Karpathy, 25 avril 2019

Tiré du Guide de l’intelligence artificielle, par Robert Scales, publié par Holistic Hybrid inc. Partage et adaptation permis selon la licence CC BY-NC-SA 4.0 : citez le guide, mettez un lien vers https://guidetoartificialintelligence.com/fr/apprendre/parametres-perte-apprentissage-en-direct/, pas d’usage commercial sans permission, et gardez la même licence.

Recevez gratuitement le Guide de l’intelligence artificielle

Abonnez-vous à l’infolettre et recevez le guide gratuit : ce qui a changé en IA, une leçon, un prompt à essayer. Désabonnement en un clic.

Ce que nous faisons de votre adresse

Retour en haut

Affichage

Vos choix sont enregistrés dans ce navigateur seulement. Aucune donnée n’est transmise.

Taille du texte
100 %
Couleurs
Lecture
Autres réglages
Déclaration d’accessibilité

Obtenir l’appli

Ajoutez le guide à votre écran d’accueil. Il s’ouvre comme une application, et les pages déjà lues restent disponibles hors ligne.

Lire sans connexion : télécharger les articles

iPhone et iPad (Safari, Chrome, Edge)

  1. Touchez le bouton Partager (le carré avec une flèche). Dans Chrome et Edge, il est dans la barre d’adresse ou le menu.
  2. Choisissez « Sur l’écran d’accueil ».
  3. Touchez « Ajouter ».

Android (Chrome, Edge, Samsung Internet, Firefox)

  1. Ouvrez le menu du navigateur (⋮ ou ☰).
  2. Choisissez « Installer l’application » ou « Ajouter à l’écran d’accueil ».
  3. Confirmez avec « Installer ».

Ordinateur (Chrome, Edge)

  1. Cliquez sur l’icône d’installation au bout de la barre d’adresse, ou ouvrez le menu du navigateur (⋮ ou …).
  2. Dans Chrome, choisissez « Caster, enregistrer et partager », puis « Installer la page en tant qu’application ». Dans Edge, choisissez « Applications », puis « Installer ce site en tant qu’application ».
  3. Cliquez sur « Installer ».

Mac (Safari)

  1. Ouvrez le menu Fichier.
  2. Choisissez « Ajouter au Dock ».
  3. Cliquez sur « Ajouter ».

Firefox sur ordinateur ne peut pas installer un site comme application. Utilisez plutôt Chrome, Edge ou Safari.