Le Machine Learning, comment ça marche ?

De façon à rentrer de plein pied dans le monde du Machine Learning, nous souhaitons partager une compréhension commune des principes de l’apprentissage automatique, et expliquer au travers d’une série courte de billet ce qu’est l’apprentissage supervisé et non-supervisé avec des applications ainsi que les moyens d’évaluer un modèle en apprentissage automatique.

Ce billet est pour l’essentiel une republication sur ce blog du billet éponyme déjà publié sur le blog MSDN Big Data France .

Je vous souhaite une bonne lecture de ce billet

--Philippe

_________________________________________________________________________________________

Lorsque vous recherchez « Machine Learning » sur Wikipedia, la définition suivante vous proposé en français :

L'apprentissage automatique (machine learning en anglais), un des champs d'étude de l' intelligence artificielle , est la discipline scientifique concernée par le développement, l'analyse et l'implémentation de méthodes automatisables qui permettent à une machine (au sens large) d'évoluer grâce à un processus d'apprentissage, et ainsi de remplir des tâches qu'il est difficile ou impossible de remplir par des moyens algorithmiques plus classiques.

Pas très clair, n’est-ce-pas ?

Vous vous demandez comment ça marche, pourquoi il faut s’y intéresser ? Vous êtes au bon endroit.

Dans ce second billet du blog, nous vous proposons de voir en détail ce qu’est l’apprentissage automatique (Machine Learning) tout en restant aussi simple que possible et en illustrant au mieux nos propos par des exemples, enfin on l’espère ;)

Si vous souhaitez une explication sur le sujet traité dans ce billet, n’hésitez pas à mettre votre demande en commentaire.

Comprendre le Machine Learning

Le Machine Learning est une discipline consacrée à l’analyse des données. Le but de cette discipline est de créer de la connaissance de manière automatique à partir de données brutes. Cette connaissance (ou modèle) peut alors être exploitée pour prendre des décisions. On parle parfois de stratégie pilotée par les données (data-driven strategy) pour une entreprise.

Comme le modèle est construit à partir des données, il est clair que plus on dispose de données, plus le modèle construit est précis et permettra ainsi de prendre de bonne décisions.

Comme le volume des données nécessaires aux algorithmes de Machine Learning peut être très grand, on associe souvent Machine Learning avec #BigData comme nous l’avons abordé en introduction de ce blog.

Un premier schéma de principe nous permet de fixer les idées :

image

En résumé :

  • Les données disponibles construisent le modèle
  • Le modèle permet de prendre des décisions
  • On se sert du modèle sur de nouvelles données afin de prendre des décisions

Les données

En Machine Learning, les données sont appelées échantillons. Les échantillons sont souvent notés sous forme de vecteur :

image

où p est le nombre de coordonnées aussi appelé nombre d’attributs/dimensions/caractéristiques.

On distingue deux grandes familles de données :

  1. Les données labélisées. les données sont accompagnées d’un label y qui identifie la décision à prendre pour chaque échantillon. Il est souvent très coûteux (en temps et en argent) d’avoir de grands volumes de données labélisés
  2. Les données non-labélisées. Les données ne sont pas accompagnées de labels. Même si les données non labélisées sont plus difficiles à exploiter, elles sont beaucoup plus accessibles. (Un exemple intéressant est la récupération de millions d’images sur le web pour faire de la reconnaissance de visages)

Une remarque importante à ce stade : les données brutes sont souvent inexploitables. Dans la plupart des cas, il faut procéder à un prétraitement des données afin d’extraire les caractéristiques des données pertinentes pour la prise de décision autrement appelées caractéristiques (features).

Cette extraction de caractéristiques (feature selection) fait souvent appel au bon sens, à des facteurs de corrélation statistiques ou à des itérations successives (choix empirique).

Pour faire fonctionner la majorité des modèles, il est préférable que toutes les caractéristiquessoient décorrélées, mais ce n’est pas le cas de tous les modèles. Pour plus de détails, vous pouvez relire le billet sur l’affaire Enron précédemment publié sur le blog MSDN Big Data France.

image

La décision

Le choix des features impose de penser aux sorties. On distingue deux types de sortie y :

  • Sorties catégorisées ou discrètes. Le nombre de valeurs que peut prendre y est fini. Dans ce cas, les sorties possibles sont appelées classes. Sans perte de généralité, pour C classes, on peut dire que :

image

où y est un entier qui varie entre 1 et C)

  • Sorties non-catégorisées ou continues. Le nombre de valeurs que peut prendre y est infini. Sans perte de généralité, on peut dire que :

image

où y est un élément de l’ensemble mathématique des réels

image

Le modèle

On peut voir le modèle comme une fonction notée f qui prend un échantillon en entrée, et qui renvoie une décision.

image

La détermination de f est le cœur d’un problème de Machine Learning. Celle-ci se passe en deux étapes :

  1. Choix d’une fonction générique
  2. Détermination des paramètres de la fonction à l’aide des échantillons

Cette phase s’appelle entraînement ou apprentissage du modèle

En fonction de la nature des échantillons (labélisés ou pas), il existe deux types d’apprentissage :

  • Apprentissage supervisé. Les échantillons sont labélisés.
    Avoir des données labélisées est très souvent coûteux.
  • Apprentissage non supervisé. Les échantillons sont non-labélisés. Bien qu’il soit plus difficile d’extraire des informations pertinentes, il est possible de récupérer des millions de données d’entrée sur le web. Ceci constitue donc une méthode à ne pas négliger.
  • Autres. Il existe de nombreuses méthodes d’apprentissage que nous ne traiterons pas dans le cadre de ce billet (apprentissage par renforcement, apprentissage semi-supervisé, transfer learning, self-taught learning)

En fonction de la nature de la sortie (catégorisée ou pas), il existe deux types de modèles :

  1. Classifieur. Si les sorties sont catégorisées (on dit que le modèle effectue une classification)
  2. Régresseur. Si les sorties son non-catégorisées (on dit que le modèle effectue une régression)

image

Comment se déroule une analyse de Machine Learning ?

Il convient de retenir quelques étapes simples à effectuer dans l’ordre :

  • Récupération des données à analyser. Cette étape semble triviale mais est souvent celle qui prend plus de temps… Si vous souhaitez faire de la reconnaissance de visages, vous allez devoir prendre/disposer de photos de milliers de visages pour (prétendre) avoir un classifieur performant.
  • Sélection des caractéristiques. Comme nous l’avons vu dans l’exemple, il est souvent difficile de faire le choix des features à utiliser pour décrire les données.
  • Choix du modèle. Comme pour la sélection des features, il n’y a pas de méthodes automatiques. Cela dépend en grande partie des données à analyser et de facteurs empiriques.
  • Entraînement du modèle. Pour chaque modèle, il existe un algorithme d’entraînement. Cette étape prend souvent beaucoup de temps et augmente avec la taille des données d’entrée.
  • Evaluation du modèle. En général, on procède par validation croisée. Une des déclinaisons de cette méthode consiste à découper l’ensemble de données en deux, d’entraîner le modèle avec la première moitié et de tester le modèle sur la seconde moitié. On calcule ensuite plusieurs indicateurs pour évaluer le modèle, en particulier sa précision (nombre de bonnes prévisions divisées par le nombre total de prévisions).

Nous allons mettre tout cela en application très prochainement.