Objectifs du chapitre
À la fin de ce chapitre, vous serez capable de:
- reconnaître le surapprentissage et le sous-apprentissage sur les erreurs d'entraînement et de test d'une famille de modèles de complexité croissante, et expliquer pourquoi l'erreur d'entraînement ne peut que baisser quand le modèle s'enrichit;
- démontrer la décomposition biais–variance de l'erreur quadratique attendue en un point, et la calculer pour une régression polynomiale;
- lire une courbe d'apprentissage et dire si un modèle a besoin de plus de données ou d'un autre modèle;
- écrire la régression ridge avec un biais non pénalisé, démontrer sa forme close et son inversibilité pour , et calculer le rétrécissement qu'elle produit sur le jeu A;
- expliquer pourquoi le lasso annule des coefficients et la ridge ne le fait pas, par le calcul et par la géométrie des boules et ;
- choisir par validation croisée sans toucher à l'ensemble de test, et reconnaître l'arrêt précoce de la descente de gradient comme une autre forme de régularisation.
Quand un modèle apprend trop bien
Le chapitre 1 a posé le problème sans le résoudre. Un modèle choisi pour minimiser son erreur sur les exemples d'entraînement finit par apprendre les accidents de ces exemples: la règle du plus proche voisin avait une erreur d'entraînement nulle sur le jeu B et se trompait pourtant sur trois courriels sur seize dès qu'on la testait honnêtement. La figure 1.2 montrait, de façon schématique, une erreur de test qui passe par un minimum puis remonte quand la flexibilité du modèle augmente. Ce chapitre calcule cette courbe sur un exemple complet, explique d'où vient sa forme, et donne les outils pour se placer au bon endroit.
L'exemple doit réunir trois conditions. Il nous faut une famille de modèles dont la flexibilité se règle par un seul nombre; les polynômes de degré en sont l'exemple type, et le chapitre 2 a montré qu'ils restent des modèles linéaires en leurs paramètres. Il nous faut ensuite des données dont on connaît la vraie loi, pour pouvoir comparer ce que le modèle apprend à ce qu'il aurait dû apprendre — ce qui est impossible avec les loyers du jeu A, dont personne ne connaît la «vraie» relation. Il nous faut enfin assez peu de données pour que le surapprentissage se voie: c'est quand les exemples sont rares que la tentation de les apprendre par cœur est la plus forte.
Des données dont on connaît la loi
Nous fabriquons donc nos données. Ce sont des données fictives, construites pour le cours, produites par une loi que nous choisissons et que nous énonçons entièrement:
- la caractéristique est tirée uniformément dans l'intervalle , puis arrondie au centième;
- l'étiquette vaut , où le bruit suit une loi normale de moyenne et d'écart type (Probabilités et statistique, chapitre 6), indépendamment d'un exemple à l'autre; est arrondi au centième;
La fonction est la fonction de régression: c'est ce qu'un modèle parfait devrait prédire, . La variance du bruit, , est l'erreur quadratique qu'aucun modèle ne peut éviter, puisque même elle-même se trompe en moyenne de sur un nouvel exemple. Gardez ce nombre en tête: c'est le plancher de toutes les erreurs de test de ce chapitre. Le choix d'une sinusoïde n'est pas original; c'est, à un changement de variable près, l'exemple par lequel Bishop ouvre son manuel, et il a l'avantage de ne pas être un polynôme, de sorte qu'aucun degré ne la reproduit exactement.
import math, random
def generer(n, sigma=0.25):
"""n tirages: x uniforme sur [-1, 1], y = sin(pi x) + bruit gaussien."""
points = []
for _ in range(n):
x = round(random.uniform(-1, 1), 2) + 0.0 # + 0.0 change -0.0 en 0.0
y = round(math.sin(math.pi * x) + random.gauss(0, sigma), 2
Les douze exemples d'entraînement sont les suivants; c'est sur eux seuls que les modèles seront ajustés.
| Point | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| 0,72 | −0,46 | 1,00 | −0,56 | −0,06 | 0,32 | |
| 0,57 | −1,09 | −0,08 | −0,72 | −0,14 | 1,25 |
| Point | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|
| 0,71 | 0,52 | −0,31 | −0,82 | −0,94 | 0,00 | |
| 0,74 | 0,39 | −0,58 | −0,69 | −0,35 | 0,07 |
Pour les programmes du chapitre, ils s'écrivent ainsi; la liste test, de soixante couples, est recopiée dans les exercices qui en ont besoin.
# Données fictives: random.seed(351), y = sin(pi x) + bruit N(0; 0,25^2).
entrainement = [
(0.72, 0.57), (-0.46, -1.09), (1.0, -0.08), (-0.56, -0.72),
(-0.06, -0.14), (0.32, 1.25), (0.71, 0.74), (0.52, 0.39),
Le degré est un hyperparamètre: il n'est pas appris par les moindres carrés, il est fixé avant eux, et il règle à lui seul la flexibilité du modèle. Le degré 0 est le prédicteur constant du chapitre 1; le degré 1 est la droite du chapitre 2; chaque degré supplémentaire ajoute une colonne à et un paramètre à . Nous gardons dans précisément pour que les puissances restent du même ordre de grandeur que ; sur une surface en m², dépasserait et les équations normales seraient numériquement inutilisables — c'est le problème de conditionnement du chapitre 3, en pire.
La figure 6.1 est la version calculée de la figure 1.2. L'échelle logarithmique est indispensable: les erreurs de test couvrent plus de deux décades, et une échelle linéaire écraserait toute la zone intéressante contre l'axe. On y voit aussi ce que le tableau suggérait: le segment des degrés 3 à 6 est presque plat. Plusieurs modèles sont aussi bons les uns que les autres, et rien n'impose de choisir le plus complexe d'entre eux; en cas d'égalité, on préfère le plus simple.
Sur nos données, les degrés 0 à 2 sont en sous-apprentissage: leur erreur d'entraînement, entre et , est déjà très au-dessus du plancher, et leur erreur de test l'est un peu plus. À partir du degré 7, le modèle surapprend: l'erreur d'entraînement continue de baisser, l'erreur de test monte. L'écart entre les deux erreurs est le signal à surveiller; au degré 3 il vaut , au degré 9 il dépasse .
Démonstration. Un polynôme de degré au plus est aussi un polynôme de degré au plus , dont le coefficient de est nul. La famille des modèles de degré contient donc celle des modèles de degré , et le minimum du risque empirique sur une famille plus grande est inférieur ou égal au minimum sur la plus petite: . Pour la seconde affirmation, prenons : la matrice est alors carrée, de taille , et c'est une matrice de Vandermonde, dont le déterminant est non nul quand les sont distincts (Algèbre linéaire, chapitre 3). Le système a donc une solution, qui annule tous les résidus: le polynôme les données, et . Pour , la monotonie donne .
Le théorème dit pourquoi l'erreur d'entraînement ne peut pas servir à choisir : elle désignerait toujours le plus grand degré disponible. Il le dit sans aucune hypothèse sur les données — c'est une propriété de l'optimisation, pas du monde. Et il ne dit rien de l'erreur de test, qui dépend de ce que le modèle fait entre les points d'entraînement, là où il n'a reçu aucune information.
D'après le tableau de l'exemple 6.1, laquelle de ces conclusions est correcte?
Complétez caracteristiques(x, d), qui renvoie la liste , et erreur_quadratique(w, donnees), l'erreur quadratique moyenne du polynôme de coefficients w (le coefficient de est w[j]) sur une liste de couples (x, y). La résolution des équations normales est fournie. Le programme reproduit cinq lignes du tableau de l'exemple 6.1.
Le compromis biais–variance
Pourquoi l'erreur de test remonte-t-elle? Le polynôme de degré 9 n'est pas «mauvais» en soi: la sinusoïde est très bien approchée par un polynôme de degré 9 sur . Le problème est que, avec douze points bruités, les moindres carrés ne trouvent pas ce bon polynôme; ils en trouvent un qui dépend fortement du bruit particulier de ces douze points. Tiré avec d'autres graines, le même procédé donnerait des polynômes très différents. Pour rendre cette intuition précise, il faut regarder le prédicteur appris comme une variable aléatoire: il dépend de l'échantillon d'entraînement, lui-même aléatoire.
Fixons le cadre. Les exemples suivent le modèle
où est la fonction de régression, inconnue. Une méthode d'apprentissage — par exemple «moindres carrés sur les polynômes de degré 9» — associe à tout ensemble d'entraînement un prédicteur . Comme est aléatoire, la prédiction en un point fixé est une variable aléatoire, dont on peut calculer l'espérance et la variance.
Le biais mesure une erreur systématique: même avec une infinité d'ensembles d'entraînement dont on ferait la moyenne des prédictions, une droite ne suivra jamais une sinusoïde. La variance mesure une erreur d'instabilité: un modèle très flexible suit le bruit de chaque échantillon, et ses prédictions changent d'un échantillon à l'autre même si, en moyenne, elles visent juste.
Démonstration. Allégeons l'écriture: , et ; seuls et sont aléatoires. Écrivons l'erreur comme une somme de trois termes, en ajoutant et retranchant et :
Le carré d'une somme de trois termes est la somme des trois carrés et des trois doubles produits. Prenons l'espérance de chacun des six termes.
- .
- n'est pas aléatoire: son espérance est lui-même, le biais au carré.
Il reste exactement les trois termes de (6.2).
La démonstration ressemble à celle du théorème 1.2, et ce n'est pas un hasard: dans les deux cas on décompose un écart quadratique autour d'une moyenne, et les doubles produits s'annulent parce que les écarts à la moyenne sont, en moyenne, nuls. Le premier terme, , est l'erreur irréductible: aucune méthode ne peut descendre en dessous. Les deux autres dépendent de la méthode, et ils tirent en sens contraires. Un modèle rigide a un biais élevé et une variance faible: il se trompe toujours de la même façon. Un modèle flexible a un biais faible et une variance élevée: il vise juste en moyenne mais se disperse. Réduire l'un augmente en général l'autre, et le meilleur modèle est celui qui minimise leur somme — d'où le nom de compromis biais–variance (bias–variance trade-off).
Pour calculer ces termes, il faut connaître , ce qui n'arrive jamais en pratique — et c'est pourquoi nous avons fabriqué nos données. Pour la régression polynomiale, le calcul est même exact, sans simulation, si l'on fixe les abscisses d'entraînement et que seul le bruit est redessiné: c'est le cadre du plan fixe (fixed design). La prédiction en un point s'écrit
une fonction linéaire de . Avec , où et de covariance , la linéarité de l'espérance donne — c'est le polynôme qu'on ajusterait aux valeurs —, et la règle (Probabilités et statistique, chapitre 7) donne
D'après le tableau de l'exemple 6.2, quelle part (en %) de l'erreur quadratique attendue du polynôme de degré 9 est due à la variance?
Courbes d'apprentissage
La figure 6.1 fait varier la complexité du modèle à données fixées. On peut aussi faire l'inverse: fixer le modèle et faire varier la quantité de données. Cette seconde lecture répond à une question très pratique, que tout projet finit par poser: vaut-il la peine de collecter plus d'exemples?
Le calcul suivant les produit pour les degrés 1, 3 et 7, sur des données tirées selon la même loi que celles du chapitre. Le générateur est initialisé par random.seed(2026); on tire d'abord un ensemble de test de 2 000 points, puis, pour chaque taille , deux cents ensembles d'entraînement indépendants de taille , dont on fait la moyenne des erreurs.
| Degré 1, entr. | Degré 1, test | Degré 3, entr. | Degré 3, test | Degré 7, test (médiane) | |
|---|---|---|---|---|---|
| 12 | 0,2147 | 0,3137 | 0,0448 | 0,1320 | 1,4422 |
| 24 | 0,2401 | 0,2877 | 0,0549 | 0,0844 | 0,1091 |
| 48 | 0,2500 | 0,2749 | 0,0610 | 0,0747 | 0,0768 |
| 96 | 0,2488 | 0,2677 | 0,0642 | 0,0711 | 0,0692 |
| 192 | 0,2553 | 0,2648 | 0,0650 | 0,0697 | 0,0663 |
Pour le degré 7, la dernière colonne donne la médiane des deux cents erreurs de test, et non leur moyenne: avec douze points, quelques ensembles d'entraînement laissent de grands trous dans , le polynôme s'y envole, et la moyenne des deux cents erreurs de test atteint environ millions. Une seule valeur extrême suffit à rendre la moyenne inutilisable; c'est l'exemple 1.2 sur la robustesse de la médiane, à une autre échelle.
Les deux colonnes de chaque degré convergent l'une vers l'autre. L'erreur d'entraînement monte avec : plus il y a de points, plus il est difficile de tous les suivre. L'erreur de test descend: plus il y a de points, moins le modèle dépend du bruit de chacun. Et les deux tendent vers une même limite, qui est l'erreur du meilleur modèle de la famille: plus le biais au carré de la meilleure approximation de par un polynôme de ce degré. Un calcul d'intégrales (exercice 6.3) donne pour le degré 1; le même calcul fait numériquement donne pour le degré 3 et pour le degré 7, dont le biais est négligeable.
Ces courbes servent au diagnostic.
- Le degré 1 est limité par son biais. Dès , ses deux erreurs sont proches l'une de l'autre et proches de leur limite , quatre fois le plancher. Doubler, quadrupler les données ne servira presque à rien: l'erreur de test passe de à entre 48 et 192 exemples. Il faut un modèle plus flexible.
- Le degré 7 est limité par sa variance quand les données sont rares. Avec douze points, l'écart entre entraînement et test est énorme; avec 192 points, son erreur de test () est la meilleure des trois. Pour lui, plus de données est exactement le bon remède.
- Le degré 3 est au milieu: un écart de à , de à , et une limite à peine au-dessus du plancher.
Sur une courbe d'apprentissage, l'erreur d'entraînement d'un modèle vaut et son erreur de validation avec 5 000 exemples; avec 500 exemples, elles valaient et . Le bruit irréductible est estimé à . Que faire en priorité?
La régularisation ridge
L'exemple 6.1 a montré le symptôme du surapprentissage sur les coefficients: au degré 9, des termes de plusieurs centaines de signes opposés qui se compensent aux points d'entraînement et s'emballent entre eux. L'exemple 6.2 en a donné le diagnostic: une variance énorme. On pourrait réduire le degré, mais c'est un réglage grossier — on passe de 10 paramètres à 4 d'un coup. La régularisation propose un réglage continu: garder le modèle riche, mais lui interdire les grands coefficients, en ajoutant au critère des moindres carrés un terme qui les pénalise.
Deux remarques sur cette définition. La première porte sur l'échelle. Le premier terme est une somme de carrés, et non la moyenne : on a , et minimiser revient à minimiser . Les deux conventions existent dans la littérature et dans les bibliothèques; elles ne diffèrent que par un facteur sur , mais ce facteur change la valeur numérique du «bon» . Nous gardons la somme, qui donne la forme close la plus simple.
La seconde porte sur le biais. Pénaliser tirerait toutes les prédictions vers , ce qui n'a aucun sens: un loyer de CHF 1 902,50 ou une température de 280 kelvins n'ont aucune raison d'être «petits». Ce que l'on veut contrôler, c'est la sensibilité du modèle aux caractéristiques — la pente, l'ondulation —, pas son niveau moyen. D'ailleurs, si l'on pénalisait , déplacer toutes les étiquettes de 1 000 changerait la forme de l'ajustement, ce qui serait absurde.
Démonstration. Posons . Elle est symétrique, comme somme de deux matrices symétriques. Pour tout ,
Supposons . Les deux termes sont positifs, donc nuls tous les deux. Comme , le second impose . Le premier impose alors ; or , puisque seule la colonne de uns subsiste, et force . Donc pour tout : est définie positive (Algèbre linéaire, chapitre 11). Elle est inversible, car entraînerait , donc .
Développons maintenant le coût. Avec , on obtient
Soit , de sorte que . En complétant le carré, et en utilisant la symétrie de ,
Le dernier terme ne dépend pas de , et le premier est strictement positif sauf en , puisque est définie positive. Le minimum est donc atteint en et seulement là. On retrouve la même équation en annulant le gradient (annexe A).
Le chapitre 2 avait laissé une question ouverte: que faire quand est singulière, parce que deux caractéristiques sont colinéaires ou qu'il y a plus de paramètres que d'exemples? La ridge y répond. Pour , les moindres carrés ont alors une infinité de solutions; pour tout , il y en a exactement une. Nous en aurons besoin à la section sur la validation croisée: un polynôme de degré 9 a dix paramètres, et une validation croisée à quatre plis ne lui laissera que neuf exemples pour l'ajuster.
La ridge sur les loyers
Sur une seule caractéristique, la forme close se lit sans inverser de matrice. Écrivons et les moyennes, et
Annuler la dérivée de par rapport à donne , soit — exactement la même condition que pour les moindres carrés, puisque n'est pas pénalisé: . En reportant, devient , minimal en
La pente des moindres carrés est multipliée par le facteur de rétrécissement (shrinkage) , compris entre et . Quand , la pente tend vers et la droite vers la constante : le prédicteur constant du chapitre 1.
Cette dernière observation a une conséquence pratique importante. La pénalité dépend de l'unité de : mesurer la surface en dm² plutôt qu'en m² divise par 100 et sa pénalité par 10 000, à fixé. Avec plusieurs caractéristiques d'unités différentes, une même valeur de pénaliserait donc très inégalement les poids: une caractéristique exprimée en grandes unités prend de petites valeurs numériques, demande un grand poids pour avoir un effet, et ce grand poids est lourdement pénalisé; une caractéristique exprimée en petites unités s'en tire à bon compte. Le remède est de les caractéristiques avant de régulariser, comme on le faisait au chapitre 3 pour la descente de gradient.
La ridge sur les polynômes
Revenons au degré 9, celui dont l'erreur de test valait . Gardons ce degré et faisons varier , avec la forme close (6.4); comme , les caractéristiques ont des échelles comparables, et nous ne les standardisons pas.
| Erreur d'entraînement | Erreur de test | ||
|---|---|---|---|
| 0 | 0,0082 | 4,4147 | 488,25 |
| 0,0116 | 1,1694 | 151,09 | |
| 0,0158 | 0,4646 | 70,06 | |
Une pénalité minuscule, , suffit à diviser l'erreur de test par près de quatre: les coefficients géants du degré 9 coûtaient très peu en erreur d'entraînement, et il suffit d'un rien pour qu'ils ne vaillent plus la peine. À , l'erreur de test vaut , presque celle du meilleur degré non régularisé (), avec un polynôme de degré 9 dont la norme des poids a été divisée par plus de soixante. Au-delà, la pénalité écrase le modèle: à , l'erreur de test, , approche celle du prédicteur constant, , et les poids sont presque nuls. L'erreur d'entraînement, elle, augmente à chaque colonne: c'est l'image miroir du théorème 6.1, puisque augmenter restreint le modèle.
La figure 6.2 refait le calcul exact de l'exemple 6.2, mais cette fois en faisant varier au lieu du degré. Pour la ridge, la prédiction reste linéaire en : avec , on a et . Le compromis y est lisible d'un seul coup d'œil: la régularisation une baisse de variance en un peu de biais. Tant que la variance baisse plus vite que le biais ne monte, l'erreur attendue diminue. L'erreur attendue minimale vaut à sur la grille de la figure, contre sans régularisation. La ridge introduit délibérément un biais — c'est un estimateur — et c'est précisément ce qui la rend meilleure.
Choisissez le degré puis augmentez . Avec et un degré élevé, la courbe passe près de chaque point d'entraînement (disques) et oscille entre eux: l'erreur d'entraînement est minuscule, l'erreur sur les 60 points de test (croix) explose. Une petite pénalité suffit à calmer la courbe sans changer le degré; une pénalité trop forte l'aplatit vers la moyenne. Le trait tireté est la fonction qui a servi à produire les données.
L'explorateur rend ce compromis visible sur la courbe elle-même. Avec le degré 9 et , le polynôme passe tout près des douze disques et part en oscillations entre eux et vers les bords, là où les points d'entraînement manquent; les croix de test, qui tombent justement dans ces zones, ne sont pas suivies. Faites glisser d'un ou deux crans: les oscillations disparaissent, la courbe rejoint la sinusoïde, et l'erreur de test chute alors que l'erreur d'entraînement monte un peu. Poussez jusqu'à 100: la courbe s'aplatit sur la moyenne des étiquettes, . Essayez aussi le degré 11 avec , qui interpole exactement les douze points, puis avec .
Complétez ridge_simple(donnees, lam), qui renvoie le couple (w0, w1) minimisant pour une seule caractéristique, le biais n'étant pas pénalisé. Utilisez les moyennes et les sommes centrées et . Le programme reproduit quatre lignes du tableau de l'exemple 6.3.
Le lasso et la parcimonie
La ridge rétrécit tous les poids, mais elle n'en annule aucun: dans la formule , la pente ne vaut zéro que si , c'est-à-dire si elle était déjà nulle. Or on aimerait souvent un modèle qui ses caractéristiques: sur deux cents mesures possibles d'un patient, dire lesquelles comptent. Il suffit pour cela de changer de norme.
Le coût du lasso est convexe, mais il n'est pas dérivable là où un poids s'annule, et il n'a pas de forme close en général: on le minimise par des méthodes itératives, la plus courante étant la descente par coordonnées (coordinate descent), qui optimise un poids à la fois. Dans un cas particulier, pourtant, tout se calcule, et ce cas suffit à voir d'où viennent les zéros.
Démonstration. Développons la somme des carrés. Avec ,
Comme les colonnes sont centrées, . Comme elles sont orthogonales, les doubles produits du dernier terme disparaissent: . Le coût se donc en une somme de termes qui ne dépendent chacun que d'un paramètre:
avec pour la ridge et pour le lasso. On minimise chaque terme séparément. Le premier est minimal en (théorème 1.2). Pour la ridge, est une parabole de sommet .
Pour le lasso, supposons d'abord . Sur , s'annule en , minimum de la parabole restreinte à ce demi-axe; sur , , donc y décroît vers , et . Le minimum est . Le cas est symétrique et donne . Enfin, si , alors pour , , et pour , : décroît jusqu'en puis croît, et son minimum est . Les trois cas s'écrivent ensemble comme dans (6.6).
La différence entre les deux formules est toute la leçon. La ridge divise par un nombre plus grand: le poids diminue mais ne s'annule jamais. Le lasso retranche à et s'arrête à zéro: c'est un seuillage doux (soft thresholding). Toute caractéristique dont la corrélation avec , mesurée par , est inférieure au seuil est éliminée, et les autres sont toutes diminuées de la même quantité.
Sur le jeu A en standardisé, la seule colonne est centrée, donc trivialement orthogonale à elle-même; et . Le lasso donne
La pente baisse linéairement en , au lieu du déclin en de la ridge, et elle atteint zéro en un fini: à partir de , le lasso déclare que la surface n'apporte rien et prédit le loyer moyen. La ridge, elle, ne le déclarerait jamais.
La géométrie des boules
Il existe une seconde lecture, plus visuelle, de la même différence. Admettons — c'est un résultat d'optimisation sous contrainte, la dualité de Lagrange, que nous ne démontrons pas ici — que minimiser revient, pour un certain rayon qui dépend de , à minimiser . La pénalité devient une boule dont le poids n'a pas le droit de sortir.
La solution contrainte est le point de la boule où l'on touche la plus basse ligne de niveau du coût: on part du minimum sans contrainte , qui est hors de la boule, et l'on dilate les ellipses de niveau jusqu'à ce que l'une d'elles touche la boule. Le disque est lisse et rond; l'ellipse le touche presque toujours en un point quelconque de son bord, dont aucune coordonnée n'est nulle. Le losange a des sommets pointus sur les axes; une ellipse qui vient de loin a toutes les chances de le toucher par un sommet, et en un sommet, toutes les coordonnées sauf une sont nulles. En dimension , la boule a sommets et des arêtes et des faces de toutes dimensions sur lesquelles une partie des coordonnées s'annule: c'est là que se posent les solutions du lasso, et c'est pourquoi elles sont parcimonieuses.
Le lasso n'est pas pour autant toujours préférable. Quand plusieurs caractéristiques sont fortement corrélées, il tend à en garder une et à éliminer les autres, de façon assez arbitraire et instable d'un échantillon à l'autre, là où la ridge répartit le poids entre elles. Et un poids mis à zéro par le lasso ne prouve pas que la caractéristique est sans effet dans le monde: il dit seulement que, sur ces données et avec ce , elle n'apportait pas assez pour payer sa pénalité. Comme pour tout coefficient de régression, en tirer une conclusion causale serait une erreur (chapitre 2).
Choisir par validation croisée
Le tableau de la ridge de degré 9 donne la meilleure erreur de test pour . Mais nous l'avons trouvé en regardant l'erreur de test, et le chapitre 1 a dit pourquoi c'est interdit: un hyperparamètre choisi sur le test fait de l'ensemble de test un ensemble de validation, et l'erreur annoncée devient optimiste. Il faut choisir — comme le degré, comme tout hyperparamètre — sans toucher au test. Avec douze exemples d'entraînement, on ne peut pas se permettre d'en mettre quatre de côté une fois pour toutes; la validation croisée à plis du chapitre 5 recycle chacun d'eux.
La procédure est la suivante. On découpe l'ensemble d'entraînement en plis (folds) disjoints de même taille (définition 5.10). Pour chaque valeur candidate de , on ajuste modèles, chacun sur plis, et l'on mesure chacun sur le pli laissé de côté; l'erreur de validation croisée de est la moyenne des erreurs. On retient le de plus petite erreur de validation croisée, puis l'on réajuste le modèle sur tout l'ensemble d'entraînement avec ce . Ce n'est qu'à la toute fin, une fois, que l'on mesure l'erreur de test.
Complétez validation_croisee(donnees, d, lam, k), qui découpe donnees en k plis consécutifs de taille len(donnees) // k, ajuste pour chaque pli un polynôme ridge de degré d sur les autres exemples, mesure son erreur quadratique moyenne sur le pli, et renvoie la moyenne des k erreurs. Le programme choisit par validation croisée à quatre plis, puis mesure une seule fois l'erreur de test.
Une équipe règle le d'une régression ridge sur des données de capteurs. Remettez ses étapes dans l'ordre qui garde l'erreur de test honnête.
Glissez les éléments pour les mettre dans le bon ordre
- Retenir le de plus petite erreur de validation croisée
- Pour chaque de la grille, standardiser sur plis, ajuster, mesurer sur le pli restant, et faire la moyenne des erreurs
- Mesurer une seule fois l'erreur sur l'ensemble de test et l'annoncer
- Découper l'ensemble d'entraînement restant en plis
- Réajuster le modèle avec ce sur tout l'ensemble d'entraînement, standardisation comprise
- Mettre de côté un ensemble de test, qui ne sera plus consulté avant la fin
L'arrêt précoce
Il existe une forme de régularisation que l'on pratique souvent sans le savoir. Au lieu de résoudre les équations normales, minimisons l'erreur quadratique moyenne du polynôme de degré 9 par descente de gradient (chapitre 3), en partant de . La plus grande valeur propre de la hessienne de la MSE, que nous notons pour ne pas la confondre avec le de la régularisation, vaut ici ; un pas est donc inférieur à et la descente converge, d'après le chapitre 3. Mais la plus petite valeur propre vaut environ — sur , des puissances comme , et se ressemblent beaucoup —, et le conditionnement dépasse : le long de cette direction, chaque pas ne réduit l'écart à la solution des moindres carrés que d'un facteur , et il faudrait des dizaines de millions d'itérations pour s'en approcher. Suivons les erreurs au fil des itérations, numérotées par comme au chapitre 3 — la lettre comptait les plis à la section précédente, et comptera les voisins au chapitre 7; le contexte lève toujours l'ambiguïté. (Nous regardons ici l'erreur de test ; en pratique, ce serait une erreur de validation, comme on va le dire.)
| Itération | Erreur d'entraînement | Erreur de test | |
|---|---|---|---|
| 0 | 0,4383 | 0,5386 | 0 |
| 10 | 0,1291 | 0,1792 | 1,05 |
| 100 | 0,0688 | 0,0940 | 2,03 |
| 1 000 | 0,0493 | 0,0860 | 3,81 |
| 3 000 | 0,0471 | 0,0844 | 4,57 |
| 9 000 | 0,0423 | 0,0810 | 7,15 |
| 30 000 | 0,0323 | 0,1018 | 16,54 |
| 100 000 | 0,0241 | 0,2123 | 31,85 |
| 1 000 000 | 0,0149 | 0,5343 | 79,47 |
L'erreur d'entraînement baisse sans cesse, vers les des moindres carrés, qu'elle n'atteint pas même après un million d'itérations. L'erreur de test baisse jusqu'à environ 9 000 itérations, où elle vaut , puis remonte. Pendant ce temps, la norme des poids grandit régulièrement: la descente explore d'abord les directions «faciles», où la donnée est riche, et ne construit que tardivement les grands coefficients qui font osciller le polynôme. Arrêter tôt, c'est empêcher les poids de devenir grands — exactement ce que fait la ridge par une pénalité.
La parenté avec la ridge peut être rendue précise sur un coût quadratique. Le chapitre 3 a montré que, dans la base des vecteurs propres de la hessienne de la MSE, de valeurs propres , chaque pas de descente multiplie l'écart à la solution des moindres carrés par . En partant de , la composante de l'itéré vaut donc
Dans la version simplifiée de la ridge où tous les paramètres sont pénalisés, le même calcul (annuler le gradient de ) donne . Les deux facteurs se comportent de la même façon: proches de 1 dans les directions de grande courbure , où les données déterminent bien le paramètre, et proches de 0 dans les directions de faible courbure, où elles le déterminent mal. Pour petit, le premier vaut environ et le second environ ; ils coïncident quand
Avec , et , cela donne — et c'est bien à que la ridge de degré 9 avait sa meilleure erreur de test, , la même qu'ici. Ce n'est qu'une correspondance approximative, mais elle dit l'essentiel: . Plus on itère, moins on régularise.
La régularisation reviendra presque à chaque chapitre, sous des noms différents. Le nombre de voisins des plus proches voisins (chapitre 7) règle un compromis biais–variance: a une variance maximale. La profondeur d'un arbre de décision et son élagage (chapitre 8) jouent le même rôle, et les forêts aléatoires réduisent la variance en moyennant des arbres. Le paramètre des machines à vecteurs de support (chapitre 9) est l'inverse d'un , et la régression ridge à noyau du même chapitre est la ridge sans biais, sur étiquettes centrées et avec la matrice au lieu de , écrite dans un espace de caractéristiques implicite. Partout, la même question se pose: combien de liberté laisser au modèle, et comment le décider sans regarder le test.
Synthèse
- Quand la capacité d'un modèle augmente, son erreur d'entraînement ne remonte jamais (familles emboîtées) et finit par s'annuler; son erreur de test passe par un minimum. Sur nos données fictives (, , graine 351), le polynôme de degré 3 a une erreur de test de , celui de degré 11 interpole les douze points et a une erreur de test de .
- L'erreur quadratique attendue en un point se décompose en bruit + biais² + variance (théorème 6.2). Les modèles rigides souffrent de leur biais, les modèles flexibles de leur variance; sur nos données, la variance représente % de l'erreur attendue au degré 9.
Sur le jeu A en surface standardisée , où et , quelle est la pente de la régression ridge pour , en CHF par écart type?
Exercices
Vous pouvez afficher le corrigé directement sous chaque énoncé après avoir cherché la solution.
Sur le jeu A, on donne m², CHF, et .
On veut estimer l'espérance d'une loi de variance à partir de observations indépendantes , de moyenne . On considère l'estimateur rétréci , avec .
On reprend la loi des données du chapitre: uniforme sur , , . On cherche la meilleure droite au sens de l'erreur quadratique , celle vers laquelle tendent les moindres carrés quand .
On minimise par descente de gradient, à partir de , une erreur quadratique moyenne de hessienne , dont est l'unique minimiseur.
- On note et les composantes de et sur un vecteur propre unitaire de , de valeur propre . Sachant que le gradient vaut , démontrez la formule (6.7) par récurrence sur .
On se place dans le cadre du plan fixe: est fixée et de rang , et , où les sont indépendants, d'espérance nulle et de variance — le modèle est donc , sans biais. On note , de sorte que les prédictions des moindres carrés sont .
Références
- Hastie, T., Tibshirani, R. et Friedman, J., The Elements of Statistical Learning, Springer, 2ᵉ éd., 2009, chap. 3 (ridge, lasso, chemin de régularisation) et chap. 7 (biais, variance, validation croisée, optimisme de l'erreur d'entraînement).
- James, G., Witten, D., Hastie, T. et Tibshirani, R., An Introduction to Statistical Learning, Springer, 2ᵉ éd., 2021, chap. 5 (rééchantillonnage et validation croisée) et chap. 6 (sélection de modèles et régularisation).
- Bishop, C. M., Pattern Recognition and Machine Learning, Springer, 2006, chap. 1 (ajustement polynomial d'une sinusoïde bruitée) et chap. 3 (décomposition biais–variance).
- Goodfellow, I., Bengio, Y. et Courville, A., Deep Learning, MIT Press, 2016, chap. 7 (régularisation, pénalités sur les poids, arrêt précoce).
- Azencott, C.-A., Introduction au Machine Learning, Dunod, 2ᵉ éd., 2022 (régularisation et sélection de modèles, en français).