On en parle partout. C’est même dans presque tous les grands messages marketing mais surtout c’est au cœur des stratégies de communication et de développement des entreprises. Pour tout dire, il est difficile aujourd’hui de lire une revue spécialisée ou même la presse courante sans y voir une mention. Bref, si le Machine Learning fait la part belle à nos canaux de communication, est-il pour autant bien compris de tous ? Faisons ensemble un point rapide et ludique sur ce qu’est concrètement le Machine Learning.
Machine Learning & Intelligence Artificielle
La première confusion que l’on rencontre couramment est l’amalgame entre IA (Intelligence artificielle) et ML (Machine Learning). Si ces deux concepts sont liés, ce sont deux notions différentes. Pour faire simple, L’intelligence artificielle (en reprenant la définition Larousse) est un « l’ensemble de théories et de techniques mises en œuvre en vue de réaliser des machines capables de simuler l’intelligence ». Le Machine Learning, lui n’est en fait qu’une de ces disciplines.
Le Machine Learning est donc l’une de facettes de l’IA dédiée à l’apprentissage automatique. Dit plus simplement, le machine Learning a pour vocation de nous imiter – nous être humains – dans notre apprentissage. Jusque maintenant, toutes nos approches ou presque étaient déterministes. En bref nous posons des lois figées que l’outil informatique doit respecter. Malheureusement ces lois trouvent vite leur limites, car comme on le dit si bien « L’exception fait la règle ». Résultat, on créé des algorithmes qui rapidement empilent des exceptions jusqu’à ce que ces fameuses exceptions dominent la dite règle. Catastrophe ! les logiciels deviennent alors ingérables … Pour résumer, ces approches déterministes ne sont pas suffisantes car elles ne savent pas s’adapter à une certaine réalité.
Pour aller plus loin il va falloir penser différemment ces règles/lois et les calquer sur des expériences concrètes.
L’objectif est donc de passer d’une logique stricte et descriptive à une logique expérimentale. Cela implique de faire appel à des techniques qui vont s’abreuver de statistiques et donc de données. Cela peut apparaître compliqué, bien sur, mais à y réfléchir c’est exactement comme cela que l’être humain fonctionne !
Expérimenter pour produire une logique
Prenons un exemple ou plutôt une expérience simple: 2 pots de couleurs différentes sont disposés devant moi. J’ai par ailleurs des pions de formes différentes (rond, carré, triangulaire, ovale, etc.) dans mes mains.
L’expérience va se dérouler en deux phases:
Phase 1: vous disposez vos pions dans les pots :
- Le pion rond dans le pot A
- Le carré dans le pot B
- Enfin, le pion triangulaire dans le pot B
Avez-vous deviné la règle de répartition à ce niveau là ? pas certain … je continue,
- Le pion ovale dans le pot A
- Le pion hexagonal dans le pot B
Et là ? vous avez trouvé ?
Phase 2: Si je vous présente maintenant un pion en forme de pentagone … où le mettrez-vous ?
Il est fort à parier vous me le mettrez dans le pot B !
Et bien, bravo, c’est exactement comme ça que fonctionne le Machine Learning !
Naturellement nous avons regardé les cas présenté et nous en avons déduis que la caractéristique de répartition était le caractère arrondi ou non des pions. Et c’est exactement comme cela que nous fonctionnons tous les jours dés que nous apprenons. Bien sur c’est un exemple simple, car dans la réalité il y a beaucoup plus de cas de figures mais aussi plus de paramètres à prendre en compte.
Approche Déterministe vs Probabiliste
Qui dit plus de cas de figure (donc plus de données) dit aussi plus d’erreurs ou plutôt plus de cas qui, pour des raisons diverses (de nouvelles caractéristiques ?), vont sortir du lot. Imaginez en effet que dans notre expérience précédente j’ai effectué la première phase avec des milliers de cas ! difficile d’imaginer qu’aucune erreur ou imprécision s’y serait glissé non ? ou que tout simplement d’autres caractéristiques ou paramètres (cachés jusque là) fassent en fait aussi partie du choix réel de répartition (comme la taille par exemple).
Bref, ce sont bien souvent nos fameuses exceptions que nous avons toujours du mal à gérer. Qu’à cela ne tienne, une approche par les données les rendra insignifiantes ! nous entrons alors dans l’ère des statistiques/probabilités.
Résumons simplement les choses:
- L’approche déterministe impose que chaque pion de forme arrondi aille dans le pot A et les autres dans le pot B. mais attention car cette loi (stricte et rigide) ne gère pas d’exceptions ! D’un point de vue algorithmique c’est plus simple et surtout personne ne peut déroger à la loi édictée ! Chaque exception devra donc être alors gérée elle aussi de manière explicite.
- L’approche probabiliste ou statistique, elle, est plus souple car elle va se baser sur des observations réalisée. L’idée est donc de décomposer le problème en deux phases: une première phase d’observation (ou d’apprentissage) dans laquelle on collecte des données et la seconde qui, à partir de ces observations va nous donner une loi (plus ou moins approximative). Dans ce cas de figure vous ne connaissez pas la règle/loi, mais vous devez en déduire une à partir des données.
Ces deux approches sont fondamentalement différentes car si la première parait plutôt simple à mettre en place à première vue, la seconde ajoute une nouvelle composante primordiale: la prise en compte d’incertitudes. En effet qui dit probabilités ou statistiques dit aussi aléas et biais ! Ces deux notions jusque là mises à l’écart vont nous permettre de définir des modèles analytiques et et prédictifs reflétant une réalité constatée et non plus une réalité édictée.
Vous avez dit prédiction ?
Car oui, l’objectif principal du Machine Learning est de se mettre en capacité de prédire des comportements ou des informations
… et, prédire à partir de données seulement !
J’y reviendrai lors d’un prochain article mais sachez que pour cela les avancées en matière de connaissance mathématiques, de puissance de stockage, d’intégration de données mais aussi de puissance machine tout simplement permettent aujourd’hui d’obtenir des résultats bluffant. Au delà de la boite à outil du Machine Learning (Algorithmes de régression, de classification et autres modèles de « clustering ») on distingue deux typologies principales d’approches : l’approche dite supervisée et l’approche non-supervisée.
L’approche dite supervisée est celle qui par du fait que vous avez fait des observations et que vous en avez les résultats. Si on prend un exemple médical, vous avez les cas cliniques et des diagnostiques en face. Vous avez donc des symptômes, différentes caractéristiques sur vos patients (les fameux paramètres décrits plus haut) et le diagnostique constaté (l’étiquette pour reprendre le jargon ML). Dans le cas d’une approche non supervisée c’est plus complexe car vous avez les cas cliniques mais pas les diagnostiques correspondants.
En route vers l’informatique des datas !
L’enjeu principal consiste donc à produire une loi à partir des données qui minimisera le taux d’erreur. Or pour maximiser la qualité de son système de Machine Learning il va falloir augmenter:
- Le nombre de données ou de constats : souvenez-vous dans mon expérience, j’ai dû rajouter des cas de figures afin que l’on puisse comprendre le critère de répartition.
- Le nombre de caractéristiques: souvenez-vous aussi qu’un pion soit de telle forme, sa taille, sa couleur, etc.
Bref il va falloir collecter beaucoup d’informations afin d’alimenter notre système mais heureusement, nous sommes dans l’ère du Big Data 🙂
Cette approche probabiliste ne se fera pas sans erreur comme je l’ai précisé plus haut. C’est logique, plus on a de données, plus il y aura de variations et d’erreurs. Malheureusement ou plutôt heureusement il faut l’accepter. Pourquoi heureusement, et bien tout simplement parce que le Machine Learning est conçu pour gérer les variations/erreurs. Et puis une fois de plus, c’est ce que nous faisons – nous êtres humains – naturellement tous les jours et tout le temps dans nos apprentissages.
Pour reprendre la citation de Roman Kacew : « Le blanc et le noir il y en a marre, le gris il n’y a que ça d’humain ». Car on ne vit pas dans un monde rigide et chaque jour nous faisons l’expérience de ces petites variations que nous acceptons inconsciemment. Alors, si l’homme fonctionne comme cela, le Machine Learning en est sans doute la réponse digitale.
Je conclurai tout simplement par :
Faire du Machine Learning c’est concevoir des systèmes à partir des données.
C’est donc une véritable révolution dans notre approche logicielle mais surtout une entrée concrète dans l’ère du digital des données !