Explain Machine Learning like I’m Five(-ish)

Lucas Gompou
Code d'Ivoire
Published in
6 min readMar 15, 2019
Learning Dexterity by OpenAI

Aujourd’hui nous allons explorer le monde de l’apprentissage automatique (machine learning) du point vue d’un enfant de cinq ans (ELI5 for Explain me like I’m Five) en quelque sorte. À ce propos, ELI5 est un subreddit très populaire où les membres essaient d’expliquer des sujets complexes du point vue d’un enfant de 5 ans. Ce concept est basé sur la technique de Richard Feynman. Sans plus attendre, entrons vite dans le vif du sujet.

What is Machine learning ?

Le Machine Learning ou l’apprentissage automatique est une technique utilisée dans le domaine de l’intelligence artificielle dans laquelle un program informatique est donné est la capacité “ d’apprendre “ à partir de données.

Mais à quoi va nous servire machine learning concrètement ?

Disons que nous voulons programme simple qui soit capable de faire la différence entre une orange et une pomme. Nous disposons de données de base qui comportent le poids de plusieurs oranges (compris entre 150–200 g) et pommes (compris 100–130 g). De même, ces donnés contiennent également leurs caractéristiques physiques qui mentionnent par exemple le fait que qu’une orange est rugueuse et qu’une pomme est lisse (On peut représenter cette information de façon binaire, 1 pour rugueux et 0 pour lisse). Si nous présentons au programme un fruit de 115g avec une enveloppe lisse, le programme devinera certainement que c’est une pomme. Vice-versa, si nous présentons au programme cette fois un fruit de 175g avec une enveloppe rugueuse, ce sera probablement une orange. Et tout fruit ne possédant pas ses caractéristiques ne sera pas considéré comme l’un ou l’autre. Supposons maintenant, que nous présentons au programme un fruit lisse de 99g . C’est probablement une pomme, mais notre programme n’en a aucune idée. Ainsi, plus on possède de données, plus notre programme est davantage précis dans ses prédictions. Le programme sera capable de construire son propre schéma de reconnaissance de pommes et d’oranges. Voici, en gros, ce qu’on peut faire avec machine learning.

Ok, dans l’exemple précédent, on a fait allusion à un ‘’programme informatique’’ capable de faire la distinction entre une orange et une pomme. Cependant, c’est quoi la différence entre un programme informatique que nous avons l’habitude d’écrire tous les jours, pour certains d’entre nous, et un programme qui fait du machine learning ? Accrochez-vous, ne paniquez pas, car on s’apprête à faire des maths mais rien de complexe.

Supposons qu’on dispose de valeurs d’entrée et sortie comme le présente l’image ci-dessus. Quelle sera la valeur de sortie correspondante si on présentait 38 comme valeur d’entrée . Marque une pause, prendre stylo et un bout papier et essaie de trouver la réponse.

Si tu as répondu `100,4 `, alors chapeau ! Comment allons nous résoudre ce problème ? Si vous avez réfléchi à la question, vous aurez probablement réalisé que les données d’entrée et de sortie sont liées par cette équation `F = C * 1.8 + 32`, où les données en entrée représentent des valeurs en degré Celsius dénotées dans l’équation par la lettre C et les données en sortie représentent des valeurs correspondantes en degré Fahrenheit référencées par la lettre F dans l’équation. En gros, les données en entrée représentent des valeurs de température en degré Celsius et les données en sortie représentants des valeurs de température correspondantes en Fahrenheit. Assez simple n’est-ce pas ?

Ce que votre cerveau a fait pour trouver la relation entres les données d’entrée et de sortie, est exactement ce que qu’un algorithme machine learning essaie de reproduire. C’est-à-dire, disposant de données d’entrée et de sortie, un algorithme machine learning trouvera la logique qui a permis de passer des données d’entrée aux données de sortie sans intervention humaine.

Habituellement, lorsqu’on écrit un programme informatique, on connaît d’avance les données d’entrée et l’algorithme aboutissant aux données de sortie. Cependant, avec machine learning, tandis que les données d’entrée et de sortie sont connues, l’algorithme permettant, étant donné une valeur d’entrée, d’aboutir à la valeur de sortie correspondante est inconnu. Ainsi, le programme machine learning doit apprendre à trouver l’algorithme grâce aux données de base.

Reprenons l’exemple précédent. Supposons que nous voulons écrire un programme permettant de convertir en degré Fahrenheit une température exprimée en degré Celsius en utilisant l’équation `F = C * 1.8 + 12`. Très facile! Pour un programme informatique traditionnel, il nous suffit juste d’écrire une fonction de la sorte:

Ici, la fonction prend une valeur d’entrée C ( La valeur d’une température en degré Celsius) et calcule la valeur de sortie F ( la valeur correspondante de la température en Fahrenheit) en utilisant l’algorithme que vous avez explicitement écrit dans le langage de programmation choisi. Dans le cas de machine learning, nous disposons des exemples de données d’entrée et de sortie correspondantes mais pas l’algorithme en question:

L’approche machine learning consiste en l’utilisation de techniques statistiques et d’analyses numériques pour apprendre la relation entre les données d’entrée et de sortie. Mais, pour que l’algorithme puisse trouver cette relation, il va falloir l’entraîner. Cet entraînement consiste pour l’algorithme à faire répétitivement un mappage entre les données d’entrée et de sortie en vue de produire un modèle capable de faire le même mappage, mais cette fois-ci pour de nouvelles données. Voici encore ce que fait en gros machine learning.

Dans le monde du machine learning vous rencontrerai certainement ces deux expressions: supervised learning et unsupervised learning.
Ce sont deux méthodes utilisées couramment pour l’implémentation des algorithmes machine learning.

Supervised Learning

Dans le cas du supervised learning, l’algorithme machine learning va apprendre à partir d’exemples de données annotées. Un exemple concret d’utilisation de cette technique d’apprentissage est la classification d’images. Supposons qu’on souhaite implémenter un algorithme machine learning capable de distinguer des photos de chats et de chiens. Durant la phase d’apprentissage, l’algorithme sera présenté de nombreuses photos annotées ‘’chat “ ou ‘’chien “, en vue d’extraire les caractéristiques distinctifs d’un chat et d’un chien. Ainsi, après l’apprentissage, l’algorithme sera capable d’annoter lui seul d’autres images de chats ou de chiens.

Unsupervised Learning

En ce qui concerne le unsupervised learning, l’algorithme est présenté des données non annotées lors de la phase d’apprentissage et c’est à lui-même de donner du sens à ces données en décelant des schémas récurrents, des groupes etc. Une application pratique de cette technique est par exemple un programme qui permet de donner le genre d’un film (action, thriller, comique etc.) sur la base son synopsis. Au préalable, on aura fourni à l’algorithme plusieurs exemples de synopsis en vue les classer par catégories après analyse sémantique.

Et ainsi s’achève notre aventure dans le monde de l’apprentissage automatique. Ils y a encore beaucoup de sujets à explorer, mais rendez-vous au prochain épisode pour la suite.

Si vous avez envie de continuer l’aventure, voici quelques resources utiles:

--

--