machine-learning-et-big-data

Processus de développement d’un projet d’apprentissage automatique

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

L’une des choses les plus importantes dans le processus de développement d’un projet d’apprentissage automatique est d’avoir une très bonne compréhension du problème à traiter, ce qui vous permettra de bien définir le problème que confronte l’entreprise. 

Alors que depuis quelques temps, l’apprentissage automatique est devenu important pour les entreprises. Alors, les projets d’apprentissage automatique nécessitent de plus en plus une compréhension du processus de développement. Néanmoins, développer et gérer un modèle adapté à une mise en production n’est pas un travail facile. Dès le début, cela nécessite une bonne maitrise des données à manipuler, la connaissances des algorithmes et astuces necessaires à la mise  en  œuvres d’un modèle performant. En ce sens, une bonne compréhension du processus de développement peut déjà éviter bien de détours. Aussi, cela aide à mieux utiliser les outils d’apprentissage automatique.  

1- Définition du problème

L’une des choses les plus importantes dans le processus de développement d’un projet d’apprentissage automatique est la bonne compréhension du problème à traiter. Ce qui permet de bien définir le problème confronté. 

La définition du problème peut être subdivisé en quatre étapes : 

    1. Fonctionnalité du problème 
    2. Objectif de l’apprentissage (Classification, Régression ou le Clustering) 
    3. Les variables 
    4. Les entrées et les sorties 

2- Collecte de données

Dans le développement d’un projet d’apprentissage automatique les données jouent un rôle clé. De ce fait, avoir un ensemble de données d’entraînement utiles pour la résolution du problème est un atout majeur. Pour les débutants dans l’apprentissage automatique, il y a des données disponibles sur Kaggle, du référentiel UCI MLAPD (Awesome Public Datasets), Data Hubetc.. En ce qui concerne des problèmes réels, la collecte des données se fait à partir de sources multiples en utilisant des APIs selon le format de données  à collecter, des bases de données, des données d’entreprises etc..

3- Prétraitement des données

Plus précisément dans cette partie, le focus est mis sur la transformation des données. Ces dernières, sont transformées ou encodées dans le but de les amener à un état, tel que leurs caractéristiques pourront être facilement interprétées par l’algorithme.  

Souvent les données sont stockées sous différents types de format : images, audio, vidéos, tableaux structurés (fichiers csv, fichiers json, etc..) que les machines n’ont pas la capacité de les comprendre telles qu’elles sont. Mais heureusement, il y a dans ce cas, tout un ensemble de manières de procédés à mettre en pratique pour faciliter leur exploitatation dans les meilleures conditions d’usage. 

  • Intégration de données : Les données collectées à partir de sources multiples peuvent être de formats différents. Alors, il faut les sauvegarder dans un magasin de données cohérent, tel qu’un entrepôt de données pour pouvoir les traiter, les rationaliser en un ensemble de données unique. 
  • Nettoyage des données : C’est la première étape du prétraitement des données et consiste à faire une vérification sur la qualité des données. C’est une caractéristique essentielle, déterminant la fiabilité de ces données en vue de prise des décisions. Néanmoins, les données provenant de sources différentes ont souvent des problèmes de qualité tels que : valeurs manquantes, valeurs aberrantes, valeurs incohérentes, valeurs de bruit, des doublons etc.. La routine du nettoyage des données est de remplir les valeurs manquantes, d’identifier les valeurs aberrantes, adoucir les données bruyantes, corriger les données incohérentes et résoudre la redondance causée par l’intégration des données.  
  • Transformation de données : Dans cette étape, les données sont choisies et sont transformées afin de les exploiter pour des modèles statistiques. Lors de leur transformation, les données sont mises sous des formes adaptées afin de mieux les explorer. L’objectif étant d’avoir une vue d’ensemble de ce que l’on a, celles qui pourront être utilisées ou pas et celles qui pourront être considérées comme étant des anomalies. 

A noter que la transformation de données peut impliquer certaines opérations comme: 

  • Lissage : La suppression de bruit dans les données. 
  • Normalisation : Mise à l’échelle pour tomber dans une petite plage spécifiée tel que 0-1 ou -1-1. (Généralement utilisée pour la classification, les réseaux de neurones et les algorithmes de clustering) 
  • Construction d’attributs : Construction de nouvelles caractéristiques à partir de celles données, afin de contribuer au processus d’extraction. 
  • Agrégation : C’est l’application des mesures statistiques telles que les moyennes, la médiane, la variance qui sont nécessaires pour résumer les données. 
  • Généralisation des données : Les données de bas niveau ou « primitives » (brutes) sont remplacées par des concepts de plus haut niveau grâce à l’utilisation de hiérarchies de concepts. 
  • Réduction des données : Cette méthode est utilisée pour réduire la représentation de l’ensemble de données dans un plus petit volume tout en maintenant l’intégrité de l’ensemble des données d’origine en utilisant des stratégies, telles que : Réduction de dimensionnalité, échantillonnage, histogrammes, clustering etc..

4- Séparation des données

Cette procédure consiste à prendre un ensemble de données et à le diviser en deux sous-ensembles.  

    1. Ensemble d’entraînement : C’est un sous-ensemble de données pour entraîner ou apprendre un modèle. Soit 80% du grand ensemble de données par exemple. 
    2. Ensemble de test : C’est un sous-ensemble pour tester le modèle entraîné ou appris. Soit 20% du grand ensemble de données par exemple. 

Il est très important que toutes les caractéristiques dans ces deux sous-ensembles de l’ensemble de données soient les mêmes que les caractéristiques de l’ensemble de données. Son objectif principal, est de faire une estimation sur les performances du modèle d’apprentissage automatique sur de nouvelles données : données non utilisées pour entraîner ou apprendre le modèle (ensemble de test).

5- Mise au point du modèle d’apprentissage

Dépendamment du problème, plusieurs algorithmes peuvent être compatible pour répondre au besoin. La plupart de ces algorithmes ont des hyperparamètres et effectuent des hypothèses particulières sur la structure des données ou les résultats souhaités. Cette étape comprend le choix, le paramétrage et le test de différents algorithmes pour avoir un modèle capable de  donner des résultats pertinents et des prévisions précises.

6- Entrainer le modèle

A cette étape, les données d’apprentissage sont utilisées pour améliorer progressivement la capacité du modèle. Alors, cette étape est souvent considérée comme étant l’essentielle de l’apprentissage automatique. Dans les faits, le modèle est alors exécuté avec l’ensemble des données d’apprentissage et produit un résultat. Ce dernier est ensuite comparé à la cible pour chaque vecteur d’entrée dans l’ensemble des données d’apprentissage. Sur la base du résultat de la comparaison et de l’algorithme d’apprentissage spécifique utilisé, les paramètres du modèle sont ajustés. L’ajustement du modèle (par la minimisation de la fonction de l’erreur) peut inclure, à la fois, la sélection des variables, et l’estimation des paramètres utilisés pour contrôler le processus d’entraînement. 

7- Évaluer et ajuster le modèle

L’évaluation du modèle permet de déterminer s’il fera un bon travail de prédiction de la cible sur les nouvelles données. Étant donné que les instances futures ont des valeurs cibles inconnues, il est très important de vérifier la métrique de précision du modèle sur les données pour lesquelles la réponse cible est déjà connue, et utiliser cette évaluation comme proxy pour la précision prédictive des données futures. 

8- Tester le modèle

Cette étape consiste à exécuter les données dans un contexte aussi proche que possible de l’application finale et de l’infrastructure de production. De réaliser aussi des ajustements sur les paramètres et hyperparamètres du modèle en fonction des résultats des tests. Cela permet donc, de découvrir des problèmes (cas de sous-apprentissage ou sur-apprentissage par exemple) dans le modèle ou dans son interaction avec le reste de l’application. 

9- Déployer le modèle

Lorsque des résultats suffisamment bons pour les besoins de l’application ont été obtenus, le temps du déploiement est enfin arrivé pour tester le modèle sur le système utilisé de l’application en question. Mais alors, il faut savoir que le déploiement d’un modèle de Machine Learning est un processus complexe qui demande de bien comprendre les enjeux relatifs à l’utilisation et à l’exploitation du modèle pour pouvoir être correctement effectué. 

Conclusion

L’apprentissage automatique est à la portée de toutes les entreprises, toutes tailles et tous secteurs d’activité confondus. Mais le secret de la réussite d’un projet d’apprentissage automatique consiste à adopter une approche appropriée au degré de maturité de données de l’entreprise, de son contexte et de son besoin dès le départ. Il y a bien plus à dire sur le processus de développement d’apprentissage automatique dépendamment de la taille de l’entreprise, du type de données et de l’objectif visé. Mais alors, j’espère que ces lignes vous ont données une idée. Donc, si prochainement vous devrez développer un projet d’apprentissage automatique, c’est sans conteste que vous seriez en mesure de le faire. 

Votre commentaire

Votre adresse email reste confidentiel.