Mis à jour le 14/05/2018
  • 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Identifiez les différents types de problèmes de machine learning

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Dans le chapitre précédent, nous avons vu les éléments spécifiques nécessaires à la formulation et résolution d'un problème de machine learning. Dans ce chapitre je vais vous présenter les grandes familles d'algorithmes d'apprentissage existants.

Apprentissage supervisé vs non-supervisé

Une première grande distinction à faire en machine learning est la différence entre apprentissage supervisé et non-supervisé. En anglais ces deux notions se nomment respectivement supervised learning et unsupervised learning.

Pour bien comprendre la différence, reprenons un petit exemple : supposez que vous avez une nouvelle base de photos à catégoriser. Vous disposez de données d'exemple (training set) préalables pour entraîner votre modèle. 

En apprentissage supervisé, vous allez récupérer des données dites annotées de leur sorties pour entraîner le modèle, c'est à dire que vous leur avez déjà associé un label ou une classe cible et vous voulez que l'algorithme devienne capable de la prédire sur de nouvelles données non annotées une fois entraîné. Dans notre exemple, les données d'entrée seraient des images, et la cible (ou target en anglais) la catégorie de photos que vous voulez.

Chaque image est labellée de sa catégorie
Chaque image utilisée pour entraîner l'algorithme est étiquetée avec sa catégorie

En apprentissage non-supervisé, les données d'entrées ne sont pas annotées. Comment cela peut fonctionner ? Et bien, l'algorithme d'entraînement s'applique dans ce cas à trouver seul les similarités et distinctions au sein de ces données, et à regrouper ensemble celles qui partagent des caractéristiques communes. Dans notre exemple, les photos similaires seraient ainsi regroupées automatiquement au sein d'une même catégorie.

Ci dessous une visualisation de l'utilisation d'une méthode non supervisé qui regroupe les images par similarité. Je vous conseille de regarder la version HD ici.

Une visualisation 2D d'une méthode non supervisée qui permet de grouper les images par similarité. La version HD: http://cs.stanford.edu/people/karpathy/cnnembed/cnn_embed_6k.jpg

Visualisation 2D d'une méthode non supervisée qui permet de grouper les images par similarité (crédits : http://cs.stanford.edu/people/karpathy)

Des chercheurs de chez Google Brain ont appliqué des algorithmes d'apprentissage non-supervisés  il y a quelques années sur des vidéos Youtube, afin de voir ce que cet algorithme réussirait à apprendre comme information. Une vidéo explicative (en anglais) est disponible ici.

Cette image retranscrit la représentation interne des concepts de
La représentation interne des concepts de "visage" et "chat" apprises par un algorithme non-supervisé à partir d'images extraites de millions de vidéos youtube (crédits : Quoc V. Le et al.)  

Dans quel cas utilise-t-on l'un ou l'autre ?

Et bien dans le cas où vous avez un problème ou vous pouvez annoter précisément pour chaque observation la cible que vous voulez en sortie, vous pouvez utiliser l'apprentissage supervisé.

Dans le cas où vous essayez de mieux comprendre votre dataset où d'identifier des comportements intéressants, vous pouvez utiliser l'apprentissage non-supervisé. 

Régression vs Classification

Une autre distinction qui vous aidera dans le choix d'un algorithme de machine learning est le type de sortie que l'on attend de notre programme : est-ce une valeur continue (un nombre) ou bien une valeur discrète (une catégorie) ? Le premier cas est appelé une régression, le second une classification

Par exemple si je veux déterminer le coût par clic d'une publicité web, j'effectue une régression. Si je veux déterminer si une photo est un chat ou un chimpanzé, j'effectue une classification.

Illustration de la différence entre régression et classification
Illustration de la différence entre régression linéaire et classification linéaire

En résumé

Les problèmes de machine learning peuvent se différencier selon deux critères :

  • Les données dont vous disposez sont-elles annotées ou non ? Si c'est le cas, vous avez affaire à un problème d'apprentissage supervisé. Sinon vous serez obligé d'utiliser un algorithme d'apprentissage non supervisé.

  • Quel est le type de résultat que vous souhaitez prédire ? S'il s'agit d'un nombre (par exemple le coût par clic d'une publicité) c'est un problème de régression. S'il s'agit plutôt d'une valeur discrète, d'une catégorie (par exemple le type d'animal présent sur une photo) alors c'est un problème de classification

Déterminer à quelle type de problème vous êtes confrontés vous permettra de choisir correctement les familles d'algorithme qui pourront être utilisées. Nous allons d'ailleurs étudier dans le prochain chapitre plusieurs exemples classiques de problématiques d'entreprises et dans quelles catégories, que vous connaissez maintenant, elles se situent.

Attends un peu, si c'est si simple que ça, pourquoi n'y a-t-il pas juste 3-4 algorithmes, qu'on pourrait utiliser pour chacune de ces distinctions ?

Vous avez raison, mais dans la vie rien n'est si simple. 😇

En réalité, il existe un ensemble de contraintes et d'enjeux supplémentaires (le nombre de données en entrée, la capacité de convergence d'un modèle en fonction du type de données, etc.) qui influencent aussi et créent une granularité supplémentaire dans votre choix du modèle. Nous étudierons les contraintes et enjeux de chaque modèle lorsque nous les aborderons individuellement, dans d'autres cours.

 

Exemple de certificat de réussite
Exemple de certificat de réussite