Licence CC BY

Brève introduction au maximum de vraisemblance

Supposons que nous disposons d’un jeu de données $\mathbb{X} = \lbrace x_1, x_2, \dots, x_n\rbrace$, avec $x_i \in \mathbb R^m$ pour tout $i$. Par exemple, le jeu MNIST est composé d’images de chiffres écrits à la main de taille 28*28 pixels. On peut donc le considérer comme un ensemble de vecteurs appartenant à $\mathbb R^{784}$, chaque pixel étant une composante du vecteur (comprise entre 0 et 255)1.

Exemple d’éléments de MNIST

On souhaite estimer la distribution de probabilité $p_{data}$ de l’ensemble des données étudiées (toutes les images possibles de chiffres écrits à la main de taille 28*28px). Autrement dit, $p_{data} : \mathbb R^{784} \to [0, 1]$ nous donne la probabilité qu’une image de taille 28*28 soit un chiffre écrit à la main.

Pour cela, nous définissons un modèle $p_{model} : \mathbb R^{784} \to [0, 1]$ paramétré par un vecteur $\theta$. En d’autres termes, $p_{model}$ est une fonction dont l’expression dépend de $\theta$ et ayant pour objectif d’approximer $p_{data}$.

Pour simplifier les calculs, prenons une image à un seul pixel pouvant prendre une valeur réelle entre $0$ (noir) et $255$ (blanc). On pourrait alors modéliser la distribution réelle par une loi normale (restreinte à $[0, 255]$) :

$$ \begin{aligned} p_{model} : [0, 255] &\to [0, 1] \\ x &\mapsto \frac{1}{\sigma\sqrt{2\pi}}exp{\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)} \end{aligned} $$

Ici, $\theta = (\mu, \sigma)$.

Le maximum de vraisemblance (maximum likelihood) est un outil mathématique2 permettant de déterminer un $\theta$ optimal pour un type de modèle et un jeu de données fixés. Par optimal, j’entends qui maximise la probabilité que ce jeu de données (les $n$ images de chiffres écrits à la main) ait été tiré (parmi toutes les images de 28*28px) en suivant la distribution de probabilité $p_{model}$. On suppose les tirages indépendants.

Le maximum de vraisemblance $\theta^*$ s’exprime donc ainsi :

$$ \begin{aligned} \theta^* &= \underset{\theta}{\text{arg max }} p_{model}(x_1, \dots, x_n; \theta) \\ &= \underset{\theta}{\text{arg max }} \prod_{i=1}^{n} p_{model}(x_i; \theta) \end{aligned} $$

La syntaxe $p_{model}(.;\theta)$ signifie que $p_{model}$ est paramétrée par $\theta$. La deuxième équation s’obtient par indépendance des $x_i$.

Pour des raisons que je ne détaillerai pas ici, nous préférons manipuler une somme qu’un produit. Sans affecter le résultat, nous prenons donc le logarithme (fonction strictement croissante) de l’expression :

$$ \begin{aligned} \theta^* &= \log{\left(\underset{\theta}{\text{arg max }} \prod_{i=1}^{n} p_{model}(x_i; \theta)\right)} \\ &= \underset{\theta}{\text{arg max }} \log{\left(\prod_{i=1}^{n} p_{model}(x_i; \theta)\right)} \\ &= \underset{\theta}{\text{arg max }} \sum_{i=1}^{n} \log p_{model}(x_i; \theta) \end{aligned} $$

Il ne reste alors « plus qu’à » résoudre ce problème d’optimisation, par exemple à la main en calculant la dérivée de l’expression selon $\theta$ et en étudiant les points d’annulation ou de manière informatique avec une descente de gradient.


  1. En pratique, la valeur d’un pixel est entière donc $x_i \in [[0, 255]]^{784}$

  2. Plus précisément : un estimateur statistique. 



Aucun commentaire

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte