C’est quoi le Machine Learning ?


icml_vignette

Du 6 au 11 juillet, Lille accueille ICML (International Conference on Machine Learning), le rendez-vous annuel des chercheurs en machine learning, ce qu’on traduit souvent en français par apprentissage automatique ou apprentissage artificiel. 

Donnons ici la parole à Colin de la Higuera pour faire découvrir de quoi il s'agit … Et c'est avec ironie que ce grand collègue nous propose de partager ce gros morceau de science sous forme de dialogue.

 

Photo_Colin

 

 

Discussion devant un ascenseur d'immeuble. Les personnages sont VS (vieux schnock) et JC (jeune c… urieux de science).

JC est élève de terminale S. Il a choisi la spécialité de terminale Informatique et Sciences du Numérique (ISN) parce qu’on lui a dit que c’était facile d’avoir une bonne note. Et en plus parce que sa prof (la seule de toute l’académie !) est sympa. Et au fur et à mesure, il a trouvé ça intéressant et se demande maintenant pourquoi il n’a pas commencé avant.

VS est le voisin de JC. Il appartient à une société savante en informatique. Quand il est de bonne humeur, il répond à JC.

JC, qui attend l’ascenseur et voit venir VS : « Vous avez un moment ? Je peux vous poser une question ? ». VS, qui se dit qu’il doit aussi attendre l’ascenseur : « va-z-y… »

JC: C’est quoi le Machine Learning ? La prof a dit que les robots s’en servaient pour faire des choses difficiles, donc ça a l’air intéressant.

VS: Le Machine Learning, c’est de l’intelligence … algorithmique, tu sais on dit intelligence artificielle. En français on dit plutôt apprentissage automatique ou apprentissage mécanique. C’est… des programmes qui apprennent.

JC : Comme moi ? J’essaye d’apprendre, mais c’est difficile:-)

VS: Oui, c’est difficile… Et justement, que veut dire «apprendre» ? Tu fais quoi, quand tu apprends ?

JC : Oh,  apprendre ? On passe son temps à apprendre mais c’est difficile à expliquer. En tout cas, une fois que j’ai appris, je sais ?

VS : Donc apprendre, c’est ce qui te permet de créer une connaissance nouvelle. Sauf que pour un ordinateur, l’enjeu n’est pas tellement cette connaissance nouvelle, mais la capacité à faire de nouvelles choses avec cette connaissance. Autrement dit, l’apprentissage est la capacité pour la machine de s’améliorer automatiquement, de s’adapter.

JC : Ouf... donne moi plutôt un exemple … avec les robots !

VS : Supposons que tu cherches à construire un robot autonome. Un robot qui pourrait aller dans une pièce qu’il ne connait pas et saurait quand même trouver la sortie, prendre un objet, éviter un danger. Tu crois pouvoir écrire un programme pour ce robot ?

JC : Oui et non, je sais écrire un programme pour résoudre une situation que je connais, ou un algorithme qui résout un ensemble de situation. Par exemple un robot qui utilise l'algorithme de Pledge donc qui avance dans un labyrinthe et tourne souvent à droite devant chaque mur, mais aussi de temps en temps à gauche au cas où il soit coincé peut sortir de tous les labyrinthes du monde sauf  ... si, et oui ! Sauf s’il y a autre chose d'imprévu…

VS : Je vois que tu as appris beaucoup de choses en ISN : c'est vraiment bien, Mais oui, tu as raison, il semble impossible de tout prévoir… On va donc plutôt donner au robot la faculté d’apprendre : c’est parce que tu sais apprendre que tu arrives à gérer des situations que tu n’as jamais rencontrées. Pour un robot, c’est la même chose. Apprendre, c’est être capable d’adapter son comportement, de modifier l’exécution des programmes en fonction des besoins réels.

JC : Comme par exemple, avec le clavier de mon téléphone portable qui au début me proposait des mots que je ne connaissais pas et qui maintenant semble deviner le mot que je vais taper ?

VS : Oui, et il y a plein d’autres applications. En fait, un algorithme d'apprentissage automatique va commencer par construire un modèle. Souvent, ce modèle est prédictif : on va pouvoir l’utiliser pour classer des choses ou pour prédire l’avenir.

JC : Prédire l’avenir ?

VS : En quelque sorte, mais de manière scientifique : on va collecter de nombreuses données et on va faire tourner un des nombreux algorithmes de d’apprentissage automatique. On vérifiera ensuite que le modèle « explique » le passé. De là, on déduira des probabilités sur ce que le modèle peut nous aider pour le futur.

JC : On peut s’en servir pour prédire le résultat d’un match de foot ?

VS : Par exemple… On analyse les données provenant des matches de ces 20 dernières années, et on prédit le résultat du match de ce week-end.

JC : Mais c’est génial ! Et ça marche à tous les coups ?

VS : Ça ne marche jamais à tous les coups, puisque ce que le calcul offre c'est une probabilité que telle ou telle chose se produise. Et pour le football, pas vraiment. Mais il y a des applications plus importantes pour lesquels les résultats sont connus avec une forte probabilité : la météo, le diagnostic médical, l’écologie…

JC : Mais prédire une donnée …  en quoi est-ce de l’apprentissage ?

VS : Bien vu ! Le lien vient du fait que l’apprentissage va utiliser la capacité à prédire l’avenir pour s’améliorer. Par exemple, si je conçois un agent « intelligent » qui doit piloter mon robot et que celui-ci est capable d’anticiper les dangers, les obstacles, le robot peut s’y préparer et suivre une stratégie optimisée en fonction de ce qui risque de se passer et non seulement en fonction de ce qu’on voit.

JC: Et quand il se trompe, il doit sûrement modifier les paramètres de son modèle pour améliorer ses prédictions. Mais … c’est de l’informatique ?

VS : Beaucoup, mais pas seulement. Un mathématicien y trouvera des équations difficiles liées aux questions d’optimisation à résoudre, ou des questions statistiques difficiles : il ne suffit pas de prédire, il est très important de savoir quelle est l’erreur qu’on est en train de risquer de commettre au niveau de cette prédiction. Et comme l’apprentissage automatique est souvent appliqué, il faut aussi être calé en robotique, biologie, économie, linguistique, selon le domaine qu’on regarde.

JC : Oui, mais l’informatique dans tout ça ?

VS : L'enjeu est de traduire en algorithmes ces mécanismes, qui traitent des données de très grands volume, de nature très diverses, et qu'il faut traiter en temps limité, et …

JC : … ah oui ! Le Big Data quoi …

VS : … mmm, mouais, …  tu as beaucoup de données, qui peuvent être très compliquées : par exemple les articles de 10 années d’un journal, ou les tickets d’achat d’un hypermarché sur plusieurs mois. Ou des milliers d’images médicales. Et il s’agit d’écrire un algorithme qui traite (on dit « analyse ») ces données et y découvre des régularités, des lois, des explications. Le tout, dans un temps raisonnable. La même loi pourra ensuite être utilisée pour classifier, ranger, prendre des décisions concernant des données nouvelles.

JC : Okay, mais c'est des généralités tout ça ! Je peux avoir un exemple d’algorithme, moi, je vais pouvoir ré-exliquer aux copines et copains du lycée.

VS : Disons, le «perceptron» : c’est un algorithme assez ancien, mais qui montre bien des idées que l’on retrouve assez souvent.

JC : vaz-y.

VS :  Imaginons qu’on ait à classifier des pays selon leur richesse. Pour simplifier, on suppose qu’il y a deux sortes de pays : les riches et les pauvres. Pour chaque pays, on connait deux choses : sa population 'p' et sa surface 's'. On peut donc représenter un pays par un point de coordonnées (p,s). Par exemple, le point représentant la France serait (67, 675)  avec 67 millions de personnes et 675 kilomètres carrés.

JC: Ah oui et du coup, on peut représenter tous les pays comme un nuage de points, en disant que les points rouges sont les pays riches, les points bleus sont les pays pauvres, n'est-ce pas ?

VS : Tu as raison. Le but est alors de trouver une droite qui sépare les points bleus et rouges pour les pays dont on sait s’ils sont riches ou pauvres.

JC : Et on pourra prédire la suite : quand un nouveau pays arrive, selon que le point est du côté des rouges ou bleus, on pourra prédire si il est riche ou pauvre.

VS : Parfaitement.

JC : Trop facile ! On peut la dessiner directement !

VS : Cet  exemple est effectivement trop facile… Mais est-ce que tu saurais faire ça si au lieu de 2 dimensions j’en avais quelques dizaines, quelques centaines, quelques milliers ?

JC : Oh ! Ça ne peut plus se dessiner.

VS : Effectivement, et dans ce cas on va plutôt utiliser un algorithme pour construire la séparation. Cet algorithme fonctionne très simplement : « Tant qu’il existe un exemple mal classé on déplace la séparation en direction de l’exemple mal classé, jusqu'à ce qu'il passe du bon côté de la séparation»

JC : Ça a l’air hyper simple… et ça marche toujours ?

VS : Oui et Non ! Si les données peuvent être séparées de cette façon: oui, on montre que de proche en proche ce mécanisme va converger. Mais si les données ne peuvent pas être séparées de cette façon alors le perceptron se mettra à tourner vainement et indéfiniment.

JC : Il doit y avoir beaucoup d'autres algorithmes, plus puissants ?

VS : Oui, certains s'inspirent du fait que le cerveau est fait d'une myriade de petits processeurs qui communiquent en réseaux et font un calcul compliqué de manière distribuée: on appelle ça des réseaux de neurones artificiels ; d’autres essaient de construire des arbres de décision, comme ceux que vous étudiez en mathématiques, en terminale ; d’autres essaient de construire directement le programme qui aurait pu avoir produit les données ; la plupart supposent que rien n’est vraiment arrêté, et font les calculs en terme de probabilité en estimant l'incertitude du résultat.

JC : Et pour faire mon projet ISN sur ce sujet peux-tu me dire où trouver plus d'information ?

VS : L’apprentissage automatique : pas à pas ! te donne des repères historiques, explique le lien avec l'intelligence artificielle. L’apprentissage automatique : le diable n’est pas dans l’algorithme explique les deux notions clés apprendre (construire un modèle) et prédire (utiliser le modèle appris). L’apprentissage automatique en deux exemples montre des applications assez étonnantes en traitement automatique de texte et reconnaissance d'images. L’apprentissage automatique : quand les machines apprennent donne la parole à des collègues chercheurs sur ces sujets. Avec ça tu commenceras à …

JC :  … on pourrait même programmer un ascenseur ?

VS : Oui… mais il est clair que celui-ci n’a pas encore appris que nous l’attendions !

Colin de la Higuera, dans le rôle du VS:-)

 

Publier un commentaire