Comment faire du Machine Learning en entreprise ?

Aujourd’hui la tendance veut qu’un bon nombre d’entreprises essaient de mettre en place une stratégie d’intelligence artificielle (IA) au sein de leurs structures. Mais comme toutes les tendances, l’évolution est rapide et n’est pas forcément comprise par tous. Cette engouement peut se comprendre, utilisée à bon escient, l’intelligence artificielle permet de passer pas mal de limites et d’améliorer la qualité de travail des employés (pour ne citer que cela !). Le problème avec l’IA est que c’est un terme à la mode et peut signifier tout ce que les gens veulent bien mettre dedans.

Pour moi l’IA signifie la science/le mouvement qui englobe les programmes capables de réaliser des tâches dites « intelligentes ». C’est pourquoi dire « je veux faire de l’IA » peut vouloir dire beaucoup de choses et rien à la fois. En revanche il existe des outils permettant de créer ces programmes. C’est là qu’intervient le Machine Learning (ML) !

La donnée !!

Quand on parle de ML, on parle souvent de performance d’algorithmes capables de dépasser l’être humain mais peu souvent de données. En français « Machine Learning » correspond à « Apprentissage automatique ». Apprentissage à partir de… vous l’avez ? Oui ! Des données, exactement!
Sans données le ML n’est rien. Il faut savoir que les progrès réalisés dans ce domaine ont été possibles grâce à des jeux de données corrects ! De plus, on peut faire du Machine Learning sans algorithmes complexes mais pas sans bonnes données. Et c’est là le principal problème.
Mais est-ce si dur d’avoir des bonnes données? Il n’existe pas de bonnes données à proprement parlé mais plutôt de la bonne utilisation de celles-ci !
En effet, dans beaucoup de cas les entreprises ne sont pas prêtes à faire du Machine Learning. Cela est dû au fait qu’il n’existe pas d’architecture de données et encore moins d’infrastructure permettant d’implémenter les algorithmes et les opérations les plus basiques.

Alors comment faire du Machine Learning dans son entreprise? Il faut prendre en compte que le Machine Learning est la dernière étape de la science des données.

Etape jusqu’au Machine Learning

Je vais vous présenter ici une idée globale de comment arriver à faire du ML dans les meilleures conditions. Pour cela je vais présenter les échelons de la pyramide de la science des données. Autrement dit, des étapes pour faire du ML de manière optimale.

Pyramide des besoins de la science des données. Les exemples ne sont pas exhaustifs, cela sert juste à proposer une idée des étapes à réaliser avant le Machine Learning. Source
  • La collecte :

    La première des choses à faire est de collecter la donnée! Pour cela il faut se poser les bonnes questions ! Existe-t-il des données disponibles ? Si non, comment je les récolte ? Qui les récolte ? Pourquoi ? Toutes les informations sont-elles utiles ? A qui sont-elles adressées ? Bref tout un tas de questions permettant de déterminer les problèmes et/ou possibilités que présentent la collecte de données.

  • Deplacement / stockage :

    C’est cool vous avez des données, mais vous en faites quoi maintenant ? Il va falloir définir comment ces données circulent à l’intérieur de votre système. Avez-vous des flux de données fiables ? Où stocker ces données ? Faut-il mettre en place une architecture spécifique (type Kafka, Spark…). Qui aura accès aux données et dans quelle mesure sont-elles faciles d’accès ? Encore ici tout un tas de questions vous permettant d’utiliser au mieux les données récoltées à l’étape précédente.

  • Exploration/transformation :

    En se renseignement un peu sur le ML vous pourriez croire que toute la technique consiste à choisir le bon algorithme et lui associer les bons paramètres. Hélas, la majeure partie du travail, qui vous coûtera pas mal de temps d’ailleurs, sera de nettoyer vos données et d’éliminer les potentielles valeurs aberrantes. Cette préparation n’est pas à négliger ! Cela permet d’éviter au maximum les biais apportés dans les données. Cela vous permettra aussi de voir si vos données tiennent la route, s’il n’en manque pas et/ou si ce que vous avez collecté correspond à vos attentes. Il se peut qu’au final vous recommenciez la première étape… Courage c’est pour la bonne cause !

  • Aggregation / catégorisation :

    En informatique, l’expression «Garbage in, Garbage out» signifie que si les entrées d’un système sont mauvaises, les sorties le sont forcément aussi. Cette expression, de mon point de vue, représente parfaitement une des limitations du ML. A cette étape vous devez normalement savoir ce que vous voulez prédire ou apprendre à partir de vos données. Pour cela, vous allez devoir apporter de la caractérisation à celles-ci (on peut appeler ça le «feature engineering»). Ceci vous permettra de mettre en valeur ce qui a du sens dans vos données brutes. Par exemple pour une classification, il faut que l’ensemble des données d’apprentissage soit correctement agrégé/étiqueté avec les caractérisations les plus pertinentes. Cette étape se réalise soit à la main, soit automatiquement, mais là c’est une autre manière de faire de ML, on passe au Deep Learning.

  • Appentissage / Optimisation :

    Le piège est de vouloir implémenter un modèle trop compliqué ! Dans la plupart des cas les modèles les plus simples sont les plus efficaces. Le ML s’entraîne à partir de patterns dans vos données et en explorant l’espace des paramètres associés à l’algorithme choisi. Plus vous avez de paramètres, plus l’apprentissage sera long et plus vous avez de chance de faire du sur apprentissage. C’est à dire que le modèle généré ne pourra pas se généraliser au-delà des données d’apprentissage. Concrètement, il se peut que le modèle fonctionne bien sur vos données d’apprentissage mais lorsque vous voulez prédire une nouvelle entrée, le résultat obtenu est complètement absurde. C’est à ce moment que s’engage un jeu d’optimisation de paramètres et de longues phases d’apprentissage afin de trouver le modèle réalisant au mieux la tâche souhaitée.
    De plus, Le ML ne marche que si votre jeu de données d’apprentissage est représentatif ! Je m’explique : il faut faire attention aux déviations qu’il pourrait exister entre votre jeu de données d’apprentissage et les données futures. En effet, si vous avez entraînez vos modèles sur les données des ventes de téléphones à clapet à Noël en 2000 et que vous voulez prédire les ventes de votre nouveau smartphone tactile à Noël 2019 pas sûr que ça soit très efficace. C’est pourquoi il faut ré-entraîner vos modèles souvent pour éviter les dérives.

Conclusion

Je pense que vous l’aurez compris l’élément clé est la donnée. Le buzzword « Intelligence Artificielle » fait que les gens pensent qu’utiliser le Machine Learning va gérer et traiter comme par magie un tas de données non structurées ou de manière approximative, qui n’ont pas le même format ou de liens concrets. C’est pourquoi il faut avoir une vision large du ML. Soyez toujours sceptique, et abordez le ML de la même manière que n’importe quelle autre ingénierie logicielle. Quand un système à base de Machine Learning se plante, c’est rarement dû à l’algorithme lui-même. Plus probablement, vous avez introduit une erreur humaine dans la donnée d’apprentissage, qui a généré un biais ou une erreur systématique.

Et le KZS LAB dans tout ça ?

Certaines de ces étapes ne sont pas si faciles que ça a réaliser ! Notamment les étapes de collecte et stockage des données. KZS LAB propose un accompagnement dans la réalisation des étapes vers le Machine Learning.

Exemple de prototype d’architecture mise en place par KZS LAB pour le traitement et stockage des données.

L’idée est d’envoyer les données récoltées dans les services web scala (tous types de données tant que le code sait les traiter). Ces données sont poussées sur le webservice pour être envoyées à kafka qui les transmet aux serveurs de stockage (hadoop/hdfs). L’intérêt de Kafka est que si vous voulez injecter une énorme quantité de données en même temps sur les serveurs de stockage, il va servir de tampon pour ne pas les surcharger (du fait que les serveurs hadoop/hdfs ne sont pas capables d’écrire assez vite). A ce moment de l’explication le prototype répond aux questions de comment récupérer les données et comment les stocker. Génial !
En ce qui concerne les étapes d’exploration/transformation et aggrégation/catégorisation, celles-ci peuvent se faire via zeppelin qui donne à l’utilisateur l’accès aux données. Les opérations réalisées par ce dernier seront distribuées par spark afin d’avoir une optimisation des tâches effectuées. Après cela il y de quoi jouer avec vos données et faire du Machine Learning !

1 réaction sur “ Comment faire du Machine Learning en entreprise ? ”

  1. ESN Paris Réponse

    Article très intéressant! Vous avez raison d’insister sur le fait que rien ne se fait comme par magie. Derrière l’IA et le ML, derrière les applications automatisées, il y a beaucoup de traitement de données et de développement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.