• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 20/09/2019

Construisez un modèle statistique

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

Maintenant que nous avons posé les bases du machine learning et que vous avez une meilleure idée de quand et comment l'utiliser... et bien, il est temps de rentrer dans le concret. 🤓 Que diriez-vous d'entraîner vos premiers algorithmes ? C'est précisément ce que nous allons attaquer dans cette deuxième partie du cours. Mais avant de nous lancer dans le code, développons dans ce chapitre notre intuition de la notion d’apprentissage et ce qu’elle représente lorsqu’on parle de machine learning... c’est à dire d’algorithmes qui peuvent améliorer leurs performances à partir d’expériences

Construisez un modèle statistique

Qu'est-ce qu'on essaie de faire déjà ?

Rappelez-vous, l’objectif du machine learning est de trouver un modèle qui effectue une approximation de la réalité (le phénomène à l’origine des données), à l’aide de laquelle on va pouvoir effectuer des prédictions.

Et forcément, parce qu’on fait une approximation, on a une perte d’information qui est un bruit non modélisé et qu’on estime indépendant (c’est-à-dire non représentatif du phénomène).

La formule se résume à l'équation suivante :

Données = Modèle sous-jacent + bruit indépendant
Données = Modèle sous-jacent + bruit indépendant
Ici on voit facilement qu'on peut approximer le modèle à l'origine des données par un cercle
Ici, on voit facilement qu'on peut approximer le phénomène à l'origine des données par un cercle.

Le modèle sous-jacent (statistique) représente une contrainte de “forme” non dépendante des données.

Par exemple, si je décide d’effectuer une régression linéaire, je contrains mon modèle à avoir la forme d’une droite, pas d’un cercle. Malgré tous mes efforts, je ne pourrai alors pas obtenir d’autres formes qu'une droite pour modéliser mes données, c’est donc un choix très important ! Cette notion de complexité/contrainte/flexibilité est primordiale dans votre travail de modélisation. 🙂

Comme on peut le voir sur ce genre de données, c'est difficile de faire fitter une droite!
Comme on peut le voir sur ce genre de données, c'est difficile (impossible) de faire fitter une droite ! Le type de modèle est mal choisi.

Une fois ce choix effectué et les contraintes posées, la question d’apprentissage est alors équivalente à construire le fameux modèle qui se rapprochera le plus des données d’exemples.

Utilisez la fonction loss, ou la perte d’information

En apprentissage supervisé, la notion principale est celle de perte d’information (loss en anglais) due à l'approximation dont je viens de parler. Elle détermine à quel point notre modélisation du phénomène, qui est une approximation de la réalité, perd de l’information par rapport à la réalité observée à travers les données d’exemple.

La grande majorité des algorithmes d’apprentissage supervisés utilisent cette fonction de perte ! L'apprentissage se résume en fait souvent à une méthode itérative qui converge vers un minimum de cette fonction. Plus la perte d'information diminue, plus on se rapproche de la réalité, et meilleur est notre modèle.

On peut retrouver beaucoup de types de perte. Je vais vous en présenter deux ici, pour vous donner une idée des types d'approches qu'on peut avoir.

Minimisez l’erreur du modèle

Une première manière de représenter cette perte se fait par ce qu’on appelle l’erreur ou le risque, qui traduit l’éloignement des données par rapport à la prédiction effectuée par le modèle considéré.

A gauche, on ne perd pas trop d'information. A droite on est trop éloignée de la réalité représentée par les points
À gauche, on ne perd pas trop d'information. À droite par contre, on est trop éloigné de la réalité représentée par les points.

La distance la plus utilisée pour mesurer cet éloignement est l’erreur quadratique (la distance euclidienne entre un point et le modèle).

Souvent, on ne peut pas calculer directement l’erreur mais on va utiliser une approximation à partir des données qui sont notre seule ressource. 😐 On va ainsi sommer sur toutes nos données d’exemples l’erreur effectuée du modèle. On appelle cette erreur le risque empirique.

Lors de l'apprentissage de notre modèle, on cherche alors à converger vers le minimum de risque empirique.

Maximisez la vraisemblance du modèle

Un autre type de fonctionnement des algorithmes qu’on retrouve beaucoup en machine learning sur des modèles paramétriques, et qui nous vient des statistiques, est la maximisation de la vraisemblance (maximum likelihood estimation). 

Dans ce cas-là, l’objectif pour l’algorithme sera de converger vers le maximum de la fonction de vraisemblance du phénomène considéré, en trouvant le bon $\(\theta\)$, toujours à partir de nos observations de départ.

$\(\hat{\theta} = \text{argmax}_{\theta} L(\theta)\)$

Mais c’est une maximisation, pas une minimisation ! Elle est où la fonction de perte dont vous parliez dans ce cas-là ?

En effet, elle est un peu cachée, mais on peut trouver mathématiquement que maximiser la vraisemblance est en fait équivalent à minimiser une fonction de perte. Et c’est une approche très souvent utilisée, qui représente des familles d’algorithmes à part entière.

Une histoire d'optimisation numérique

Au final, l'apprentissage c'est souvent une histoire d'optimisation numérique ! Les fonctions de perte que je viens de vous présenter sont des exemples illustratifs de l'approche qu'on développe pour construire un algorithme de machine learning. Une grande partie des algorithmes s’appuient donc sur des méthodes d’optimisation numérique, c’est-à-dire des méthodes qui vont rechercher un maximum ou un minimum d’une fonction déterminée (vous entendrez parler de loss, entropy, energy, likelihood, etc.) de manière exacte ou approximée.

D'accord mais en pratique, qu'est-ce que j'aurai à faire en tant que data scientist ?

En pratique, les algorithmes d’optimisation sont déjà implémentés dans les librairies que vous utiliserez (par exemple dans scikit-learn que j'utilise dans ce cours), et sont intégrés au modèle que vous voudrez créer. Toutes les notions abordées dans ce chapitre sont donc encapsulées dans des fonctions, que vous aurez juste à appeler en leur passant vos données d’entraînement.

Cependant, vous aurez souvent besoin de paramétrer ces algorithmes d’optimisation, ou même les hyperparamètres du modèle, c’est donc important de savoir dans quoi on met les mains. 😉

En résumé

  • Pour construire un modèle, on part d'une hypothèse de départ qui représente l'ensemble des formes que peut prendre notre modélisation (une courbe par exemple, mais ça peut être bien d'autres choses encore).

  • En apprentissage supervisé, on cherche ensuite à trouver le modèle optimal à l'aide des données d'entraînement. Cela consiste à faire converger une mesure appelée loss function (fonction de perte) en utilisant des techniques d'optimisation numérique.

  • Deux exemples de fonctions de perte souvent utilisées en apprentissage supervisé sont le risque empirique et le maximum de vraisemblance.

  • Les algorithmes de machine learning sont en fait une combinaison de plusieurs domaines d'études : les statistiques (statistical learning theory), l'optimisation numérique, l'informatique théorique, etc.  

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