22 juin 2022

Qu’est-ce qu’un algorithme de Machine Learning ?

Lorsque nous parlons de Machine Learning - ou apprentissage automatique - de quoi parlons-nous réellement ? Cette technologie est présente partout dans les outils que nous utilisons quotidiennement. Mais concrètement, comment les machines apprennent-elles ?

Pavel Liser
Pavel Liser

19min de lecture

Qu’est-ce qu’un algorithme de Machine Learning ?
NB : Cet article s'inscrit dans le cadre de la sortie d'un épisode sur les Biais Algorithmiques réalisé en collaboration entre Le Wagon et le Podcast Quoi de Meuf. Vous pouvez l'écouter dès maintenant ou lire cet article en amont pour vous familiariser avec les notions de bases de l'algorithmie. 

Commençons par une définition du Machine Learning 

L'une des premières définitions du Machine Learning, tel que nous le connaissons aujourd'hui, remonte à 1959. Arthur Samuel, un informaticien américain, déclare alors ceci: 

L'apprentissage automatique est le domaine d'étude qui donne aux ordinateurs la capacité d'apprendre sans être explicitement programmés.

Mais qu'est-ce que cela signifie d'avoir un programme qui n'est " pas explicitement programmé " ? 🤔 Il est clair qu'il y a du code (beaucoup de code) impliqué dans l'apprentissage automatique. Alors quelle est la différence entre la programmation générale et la programmation du Machine Learning ? 

Disons qu'un.e développeur.se général.e et un ingénieur ML décident de construire un programme simple - un programme qui dessine une pomme rouge 🍎. 

Le.a développeur.se devrait donner au programme des instructions précises sur la façon de dessiner une pomme - dessiner un cercle, colorer l'intérieur avec de la couleur rouge, dessiner une petite tige verte au sommet du cercle, près du centre de la forme. 

L'ingénieur ML donnerait plutôt au programme (appelé en pratique un modèle d'apprentissage automatique) des données **- des images de pommes rouges. Avec suffisamment d'exemples, le modèle pourrait alors apprendre à quoi ressemble une pomme - la forme, la couleur, tous les petits détails - et avec suffisamment de données, il serait capable de dessiner une nouvelle pomme. 

Vous pouvez l'essayer vous-même ! Pouvez-vous deviner ce que sera, selon vous, le prochain objet dans l'image ci-dessous ?
image 1 article ML.png 94.04 KB

Si vous avez deviné qu'un cercle bleu vient ensuite - félicitations, vous êtes aussi intelligent.e qu'un modèle de Machine Learning ! 🙌 

Comment avez-vous fait cela ? Eh bien, votre cerveau a regardé les données - les objets qui viennent avant le point d'interrogation. Votre cerveau a ensuite absorbé les caractéristiques des objets - les entrées, comme la forme et la couleur. Ensuite, votre cerveau a découvert un "modèle" dans la séquence de ces formes. Et enfin, votre cerveau a supposé un algorithme pour prédire la forme suivante. 

Cet algorithme - les règles, la logique, les calculs derrière les décisions d'un modèle d'apprentissage automatique (et la décision de votre cerveau de placer un cercle bleu au-dessus) - est ce que nous allons explorer dans cet article. 


Les algorithmes qui prédisent tout 

Si les modèles d'apprentissage automatique sont les programmes qui font des prédictions et prennent des décisions basées sur les données, les algorithmes d'apprentissage automatique sont les approches de comment les modèles font ces sorties. Il s'agit des étapes de calcul qu'un modèle suit pour trouver les relations au sein des données en examinant les modèles trouvés parmi les points de données. 

La plupart des algorithmes ML peuvent être divisés en deux catégories : 

  • Régression - algorithmes qui aident à prédire une valeur exacte (par exemple, quel sera le cours de l'action Apple demain).
  • Classification - algorithmes qui aident à prédire une catégorie (par exemple, si l'action d'Apple sera plus ou moins élevée qu'aujourd'hui).
Votre choix d'algorithme dépendra du type de problème que vous essayez de résoudre, du type de ressources informatiques dont vous disposez et de la taille et de la complexité des données avec lesquelles vous travaillez. 

Examinons ces catégories une à une 🚀 

Régression - "Donne-moi un chiffre" 

Les algorithmes de régression sont construits pour prédire un nombre sur un spectre continu (la cible) en regardant comment il dépend d'autres points de données (les caractéristiques). 

Des exemples de régression seraient de prédire la température de l'air, les salaires des employés, le cours des actions, le nombre de likes sur un post Instagram, etc. 

Un excellent algorithme pour comprendre la régression est l'algorithme de régression linéaire, qui tente de prédire la cible comme une combinaison linéaire des caractéristiques. 

Disons que nous voulons prédire la taille d'une personne, en connaissant sa pointure. 👟 

On sort et on collecte des données qui, mises sur un graphique, ressemblent à ça :
image 2 article ML.png 144.69 KB


La formule au cœur de l'algorithme de régression linéaire est très simple - en fait, nous sommes sûrs que vous avez vu cette formule à l'école à un moment donné 😜. 

y = a * x + b 

Ou dans notre cas : 

Height = a * Shoe Size + b 

En d'autres termes, la taille est directement et proportionnellement liée à la pointure d'une personne - ou linéairement liée. 

Ce qu'un modèle d'apprentissage automatique fait avec cette information, c'est qu'il trouve les meilleurs a et b de la formule ci-dessus pour dessiner la ligne de régression qui correspond à toutes les données que nous avons collectées aussi étroitement que possible. Donc le résultat final est quelque chose comme ça :
image 3 article ML.png 165.02 KB


Les coefficients a et b qui déterminent cette ligne sont ceux que le modèle d'apprentissage automatique apprend en essayant de nombreuses possibilités et en vérifiant à chaque fois si la ligne est proche ou éloignée de tous les points de données, pour finalement s'arrêter lorsqu'il trouve les coefficients qui réduisent la distance entre la ligne de régression et chaque point. 

Une fois que le modèle a appris la relation entre la taille des chaussures et la hauteur, si nous lui donnons un nouveau point de données - disons la taille des chaussures de notre ami - il utilisera la formule qu'il a apprise pour prédire la hauteur de notre ami, comme ci-dessous.
image 4 article ML.png 208.74 KB



Classification - "donnez-moi une catégorie". 

Si les algorithmes de régression nous aident à prédire un nombre sur un spectre continu, les algorithmes de classification nous aident à attribuer des catégories distinctes à nos points de données. 

Par exemple, vous utiliserez des algorithmes de classification si vous devez prédire si un client d'une banque est susceptible de rembourser un prêt ou non, ou séparer les photos de chats des photos de chiens, décider si les taches sur la radiographie d'un patient sont dangereuses ou non, ou distinguer les avis négatifs des avis positifs. 

Un excellent exemple pour illustrer le groupe d'algorithmes de classification est l'algorithme des K-plus proches voisins (ou KNN en abrégé). 

Voyons comment il pourrait nous aider à distinguer nos animaux de compagnie préférés. 😺 🐶 

Disons que nous avons collecté un tas d'informations sur les chiens et les chats, par exemple la taille de leurs pattes et la longueur de leurs oreilles, et que nous traçons ces données comme suit :
image 5 article ML.png 527.53 KB


Si nous utilisons l'algorithme KNN pour nous aider à classer les nouveaux animaux que nous trouvons, il examinera la distance par rapport aux K voisins les plus proches et classera l'animal en fonction de la majorité de ses voisins. Voici comment procéder :
image.png 333.37 KB


L'apprentissage automatique est aussi simple que complexe. 

Comme vous pouvez le voir ci-dessus, l'intuition derrière les algorithmes d'apprentissage automatique peut souvent être assez simple. Avec les outils modernes, tout le monde peut rapidement apprendre à améliorer son travail grâce à l'apprentissage automatique - c'est pourquoi nous sommes en mesure de l'enseigner en seulement 9 semaines de formation en data science

Même si les données augmentent, la grande majorité de ces règles s'appliquent. 

Et si nous essayions de prédire la taille d'une personne non seulement à partir de la taille de ses chaussures, mais aussi à partir de la taille de ses mains, de son âge et de son poids ? Il est très peu probable que vous puissiez tracer une ligne sur un graphique dans ce cas - car le graphique serait en 4D ! 🤯 

Mais pour un modèle d'apprentissage automatique, c'est la même chose - prédire une valeur à partir d'une seule caractéristique ou de cent caractéristiques fonctionnerait toujours de la même manière avec des algorithmes comme la régression linéaire et le KNN. 

Mais c'est aussi la raison pour laquelle une personne travaillant avec l'apprentissage automatique doit tenir compte de nombreux autres facteurs pour construire des modèles ayant un véritable impact : 

  • Quel est l'impact commercial attendu ? AI et ML étant des mots à la mode pour attirer les gens vers de nouveaux produits, il est important de considérer comment (et si) l'introduction du ML aura un impact sur le travail que vous faites. Les algorithmes de ML consistent à créer des résultats en recherchant des modèles - si vous essayez d'appliquer le ML à n'importe quel problème de données ou d'entreprise qui n'est pas répétitif, vous serez probablement déçu par les résultats.

  • Quel type de risque est acceptable ? Comme vous pouvez le voir dans les exemples ci-dessus, il y a presque toujours une part d'erreur ou de risque dans les prédictions avec le ML, et le compromis entre la précision du modèle et les ressources nécessaires à son apprentissage est très important. Si vous essayez d'intégrer des recommandations de produits dans votre boutique en ligne, une précision de 70 % vous conviendra probablement. Si vous essayez de prédire la bonne trajectoire pour faire atterrir une fusée et la ramener sur Terre, une précision de 70 % est probablement loin d'être acceptable.

  • Nos données sont-elles biaisées ou présentent-elles d'autres défauts ? Un autre sujet très important, qui peut facilement conduire à des défauts invisibles, mais lourds, dans les modèles d'apprentissage automatique qui en résultent. Pour construire des modèles équitables et éthiques, il ne suffit pas de se fier aux chiffres choisis par l'algorithme. Vous devez prendre en compte les implications des données que vous laissez au modèle pour apprendre. De la même manière qu'un modèle peut, par erreur, surclasser les chiens si nous avons plus de photos de chiens que de chats, un modèle peut finir par ne pas détecter de manière égale tous les types de visages humains si les données ont un biais racial ou de genre.
C'est pourquoi la construction de modèles d'apprentissage automatique est autant une question de solution humaine à un problème, qu'une question de solution algorithmique à un problème - les deux sont aussi importantes l'une que l'autre pour obtenir des résultats durables 🤝