[Machine Learning] Azure Machine Learning : présentation et utilisation

Ce billet présente la solution Machine Learning de Microsoft : Azure Machine Learning. Cette solution, orientée intelligence artificielle, permet d’étendre notamment les capacités d’analyse des Big Data grâce à l’analyse dite « prédictive ».

Pour comprendre les concepts associés aux Big Data, à Hadoop et à HDInsight, vous pouvez aller ici.

 

Présentation générale

    A propos du Machine Learning

Herbert Simon, prix Turing 1975 et prix Nobel d’économie 1978, disait: « Learning is any process by which a system improves performance from experience ».

Le Machine Learning (apprentissage automatique, en français, et souvent acronymisé « ML ») est une discipline de l’intelligence artificielle qui se focalise sur la construction de systèmes permettant à une variété d’algorithmes d’apprendre des données de sorte qu’ils soient capables d’analyser celles-ci en fonction du comportement des utilisateurs.

Il existe divers types d’apprentissages :

  • Supervised learning (apprentissage supervisé) : des algorithmes de classification (ou classement) et/ou de régression sont utilisés pour prédire, en entrée, les données non-lues, en étiquetant celles déjà traitées. Voici quelques exemples typiques :
    • D’application :
      • Détection de courriers indésirables.
      • Reconnaissance de caractères manuscrits.
      • Reconnaissance vocale.
      • Recherche d’informations.
    • D’algorithmes utilisés :
  • Unsupervised learning (apprentissage non-supervisé): dans ce contexte, les algorithmes doivent apprendre à réaliser de nouvelles tâches de façon autonome. C’est-à-dire sans qu’on ne leur indique explicitement comment les effectuer. Il s’agit, là, de « débrouillardise », d’analyse exploratoire, dont voici quelques exemples typiques :
    • D’application :
      • Reconnaissance de motifs.
      • Diagnostics médicaux.
    • D’algorithmes utilisés :
  • Semi-supervised learning (apprentissage semi-supervisé), qui est une combinaison des 2 types d’apprentissage précédents. Exemple d’application : reconnaissance faciale.
  • Reinforcement learning (apprentissage par renforcement), qui est un mode d’apprentissage basé sur l’interaction avec un environnement. Concrètement, dans ce contexte, les algorithmes apprennent des conséquences de leurs actions, de la même manière qu’un être humain peut apprendre de ses erreurs. On peut également parler d’apprentissage par la pratique, l’expérimentation, les tests… Quelques exemples typiques :
    • De contexte d’utilisation :
      • Banques (trading, détection de fraudes,…).
      • Jeux-vidéos.
      • Pilotage automatisé de machines (voitures, hélicoptères,…).
      • Robotique.
    • D’algorithmes utilisés :

Quelques cas d’utilisation concrets plus nombreux du Machine Learning sont consultables à l’URL suivante : https://www.kaggle.com/wiki/DataScienceUseCases.

 

Présentation d’Azure Machine Learning

Le développement et la démocratisation actuels du Machine Learning – longtemps réservé aux chercheurs – fait suite à celui des Big Data. Les algorithmes du Machine Learning pouvant permettre de repousser les limites de l’analyse des données en offrant la possibilité d’effectuer ce qu’on appelle une « analyse prédictive » de l’information traitée massivement.

C’est dans ce contexte, que Microsoft a implémenté Azure Machine Learning (AML), sa solution Machine Learning, dont voici un aperçu de son fonctionnement général :

x

 

Azure Machine Learning dispose, à ce jour, de 3 briques majeures :

  • ML Studio, qui permet d’implémenter des modèles prédictifs à partir de données importées. Ce service est accessible via Azure Management Portal ou ici : https://studio.azureml.net/. Les données peuvent être importées à partir de HDInsight, Azure Storage, des données locales,…
  • Azure Portal & ML API Service, qui permet de créer et gérer des espaces de travail ML Studio.
  • ML API Service, qui permet de publier les analyses prédictives effectuées à partir des modèles implémentés par ML Studio et déployés par Azure Portal & ML API Service. La publication peut se faire vers des applications Web, des applications mobiles, sous la forme de rapports interactifs (PowerBI,…),…

Les données à analyser peuvent aussi bien être récupérées à partir d’applications Web, mobiles ou rapports d’analyse que HDInsight, Azure Storage ou données locales.

D’un point de vue opérationnel, chaque brique correspond à un profil-type d’utilisateur, à savoir :

  • Opérationnel (professionnel de l’IT) : utilise Azure Portal & ML API Service pour approvisionner et gérer des espaces de travail pour les modèles.
  • Data scientist (scientifique, chercheur, analyste de données) : utilise ML Studio pour construire des modèles.
  • Développeur (professionnel de l’IT) : teste les modèles déployés et les publie via un service Web.

En résumé :


Chaque partie sera présentée dans la section suivante.

 

Utilisation d’Azure Machine Learning

Avant de commencer…

Nous allons utiliser Azure Management Portal pour implémenter un espace de travail. Mais avant cela :

  1. Assurez-vous que vous disposez d’un compte Windows Azure souscrit auprès de Microsoft. Pour ce faire, vous pouvez aller ici : https://account.windowsazure.com/Subscriptions.
  2. Pour accéder rapidement à l’Azure Management Portal, l’interface de gestion d’Azure, vous pouvez directement aller à l’URL suivante : https://manage.windowsazure.com.

Notez que la sous-section relative à la création d’un espace de travail ML dans Azure est facultative. Son intérêt, dans ce billet, est purement didacticiel. Toutefois, en temps normal, il est recommandé d’avoir un espace de travail où stocker en permanence ses modèles ML.

Si vous souhaitez juste tester Azure ML (voir sous-section Utilisation d’Azure ML), en expérimentant des modèles, allez directement à l’URL suivante : ttps://studio.azureml.net/.

Entrée dans le vif du sujet

Les présentations effectuées sont basées sur la version preview d’Azure ML Studio. De ce fait, il est possible que certains éléments du billet deviennent obsolètes par la suite, ou que de nouvelles fonctionnalités soient ajoutées lors de la version finale. Dans tous les cas, n’hésitez pas à aller sur le site officiel, pour toute information complémentaire : http://azure.microsoft.com/en-us/documentation/services/machine-learning/.

 

Création d’un espace de travail ML dans Azure

Pour créer un espace de travail ML, suivez les étapes suivantes :

  • Accès au menu Machine Learning.

Au sein du panneau de navigation vertical, situé à gauche de l’Azure Management Portal, cliquez sur Storage, puis sélectionnez Create a storage account :


Cela aura pour effet d’ouvrir le panneau horizontal des services, avec les options de création rapide (Quick create),
situé en bas :


  • Le workspace name correspond au nom de l’espace de travail à créer, et au sein duquel les modèles ML seront implémentés. Il doit être globalement unique, et en caractères minuscules, sans caractères spéciaux    .
  • Le workspace owner est le nom du propriétaire de l’espace de travail qui sera chargé de gérer les modèles ML.
    Par défaut, le nom du compte d’abonnement Azure est spécifié.
  • La localisation correspond à l’endroit géographique où sera stocké l’espace de travail.
  • Le nouveau compte de stockage à créer sera celui utilisé pour le stockage de l’espace de travail.

Dans notre contexte, les informations suivantes ont été spécifiées :


  • Vérification rapide de la création de l’espace de travail ML.

Si tout va bien…


Un coup d’œil à la section Machine Learning de l’Azure Management Portal permet de vérifier rapidement si le compte a été correctement créé et est en ligne :


 

Utilisation d’Azure ML Studio

Vous pouvez soit :

  • Aller dans le tableau de bord de l’espace de travail fraîchement créé, puis cliquer sur Access your Workspace.


  • Cliquer, en bas de page du service Machine Learning, sur Open in Studio :



Le lancement d’Azure ML Studio lancera l’interface d’accueil suivante :

Pour lancer la création d’un modèle ML, cliquez sur New, en bas de fenêtre, au sein du service Experiments.


On aperçoit 2 onglets :

  • Dataset, qui permet de créer/configurer des sources de données (fichiers CSV, fichiers textes, fichiers compressés,…) en tant qu’objets :


  • Experiments, qui permet de créer (clic sur Blank Experiment) et expérimenter des modèles ML pour l’analyse, sachant qu’il est possible de réutiliser les exemples existants produits par Microsoft (voir avant-dernière figure, plus haut).

Voici un aperçu de l’interface de création/édition d’un modèle ML :


Le centre de l’interface est l’espace de design au sein duquel est conçu le processus de fonctionnement d’un modèle ML. C’est au sein de cet espace que sont glissés-déplacés différents modules se trouvant à gauche de l’interface, et pouvant effectuer une variété d’opérations.

Tous les modules d’Azure ML sont classés par groupe :

  • Saved Datasets, qui permet d’utiliser les sources de données préalablement créées, dont voici quelques exemples :


  • Data Format Conversions, qui permet de convertir des flux de données à un format spécifique. Voici quelques exemples de modules :


  • Data Input and Output, qui permet d’effectuer des opérations de lecture et d’écriture sur des sources de données :


  • Data Transformation, qui permet de transformer des données. Voici les opérations de transformation principales :


En l’occurrence :

  • Opérations de filtrage :


  • Opérations de manipulations :


  • Opérations d’échantillonnage et
    de division :


  • Opérations mise à l’échelle et de réduction :


  • Feature Selection, qui permet de filtrer des données sources (features) :


  • Machine Learning, qui permet d’implémenter des modèles, via l’utilisation d’algorithmes d’apprentissage. Voici quelques exemples de modules :


En l’occurrence :

  • Opérations d’évaluation :


  • Opérations d’initialisation :


  • Les algorithmes de classification et de régression font partie de l’apprentissage automatique supervisé. Voici quelques exemples d’algorithmes disponibles :


  • Les algorithmes de clustering font partie, ici, de l’apprentissage automatique non-supervisé. Voici un exemple d’algorithme disponible :


  • Scoring (classement statistique) :


  • Entraînement :


  • OpenCV Library Modules, qui permet d’utiliser des modules basés sur la bibliothèque graphique Open Computer Vision, pour le traitement d’images en temps-réel.


  • R Language Modules, qui permet d’exécuter des scripts codés en langage R (langage de programmation phare du monde statistique) :


  • Statistical Functions, qui permet d’utiliser des fonctions statistiques :


  • Text Analytics, qui permet de faire de la fouille de données (text mining) :


A noter que certains modules permettent de travailler avec des sources de données autres que ceux des fichiers plats (dont les sources sont implémentables à partir de l’onglet Datasets, vu plus haut). C’est le cas, par exemple, d’un module comme Writer ou Reader, du groupe de modules Data Input and Output :

Il est possible que dans le futur, de nouveaux types de sources de données soient disponibles. Comme par exemple, des bases de données SQL Server, des cubes OLAP, etc…

Publication d’un modèle ML

Les modèles réalisés sous Azure ML Studio peuvent être publiés en tant que Web service au travers d’une API appelée REST. Dès lors, il est possible de visualiser les résultats dans des applications mobiles, des applications Web, PowerBI, un package SSIS, etc…

Il existe principalement 2 modes de publication RESTful :

  • Request Response Service (RRS), pour une utilisation synchrone, à faible latence. Très utile dans un contexte d’analyse prédictive, en quasi-temps réel.
  • Batch Execution Service (BES), pour une utilisation asynchrone. Utile pour tester des données. Très utile si l’on souhaite travailler avec des données formatées dans un fichier stocké au sein de l’espace de stockage d’Azure (WABS) ou d’un cluster Hadoop (HDFS). Ou qu’un très grand nombre de sources de données (HDInsight, SQL Azure, service BLOB,…) ont besoin d’être traitées en bloc pour du scoring.

Au sein d’Azure ML Studio, les Web services sont gérés dans la section Web Services :


Sachant qu’un clic sur le modèle ML sélectionné (colonne Name) conduirait à cet exemple d’interface :


Dans le futur, nous aborderons, notamment, la publication d’un Web service ML.

 

Pour aller plus loin…

Gardez un œil ici, pour d’autres billets sur le Machine Learning, et , si vous avez faim de Big Data.

Publicités

Un commentaire sur “[Machine Learning] Azure Machine Learning : présentation et utilisation

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s