Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Comment une machine apprend par l’exemple

Après cette leçon: Je peux expliquer comment un modèle apprend à partir d’exemples.

Leçon de 40 minAucune commande

Quels colis arriveront en retard ?

Un transporteur livre 4 000 colis par jour en Île-de-France. Chaque soir, le service client veut prévenir les clients dont le colis risque d’arriver en retard.

Personne n’a écrit de règle pour cela. L’équipe a seulement l’historique : des milliers de livraisons passées, avec leur distance et leur résultat.

À partir de ces cas passés, un programme peut trouver la règle lui-même.

À la fin de cette leçon

Remarque

Je peux expliquer comment un modèle apprend à partir d’exemples.

Mots-clés

MotCe que ça veut direExemple
Apprentissage automatiqueun programme qui trouve une règle à partir d’exemples
Exempleun cas passé dont on connaît la réponse
Caractéristiqueune information qui décrit un exempledistance : 18 km
Étiquettela bonne réponse d’un exempleen retard
Modèlela règle trouvée par l’apprentissage
Prédictionla réponse du modèle pour un cas nouveau

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Deux façons d’obtenir une règle

En programmation classique, un développeur écrit la règle. Par exemple : « si la distance dépasse 30 km, prévenir le client ».

En apprentissage automatique, on ne donne pas la règle. On donne des exemples avec leur bonne réponse. Le programme cherche la règle qui colle le mieux à ces exemples.

Le résultat s’appelle un modèle.

Programmer une règle ou l’apprendre

QuestionProgrammation classiqueApprentissage automatique
Qui fixe la règle ?Un développeurLe programme, à partir des exemples
Que faut-il fournir ?La règleBeaucoup d’exemples avec leur réponse
Si la situation change ?On réécrit le codeOn réentraîne avec de nouveaux exemples

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un exemple a des caractéristiques et une étiquette

Chaque livraison passée est un exemple. Ses informations, comme la distance, sont ses caractéristiques. Sa bonne réponse, « en retard » ou « à l’heure », est son étiquette.

Le modèle lit les caractéristiques et doit retrouver l’étiquette. Pour un colis de demain, l’étiquette n’existe pas encore. La réponse du modèle est alors une prédiction.

Huit livraisons passées

LivraisonDistance (caractéristique)En retard ? (étiquette)
18 kmNon
214 kmNon
319 kmNon
421 kmNon
523 kmOui
626 kmNon
730 kmOui
835 kmOui

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Apprendre, c’est chercher la règle la plus juste

Comment le programme trouve-t-il la règle ? Il en essaie beaucoup.

Prenons la règle « en retard si la distance dépasse un seuil ». Pour chaque seuil possible, le programme compte ses erreurs sur les exemples. Il garde le seuil qui fait le moins d’erreurs.

Cette recherche s’appelle l’entraînement. Les vrais modèles essaient des millions de réglages, mais l’idée reste la même.

Les erreurs de chaque seuil

SeuilPrévus en retardErreursLesquelles
10 kmLivraisons 2 à 842, 3, 4 et 6 annoncées en retard à tort
20 kmLivraisons 4 à 824 et 6 annoncées en retard à tort
28 kmLivraisons 7 et 81Le retard de la livraison 5 n’est pas vu
32 kmLivraison 82Les retards 5 et 7 ne sont pas vus

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Essayez plusieurs seuils en Python

Code: python
# Livraisons passées : distance en km, et retard (True) ou non (False)
exemples = [
    {"km": 8, "en_retard": False},
    {"km": 14, "en_retard": False},
    {"km": 19, "en_retard": False},
    {"km": 21, "en_retard": False},
    {"km": 23, "en_retard": True},
    {"km": 26, "en_retard": False},
    {"km": 30, "en_retard": True},
    {"km": 35, "en_retard": True},
]

# Chaque seuil est une règle possible : en retard si la distance le dépasse
seuils = [10, 20, 28, 32]

for seuil in seuils:
    erreurs = 0
    for exemple in exemples:
        prediction = exemple["km"] > seuil
        if prediction != exemple["en_retard"]:
            erreurs = erreurs + 1
    print("Seuil", seuil, "km :", erreurs, "erreur(s)")

# Ajoutez 25 à la liste des seuils, puis relancez le programme.

Une erreur fréquente

Attention

Beaucoup pensent que le modèle comprend les livraisons. Il ne comprend rien. Il a seulement gardé la règle qui collait le mieux aux exemples. Si les exemples sont faux ou trop peu nombreux, la règle le sera aussi. Un modèle vaut ce que valent ses exemples.

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.