Ch. 03 · 8 min

Mesurer l'erreur.

Tu as posé une droite à la main dans le premier chapitre. Elle était probablement pas mal, mais comment être sûr qu'elle est meilleure qu'une autre ? « Au pif » ne suffit pas : il faut un chiffre, un seul, qui dise à quel point ta droite passe loin des points. Ce chiffre, c'est la fonction de coût.

Pourquoi un seul chiffre

Sur chaque voiture, tu peux mesurer l'écart entre la prédiction y^\hat{y} et la vérité yy. Avec plus de cent mille voitures dans le dataset, ça fait autant d'erreurs individuelles. Le problème, c'est que comparer deux droites voiture par voiture ne marche pas : l'une sera meilleure ici, l'autre là, et tu n'arriveras jamais à trancher. Il faut agréger tous ces écarts en un seul score.

Naïvement, on pourrait additionner les écarts. Mauvaise idée : les erreurs positives (la prédiction est trop haute) et négatives (trop basse) s'annuleraient, et une droite horriblement fausse pourrait afficher un score de zéro par compensation. Il faut rendre les erreurs toutes positives.

Le MSE, au carré, divisé par deux fois m

La recette standard en régression linéaire est la mean squared error, que tout le monde abrège en MSE. On écrit mm pour le nombre d'exemples, y^(i)\hat{y}^{(i)} pour la prédiction sur la i-ème voiture et y(i)y^{(i)} pour son prix réel :

J(θ0,θ1)=12mi=1m(y^(i)y(i))2J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)})^2

Trois choix se cachent dans cette formule :

  • Le carré rend chaque erreur positive, et pénalise plus fort une grosse erreur qu'une petite : un écart deux fois plus gros compte quatre fois plus dans le score. Ça pousse le modèle à corriger en priorité les pires ratés.
  • La division par mm transforme une somme en moyenne. Sans ça, ajouter des voitures ferait mécaniquement grimper le score, même pour un modèle meilleur.
  • La division par 2 est une astuce mathématique gratuite : quand on dérivera le carré plus tard, le facteur 2 sortira et annulera le 1/2, ce qui rendra la formule du gradient plus propre. Ça ne change pas où se trouve le minimum.

La cuvette, un cadeau de la régression linéaire

Quand on trace JJ en fonction des deux paramètres θ0\theta_0 et θ1\theta_1, on obtient une surface en 3D. Pour la régression linéaire avec MSE, cette surface a une forme très particulière : une cuvette convexe (un bol). Un seul creux, tout au fond, un seul minimum global.

C'est une propriété précieuse : n'importe quel algorithme qui sait descendre une pente finira par tomber dans le fond, peu importe son point de départ. Il n'y a pas de faux minimums où se faire piéger. Plus tard, quand tu entraîneras un réseau de neurones, la surface aura mille creux et bosses, et l'optimisation sera un cauchemar. Profite bien de la cuvette.

θ₀
8 559
θ₁
-0,0215
MSE
448 364
Clique dans la carte (ou utilise les flèches du clavier) pour choisir un couple (θ₀, θ₁). Rouge foncé = faible erreur. Crème pâle = grosse erreur.
+Comment lire ce graphique ?

Cette carte représente toutes les droites possibles. L'axe horizontal est θ0\theta_0 (le point de départ), l'axe vertical est θ1\theta_1 (la pente). Chaque pixel de la carte est donc une droite candidate, identifiée par son couple (θ0,θ1)(\theta_0, \theta_1).

La couleur du pixel encode l'erreur de cette droite : rouge foncé = la droite colle bien aux points (MSE faible), crème pâle = la droite passe loin (MSE élevée). La « cuvette » dont on parle plus haut, c'est exactement cette tache rouge foncée : son centre est le minimum global.

Le point rouge est la droite que tu as sélectionnée. Clique ailleurs pour explorer la carte, ou utilise les flèches du clavier pour te déplacer d'un pas à la fois. Trouver la tache la plus foncée, c'est trouver la meilleure droite ; au chapitre suivant, un algorithme ira toute seule.

Et maintenant ?

Tu sais juger une droite avec un seul chiffre, et tu sais que la surface des coûts a un fond unique. Reste à trouver ce fond sans cliquer au hasard. Au chapitre suivant, tu vas apprendre la méthode qui descend vers le fond en suivant la pente : la descente de gradient.