Module 2 — Apprentissage automatique

Qu’est-ce que l’apprentissage automatique ?

L’apprentissage automatique (AA, ou machine learning) est un ensemble de techniques qui permettent à un ordinateur de résoudre des problèmes qu’il serait très difficile de programmer à la main : reconnaître un chat sur une photo, estimer le prix d’une maison, filtrer les pourriels, jouer aux échecs, converser, etc.

La différence avec la programmation classique est importante. Un programme traditionnel encode une série de règles écrites par un humain. Un modèle d’AA, au contraire, dérive son fonctionnement à partir d’exemples : on ne lui donne pas la règle, on la lui fait découvrir dans les données. C’est ce passage des règles aux exemples qui rapproche l’AA de ce qu’on appelle l’intelligence. Il le rattache aussi au connexionnisme, présenté au module 1 : l’hypothèse, rivale de l’approche symbolique, selon laquelle l’intelligence ne s’écrit pas en règles explicites, mais émerge d’un réseau de connexions qui s’ajustent à l’expérience. L’apprentissage automatique reprend cette idée principale, sans nécessairement garder les neurones. Ce qui s’ajuste ici s’appelle des paramètres, et c’est en les réglant sur des exemples que le modèle finit par « savoir » quelque chose.

On peut aussi dire que les deux démarches échangent leurs entrées et leurs sorties. En programmation classique, un humain écrit les règles, et l’ordinateur les applique aux données pour produire des réponses. En apprentissage automatique, on fournit à l’ordinateur les données et les réponses (ce sont les exemples), et c’est l’ordinateur qui en dégage les règles, qu’on appelle alors le modèle. Ce qui était fourni par l’humain (les règles) devient le résultat, et ce qui était le résultat (les réponses) devient une donnée d’entrée. Le schéma ci-dessous montre cette permutation : suivez les « règles » (en brun) et les « réponses » (en teal), qui passent d’un côté à l’autre.

Une seule grande idée, déclinée

Au lieu de présenter un catalogue d’algorithmes, ce module construit un modèle mental unique et transférable, qui revient de page en page :

partir de données → choisir un modèle (une fonction de prédiction, réglable par des paramètres) → mesurer son erreur de prédiction → régler les paramètres du modèle pour la minimiser → vérifier qu’il généralise à des cas nouveaux.

Chaque algorithme classique présenté dans ce module, du plus simple au plus élaboré, est une variation sur ce même schéma. Quand on comprend ce schéma, l’apprentissage automatique n’est plus une boîte noire.

Une vieille parenté : la statistique

Il faut préciser dès le départ un point que le vocabulaire actuel tend à cacher : l’apprentissage automatique n’est pas né avec les ordinateurs, et encore moins avec les années 2010. Presque tout ce que vous verrez dans ce module relève de la statistique, parfois depuis deux siècles. La droite ajustée par les moindres carrés date de Legendre et de Gauss, vers 1805. Le théorème de Bayes date de 1763, et le mot régression lui-même a été introduit par Galton en 1886. Les plus proches voisins, les arbres de décision et les forêts ont été développés par des statisticiens, et les termes que nous emploierons (échantillon, distribution, biais, variance, test) viennent de la statistique. L’autre discipline d’origine est la théorie des probabilités : chaque modèle de ce module repose sur une probabilité, une vraisemblance ou une croyance que l’on révise, et le théorème de Bayes y joue un rôle central.

La différence entre les deux domaines tient moins aux outils qu’à la question posée. La statistique classique cherche à expliquer, par exemple quel est l’effet de la superficie sur le prix, et avec quelle certitude. L’apprentissage automatique cherche à prédire, par exemple quel sera le prix d’une maison donnée. Pour bien prédire, il accepte des modèles si complexes qu’on ne peut plus les interpréter, à condition qu’ils fonctionnent bien sur des données nouvelles. Leo Breiman, un statisticien devenu pionnier de l’apprentissage automatique, a décrit cette divergence dans un texte connu, « Statistical Modeling: The Two Cultures » (2001) : il y décrit deux cultures qui partagent les mêmes fondements. Nous signalerons cette parenté chaque fois qu’un modèle viendra directement de la statistique.

Le but ultime : généraliser

La notion la plus importante de l’AA, celle qui permet de l’associer au domaine de l’intelligence, est la capacité à généraliser. Si on entraîne un modèle à distinguer un chien d’un chat avec 1000 images, sa performance sur ces 1000 images a peu d’intérêt, puisqu’il devrait les reconnaître par construction. En effet, mémoriser ces 1000 images est trivial pour un ordinateur : ranger des données et les restituer à l’identique est exactement ce qu’une machine fait sans effort, et cela ne demande aucune intelligence. Ce qui compte, c’est la 1001ᵉ image, que le modèle n’a jamais vue. Un modèle qui a vraiment appris, au lieu de simplement mémoriser, pourra la classer correctement. La question devient plus intéressante encore si on lui montre une vache au lieu d’un chat ou d’un chien. Bien généraliser est le véritable objectif de l’AA, et c’est l’un des sens les plus concrets qu’on puisse donner au mot « apprendre ».

Le parcours du module

Le module part du modèle le plus simple possible, puis l’améliore progressivement : chaque étape rencontre une limite qui mène à l’idée suivante.

  1. Le problème : prédire un prix, prédire une catégorie, et pourquoi c’est difficile.
  2. Le modèle le plus bête : toujours répondre la moyenne, et ce que ce point de référence nous apprend.
  3. Regarder les données : une maison, une image, un courriel sont des listes de nombres, donc des points dans un espace.
  4. Prédire par ressemblance : les plus proches voisins, la distance, et la première frontière de décision.
  5. Un modèle qui s’entraîne : la droite, la fonction d’erreur, la descente de gradient.
  6. Classer : la régression logistique, la marge des SVM, Bayes, le filtre anti-pourriel et les réseaux bayésiens.
  7. Poser des questions : les arbres de décision : un modèle qui cherche au lieu de descendre un gradient, et qui peut expliquer ses décisions.
  8. Généraliser : le jeu de test, ce qu’un modèle peut dessiner, le compromis biais-variance, la régularisation.
  9. Bien évaluer un modèle : les fuites, la validation croisée, les métriques, la distribution, la causalité.
  10. Trois façons d’apprendre : supervisé, non supervisé, par renforcement.

Pour situer ce module dans l’ensemble du cours : l’apprentissage automatique n’est qu’une partie d’un domaine plus vaste, celui de l’intelligence artificielle, que le cours parcourt module par module.

Objectifs

Au terme de ce module, vous devriez être en mesure de :

  • distinguer clairement la programmation traditionnelle de l’apprentissage automatique, et situer celui-ci dans le paysage de l’IA ;
  • expliquer le fil conducteur données → modèle → erreur → minimisation → généralisation, et le reconnaître dans n’importe quel algorithme ;
  • décrire de l’intérieur les modèles classiques rencontrés (le modèle bête, les plus proches voisins, la régression linéaire et logistique, les machines à vecteurs de support, Bayes naïf et les réseaux bayésiens, l’arbre de décision et la forêt aléatoire, k-means) et dire ce qui les distingue ;
  • expliquer comment un modèle s’entraîne (fonction d’erreur, descente de gradient) et ce qu’est un hyperparamètre ;
  • définir le sur-apprentissage (overfitting) et le sous-apprentissage, et les relier au compromis biais-variance, à la capacité d’un modèle (linéaire ou non) et à la régularisation ;
  • évaluer correctement un modèle : jeu de test, fuites de données, validation croisée, matrice de confusion, précision et rappel, et la question de la distribution ;
  • distinguer une corrélation d’une cause, et dire pourquoi un modèle prédictif ne suffit pas pour décider d’une intervention ;
  • distinguer les trois grandes façons d’apprendre (supervisé, non supervisé, par renforcement) par la nature du signal dont le modèle apprend ;
  • expliquer pourquoi l’explicabilité d’un modèle compte, et quels modèles l’offrent.

Durée

Trois semaines, travail noté compris, soit environ 27 heures.

Évaluation

Un travail noté (20 % de la note finale) où vous construirez, pas à pas, un filtre anti-pourriel par classification bayésienne naïve, avec des questions d’interprétation sur le fonctionnement de l’algorithme.