• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 29/01/2024

Découvrez des exemples de problèmes traités par apprentissage

Nous avons vu, dans le cours précédent, qu'un problème d'apprentissage était caractérisé par des données, un coût, un modèle, une phase d'optimisation et une capacité à généraliser. Nous allons maintenant détailler chacun de ces aspects en commençant par les données, à travers des exemples de problèmes traités par apprentissage.

Nous allons voir ce que l'on peut faire et ce que l'on ne sait pas faire à l'aide des méthodes d'apprentissage statistiques. Comme la base de cet apprentissage est l'assimilation de données, nous allons aussi présenter différents types de données utilisés pour entraîner les systèmes.

Différentes bases de données pour apprendre à classer

Commençons par illustrer ce problème sur un exemple jouet. Supposons que nous disposions d'un ensemble d’observations étiquetées en deux dimensions $\((x \in \mathrm{R}^2)\)$ et donc $\(p=2\)$ . Chacun des points  $\(x\)$ est soit rouge soit bleu. Le but de l’apprentissage est ici de construire une fonction $\(f\)$ de $\(\mathrm{R}^2\)$ sur $\(\{0,1\}\)$ permettant de prédire au mieux si un point doit être étiqueté rouge ou bleu.

Exemple de problèmes jouets de classification binaire (à deux classes). L'appentissage permet, à partir d'exemples (les points rouge et bleu) de trouver une frontière de classification (le trait noir) séparant les bleu des rouges.
Exemple de problèmes jouets de classification binaire (à deux classes). L’apprentissage permet, à partir d'exemples (les points rouge et bleu) de trouver une frontière de classification (le trait noir) séparant les bleus des rouges.

Dans le problème jouet ci-dessus, les données sont constituées de $\(n=20\)$ observations avec $\(p=2\)$ variables, des étiquettes binaires et $\(k=2\)$ classes. Un coût typique associé à ce problème est la fonction de perte 0/1 qui s'écrit pour une prédiction $\(f\)$ quand la vraie classe est $\(y\)$ 

$\[J_{0/1}(f,y) = \left\{ \begin{array}[l] 00 \mbox{ si } f=y \\ 1 \mbox{ sinon } \end{array} \right. .\]$

Le Wisconsin Diagnostic Breast Cancer (WDBC) est un autre jeu de données, réelles cette fois, typique pour la classification et produit dans les années 70. Le problème est de prédire à partir d'une image si la tumeur repérée sur l'image est bénigne ou maline. Les données disponibles sont composées de $\(n=569\)$ couples caractéristiques-étiquettes binaires ( $\(k=2\)$ ). À partir de chaque image, des experts ont extrait à la main $\(p=30\)$ caractéristiques pertinentes pour réaliser cette tâche.

Dans les années 90, la base MNIST a été mise à disposition des chercheurs. Il s'agit d'une base d’apprentissage et d'une base de test. La base d’apprentissage est constituée de $\(n=60 000\)$ couples d'imagettes étiquetées. Les imagettes sont des carrés de 28 pixels codés sur 256 niveaux de gris, de sorte que $\(p = 28 \times 28 = 784\)$ et $\(x \in \mathrm{R}^{256}\)$. Chaque imagette représente un chiffre. Il s'agit donc d'un problème de classification à  $\(k=10\)$ classes. Cette base à été construite pour voir s'il était possible d'apprendre à classer des images sans utiliser de phase d'extraction manuelle de caractéristiques comme celle utilisée pour les données WDBC.

Exemples d'images de la base MNIST.
Exemples d'imagettes de la base MNIST

La décennie suivante a vue l'apparition du jeu de données Newsgroup, constitué de textes qu'il faut classer. La base d'apprentissage associée est constituée de $\(n = 11 314\)$ textes, chacun décrit par un vecteur de $\(p = 4,8 \)$ million de fréquences d'apparition de mots dans le texte. Le nombre de classes est initialement de $\(k=20\)$ mais est parfois réduit à 2. Ces données sont caractérisées par un très grand nombre de variables et des données faisant apparaître un grand nombre de zéros. On parle de données creuses (ou sparse).

En 2012 est apparu le ImageNet Large Scale Visual Recognition Challenge. Le but de ce jeu de données est de permettre la comparaison des méthodes de reconnaissance d'objets dans des images. Les données sont composées de $\(n = 1,2\)$ million images de 224 pixels codées en RGB, soit $\(p = 3 \times 224 \times 224 = 150 000\)$ variables. Le nombre d'objets à reconnaître est $\(k=1000\)$. Chacune des images représente un seul objet qui a été étiqueté par les humains.

Exemples d'images de la base imageNet. Les classes d'objets sont décrit suivant une hiérarchie sémantique illustrée par ces images.
Exemples d'images de la base imageNet. Les classes d'objets sont décrites suivant une hiérarchie sémantique illustrée par ces images.

Le tableau suivant récapitule les principaux paramètres des problèmes que nous venons de voir.

Illustration à travers des exemples de l'évolution de la taille des problèmes traitées par apprentissage.
Illustration de l'évolution de la taille des problèmes traités par apprentissage.

Il est clair, à partir ce tableau, que derrière la notion de classification par apprentissage se cachent plusieurs difficultés et notamment la question de la taille des problèmes, qui est cruciale. Ainsi, les problèmes d'aujourd'hui peuvent avoir des tailles avec $\(n, p \mbox{ ou } k\)$ de l'ordre du million. C'est le cas par exemple des données du projet Visual Genome, qui propose  \(n = 108 077\) images haute définition annotées sémantiquement à l'aide de \(k=33 877\) objets, conçues pour relier au langage les concepts présents dans une image structurée. On peut parler dans ce cas d'un problème de classification extrême.

Exemples de problèmes liés à l'apprentissage

Nous allons voir, dans cette partie, des exemples de problèmes résolus par apprentissage et d'autres qui ne le sont pas.

Exemples de problèmes résolus par apprentissage

On trouve des systèmes programmés par apprentissage statistique dans différents domaines.

Les systèmes de filtrage automatique des messages électroniques (spam flitering) sont programmés par apprentissage tout comme les systèmes de détection de faux billets. Des méthodes d’apprentissage sont aussi utilisées pour réaliser des tâches d'estimation de prix (comme le prix de vente d'une maison) ou de prédiction de ventes.

Lorsque nous parlons à notre smartphone, la conversion de notre voix en texte est réalisée par un système qui a spécifiquement appris à réaliser cette tâche. Pour dépasser les performances humaines, les systèmes efficaces de reconnaissance de la parole ont été entraînés sur des milliers d'heures de parole dûment annotées.

Dès qu'une image est déposée sur Facebook, elle est analysée par des systèmes ayant appris à reconnaître les visages, à identifier les personnes et à générer une description textuelle de la photo. Ces systèmes ont été entraînés sur plus de 50 millions d’images, voire sur un milliard d’images pour certaines tâches.

En 2017, un système ayant appris à jouer au go a battu le champion du monde Ke Jie. Puis un autre système analogue, ayant appris à jouer contre lui-même, est parvenu, après 40 jours d'entrainement sur 64 processeurs graphiques (GPU) et 19 processeurs (CPU), à obtenir de meilleures performances que tous les autres systèmes connus.

a) Évolution des performances de AlphaGo Zero en fonction du nombre de jours d'entrainement. b) Comparaison des performances de différents  joueurs automatiques du go.
a) Évolution des performances de AlphaGo Zero en fonction du nombre de jours d'entrainement. b) Comparaison des performances de différents joueurs automatiques du go.
Un goban traditionnel, avec des pierres noires et blanches.
Un goban traditionnel, avec des pierres noires et blanches (source wikipédia)

Les recommandations fournies, par exemple, par Amazon ou Netflix sur leurs sites web sont elles aussi produites en utilisant des techniques issues de l'apprentissage statistique. L'idée est d'utiliser les comportements des clients dans le passé pour inférer statistiquement leurs préférences futures.

Illustration du problème de recommandation. A partir des données j'aime (pouce vert) et je n'aime pas (pouce vert) il faut compléter la case ou il y a un point d'interrogation.
Illustration du problème de recommandation. À partir des données "j'aime" (pouce vert) et "je n'aime pas" (pouce rouge), il faut compléter la case où il y a un point d'interrogation (source wikipédia).

Au-delà de la recommandation, ces sites s'adaptent en temps réel à leurs utilisateurs et utilisent des algorithmes d'apprentissage pour gérer leurs expériences de personnalisation.

Les outils de traduction automatique ont aussi réalisé récemment de réels progrès grâce à l'utilisation de l'apprentissage statistique. Pour arriver à ces résultats, les algorithmes d'apprentissage ont dû assimiler 36 millions de couples de phrases en français associées à leur traduction en anglais. Cependant, les résultats ne sont pas encore au niveau de ceux d'un traducteur humain.

Il est un autre domaine ou l'utilisation d'algorithmes d'apprentissage a permis de réels progrès sans arriver à égaler l'humain : c'est celui de la conduite automatique. Par exemple, la fonction Autopilot de Tesla utilise massivement l'apprentissage. Elle est conçue dans un processus d'amélioration continue à partir d'exemples.

Dès qu'une situation d'échec est rencontrée, par exemple quand un chauffeur reprend brusquement le contrôle de son véhicule, cette situation est transmise à l'entreprise qui l'analyse et, si besoin, demande à la flotte de lui renvoyer des images des situations analogues qui serviront à améliorer l'Autopilot en le ré-entrainant.

Illustration du problème de conduite autonome.
Illustration du problème de conduite autonome. Exemple de reconnaissance d'objet dans une image à l'aide du système yolo programmé par apprentissage.

Problèmes ouverts

Comme nous venons de le voir, que ce soit pour la traduction ou pour la conduite autonome, les algorithmes d’apprentissage n'arrivent pas encore à nous égaler. C'est que, pour résoudre ces problème, l'entrainement seul ne suffit pas, il faut être capable de comprendre le monde qui nous entoure et de raisonner dessus, ce que les algorithmes d'apprentissage d'aujourd'hui ne savent pas faire.

Parmi ces problèmes non résolus par apprentissage statistique, on peut aussi ajouter celui de la compréhension du langage naturel. Grâce à l’apprentissage, les assistants personnels qui nous entourent, les Siri, Alexa, Google assistant et autres Cortana peuvent rendre des services spécifiques, mais ils ne nous comprennent pas encore vraiment.

Nous avons aussi vu que les progrès de l'apprentissage ont été permis grâce à l'assimilation de masses de données sur les problèmes trop spécialisés, à l'issue d'un processus d’ingénierie complexe. Il n'existe pas non plus ni de théorie explicative satisfaisante ni de garantie sur la qualité des décisions proposées par les systèmes programmés par apprentissage.

Pendant son entrainement, l'apprenti ne fait qu'extraire des corrélations contenues dans les données utilisées pour apprendre. Donc si les données sont biaisées, l'apprenti le sera aussi. Ce type de biais a été observé dans certains systèmes programmés par apprentissage, avec des résultats choquants.

Par exemple, un système de recrutement automatisé s'est avéré privilégier des embauches de certains groupes raciaux, de sexe ou d’âge et un moteur de recherche a amplifié des stéréotypes négatifs, en diffusant des annonces faisant état d'une arrestation en réponse à des requêtes portant sur des noms de bébés afro-américains.

En résumé

L'apprentissage c'est, en quelque sorte, une manière de créer des programmes à partir d'exemples. Les données traitées par apprentissage sont de nature très diverse, mais quand des progrès ont été obtenus ils l'ont été sur des problèmes spécifiques pour lesquels un grand nombre d'exemples est disponible.

Nous allons maintenant voir quels sont les principaux types d'apprentissages statistiques.

Exemple de certificat de réussite
Exemple de certificat de réussite