Bannière
avatar
avatar

L'AutoML ou comment automatiser le Machine Learning


L'AutoML est une pratique courante dans les projets Data Scientist qui consiste à automatiser le création des modèles de Machine Learning. Cela va permettre de gagner du temps puisque cette pratique va tester à la fois plusieurs méthodes de transformations des données, mais aussi plusieurs modèles de Machine Learning pour ensuite les comparer et conserver le plus performant.

En voyant ceci, beaucoup sont tentés de dire que cette pratique va remplacer à terme les Data Scientists. Mais est-ce réellement le cas ? Peut-on faire confiance à l'AutoML au point de ne plus toucher au pipeline ML ? Et plus précisément, c'est quoi le pipeline ML ?

Les étapes d'un projet de Machine Learning

Pour bien comprendre comment fonctionne l'AutoML et pourquoi il peut se révéler utile, revenons en détails sur les étapes qui constituent un projet de Machine Learning.

Pipeline ML

Avant même de démarrer le développement, il faut tout d'abord déterminer l'expression du besoin, qu'est-ce que l'on souhaite résoudre/optimiser avec le modèle prédictif. Une fois établi, vient ensuite l'identification des sources de données, qui consiste à se poser la questions suivante :

Quelles sont les sources de données qui vont me permettre de résoudre mon problème en les utilisant pour un algorithme prédictif ?

Ces données encapsulent la réalisation d'un phénomène à un instant donné (scoring, tarification, comportement) : si c'est ce dernier que l'on souhaite reproduire, les données permettront de le modéliser.

Enfin, c'est le pipeline ML qui est véritablement le cœur du sujet pour le Data Scientist. Ce pipeline, dont l'objectif est d'aboutir à un modèle de Machine Learning optimal, est constitué de plusieurs étapes.

  1. La collecte des données, qui consiste à récupérer les données depuis les sources renseignées.
  2. Le nettoyage des données va permettre de supprimer les valeurs aberrantes, corriger les valeurs manquantes mais aussi apporter de la connaissance sur les données. Savoir de quoi on parle est extrêmement important pour la suite du pipeline.
  3. Plus technique, la partie appelée Feature Engineering & Selection a deux objectifs. Tout d'abord, il s'agit de construire les variables explicatives, appelées features, qui vont être fournies à l'algorithme en entrée et qui sont supposées apporter de l'information sur le phénomène. Ensuite, la sélection des variables va, quant à elle, permettre de sélectionner uniquement les variables qui nous paraissent pertinentes dans le sens où elles vont nous apporter de l'information sur le phénomène cible. À titre d'exemple, si l'on souhaite calculer la durée d'un trajet automobile, l'heure de départ va fortement influencer le résultat, contrairement au nombre de passagers qui semble être moins impactant.
  4. La phase d'entraînement du modèle, c'est l'art de calibrer un modèle de Machine Learning à partir des variables explicatives calculées et sélectionnées dans l'étape précédente. En règle général, le Data Scientist privilégie un modèle en particulier en fonction de la problématique (prédiction d'une quantité, d'une catégorie, regroupement) ainsi que du format des données (tabulaires, images, texte).
  5. La dernière étape doit s'assurer que le modèle est optimal : elle se définit par de bonnes performances quantitatives (évaluation par une métrique) mais aussi par une interprétabilité pertinente du modèle (peut-on expliquer pourquoi le modèle a calculée une telle prédiction ?).

Pour terminer, le déploiement est la dernière étape pour exposer le modèle sur un serveur afin qu'il puisse être accessible et consommé par des utilisateurs (authentifiés ou non) ou des services.

Word Embedding : une méthode d'encodage pour le texte

L'automatisation du pipeline ML

Faisons maintenant un focus de la deuxième étape à la dernière. Toutes ces étapes doivent être exécutées séquentiellement, la sortie d'une étape est l'entrée de la suivante. Ainsi, l'on souhaite effectuer une modification sur une étape, il faut au moins relance toutes celles qui en découlent : c'est une tâche redondante qui va justement être automatisée dans le cas où l'on souhaite tester plusieurs modèles et plusieurs méthodes d'encodage (feature engineering).

Il existe une multitude de librairies permettant de faire de l'AutoML. Les plus connues, en Python, supportent les frameworks connus comme scikit-learn, tensorflow ou pytorch.

  • La plus facile à mettre en place est auto-sklearn, qui se base sur la très populaire librairie scikit-learn pour automatiser l'entraînement des modèles natifs à cette dernière. En combinant avec les pipelines de scikit-learn, il est possible d'automatiser le pipeline ML dans son intégralité avec peu de modifications du code source.
  • Sur des sujets plus spécifiques, comme les réseaux de neurones par exemple, nous pouvons citer AutoKeras, une librairie AutoML spécialement conçue pour la librairie keras avec les réseaux de neurones.
  • Si l'on se base sur des produits ou services intégrées, un des plus utilisé est Cloud AutoML de Google Cloud, qui permet très rapidement et à l'aide d'une interface visuelle d'automatiser le pipeline ML. D'autres solutions, comme Dataiku, intègre des solutions d'AutoML, ayant également des contraintes spécifiques sur l'interprétabilité ou le rapport temps de calcul sur performances.

Un exemple d'optimisation des hyper-paramètres

Quels sont les avantages et les inconvénients de l'AutoML ?

Bien entendu, l'AutoML n'est pas une solution miracle qui va remplacer les Data Scientists. Au contraire, il va être un puissant allié pour se concentrer à l'essentiel. Profitant de l'automatisation du pipeline ML, les avantages sont multiples.

  • Le premier avantage de l'AutoML est le gain de temps comparé à l'approche classique où le Data Scientist doit lui-même développer les différentes expérimentations sur les modèles.
  • Le second est la cohérence des traitements appliqués sur le jeu de données : un des problèmes majeurs dans les projets Machine Learning est le manque de centralisation des étapes de traitement de données, qui aboutissent à des difficultés pour reproduire les expérimentations.
  • Le dernier avantage la facilité d'utilisation puisqu'il n'est plus nécessaire de connaître les détails de fonctionnement de chaque algorithme que l'on va utiliser, les librairies d'AutoML étant justement adaptées pour les modèles qu'elles implémentent.

À l'inverse, l'AutoML va aussi présenter quelques inconvénients.

  • Même si l'automatisation va tout de même apporter des modèles avec de bonnes performances, elles ne seront pas optimales comparé à un modèle maîtrisé par un Data Scientist qui sait parfaitement comment l'optimiser.
  • L'autre problématique est l'effet boîte noire : puisque l'on sélectionne le modèle qui maximise des performances quantitatives, ce dernier peut ne pas correspondre au modèle souhaité s'il n'est pas facilement interprétable (comme cela peut être demandé en assurance ou en médecine).
  • Enfin, les solutions AutoML ne sont pas toujours adaptées à certaines problématiques spécifiques où le traitement des données doit nécessiter une intervention humaine.

AutoML en bref

Bien que l'AutoML peut être utile dans certains cas, cela ne remplacera pas le Data Scientist : bien souvent, la créativité humaine est meilleure pour déterminer les meilleures méthodes d'encodage et l'AutoML ne remplacera pas une connaissance fine et précise d'un modèle puissant.

En somme, il est préférable de garder l'AutoML sur des sujets qui ne permettent pas d'investir beaucoup de temps dans la phase de construction du modèle : dans ce cadre précis, il s'agit d'une pratique parfaitement adapté.

Partager sur

Sois le premier au courant !

Inscris-toi à notre mailing list pour tout connaître de la Blent Family (c'est promis, ta boîte mail ne sera pas inondée 😉)