Objectifs du chapitre
À la fin de ce chapitre, vous serez capable de:
- dire ce qui distingue un programme appris d'un programme écrit règle par règle, et reconnaître dans un problème concret la tâche, les données et la mesure de performance;
- décrire un jeu de données comme un tableau d'exemples, de caractéristiques et d'étiquettes, et classer un problème en régression, classification ou apprentissage non supervisé;
- choisir une fonction de perte — carrée, absolue ou 0–1 — et calculer le risque empirique d'un modèle sur un jeu de données;
- énoncer l'hypothèse i.i.d., expliquer pourquoi le risque empirique d'un modèle fixé estime son risque réel, et pourquoi cette garantie s'effondre pour le modèle qu'on vient d'entraîner;
- démontrer que la constante qui minimise la perte carrée est la moyenne, et que celle qui minimise la perte absolue est une médiane; programmer ces deux prédicteurs et la règle du plus proche voisin;
- organiser un projet d'apprentissage autour d'un ensemble de test mis de côté, et repérer les biais que les données font entrer dans un modèle.
Apprendre au lieu de programmer
Supposons que vous deviez écrire le filtre qui trie le courrier électronique de votre université en courriels légitimes et en pourriels (spam). La première idée est d'écrire des règles: un message qui contient «gagnant», «virement urgent» ou «cliquez ici» est suspect; un message écrit entièrement en majuscules l'est aussi; un message envoyé par un collègue ne l'est pas. Vous écrivez vingt règles, puis cinquante, puis vous découvrez que les expéditeurs de pourriels ont lu les mêmes règles que vous et écrivent désormais «g-a-g-n-a-n-t». Chaque règle ajoutée en appelle une autre, les règles se contredisent, et personne ne sait plus pourquoi la quarante-troisième existe.
L'apprentissage automatique (machine learning) renverse la démarche. Au lieu d'écrire les règles, on rassemble des exemples — des courriels déjà triés à la main — et l'on écrit un programme qui produit la règle de tri à partir de ces exemples. Le programmeur ne décrit plus la solution, il décrit la forme que la solution peut prendre et la façon de juger si elle est bonne; c'est le calcul, sur les données, qui choisit la solution particulière. Quand les pourriels changent, on ne réécrit rien: on ajoute des exemples récents et l'on recommence le calcul.
Cette définition est due, sous une forme très proche, à Tom Mitchell, dans son manuel Machine Learning de 1997. Son intérêt est de vous obliger à nommer trois choses avant d'écrire la moindre ligne de code. Pour le filtre: la tâche est de classer un courriel entrant, l'expérience est l'ensemble des courriels déjà triés, et la performance est, par exemple, la proportion de courriels mal classés. Une grande partie des échecs de projets d'apprentissage vient d'un mal choisi — un filtre qui ne se trompe que sur 2 % des messages est inutilisable s'il jette précisément les convocations d'examen — et le chapitre 5 y est consacré.
Vous utilisez des programmes appris tous les jours, souvent sans le savoir:
- le clavier de votre téléphone propose le mot suivant à partir de ce que vous et des millions d'autres personnes avez déjà tapé;
- votre application de photos regroupe les visages d'une même personne sans qu'on lui ait jamais dit qui est qui;
- un service de traduction produit une phrase allemande à partir d'une phrase française, après avoir vu un très grand nombre de paires de phrases traduites;
- un site d'annonces immobilières estime le loyer «correct» d'un appartement à partir de sa surface, de son quartier et de son étage;
- une plateforme de musique vous propose un morceau parce que des personnes aux écoutes semblables aux vôtres l'ont aimé.
Dans aucun de ces cas on ne saurait écrire les règles à la main: personne ne sait énoncer ce qui fait qu'un visage est celui de votre sœur, ni pourquoi une traduction «sonne juste». Mais on sait donner des exemples, et c'est tout ce dont l'apprentissage a besoin. C'est aussi sa limite: un programme appris ne sait que ce que ses exemples contenaient, et il en reproduit les lacunes et les travers. La dernière section de ce chapitre y revient.
Les données: un tableau
Tout ce cours repose sur une seule structure de données, que l'on peut se représenter comme un tableau. Chaque ligne décrit un objet — un appartement, un courriel, un patient, une transaction — et chaque colonne une mesure faite sur cet objet. Une colonne particulière contient ce que l'on voudrait savoir prédire.
Le mot «suite» plutôt qu'«ensemble» n'est pas une coquetterie: deux exemples peuvent être identiques, et l'ordre sert à les nommer. Le cours utilise deux jeux de données qui reviendront de chapitre en chapitre; ce sont des données fictives, construites pour le cours, assez petites pour que chaque calcul se vérifie à la main, et choisies pour que les phénomènes importants s'y voient.
Jeu de données A — «Loyers à Lausanne». Huit appartements, une seule caractéristique, la surface en m², et une étiquette, le loyer mensuel en CHF, charges comprises. Ici et .
| Logement | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Surface (m²) | 30 | 45 | 50 | 62 | 70 | 85 | 95 | 110 |
| Loyer (CHF) | 1 200 | 1 550 | 1 380 | 1 840 | 1 750 | 2 350 | 2 250 | 2 900 |
La surface moyenne vaut m² et le loyer moyen CHF. Le loyer croît avec la surface, mais pas parfaitement: le logement 3 est plus grand que le logement 2 et pourtant moins cher, comme le logement 7 par rapport au logement 6. Ces irrégularités sont normales — l'étage, le quartier, l'état de la cuisine comptent aussi, et ils ne figurent pas dans le tableau. Une caractéristique absente du tableau n'est pas absente du monde: elle devient du bruit pour le modèle.
Jeu de données B — «Courriels indésirables». Seize courriels E1 à E16, deux caractéristiques continues: , le taux de mots suspects (pour mille mots), et , la part de majuscules (en pour cent). L'étiquette vaut pour un pourriel et pour un courriel légitime. Ici et .
| E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | |
|---|---|---|---|---|---|---|---|---|
| (‰) | 1 | 2 | 0 | 3 | 1 | 4 | 2 | 6 |
| (%) | 0 | 1 | 2 | 0 | 3 | 2 | 5 | 3 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16 | |
|---|---|---|---|---|---|---|---|---|
| (‰) | 7 | 5 | 8 | 4 | 9 | 6 | 3 | 7 |
| (%) | 5 | 6 | 4 | 5 | 7 | 7 | 2 | 3 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Le tableau est coupé en deux pour tenir dans la page; c'est un seul jeu de seize exemples, huit de chaque classe. La matrice de données de B a donc 16 lignes et 2 colonnes, et sa troisième ligne est .
La figure 1.1 montre ce que le tableau cache: avec deux caractéristiques, chaque courriel est un point du plan, et la classification devient une question de géométrie — quelle région du plan attribuer aux pourriels? Les deux points E8 et E15 sont là exprès. Dans un vrai jeu de données, il y a toujours des exemples «du mauvais côté»: une newsletter légitime truffée de majuscules, un pourriel sobre et bien écrit, ou simplement une erreur d'étiquetage. Un modèle qui les classerait tous correctement aurait de bonnes chances d'avoir appris les accidents du jeu de données plutôt que la tendance; nous le verrons dès ce chapitre.
Pour les programmes du cours, les deux jeux s'écrivent ainsi; recopiez-les tels quels quand un exercice en a besoin.
# Jeu de données A: (surface en m², loyer en CHF). Données fictives.
loyers = [(30, 1200), (45, 1550), (50, 1380), (62, 1840),
(70, 1750), (85, 2350), (95, 2250), (110, 2900)]
# Jeu de données B: ((x1, x2), y), de E1 à E16 dans l'ordre. Données fictives.
courriels = [
((1
D'où viennent les caractéristiques
Les caractéristiques ne tombent pas du ciel: quelqu'un les a choisies, et ce choix pèse souvent plus lourd que celui de la méthode. Un courriel n'est pas un point du plan; c'est un texte, avec un expéditeur, une heure d'envoi et des pièces jointes. Le «taux de mots suspects» suppose une liste de mots suspects, que quelqu'un a dressée; la «part de majuscules» suppose qu'on a décidé que les majuscules comptaient. Ce travail de conception des caractéristiques (feature engineering) transforme un objet brut en un vecteur de nombres, et c'est à ce vecteur seul que le modèle a accès.
Trois cas reviennent constamment:
- une caractéristique numérique (surface, taux, température) s'utilise telle quelle, mais son unité compte: une surface en m² ou en cm² ne change rien au monde et peut tout changer à un algorithme qui mesure des distances (chapitres 3 et 7);
- une caractéristique catégorielle sans ordre (le quartier: Ouchy, Flon, Sallaz) ne se code pas par 1, 2, 3, ce qui inventerait un ordre et des écarts; on la code par un vecteur d'indicateurs, un par modalité, dont un seul vaut 1 (one-hot encoding);
- une caractéristique dérivée combine les autres: le prix au m², le carré de la surface, le nombre de liens dans un courriel. Le chapitre 2 montre qu'ajouter comme caractéristique permet à un modèle linéaire de suivre une courbe.
Trois façons d'apprendre
Les problèmes d'apprentissage se distinguent d'abord par ce que contiennent les données, et en particulier par la présence ou l'absence d'étiquettes.
Le jeu A pose un problème de régression: le loyer est un montant, et une prédiction de CHF 2 000 pour un loyer réel de CHF 2 050 est «presque juste». Le jeu B pose un problème de classification binaire: un courriel est un pourriel ou ne l'est pas, et il n'y a pas de «presque». La distinction ne porte pas sur les caractéristiques, qui sont numériques dans les deux cas, mais sur la nature de l'étiquette — et elle va déterminer la manière de mesurer l'erreur. Une même question peut d'ailleurs se poser des deux façons: prédire le loyer est une régression, prédire si le loyer dépasse CHF 2 000 est une classification. On perd de l'information en passant de la première à la seconde, mais on gagne parfois une question mieux posée.
Si l'on effaçait la ligne du jeu B, il ne resterait que seize points du plan. On pourrait encore remarquer qu'ils forment grossièrement deux nuages, en bas à gauche et en haut à droite — c'est ce que ferait un algorithme de partitionnement — mais rien ne dirait lequel des deux nuages contient les pourriels, ni même qu'il s'agit de pourriels. L'apprentissage non supervisé trouve des structures; c'est à l'humain de leur donner un sens. Il est précieux précisément quand les étiquettes coûtent cher: trier seize courriels à la main est facile, en trier seize millions ne l'est pas.
Un troisième cadre mérite d'être nommé, même s'il sort du programme de ce cours. En apprentissage par renforcement (reinforcement learning), un agent agit dans un environnement, observe l'état qui en résulte et reçoit une récompense numérique; il apprend une stratégie — une règle qui associe une action à chaque état — qui maximise la récompense cumulée. Il n'y a pas de tableau d'exemples étiquetés: personne ne dit à l'agent quelle était la bonne action, il ne reçoit qu'un signal, souvent tardif, sur la qualité d'une suite d'actions. C'est le cadre des programmes qui apprennent à jouer à des jeux de plateau en jouant contre eux-mêmes, ou d'un robot qui apprend à marcher. Ses outils mathématiques (processus de décision markoviens, programmation dynamique) sont assez différents de ceux de ce cours pour mériter un cours à part.
Lesquelles de ces tâches sont des problèmes d'apprentissage supervisé? (Plusieurs réponses possibles.)
Plusieurs réponses possibles
Le modèle: une famille de fonctions
Apprendre, dans le cadre supervisé, c'est choisir une fonction qui associe une prédiction à tout point . Mais «choisir une fonction» parmi toutes les fonctions de dans n'a pas de sens: il y en a trop, et une infinité d'entre elles passent exactement par les exemples tout en prédisant n'importe quoi ailleurs. Il faut d'abord restreindre le choix.
Trois modèles suffiront à fixer les idées, du plus rigide au plus souple.
- Le modèle constant a un seul paramètre, . Il ignore complètement les caractéristiques et prédit la même valeur pour tout le monde. C'est le modèle le plus bête qui soit, et c'est pour cela qu'il est indispensable: tout modèle sérieux doit faire mieux que lui, sans quoi ses caractéristiques ne servent à rien.
- Le modèle affine a deux paramètres. Sur le jeu A, est un prix au m² et un loyer de base. Le chapitre 2 le généralise à caractéristiques, .
Choisir le modèle est une décision humaine qui précède le calcul, et elle encode une hypothèse sur le monde. Choisir le modèle affine pour les loyers, c'est parier que chaque m² supplémentaire coûte à peu près la même somme, quelle que soit la taille de l'appartement. Ce pari peut être faux; il ne sera jamais vérifié par l'entraînement, qui ne fait que choisir la meilleure droite parmi les droites. Il le sera par l'évaluation, sur des données que le modèle n'a pas vues.
Certains réglages d'un modèle ne sont pas appris par l'entraînement mais fixés avant lui: le nombre de voisins consultés (un seul, trois, cinq), le degré d'un polynôme, la profondeur d'un arbre. On les appelle hyperparamètres (hyperparameters), et leur choix est l'objet des chapitres 5 et 6. Pour le moment, retenez la distinction: les paramètres sont calculés à partir des données, les hyperparamètres sont choisis par vous — et la tentation de les choisir en regardant le résultat sur les données de test est la source d'erreur la plus répandue du domaine.
Mesurer l'erreur: la fonction de perte
Pour choisir entre deux prédicteurs, il faut savoir dire lequel se trompe le moins. On commence par mesurer l'erreur sur un exemple.
Ces trois pertes ne disent pas la même chose, et le choix entre elles n'est pas technique: il exprime ce que coûte une erreur dans le problème réel.
La perte carrée (squared loss) pénalise les grandes erreurs de façon disproportionnée: se tromper de CHF 200 coûte quatre fois plus que se tromper de CHF 100. Elle s'exprime dans le carré de l'unité de l'étiquette — des CHF² pour les loyers —, ce qui la rend peu parlante; on en reprend souvent la racine. Elle est dérivable partout, ce qui fera d'elle la perte préférée des chapitres 2 et 3.
La perte absolue (absolute loss) pénalise les erreurs proportionnellement à leur taille, dans l'unité de l'étiquette: une erreur de CHF 200 coûte deux fois une erreur de CHF 100. Elle est moins sensible aux exemples aberrants, comme nous allons le démontrer, mais elle n'est pas dérivable là où l'erreur s'annule.
La perte 0–1 (zero-one loss) compte les erreurs de classification sans les nuancer: classer un pourriel comme légitime ou un courriel légitime comme pourriel coûte 1 dans les deux cas, et une bonne réponse coûte 0. Sa moyenne est le taux d'erreur. Elle est naturelle mais mathématiquement ingrate — elle est constante par morceaux, donc sa dérivée est nulle presque partout et ne guide aucune optimisation —, et le chapitre 4 la remplacera, pour l'entraînement, par une perte lisse.
Une perte mesure l'erreur sur un exemple. Pour juger un prédicteur sur tout un jeu de données, on en prend la moyenne.
En Python, le risque empirique tient en quatre lignes, et il vaut la peine de l'écrire une fois pour toutes en laissant la perte en argument:
def perte_carree(y_chapeau, y):
return (y_chapeau - y) ** 2
def perte_absolue(y_chapeau, y):
return abs(y_chapeau - y)
def perte_01(y_chapeau, y):
return 0 if y_chapeau == y else 1
def risque_empirique(f, donnees, perte):
"""Perte moyenne du prédicteur f sur une liste de couples (x, y)."""
total = 0.0
for x, y in donnees:
Le test y_chapeau == y de la perte 0–1 compare deux étiquettes de classe, des entiers: c'est l'un des rares endroits du cours où une égalité est légitime. Comparer deux réels calculés avec == serait une erreur.
Une agence concurrente applique la règle (CHF 25 par m², sans loyer de base). Calculez son erreur absolue moyenne sur le jeu A, en CHF.
Risque empirique et risque réel
Le risque empirique mesure la performance sur les données dont on dispose. Ce n'est pas ce qui nous intéresse. L'agence ne cherche pas à estimer le loyer de huit appartements dont elle connaît déjà le loyer; elle cherche à estimer celui du prochain appartement qu'on lui proposera. Le filtre ne sert à rien sur les seize courriels déjà triés; il sert sur ceux qui arriveront demain. Pour parler de «données à venir», il faut un modèle probabiliste de la façon dont les données sont produites.
Le risque réel est la vraie mesure de la qualité d'un prédicteur, et on ne peut jamais le calculer: il faudrait connaître . Tout l'enjeu est de l'estimer, et l'outil naturel est le risque empirique. Le résultat suivant dit à quelle condition cette estimation est honnête.
Démonstration. Posons . Comme ne dépend pas des exemples, chaque est une fonction du seul couple ; les sont donc indépendantes, et de même loi que , d'espérance et de variance . Par linéarité de l'espérance,
Par indépendance, la variance d'une somme est la somme des variances (Probabilités et statistique, chapitre 7), d'où
La dernière affirmation est l'inégalité de Bienaymé–Tchebychev (Probabilités et statistique, chapitre 8) appliquée à la variable , d'espérance et de variance .
Lisez attentivement l'hypothèse soulignée: est choisi indépendamment des exemples. Elle est satisfaite par la règle de l'agence, fixée avant de voir les huit appartements; son erreur de 140 CHF est donc une estimation sans biais de son erreur sur les appartements à venir — une estimation bruitée, avec huit exemples seulement, mais honnête. Elle n'est pas satisfaite par un prédicteur entraîné sur ces mêmes exemples: dans ce cas dépend des , les ne sont plus des tirages indépendants de la loi de , et rien ne garantit plus que soit proche de . Nous verrons dans deux sections un prédicteur dont le risque empirique est nul et le risque réel catastrophique. Toute la méthodologie de l'évaluation découle de cette seule remarque.
L'hypothèse i.i.d. elle-même est une idéalisation, et il faut savoir où elle casse. Elle suppose que le monde de demain ressemble à celui d'hier, et que chaque exemple est tiré sans lien avec les autres.
Un hôpital entraîne un modèle sur 5 000 radiographies prises sur 1 000 patients (cinq par patient), puis tire au hasard 1 000 radiographies parmi les 5 000 pour former le test. Que penser de l'erreur de test obtenue?
Un premier modèle: le prédicteur constant
Nous avons maintenant tout ce qu'il faut pour entraîner un modèle: une famille de fonctions et une perte. L'entraînement le plus naturel consiste à choisir, dans la famille, la fonction dont le risque empirique est le plus petit. C'est le principe de minimisation du risque empirique (empirical risk minimization, ERM), et il guidera presque tous les chapitres de ce cours.
Appliquons-le au modèle le plus simple, . Sur le jeu A, le risque empirique ne dépend que de et des loyers:
Quelle constante faut-il choisir? La réponse dépend de la perte, et c'est le premier résultat du cours.
Démonstration. Écrivons et développons le carré:
Faisons la moyenne sur . Le terme du milieu donne , et cette dernière somme est nulle par définition de la moyenne: . Il reste exactement (1.5). Dans le membre de droite, le premier terme ne dépend pas de et le second est un carré, positif, nul si et seulement si . Le minimum est donc atteint en et seulement là, et il vaut .
On peut aussi le voir par le calcul différentiel (Analyse I, chapitre 8): est un polynôme du second degré en , de coefficient dominant , donc strictement convexe, et sa dérivée s'annule en . Mais l'identité (1.5) dit davantage que «le minimum est en »: elle dit on s'en écarte. Choisir à 100 CHF de la moyenne augmente le risque d'exactement CHF², quels que soient les loyers. L'explorateur 1.1 rend cette identité visible.
Démonstration. La somme ne dépend pas de l'ordre des termes; écrivons-la avec les valeurs rangées et regroupons-les par paires symétriques: la plus petite avec la plus grande, la deuxième avec l'avant-dernière, et ainsi de suite. Pour une paire , l'inégalité triangulaire donne
avec égalité si et seulement si et sont de signes opposés (ou l'un nul), c'est-à-dire si et seulement si .
Cas pair. Les paires sont pour . En sommant les inégalités,
et le membre de droite ne dépend pas de : c'est un minorant. Il y a égalité si et seulement si appartient à chacun des intervalles . Ces intervalles sont emboîtés — chacun contient le suivant, puisque et —, donc leur intersection est le plus petit d'entre eux, . Le minorant est atteint exactement sur cet intervalle, qui est donc l'ensemble des minimiseurs.
Cas impair. On forme les paires , , et il reste la valeur centrale , seule. Pour elle, avec égalité si et seulement si . En sommant, la somme totale est minorée par une constante, avec égalité si et seulement si appartient à tous les intervalles des paires . Or appartient à chacun de ces intervalles emboîtés, puisque pour . Le minimum est donc atteint en et seulement là.
Déplacez la constante et regardez les deux risques empiriques: la parabole du risque quadratique a son sommet sous la moyenne (trait tireté), la ligne brisée du risque absolu est plate sur toute la bande des médianes. Les deux dernières valeurs affichées restent égales quoi que vous fassiez: c'est l'identité (1.5). Éloignez ensuite le loyer du logement 8, comme une erreur de saisie: la moyenne et la parabole le suivent, la bande des médianes ne bouge pas.
L'explorateur rend tangible ce que la démonstration établit. La courbe du risque quadratique est une parabole dont le sommet est sous la moyenne; celle du risque absolu est une ligne brisée, dont les points anguleux sont les loyers eux-mêmes et dont le fond est plat entre le quatrième et le cinquième loyer. En éloignant le loyer du logement 8, vous verrez la parabole glisser vers la droite et son fond remonter, tandis que le plateau de la ligne brisée reste où il est.
Le prédicteur constant existe aussi en classification, avec la perte 0–1. Prédire la classe pour tous les exemples donne un taux d'erreur égal à la proportion d'exemples dont l'étiquette n'est pas ; le meilleur choix est donc la classe majoritaire (exercice 1.4). Sur le jeu B, avec huit exemples de chaque classe, les deux constantes se valent: chacune se trompe sur la moitié des courriels, et le taux d'erreur de référence est . Un filtre qui ne fait pas mieux que 50 % d'erreur sur ces données n'a rien appris.
Complétez mediane(valeurs), qui renvoie la médiane d'une liste de nombres (la moyenne des deux valeurs centrales si la longueur est paire), et risque_constant(c, ys, perte), qui renvoie le risque empirique du prédicteur constant pour la perte donnée. Le squelette renvoie la première valeur de la liste et un risque nul. Le programme compare ensuite la moyenne et la médiane du jeu A sous les deux pertes.
Un deuxième modèle: le plus proche voisin
Le prédicteur constant ignore les caractéristiques. À l'autre extrême, on peut s'en servir de la façon la plus directe possible: pour prédire l'étiquette d'un nouveau point, chercher l'exemple du jeu de données qui lui ressemble le plus, et recopier son étiquette.
Cette règle n'a rien à «entraîner»: tout le travail se fait au moment de la prédiction, qui parcourt les exemples. Elle est la forme la plus pure de l'idée «des exemples semblables ont des étiquettes semblables», et elle fonctionne aussi bien en régression (recopier un loyer) qu'en classification (recopier une classe). Le chapitre 7 la généralise à voisins qui votent.
Il y a une propriété de la règle 1-PPV qu'il faut regarder en face. Appliquons-la aux exemples d'entraînement eux-mêmes. Pour prédire l'étiquette de , la règle cherche l'exemple le plus proche de dans — et elle trouve lui-même, à distance nulle. Si les points du jeu de données sont distincts, aucun autre n'est à distance nulle, et la prédiction est , l'étiquette exacte. Les seize points du jeu B sont distincts. , quelle que soit la perte: elle classe correctement E8 et E15, les deux exceptions, et tous les autres.
Est-ce un modèle parfait? Évidemment non: nous venons de voir qu'il classe le courriel selon une exception. Un risque empirique nul ne dit rien de la qualité des prédictions à venir — et le théorème 1.1 ne promettait rien d'autre, puisque ce prédicteur a été construit à partir des exemples mêmes qui servent à le juger. Il faut une autre façon de mesurer.
Complétez distance(p, q), la distance euclidienne entre deux points de même dimension quelconque, et plus_proche_voisin(x, donnees), qui renvoie l'étiquette de l'exemple le plus proche de x dans une liste de couples (point, etiquette) — en cas d'égalité, le premier exemple de la liste l'emporte. Le programme classe le courriel puis compte les erreurs de la règle sur son propre jeu de données.
Erreur d'entraînement et erreur de test
Le théorème 1.1 a donné la clé: le risque empirique d'un prédicteur est une estimation honnête de son risque réel à condition que le prédicteur ne dépende pas des exemples sur lesquels on le mesure. On ne peut pas satisfaire cette condition avec les exemples qui ont servi à entraîner. Alors on n'utilise pas tous les exemples pour entraîner.
Comme a été choisi sans regarder , il est, vu depuis l'ensemble de test, un prédicteur fixé: le théorème 1.1 s'applique, et l'erreur de test est une estimation sans biais du risque réel de . L'erreur d'entraînement, elle, est en général optimiste: le prédicteur a été choisi précisément pour la rendre petite. C'est l'écart entre les deux qui révèle qu'un modèle a appris les particularités de ses exemples plutôt que la tendance — ce qu'on appelle le surapprentissage (overfitting), objet du chapitre 6. La séparation est le plus souvent faite au hasard, avec une proportion de l'ordre de 70 à 80 % pour l'entraînement; la proportion exacte est un compromis entre un modèle bien entraîné et une estimation précise, et la variance du théorème 1.1 dit ce que coûte un petit ensemble de test.
La figure 1.2 résume la situation, de façon schématique. À gauche, un modèle trop rigide ne peut pas suivre la tendance: il se trompe autant sur les exemples qu'il a vus que sur les autres, c'est le sous-apprentissage (underfitting). À droite, un modèle si flexible qu'il passe par tous les exemples a une erreur d'entraînement nulle, mais il a appris le bruit avec le signal, et son erreur de test remonte. Entre les deux, il y a un réglage qui minimise l'erreur de test — et c'est l'erreur de test, jamais l'erreur d'entraînement, qui permet de le trouver. Le chapitre 6 calcule cette courbe pour des polynômes de degré croissant.
Complétez separer(donnees, indices_test), qui renvoie le couple (entrainement, test) en gardant l'ordre d'origine, et taux_erreur(predire, exemples), la proportion d'exemples (x, y) pour lesquels predire(x) diffère de y. La règle du plus proche voisin est fournie. Le programme reproduit le tableau de l'exemple 1.4.
Le déroulement d'un projet
Un modèle d'apprentissage n'est pas une fin en soi: c'est une pièce d'un système qui doit résoudre un problème réel. Les projets qui réussissent suivent, avec des allers-retours, à peu près les mêmes étapes, et la figure 1.3 les ordonne.
1. Le problème. Que veut-on décider, et que coûte une erreur? «Prédire les loyers» n'est pas un problème; «signaler aux locataires les annonces dont le loyer dépasse de plus de 15 % le loyer usuel pour la surface» en est un. Cette étape fixe la tâche et la mesure de la définition 1.1 — et donc la perte. C'est aussi le moment de se demander si l'apprentissage est la bonne réponse: une règle de trois lignes, si elle suffit, est plus facile à comprendre, à vérifier et à maintenir qu'un modèle.
2. Les données. D'où viennent les exemples, qui les a étiquetés, et représentent-ils les cas sur lesquels le modèle sera utilisé? C'est ici que l'on sépare l'ensemble de test, avant même de regarder les données en détail, et que l'on décide de l'unité de séparation (le patient, l'immeuble, l'expéditeur) pour respecter l'indépendance.
3. Les caractéristiques. Choisir, nettoyer et transformer ce que le modèle verra: traiter les valeurs manquantes, coder les catégories, mettre les échelles en accord. Chaque transformation qui s'appuie sur les données — une moyenne pour centrer, un écart type pour réduire — se calcule sur l'ensemble d'entraînement seulement, puis s'applique telle quelle au test; le chapitre 5 montre ce qu'il en coûte de l'oublier.
4. Le modèle et l'entraînement. Choisir une famille de fonctions et la minimiser, en commençant par le prédicteur constant, puis par un modèle simple, avant de monter en complexité.
5. L'évaluation. Pendant la mise au point, on compare les modèles sur un ensemble de validation ou par validation croisée; on revient aux étapes 3 et 4 autant que nécessaire. Puis, une fois tout figé, on mesure une fois l'erreur sur l'ensemble de test, et c'est ce chiffre, et lui seul, que l'on annonce.
6. Le déploiement et la surveillance. Le modèle est mis en service. Il faut alors surveiller ses performances, parce que la loi des données dérive; quand elles se dégradent, on collecte de nouveaux exemples et l'on recommence à l'étape 2.
Une équipe construit un filtre à pourriels pour la messagerie d'une université. Remettez ses actions dans l'ordre qui protège l'évaluation.
Glissez les éléments pour les mettre dans le bon ordre
- Comparer plusieurs modèles par validation croisée sur l'ensemble d'entraînement
- Calculer les statistiques de mise à l'échelle des caractéristiques sur l'ensemble d'entraînement seulement
- Déployer le filtre et surveiller son taux d'erreur au fil des semaines
- Rassembler des courriels étiquetés et mettre de côté un ensemble de test, par expéditeur
- Mesurer une seule fois l'erreur du modèle retenu sur l'ensemble de test
- Fixer ce que coûte un pourriel non détecté et ce que coûte un courriel légitime écarté
Les biais dans les données
Un modèle appris ne connaît le monde qu'à travers ses exemples. Tout ce que ces exemples ont de partiel, de déformé ou d'injuste passe dans le modèle, et le minimum de risque empirique le reproduit fidèlement: c'est précisément ce qu'on lui demande. Le mot biais recouvre ici plusieurs mécanismes, qu'il faut savoir distinguer parce que leurs remèdes diffèrent.
Le biais d'échantillonnage. Les exemples ne sont pas tirés de la population sur laquelle le modèle sera utilisé. Notre jeu A ne contient que des appartements de 30 à 110 m² à Lausanne; un modèle qui en est tiré ne dit rien d'un studio de 18 m², d'une villa de 250 m² ou d'un appartement à Sion. Si les annonces viennent toutes d'un même site, elles ne représentent que les logements qu'on y publie. Le modèle ne le signalera pas: il produira un chiffre pour la villa comme pour les autres, avec la même assurance. Une prédiction hors du domaine couvert par les données est une extrapolation, et rien dans le risque empirique ne la contrôle.
Le biais des étiquettes. Les étiquettes sont souvent des décisions humaines passées, pas des faits. Les «pourriels» du jeu B sont les courriels que quelqu'un a marqués comme tels; si les personnes qui étiquettent jettent volontiers les messages rédigés dans une langue qu'elles ne lisent pas, le filtre apprendra à les jeter aussi. Un modèle entraîné à prédire des décisions passées — d'octroi de crédit, d'embauche, de contrôle — apprend à reproduire ces décisions, avec leurs qualités et leurs préjugés. Il ne les corrige pas; il les automatise, et il leur donne l'apparence d'un calcul neutre.
Les variables de substitution. Retirer une caractéristique sensible des données ne suffit pas à empêcher un modèle d'en tenir compte. Si l'origine des personnes est absente du tableau mais que leur code postal y figure, et que les deux sont corrélés, le modèle peut retrouver la première à travers le second. L'absence d'une colonne ne garantit pas l'absence de l'information qu'elle portait.
Les boucles de rétroaction. Un modèle déployé modifie les données futures. Un filtre qui écarte un type de courriel empêche qu'on vérifie jamais s'il avait raison: les messages écartés ne sont plus lus, donc plus étiquetés, et l'erreur se perpétue sans être vue. Un modèle qui dirige des contrôles vers certains quartiers y trouvera davantage d'infractions, simplement parce qu'on y contrôle davantage, et ces infractions viendront confirmer le modèle au prochain entraînement.
Ces mécanismes ne sont pas des hypothèses d'école; ils ont été documentés à plusieurs reprises, dans des systèmes réels de recrutement, de crédit ou de reconnaissance faciale, par des audits indépendants et dans la littérature scientifique. Nous ne citerons pas de chiffres ici, faute de pouvoir les présenter avec leur contexte, mais les mesures d'erreur de ce chapitre et du chapitre 5 se calculent aussi bien sur un sous-groupe de la population que sur l'ensemble: comparer les taux d'erreur d'un modèle d'un sous-groupe à l'autre est un calcul aussi simple que ceux de ce chapitre, et c'est le premier réflexe à avoir. En Suisse, la loi fédérale sur la protection des données, révisée et en vigueur depuis le 1ᵉʳ septembre 2023, impose d'informer la personne concernée lorsqu'une décision qui la touche est prise exclusivement par un traitement automatisé; c'est une raison de plus de savoir expliquer ce que fait un modèle.
Synthèse
- Apprendre, c'est produire une règle de prédiction à partir d'exemples plutôt que l'écrire à la main. Un problème d'apprentissage se définit par sa tâche, ses données et sa mesure de performance; les données forment un tableau d'exemples et, en apprentissage supervisé, d'étiquettes — réelles en régression, discrètes en classification. Sans étiquettes, l'apprentissage est non supervisé.
- Un modèle est une famille de fonctions ; l'entraîner, c'est choisir , le plus souvent en minimisant le pour une perte choisie d'après le coût réel des erreurs: carrée, absolue ou 0–1.
Exercices
Vous pouvez afficher le corrigé directement sous chaque énoncé après avoir cherché la solution.
Pour chacune des situations suivantes, dites s'il s'agit de régression, de classification ou d'apprentissage non supervisé; nommez les exemples, les caractéristiques possibles et, le cas échéant, l'étiquette; proposez une perte et justifiez-la en une phrase.
- Une centrale de covoiturage veut estimer la durée d'un trajet à partir de l'heure de départ, de la distance et du jour de la semaine.
- Une bibliothèque veut organiser 40 000 notices de livres en thèmes, sans liste de thèmes prédéfinie.
- Un service de dermatologie veut signaler les photographies de grains de beauté qui doivent être examinées par un médecin.
- Un fabricant de montres veut prédire, à partir des mesures de fin de chaîne, si un mouvement sera retourné sous garantie dans l'année.
Solution
1. Régression: l'étiquette est une durée, un réel. Exemples: les trajets passés; caractéristiques: heure, distance, jour (catégoriel, à coder par indicateurs); étiquette: la durée observée. La perte absolue est un bon choix si quelques trajets anormalement longs (un accident sur l'autoroute) figurent dans les données et qu'on veut une estimation typique; la perte carrée si un retard important est particulièrement coûteux et doit peser davantage.
2. Apprentissage non supervisé (partitionnement): il n'y a pas d'étiquette, seulement des notices à regrouper. Caractéristiques: par exemple les mots du titre et du résumé, codés en vecteurs. Pas de perte au sens de ce chapitre; le chapitre 12 introduit l'inertie, qui mesure la compacité des groupes.
3. Classification binaire: «à examiner» () ou non (). Exemples: des photographies déjà diagnostiquées; caractéristiques: les pixels, ou des mesures de forme et de couleur; étiquette: le diagnostic posé. La perte 0–1 symétrique est : manquer une lésion à examiner est bien plus grave que demander un examen inutile. Il faut une perte qui pèse davantage les faux négatifs (chapitre 5).
Sur le jeu A, on compare la règle de l'agence de l'exemple 1.1 et une règle concurrente .
On reprend le jeu A, dans lequel le loyer du logement 8 a été saisi par erreur à CHF 4 900 au lieu de CHF 2 900.
- Calculez la nouvelle moyenne et la nouvelle médiane des loyers.
- Combien de loyers faut-il modifier, au minimum, pour pouvoir rendre la moyenne aussi grande que l'on veut? Et la médiane conventionnelle?
- Le risque quadratique minimal du prédicteur constant était de CHF²; il vaut maintenant CHF². Expliquez, à l'aide de l'identité (1.5) appliquée au seul logement 8, pourquoi une seule erreur de saisie peut ainsi multiplier le risque par plus de quatre.
Solution
1. La somme des loyers augmente de 2 000, donc la moyenne augmente de : elle vaut CHF. Rangés, les loyers deviennent : les deux valeurs centrales sont inchangées et la médiane vaut toujours CHF.
On considère une classification binaire et le prédicteur constant , avec .
- Montrez que, pour la perte 0–1, le risque empirique de est la proportion d'exemples dont l'étiquette diffère de , et que la classe majoritaire le minimise.
On évalue un classifieur , fixé, sur un ensemble de test de exemples i.i.d., avec la perte 0–1. On note son taux d'erreur réel et son taux d'erreur de test.
Références
- James, G., Witten, D., Hastie, T. et Tibshirani, R., An Introduction to Statistical Learning, Springer, 2ᵉ éd., 2021, chap. 2 (apprentissage supervisé et non supervisé, erreur d'entraînement et de test, plus proches voisins).
- Hastie, T., Tibshirani, R. et Friedman, J., The Elements of Statistical Learning, Springer, 2ᵉ éd., 2009, chap. 2 (cadre de la décision statistique, pertes carrée et absolue, moyenne et médiane conditionnelles).
- Shalev-Shwartz, S. et Ben-David, S., Understanding Machine Learning: From Theory to Algorithms, Cambridge University Press, 2014, chap. 2 (minimisation du risque empirique et ses pièges).
- Azencott, C.-A., Introduction au Machine Learning, Dunod, 2ᵉ éd., 2022, chap. 1 (le vocabulaire du domaine, en français).
- Murphy, K. P., Probabilistic Machine Learning: An Introduction, MIT Press, 2022, chap. 1 (panorama des problèmes supervisés et non supervisés).