Testez Saagie en quelques clics grâce à notre démo interactive !

Qu’est-ce que le Machine Learning ?

Le concept de Machine Learning, issu de la data science, est complexe à définir, car il ne signifie pas la même chose pour tout le monde. Cependant, chacun s’accordera à dire qu’il fait partie d’un domaine encore plus large : l’Intelligence Artificielle.

Qu'est-ce que le Machine Learning ?

En Intelligence Artificielle, on apprend à une machine à présenter un comportement “intelligent”. En machine learning, on apprend aux machines à apprendre. Grâce à ce qu’elles apprennent, les machines peuvent ensuite prendre des décisions. Cependant, les machines ne peuvent apprendre comme le font les hommes ou les animaux (pas encore), alors elles apprennent par les données.

Les algorithmes de Machine Learning permettent aux machines de pouvoir apprendre des modèles très complexes et de traiter un grand nombre d’informations.

Le principal obstacle réside donc dans la qualité des données fournies puisqu’elles représentent la source de l’apprentissage. C’est pourquoi il est nécessaire d’associer au Machine Learning d’autres disciplines comme l’informatique (plus précisément le Big Data) et une expertise métier spécifique. L’ensemble de ces disciplines est souvent appelé « Data Science« .

En Machine Learning, il y a 3 manières de tirer de la valeur des données :

  • L’apprentissage supervisé (supervised learning)
  • L’apprentissage non supervisé (unsupervised learning)
  • L’apprentissage par renforcement (reinforcement learning)

La manière de procéder dépendra des données disponibles et de la problématique à traiter.

Les différents types d'apprentissage en machine learning

Chez Saagie, on tente de rendre compréhensibles pour tout le monde, même les grand-mères, les concepts complexes de Big Data et Data science. C’est pourquoi, plutôt que d’utiliser des cas d’usage classiques, nous utiliserons des exemples plus familiers comme des chats et des chiens.

L'apprentissage supervisé

Cette technique consiste à associer des étiquettes aux données dans le but que cela se fasse ensuite automatiquement grâce aux algorithmes mis en place. On fait donc apprendre un modèle décisionnel grâce aux étiquettes préalablement associées aux données.

Prenons l’exemple d’un cas d’usage simple : la classification d’images. Imaginez : nous avons un jeu de données d’images de chats et chiens. Nous, les hommes, savons faire la différence entre une image de chat et une image de chien mais nous voulons avoir un algorithme pour ne plus avoir à les trier nous-mêmes. Nous indiquons donc par l’étiquette chat ou chien ce que représente chaque image au modèle, qui pourra ainsi apprendre à faire la différence sans notre aide.

En découvrant une nouvelle image, notre modèle devrait donc, s’il a bien appris, être capable d’associer lui-même l’étiquette. Attention cependant aux données choisies, car une image comme celle-ci poserait problème à notre algorithme, et notre but n’est pas de le piéger. Si les données étiquetées utilisées pour l’apprentissage ne sont pas représentatives des images qu’il devra classifier par la suite, le modèle ne sera pas performant.

exemple d'apprentissage chat et chien

Structurons davantage. Le carré rouge x représente les données entrantes. Il est possible de l’imaginer comme un tableau où chaque ligne est un exemple (et donc une image de chat ou de chien). En colonnes on trouvera les caractéristiques principales des exemples (Pour des images ce seront les pixels). A chaque exemple on associera ensuite une étiquette, représentée ici par le y. Le rôle de l’algorithme sera de déterminer quelle étiquette associer aux nouvelles données en fonction des caractéristiques qu’elles présentent.

schéma apprentissage supervisé en machine learning

Ca y est, on arrête avec la théorie, mais à quoi peut-on appliquer ce genre de techniques ? Les possibilités sont presque infinies. Les deux principales limites sont votre imagination et les données en votre possession.

Voici quelques cas d’usage :

  • La maintenance prédictive : Prenons à nouveau un chat, le votre si vous en avez un. Vous voulez savoir à quel moment il va rencontrer un problème de santé. En réalité, nous faisons de la maintenance préventive régulièrement en amenant notre animal chez le vétérinaire. Cela permet d’anticiper les problèmes en connaissant à peu près quand ce genre d’animal va être le plus sujet à des soucis de santé. Cependant, votre chat est unique. Il n’aura peut-être aucun problème et vos rendez-vous chez le vétérinaire auront été inutiles ou, au contraire, il lui en faudra davantage. Grâce à la maintenance prédictive, l’animal peut-être supervisé en temps réel : pouls, taux d’hormones… En analysant les données passées du chat, on sait reconnaître le symptôme d’un problème de santé qui conduira donc à un rendez-vous chez le vétérinaire.
  • La prédiction de ventes/stock : soyons honnêtes, en terme de nourriture pour chat, certains mois les placards en sont remplis et soudain, la pauvre bête n’a plus rien à se mettre sous la dent. Ici, nous allons donc chercher à prédire la quantité de croquettes à acheter chaque mois. En observant les habitudes alimentaires de notre chat, nous allons pouvoir prédire précisément la quantité mensuelle à acheter. Facile, n’est-ce pas ? Cependant, les choses se compliquent puisque l’on doit prendre certains critères en considération pour avoir un modèle pertinent : chaton, votre chat mangeait moins, on peut donc penser qu’en grandissant, il mange de plus en plus (c’est la tendance). De plus, il mange peut-être davantage en hiver pour se protéger du froid (c’est la saisonnalité). Et en plus de tout cela, imaginons qu’il décide soudainement que la nourriture que lui donne votre voisine est finalement plus à son goût ?
Illustration humoristique
  • Réduction du taux d’attrition : restons avec nos chats. L’intérêt ici est de savoir à quel moment le chat de gouttière que nous nourrissons depuis deux ans va finalement se dire que l’herbe est plus verte chez le voisin. Grâce au grand nombre de chats que nous avons nourri, nous pouvons déterminer le facteur qui les pousse à nous quitter. Cependant, il reste difficile d’être certain de la raison puisque nous ne connaissons pas grand chose de la vie du chat, sinon son comportement avec nous.
  • Détection d’évènements : il s’agit d’un cas similaire à celui du taux d’attrition mais un peu moins compliqué. On déterminera, par l’analyse du comportement de notre chat, s’il vit un événement particulier, ou s’il s’apprête à en vivre un. Il peut s’agir par exemple de l’achat d’une voiture, même si ce genre d’événement sera peu fréquent chez un chat.

L'apprentissage non supervisé

Ici, plus d’étiquette à disposition, Le principe est donc d’identifier une structure dans les données afin de l’interpréter.

Contrairement à l’apprentissage supervisé, ici l’action ne se fait pas en deux temps. On ne se sert plus d’éléments étiquetés passés pour faire de la prédiction mais on s’intéresse à la structure des caractéristiques de nos données.

schéma apprentissage non supervisé en machine learning

Alors on reprend notre jeu de données d’images de chats et chiens, mais on n’est plus capable de dire à la machine s’il s’agit de chats ou de chiens (plus d’étiquettes). On lui demande d’analyser les caractéristiques de nos images pour les interpréter. Ici, cela pourrait permettre l’identification de 2 groupes d’images similaires (clusters). Chaque point de données (dans notre exemple point = image) sera alors placé dans un des deux groupes selon ses caractéristiques pendant le regroupement (clustering). On pourrait ainsi conclure que l’un des groupes correspond à des images de chats, et l’autre à des images de chiens.

L’apprentissage non supervisé se distingue donc aussi par le fait qu’il n’y a pas de vérité absolue dans les résultats. Il est donc plus difficile de savoir si le modèle obtenu est pertinent. Afin de s’assurer de la légitimité des résultats on préfèrera donc vérifier si les groupes constitués correspondent bien aux données (que chaque cluster est compact, différent et indépendant des autres clusters) et que les clusters trouvés ont un sens d’un point de vue métier.

Différentes méthodes d’apprentissage non supervisé servent principalement à préparer les données. Cela permet d’avoir une image plus claire de la structure des données avant d’aller plus loin dans leur analyse en utilisant d’autres méthodes.

Cependant, elle se suffit à elle-même dans certains cas d’usage :

cluster en machine learning
  • Détection d’anomalies : ici le but est d’identifier les chats qui sortent du lot. On lance donc un regroupement et tous les points de données qui n’entrent dans aucun cluster sont considérés comme des anomalies. Il est aussi possible de détecter une anomalie sous forme de groupe entier composé de différents chats qui n’entrent dans aucun des autres groupes. Sur l’image ci-dessous, quel chaton est l’anomalie ?
détection d'anomalies

Vous vous dites que la question est un peu bête, que l’anomalie saute aux yeux : l’unique chat noir sur la gauche de l’image. C’est parce qu’il s’agit d’un piège, tout dépend du critère qui définit l’anomalie. Le chaton noir pourrait bien être une anomalie mais cela ne serait le cas que si l’on recherche une anomalie en fonction de la couleur du pelage. En revanche, si l’on s’intéresse à la direction des regards des chatons, c’est celui du milieu qui est notre anomalie. D’où l’importance de l’analyse à posteriori avec une expertise métier du modèle.

  • La détection de fraudes est sans doute le cas d’usage le plus commun de la détection d’anomalies. Ici, on part donc à la chasse aux tricheurs. Dans notre cas, il pourrait s’agir du chat qui va manger chez le voisin. Nous nous basons donc sur les données relatives aux habitudes alimentaires de nos chats. Dans chaque groupe, on aura donc des chats aux habitudes similaires. Ceux qui mangent de façon atypique en seront exclus. La difficulté ici est de ne pas confondre un chat qui mangerait peu (ce qui constitue une anomalie) simplement car il est petit, et un véritable tricheur (ce qui constitue une fraude).
  • Segmentation de marché : le but ici est de faire une étude de marché afin de mieux comprendre les comportements de nos chats. Nous savons que tous nos chats sont différents et pourtant, nous les traitons de la même manière. Mais nous voulons changer et offrir des services personnalisés. En terme de nourriture par exemple, il est possible d’adapter les doses ou le type de croquettes grâce à un regroupement. Attention tout de même aux critères définis car, comme pour la détection d’anomalie, un mauvais choix de critères peut rendre un regroupement inutile.

L'apprentissage par renforcement

En étudiant les apprentissages supervisé et non supervisé, probablement 99% des cas d’usage du Machine Learning sont couverts. Mais vous êtes restés jusqu’ici alors intéressons nous au petit pour cent restant.

L’apprentissage par renforcement est un peu similaire à la manière dont un bébé apprend. Tout comme le nourrisson, au départ, la machine ne connait rien et doit donc apprendre par l’action. Elle tente et, en fonction des résultats obtenus, elle décide s’il s’agissait d’une bonne décision. Après de nombreuses tentatives, si la machine a bien appris de ses erreurs, elle devrait sans cesse s’améliorer jusqu’à ne prendre que de bonnes décisions.

robot qui apprend à manger

Les cas d’usage de ce type d’apprentissage sont plus restreints. Le milieu de la robotique est celui dans lequel il est le plus commun. De cette manière, on peut apprendre à un robot à faire toutes sortes d’actions comme attraper une balle ou manger par exemple.

Il pourrait aussi s’appliquer aux dispositifs intelligents de pilote automatique ou d’aide à la conduite pour les voitures ou les drones. On l’utilise aussi fréquemment pour apprendre aux machines à jouer aux échecs ou à des jeux vidéo comme Pac-man ou Mario. Enfin, il est aussi beaucoup utilisé dans la publicité en ligne en personnalisant et adaptant les annonces pour chaque utilisateur. Mais comment ? On y vient.

En apprentissage par renforcement, un « agent » va prendre des décisions en temps réel en fonction des données qu’il reçoit de son environnement. Lorsqu’il prend une décision, les données qu’il obtient de l’environnement (qu’on appelle récompenses) lui permettent donc de savoir ensuite s’il s’agissait d’une bonne ou d’une mauvaise décision. En fonction de ce résultat, l’agent modifiera son comportement.

Schéma apprentissage par renforcement en machine learning

Le problème est que les conséquences de sa décision peuvent prendre du temps à lui parvenir. L’agent peut donc en prendre de nouvelles entre temps et on ne sait plus quelle décision a conduit à telle récompense.

Prenons un exemple : on doit malheureusement laisser nos chats et nos chiens de côté, il nous faut un robot ! Prenons donc un robot chien (évidemment !) à qui on souhaiterait apprendre à marcher et explorer le monde qui l’entoure. Notre robot aura donc un ou plusieurs capteurs, et son environnement sera représenté par toutes les données qu’il recevra via ce ou ces capteurs. Disons que le nôtre n’a qu’un capteur (raison budgétaire) et qu’il s’agit d’une caméra frontale. Son environnement est donc une image, sa récompense est son intégrité physique en fonction de la distance parcourue. Notre robot reçoit une image, prend la décision de faire un pas et reçoit donc une nouvelle image. Son objectif est d’aller le plus loin possible sans être abîmé. Notre petit robot va donc avancer et rencontrer des obstacles. S’il fonce dans un mur, il associera le fait d’avoir pris un coup et de possibles dommages à ce mur, et ne le refera plus afin de pouvoir continuer à se déplacer. Au fur et à mesure il apprendra à les contourner puis finalement à les éviter complètement.

Ici, la difficulté est que notre petit robot ne sait rien au départ, et contrairement à nous, n’a pas d’instinct de danger par exemple. Donc s’il s’avance près du bord d’une falaise, il lui faudra en tomber pour apprendre qu’il s’agit d’une mauvaise décision, mais la chute aura déjà mis fin à sa vie de petit robot.

C’est probablement le problème majeur que l’on rencontre en apprentissage par renforcement. Si vous souhaitez apprendre à un drone à voler seul, il vaut mieux avoir les moyens d’avoir plusieurs drones. Car il vont devoir rencontrer un grand nombre d’obstacles afin d’apprendre à les éviter à l’avenir. C’est pourquoi on utilise souvent une simulation d’environnement au début pour apprendre les règles fondamentales avant de passer à la réalité.

Voilà qui conclut donc notre étude des différentes manières d’approcher le concept du Machine Learning. Les données disponibles et le problème à résoudre seront les principaux critères pour faire votre choix entre les trois types d’apprentissage.Le Machine Learning est basé sur les mathématiques et permet de créer des modèles complexes mais ce n’est pas de la magie. Une bonne définition du problème à résoudre ainsi qu’une expertise du domaine sont nécessaires si vous voulez en tirer tous les bénéfices souhaités.