Aller au contenu

« Algorithme espérance-maximisation » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Remplacement de "que classe entière d'algorithmes" par "une classe entière d'algorithmes" dans l'introduction
légende de l'image
 
(27 versions intermédiaires par 21 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Infobox Méthode scientifique
L''''algorithme espérance-maximisation '''(en anglais ''{{lang|en|Expectation-maximisation algorithm}}'', souvent abrégé '''EM'''), proposé par Dempster et al. (1977)<ref>{{Article|langue=en|nom1=Dempster |prénom1=A.P.|lien auteur1=Arthur Dempster|nom2=Laird|prénom2=N.M.|lien auteur2=Nan Laird|nom3=Rubin|prénom3=Donald|lien auteur3=Donald Rubin|titre=Maximum Likelihood from Incomplete Data via the EM Algorithm|périodique=Journal of the Royal Statistical Society. Series B (Methodological)|lien périodique=Journal of the Royal Statistical Society|année=1977|volume=39|numéro=1|pages=1–38|jstor=2984875}}</ref>, est un [[algorithme]] itératif qui permet de trouver les paramètres de [[maximum de vraisemblance|vraisemblance maximum]] d'un [[Loi de probabilité|modèle probabiliste]] lorsque ce dernier dépend de variables latentes non observables. De nombreuses variantes ont par la suite été proposées, formant une classe entière d'algorithmes.
| image = EM Clustering of Old Faithful data.gif
| légende = Ajustement d'un [[modèle de mélange]] par EM sur les données de durée et de délai des éruptions du geyser [[Old Faithful]]. Le modèle aléatoire initial (qui, en raison des différentes échelles des axes, semble être deux sphères très plates et larges) est adapté aux données observées. Dans les premières itérations, le modèle change considérablement, mais converge ensuite vers les deux modes du geyser.
L''''algorithme espérance-maximisation '''(en anglais ''{{lang|en|- algorithm}}'', souvent abrégé '''EM''') proposé par Dempster et al. 1977<ref>{{Article|langue=en|prénom1=A.P.|lien auteur1=Arthur Dempster|prénom2=N.M.|lien auteur2=Nan Laird|prénom3=Donald|lien auteur3=Donald Rubin|titre=Maximum Likelihood from Incomplete Data via the EM Algorithm|périodique=Journal of the Royal Statistical Society. Series B (Methodological)|lien périodique=Journal of the Royal Statistical Society|volume=39|numéro=1|=|jstor=2984875}}</ref>. De nombreuses variantes ont par la suite été proposées, formant une classe entière d'algorithmes.


== Usage ==
== Usage ==


On utilise souvent l'algorithme EM pour la classification de données, l'apprentissage automatique, ou la vision artificielle. On peut également citer son utilisation en imagerie médicale dans le cadre de la reconstruction tomographique.
On utilise souvent l'algorithme EM pour la classification de données, l'apprentissage automatique, ou la vision artificielle. On peut également citer son utilisation en imagerie médicale dans le cadre de la reconstruction tomographique.


== Principe général ==
L'algorithme d'espérance-maximisation comporte :


L'algorithme d'espérance-maximisation :
* une étape d'évaluation de l'espérance (E), où l'on calcule l'espérance de la vraisemblance en tenant compte des dernières variables observées,


* une étape de maximisation (M), où l'on estime le maximum de vraisemblance des paramètres en maximisant la vraisemblance trouvée à l'étape E.
* une étape de , où l'on de vraisemblance en
* étape M : une étape de maximisation, où l'on estime le maximum de vraisemblance des paramètres en maximisant la vraisemblance trouvée à l'étape E.

On utilise ensuite les paramètres trouvés en M comme point de départ d'une nouvelle phase d'évaluation de l'espérance, et l'on itère ainsi.
On utilise les paramètres trouvés en M comme point de départ d'une nouvelle d'évaluation de l'espérance.


Pour résoudre le problème d'apprentissage des [[Modèle de Markov caché|modèles de Markov cachés]] (HMM), c’est-à-dire la détermination des paramètres du modèle markovien, on utilise l'[[algorithme de Baum-Welch]].
Pour résoudre le problème d'apprentissage des [[Modèle de Markov caché|modèles de Markov cachés]] (HMM), c’est-à-dire la détermination des paramètres du modèle markovien, on utilise l'[[algorithme de Baum-Welch]].


==Principe de fonctionnement==
==Principe ==
Considérons un échantillon {{math|'''x''' {{=}} ('''''x'''''{{ind|1}} , ... , '''''x'''{{ind|n}}'')}} d'individus suivant une loi {{math|''f''('''''x'''{{ind|i}}'',''θ'')}} paramétrée par {{mvar|'''θ'''}}. On cherche à déterminer le paramètre {{mvar|'''θ'''}} maximisant la [[Fonction de vraisemblance#Log-vraisemblance|log-vraisemblance]] donnée par
<math>L(\mathbf{x};\boldsymbol{\theta})=\sum_{i=1}^n\log f(\boldsymbol{x}_i,\boldsymbol{\theta}).</math>


=== Introduction des variables cachées ===
En considérant un échantillon <math>\mathbf{x}=(\boldsymbol{x}_1,\dots,\boldsymbol{x}_n)</math> d'individus suivant une loi <math>f(\boldsymbol{x}_i,\theta)</math> paramétrée par <math>\boldsymbol{\theta}</math>, on cherche à déterminer le paramètre <math>\boldsymbol{\theta}</math> maximisant la log-vraisemblance donnée par
Cet algorithme est particulièrement utile lorsque la maximisation de {{mvar|L}} est très complexe mais que, sous réserve de connaître certaines données judicieusement choisies, on peut très simplement déterminer {{mvar|'''θ'''}}. Dans ce cas, on s'appuie sur des données complétées par un vecteur {{math|'''z''' {{=}} (''z''{{ind|1}} , ... , ''z{{ind|n}}'')}} inconnu. En notant {{math|''f''(''z{{ind|i}}'' {{!}} '''''x'''{{ind|i}}'',''θ'')}} la probabilité de {{mvar|z{{ind|i}}}} sachant {{mvar|'''x'''{{ind|i}}}} et le paramètre {{mvar|'''θ'''}}, on peut définir la log-vraisemblance complétée comme la quantité
<math>L\left((\mathbf{x,z});\boldsymbol{\theta}\right)=\sum_{i=1}^n\left(\log f(z_i|\boldsymbol{x}_i,\boldsymbol{\theta})+\log f(\boldsymbol{x}_i;\boldsymbol{\theta})\right).</math>


Ainsi, on écrit la log-vraisemblance initiale comme :
<math>L(\mathbf{x};\boldsymbol{\theta})=\sum_{i=1}^n\log f(\boldsymbol{x}_i,\boldsymbol{\theta}).</math>
<math>L(\mathbf{x};\boldsymbol{\theta})=L\left(\mathbf{(x,z)};\boldsymbol{\theta}\right)-\sum_{i=1}^n\log f(z_i|\boldsymbol{x}_i,\boldsymbol{\theta}).</math>


=== Étape E ===
Cet algorithme est particulièrement utile lorsque la maximisation de <math>L</math> est très complexe mais que, sous réserve de connaître certaines données judicieusement choisies, on peut très simplement déterminer <math>\boldsymbol{\theta}</math>.
L'algorithme EM est une procédure itérative basée sur l'espérance des données [[Espérance conditionnelle|complétées conditionnellement]] au paramètre courant. En notant math{{(c)} ce paramètre, on peut écrire

<math>E\left[L(\mathbf{x};\boldsymbol{\theta})|\boldsymbol{\theta}^{(c)}\right]=E\left[L\left(\mathbf{(x,z)};\boldsymbol{\theta}\right)|\boldsymbol{\theta}^{(c)}\right]-E\left[\sum_{i=1}^n\log f(z_i|\boldsymbol{x}_i,\boldsymbol{\theta})|\boldsymbol{\theta}^{(c)}\right],</math> où l'espérance est prise sur {z}.
Dans ce cas, on s'appuie sur des données complétées par un vecteur <math>\mathbf{z}=(z_1,\dots,z_n)</math> inconnu. En notant <math>f(z_i|\boldsymbol{x}_i;\theta)</math> la probabilité de <math>z_i</math> sachant <math>\boldsymbol{x}_i</math> et le paramètre <math>\boldsymbol{\theta}</math>, on peut définir la log-vraisemblance complétée comme la quantité

<math>L\left((\mathbf{x,z});\boldsymbol{\theta}\right)=\sum_{i=1}^n\left(\log f(z_i|\boldsymbol{x}_i,\boldsymbol{\theta})+\log f(\boldsymbol{x}_i;\boldsymbol{\theta})\right).</math>

et donc,

<math>L(\mathbf{x};\boldsymbol{\theta})=L\left(\mathbf{(x,z)};\boldsymbol{\theta}\right)-\sum_{i=1}^n\log f(z_i|\boldsymbol{x}_i,\boldsymbol{\theta}).</math>

L'algorithme EM est une procédure itérative basée sur l'espérance des données [[Espérance conditionnelle|complétées conditionnellement]] au paramètre courant. En notant <math>\boldsymbol{\theta}^{(c)}</math> ce paramètre, on peut écrire

<math>E\left[L(\mathbf{x};\boldsymbol{\theta})|\boldsymbol{\theta}^{(c)}\right]=E\left[L\left(\mathbf{(x,z)};\boldsymbol{\theta}\right))|\boldsymbol{\theta}^{(c)}\right]-E\left[\sum_{i=1}^n\log f(z_i|\boldsymbol{x}_i,\boldsymbol{\theta}))|\boldsymbol{\theta}^{(c)}\right],</math> où l'espérance est prise sur <math>\mathbf{z}</math>.


ou encore
ou encore
<math>\boldsymbol{\theta})=\\{\boldsymbol{\theta}}\\left(\boldsymbol{\theta}\boldsymbol{\theta}^{(c)}\right)</math>


<math>L(\mathbf{x};\boldsymbol{\theta})=Q\left(\boldsymbol{\theta};\boldsymbol{\theta}^{(c)}\right)-H\left(\boldsymbol{\theta};\boldsymbol{\theta}^{(c)}\right)</math>, car <math>L(\mathbf{x};\boldsymbol{\theta})</math> ne dépend pas de <math>\mathbf{z}</math>,
<math>(\{};\boldsymbol{\theta})=\left(\boldsymbol{\theta}\boldsymbol{\theta}^{(c)}\rightH\left(\boldsymbol{\theta};\boldsymbol{\theta}^{(c)}\right) (\{x}\boldsymbol{\theta})\{}</math>

avec <math>Q\left(\boldsymbol{\theta};\boldsymbol{\theta}^{(c)}\right)=E\left[L\left(\mathbf{(x,z)};\boldsymbol{\theta}\right)|\boldsymbol{\theta}^{(c)}\right]</math> et <math>H\left(\boldsymbol{\theta};\boldsymbol{\theta}^{(c)}\right)=E\left[\sum_{i=1}^n\log f(z_i|\boldsymbol{x}_i,\boldsymbol{\theta}))|\boldsymbol{\theta}^{(c)}\right]</math>.


=== Étape M ===
On montre que la suite définie par
On montre que la suite définie par
:<math>\boldsymbol{\theta}^{(c)}=\\left(\(\boldsymbol{\theta}\boldsymbol{\theta}^{(c)}\right</math>

<math>\boldsymbol{\theta}^{(c+1)}=\arg\max_{\boldsymbol{\theta}}\left(Q\left(\boldsymbol{\theta},\boldsymbol{\theta}^{(c)}\right)\right)</math>


fait tendre <math>L\left(\mathbf{x};\boldsymbol{\theta}^{(c+1)}\right)</math> vers un maximum local.
fait tendre <math>L\left(\mathbf{x};\boldsymbol{\theta}^{(c+1)}\right)</math> vers un maximum local.


=== Pseudo-code général ===
On peut donc définir l'algorithme EM de la manière suivante:
L'algorithme EM est défini par :
*Initialisation au hasard de <math>\boldsymbol{\theta}^{(0)}</math>
*Initialisation au hasard de math{{(0)}
*c=0
*{{math|''c'' {{=}} 0}}
*Tant que l'algorithme n'a pas convergé, faire
*Tant que l'algorithme n'a pas convergé, faire
** Evaluation de l'espérance (étape E) : <math>Q\left(\boldsymbol{\theta};\boldsymbol{\theta}^{(c)}\right)=E\left[L\left(\mathbf{(x,z)};\boldsymbol{\theta}\right))|\boldsymbol{\theta}^{(c)}\right]</math>
** Maximisation (étape M) : <math>\boldsymbol{\theta}^{(c+1)}=\arg\max_{\boldsymbol{\theta}}\left(Q\left(\boldsymbol{\theta},\boldsymbol{\theta^{(c)}}\right)\right)</math>
** : <math>\boldsymbol{\theta}^{(c)}\\{}\left\left(\boldsymbol{\theta}\boldsymbol{\theta^{(c)}\right</math>
** Étape M. Maximisation : <math>\boldsymbol{\theta}^{(c+1)}=\arg\max_{\boldsymbol{\theta}}\left(Q\left(\boldsymbol{\theta},\boldsymbol{\theta^{(c)}}\right)\right)</math>
** c=c+1
** {{math|''c'' {{=}} ''c''+1}}
*Fin


En pratique, pour s'affranchir du caractère local du maximum atteint, on fait tourner l'algorithme EM un grand nombre de fois à partir de valeurs initiales différentes de manière à avoir de plus grandes chances d'atteindre le maximum global de vraisemblance.
En pratique, pour s'affranchir du caractère local du maximum atteint, on fait tourner l'algorithme EM un grand nombre de fois à partir de valeurs initiales différentes de manière à avoir de plus grandes chances d'atteindre le maximum global de vraisemblance.


==Exemple détaillé : application en classification automatique==
==Exemple détaillé : application en classification automatique==


Une des applications phares d'EM est l'estimation des paramètres d'une [[densité mélange]] en [[classification automatique]] dans le cadre des [[modèle de mélanges gaussiens|modèles de mélanges gaussiens]]. Dans ce problème, on considère qu'un échantillon <math>\left(x_1,\dots,x_n\right)</math> de <math>\mathbb{R}^p</math>, ie caractérisé par ''p'' variables continues, est en réalité issu de ''g'' différents groupes. En considérant que chacun de ces groupes <math>G_k</math> suit une loi ''f'' de paramètre <math>\theta_k</math>, et dont les proportions sont données par un vecteur <math>(\pi_1,\dots,\pi_g)</math>. En notant <math>\Phi=\left(\pi_1,\dots,\pi_g,\theta_1,\dots,\theta_g\right)</math> le paramètre du mélange, la fonction de densité que suit l'échantillon est donnée par
Une des applications phares d'EM est l'estimation des paramètres d'une [[densité mélange]] en [[classification automatique]] dans le cadre des [[modèle de mélanges gaussiens|modèles de mélanges gaussiens]]. Dans ce problème, on considère qu'un échantillon math(,,) de <math>\mathbb{R}^p</math>, ie caractérisé par p variables continues, est en réalité issu de g différents groupes. En considérant que chacun de ces groupes suit une loi f de paramètre , et dont les proportions sont données par un vecteur math(,,). En notant math=(,,,,,) le paramètre du mélange, la fonction de densité que suit l'échantillon est donnée par


:<math>g(x,\Phi)=\sum_{k=1}^g\pi_kf(x,\theta_k),</math>
:<math>g(x,\Phi)=\sum_{k=1}^g\pi_kf(x,\theta_k),</math>


et donc, la log-vraisemblance du paramètre <math>\Phi</math> est donnée par
et donc, la log-vraisemblance du paramètre math est donnée par


:<math>L(x,\Phi)=\sum_{i=1}^n\log\left(\sum_{k=1}^g\pi_kf(x_i,\theta_k)\right).</math>
:<math>L(x,\Phi)=\sum_{i=1}^n\log\left(\sum_{k=1}^g\pi_kf(x_i,\theta_k)\right).</math>


La maximisation de cette fonction selon <math>\Phi</math> est très complexe. Par exemple, si on souhaite déterminer les paramètres correspondant à 2 groupes suivant une loi normale dans un espace de dimension 3 (ce qui est peu), on doit optimiser une fonction non linéaire de <math>\mathbb{R}^{19}</math>!!!
La maximisation de cette fonction selon math est très complexe. Par exemple, si on souhaite déterminer les paramètres correspondant à groupes suivant une loi normale dans un espace de dimension 3, optimiser une fonction nonlinéaire de <math>\mathbb{R}^{19}</math>


Parallèlement, si on connaissait les groupes auxquels appartient chacun des individus, alors le problème serait un problème d'estimation tout à fait simple et très classique.
Parallèlement, si on connaissait les groupes auxquels appartient chacun des individus, alors le problème serait un problème d'estimation tout à fait simple et très classique.


La force de l'algorithme EM est justement de s'appuyer sur ces données pour réaliser l'estimation. En notant <math>z_{ik}</math> la grandeur qui vaut 1 si l'individu <math>x_i</math> appartient au groupe <math>G_k</math> et 0 sinon, la log-vraisemblance des données complétée s'écrit
La force de l'algorithme EM est justement de s'appuyer sur ces données pour réaliser l'estimation. En notant {ik} la grandeur qui vaut 1 si l'individu appartient au groupe et 0 sinon, la log-vraisemblance des données complétée s'écrit

:<math>L(x,z,\Phi)=\sum_{i=1}^n\sum_{k=1}^gz_{ik}\log\left(\pi_kf(x_i,\theta_k)\right).</math>
:<math>L(x,z,\Phi)=\sum_{i=1}^n\sum_{k=1}^gz_{ik}\log\left(\pi_kf(x_i,\theta_k)\right).</math>


On obtient alors rapidement
On obtient alors rapidement
:<math>Q\left(\Phi,\Phi^{(c)}\right)=\sum_{i=1}^n\sum_{k=1}^\left(z_{ik}|x,\Phi^{(c)}\right)\log\left(\pi_kf(x_i,\theta_k)\right)</math>


En notant {ik} la quantité donnée par <math>t_{ik}=E\left(z_{ik}|x,\Phi^{(c)}\right)</math>, on peut séparer l'algorithme EM en deux étapes, qu'on appelle classiquement, dans le cas des modèles de mélanges, l'étape Estimation et l'étape Maximisation. Ces deux étapes sont itérées jusqu'à la convergence.
:<math>Q\left(\Phi,\Phi^{(c)}\right)=\sum_{i=1}^n\sum_{k=1}^gE\left(z_{ik}|x,\Phi^{(c)}\right)\log\left(\pi_kf(x_i,\theta_k)\right)</math>

En notant <math>t_{ik}</math> la quantité donnée par <math>t_{ik}=E\left(z_{ik}|x,\Phi^{(c)}\right)</math>, on peut séparer l'algorithme EM en deux étapes, qu'on appelle classiquement, dans le cas des modèles de mélanges, l'étape Estimation et l'étape Maximisation. Ces deux étapes sont itérées jusqu'à la convergence.


*Étape E : calcul de <math>t_{ik}</math> par la règle d'inversion de Bayes :
*Étape E : calcul de {ik} par la règle d'inversion de Bayes :
::<math>t_{ik}=\frac{\pi_k^{(c)}f(x_i,\theta_k^{(c)})}{\sum_{\ell=1}^g\pi_\ell^{(c)} f(x_i,\theta_\ell^{(c)})}</math>
::<math>t_{ik}=\frac{\pi_k^{(c)}f(x_i,\theta_k^{(c)})}{\sum_{\ell=1}^g\pi_\ell^{(c)} f(x_i,\theta_\ell^{(c)})}</math>
*Étape M : détermination de <math>\Phi</math> maximisant
*Étape M : détermination de math maximisant
::<math>Q\left(\Phi,\Phi^{(c)}\right)=\sum_{i=1}^n\sum_{k=1}^gt_{ik}\log\left(\pi_kf(x_i,\theta_k)\right)</math>
::<math>Q\left(\Phi,\Phi^{(c)}\right)=\sum_{i=1}^n\sum_{k=1}^gt_{ik}\log\left(\pi_kf(x_i,\theta_k)\right)</math>


L'avantage de cette méthode est qu'on peut séparer le problème en ''g'' problèmes élémentaires qui sont, en général relativement simples. Dans tous les cas, les proportions optimales sont données par
L'avantage de cette méthode est qu'on peut séparer le problème en g problèmes élémentaires qui sont, en général relativement simples. Dans tous les cas, les proportions optimales sont données par
<math>\pi_k=\frac{1}{n}\sum_{i=1}^nt_{ik}</math>


L'estimation des dépend par ailleurs de la fonction de probabilité f choisie. Dans le cas normal, il s'agit des moyennes et des matrices de variance-covariance math. Les estimateurs optimaux sont alors donnés par
<math>\pi_k=\frac{1}{n}\sum_{i=1}^nt_{ik}</math>
<math>\mu_k=\frac{\sum_{i=1}^nt_{ik}x_i}{\sum_{i=1}^nt_{ik}}</math>
<math>\Sigma_k=\frac{\sum_{i=1}^nt_{ik}(x_i-\mu_k)(x_i-\mu_k)}{\sum_{i=1}^nt_{ik}}</math>


Avec ''M'' la matrice transposée de M et en supposant que les sont des vecteurs colonnes.
L'estimation des <math>\theta</math> dépend par ailleurs de la fonction de probabilité ''f'' choisie. Dans le cas normal, il s'agit des moyennes <math>\mu_k</math> et des matrices de variance-covariance <math>\Sigma_k</math>. Les estimateurs optimaux sont alors donnés par


==Variantes usuelles d'EM==
<math>\mu_k=\frac{\sum_{i=1}^nt_{ik}x_i}{\sum_{i=1}^nt_{ik}}</math>


L'algorithme EM allie, dans la plupart des cas, simplicité de mise en œuvre et efficacité. Néanmoins quelques cas problématiques ont donné lieu à des développements complémentaires. Parmi les variantes existantes de cet algorithme nous évoquerons l'algorithme ''GEM'' ( EM) qui permet de simplifier le problème de l'étape maximisation; l'algorithme ''CEM'' ( EM) permettant de prendre en compte l'aspect classification lors de l'estimation, ainsi que l'algorithme ''SEM'' ( EM) dont l'objectif est de réduire le risque de tomber dans un optimum local de vraisemblance.
<math>\Sigma_k=\frac{\sum_{i=1}^nt_{ik}(x_i-\mu_k)(x_i-\mu_k)'}{\sum_{i=1}^nt_{ik}}</math>

Avec ''M''' la matrice transposée de ''M'' et en supposant que les <math>\mu_k</math> sont des vecteurs colonnes.

==Variantes usuelles d'EM==

L'algorithme EM allie, dans la plupart des cas, simplicité de mise en œuvre et efficacité. Néanmoins quelques cas problématiques ont donné lieu à des développements complémentaires. Parmi les variantes existantes de cet algorithme nous évoquerons l'algorithme ''GEM'' (Generalized EM) qui permet de simplifier le problème de l'étape maximisation; l'algorithme ''CEM'' (Classification EM) permettant de prendre en compte l'aspect classification lors de l'estimation, ainsi que l'algorithme ''SEM'' (Stochastic EM) dont l'objectif est de réduire le risque de tomber dans un optimum local de vraisemblance.


===Algorithme GEM===
===Algorithme GEM===
Ligne 111 : Ligne 103 :
*<math>c=0\,</math>
*<math>c=0\,</math>
*Tant que l'algorithme n'a pas convergé, faire
*Tant que l'algorithme n'a pas convergé, faire
**choisir <math>\theta^{(c+1)}\,</math> tel que <math>Q\left(\theta,\theta^{(c+1)}\right)>Q\left(\theta,\theta^{(c)}\right)</math>
**choisir <math>\theta^{(c+1)}\,</math> tel que <math>Q\left(\theta,\theta^{(c)}\right)>Q\left(\theta,\theta^{(c)}\right)</math>
**<math>c=c+1\,</math>
**<math>c=c+1\,</math>
*Fin
*Fin


===Algorithme CEM===
===Algorithme CEM===


L'algorithme EM se positionne dans une optique ''estimation'', c'est-à-dire qu'on cherche à maximiser la vraisemblance du paramètre <math>\theta\,</math>, sans considération de la classification faite ''a posteriori'' en utilisant la règle de Bayes.
L'algorithme EM se positionne dans une optique ''estimation'', c'est-à-dire qu'on cherche à maximiser la vraisemblance du paramètre <math>\theta\,</math>, sans considération de la classification faite ''a posteriori'' en utilisant la règle de Bayes.
Ligne 141 : Ligne 133 :
*Fin
*Fin


Lorsque les composantes du mélange appartiennent à la même famille exponentielle, en utilisant la bijection entre les divergences de Bregman et les familles exponentielles, on obtient l'algorithme k-MLE<ref>

Lorsque les composantes du mélange appartiennent à la même famille exponentielle, en utilisant la bijection entre les divergences de Bregman et les familles exponentielles, on obtient l'algorithme k-MLE<ref>
{{article|langue=en
{{article|langue=en
|nom1=Nielsen |prénom1=Frank |lien auteur1=F. Nielsen
|nom1=Nielsen |prénom1=Frank |lien auteur1=F. Nielsen
Ligne 148 : Ligne 139 :
|journal=[[arxiv (ICASSP 2012)]]
|journal=[[arxiv (ICASSP 2012)]]
|année=2012
|année=2012
| url = http://arxiv.org/abs/1203.5181
| url = ://arxiv.org/abs/1203.5181
}}</ref>.
}}</ref>.


Ligne 168 : Ligne 159 :


==Références==
==Références==

{{Références|colonnes = 2}}
{{Références|colonnes = 2}}


{{Palette |Apprentissage automatique}}

{{Portail|probabilités et statistiques|informatique théorique}}
{{Portail|probabilités et statistiques|informatique théorique}}



Dernière version du 14 novembre 2024 à 16:23

Algorithme espérance-maximisation
Ajustement d'un modèle de mélange par EM sur les données de durée et de délai des éruptions du geyser Old Faithful. Le modèle aléatoire initial (qui, en raison des différentes échelles des axes, semble être deux sphères très plates et larges) est adapté aux données observées. Dans les premières itérations, le modèle change considérablement, mais converge ensuite vers les deux modes du geyser.
Type
Algorithme de partitionnement de données (d)Voir et modifier les données sur Wikidata
Inventeur
Date d'invention

L'algorithme espérance-maximisation (en anglais expectation-maximization algorithm, souvent abrégé EM) est un algorithme itératif qui permet de trouver les paramètres du maximum de vraisemblance d'un modèle probabiliste lorsque ce dernier dépend de variables latentes non observables. Il a été proposé par Dempster et al. en 1977[1]. De nombreuses variantes ont par la suite été proposées, formant une classe entière d'algorithmes.

On utilise souvent l'algorithme EM pour la classification de données (clustering, ou partitionnement de données), l'apprentissage automatique, ou la vision artificielle. On peut également citer son utilisation en imagerie médicale dans le cadre de la reconstruction tomographique.

Principe général

[modifier | modifier le code]

L'algorithme d'espérance-maximisation consiste à itérer les deux étapes suivantes :

  • étape E : une étape d'évaluation de l'espérance, où l'on calcule l'espérance de la vraisemblance en tenant compte des dernières variables observées,
  • étape M : une étape de maximisation, où l'on estime le maximum de vraisemblance des paramètres en maximisant la vraisemblance trouvée à l'étape E.

On utilise à chaque fois les paramètres trouvés en l'étape M comme point de départ d'une nouvelle étape E d'évaluation de l'espérance.

Pour résoudre le problème d'apprentissage des modèles de Markov cachés (HMM), c’est-à-dire la détermination des paramètres du modèle markovien, on utilise l'algorithme de Baum-Welch.

Principe détaillé

[modifier | modifier le code]

Considérons un échantillon x = (x1 , ... , xn) d'individus suivant une loi f(xi,θ) paramétrée par θ. On cherche à déterminer le paramètre θ maximisant la log-vraisemblance donnée par

Introduction des variables cachées

[modifier | modifier le code]

Cet algorithme est particulièrement utile lorsque la maximisation de L est très complexe mais que, sous réserve de connaître certaines données judicieusement choisies, on peut très simplement déterminer θ. Dans ce cas, on s'appuie sur des données complétées par un vecteur z = (z1 , ... , zn) inconnu. En notant f(zi | xi,θ) la probabilité de zi sachant xi et le paramètre θ, on peut définir la log-vraisemblance complétée comme la quantité

Ainsi, on écrit la log-vraisemblance initiale comme :

L'algorithme EM est une procédure itérative basée sur l'espérance des données complétées conditionnellement au paramètre courant. En notant θ(c) ce paramètre, on peut écrire

où l'espérance est prise sur z.

ou encore

, car L(x ; θ) ne dépend pas de z,

avec et .

On montre que la suite définie par

fait tendre vers un maximum local.

Pseudo-code général

[modifier | modifier le code]

L'algorithme EM est défini par :

  • Initialisation au hasard de θ(0)
  • c = 0
  • Tant que l'algorithme n'a pas convergé[Quoi ?], faire
    • Étape E. Évaluation de l'espérance  :
    • Étape M. Maximisation  :
    • c = c+1

En pratique, pour s'affranchir du caractère local du maximum atteint, on fait tourner l'algorithme EM un grand nombre de fois à partir de valeurs initiales différentes de manière à avoir de plus grandes chances d'atteindre le maximum global de vraisemblance.

Exemple détaillé : application en classification automatique

[modifier | modifier le code]

Une des applications phares d'EM est l'estimation des paramètres d'une densité mélange en classification automatique dans le cadre des modèles de mélanges gaussiens. Dans ce problème, on considère qu'un échantillon (x1 , ... , xn) de , ie caractérisé par p variables continues, est en réalité issu de g différents groupes. En considérant que chacun de ces groupes Gk suit une loi f de paramètre θk, et dont les proportions sont données par un vecteur 1 , ... , πg). En notant Φ = (π1 , ... , πg , θ1 , ... , θg) le paramètre du mélange, la fonction de densité que suit l'échantillon est donnée par

et donc, la log-vraisemblance du paramètre Φ est donnée par

La maximisation de cette fonction selon Φ est très complexe. Par exemple, si on souhaite déterminer les paramètres correspondant à deux groupes suivant une loi normale dans un espace de dimension 3, il faut optimiser une fonction non-linéaire de (9 variables par normale plus la proportion entre les deux).

Parallèlement, si on connaissait les groupes auxquels appartient chacun des individus, alors le problème serait un problème d'estimation tout à fait simple et très classique.

La force de l'algorithme EM est justement de s'appuyer sur ces données pour réaliser l'estimation. En notant zik la grandeur qui vaut 1 si l'individu xi appartient au groupe Gk et 0 sinon, la log-vraisemblance des données complétée s'écrit

On obtient alors rapidement

En notant tik la quantité donnée par , on peut séparer l'algorithme EM en deux étapes, qu'on appelle classiquement, dans le cas des modèles de mélanges, l'étape Estimation et l'étape Maximisation. Ces deux étapes sont itérées jusqu'à la convergence.

  • Étape E : calcul de tik par la règle d'inversion de Bayes :
  • Étape M : détermination de Φ maximisant

L'avantage de cette méthode est qu'on peut séparer le problème en g problèmes élémentaires qui sont, en général relativement simples. Dans tous les cas, les proportions optimales sont données par

L'estimation des θ dépend par ailleurs de la fonction de probabilité f choisie. Dans le cas normal, il s'agit des moyennes μk et des matrices de variance-covariance Σk. Les estimateurs optimaux sont alors donnés par

Avec MT la matrice transposée de M et en supposant que les μk sont des vecteurs colonnes.

Variantes usuelles d'EM

[modifier | modifier le code]

L'algorithme EM allie, dans la plupart des cas, simplicité de mise en œuvre et efficacité. Néanmoins quelques cas problématiques ont donné lieu à des développements complémentaires. Parmi les variantes existantes de cet algorithme nous évoquerons l'algorithme GEM (generalized EM) qui permet de simplifier le problème de l'étape maximisation; l'algorithme CEM (classification EM) permettant de prendre en compte l'aspect classification lors de l'estimation, ainsi que l'algorithme SEM (stochastic EM) dont l'objectif est de réduire le risque de tomber dans un optimum local de vraisemblance.

Algorithme GEM

[modifier | modifier le code]

GEM a été proposé en même temps qu'EM par Dempster et al. (1977) qui ont prouvé que pour assurer la convergence vers un maximum local de vraisemblance, il n'est pas nécessaire de maximiser Q à chaque étape mais qu'une simple amélioration de Q est suffisante.

GEM peut donc s'écrire de la manière suivante:

  • Initialisation au hasard de
  • Tant que l'algorithme n'a pas convergé, faire
    • choisir tel que
  • Fin

Algorithme CEM

[modifier | modifier le code]

L'algorithme EM se positionne dans une optique estimation, c'est-à-dire qu'on cherche à maximiser la vraisemblance du paramètre , sans considération de la classification faite a posteriori en utilisant la règle de Bayes.

L'approche classification, proposée par Celeux et Govaert (1991)[2] consiste à optimiser, non pas la vraisemblance du paramètre, mais directement la vraisemblance complétée, donnée, dans le cas des modèles de mélange, par

Pour cela, il suffit de procéder de la manière suivante:

  • Initialisation au hasard de
  • Tant que l'algorithme n'a pas convergé, faire
  • Fin

Lorsque les composantes du mélange appartiennent à la même famille exponentielle, en utilisant la bijection entre les divergences de Bregman et les familles exponentielles, on obtient l'algorithme k-MLE[3].

Algorithme SEM

[modifier | modifier le code]

Afin de réduire le risque de tomber dans un maximum local de vraisemblance, Celeux et Diebolt (1985)[4] proposent d’intercaler une étape stochastique de classification entre les étapes E et M. Après le calcul des probabilités , l’appartenance des individus aux classes est tirée aléatoirement selon une loi multinomiale de paramètres .

Contrairement à ce qui se produit dans l’algorithme CEM, on ne peut considérer que l’algorithme a convergé lorsque les individus ne changent plus de classes. En effet, celles-ci étant tirées aléatoirement, la suite ne converge pas au sens strict. En pratique, Celeux et Diebolt (1985) proposent de lancer l’algorithme SEM un nombre de fois donné puis d’utiliser l’algorithme CEM pour obtenir une partition et une estimation du paramètre .

Références

[modifier | modifier le code]
  1. (en) A.P. Dempster, N.M. Laird et Donald Rubin, « Maximum Likelihood from Incomplete Data via the EM Algorithm », Journal of the Royal Statistical Society. Series B (Methodological), vol. 39, no 1,‎ , p. 1–38 (JSTOR 2984875)
  2. (en) G. Celeux et G. Govaert, « A classification EM algorithm for clustering and two stochastic versions », Computational Statistics Quarterly, vol. 2, no 1,‎ , p. 73–82
  3. (en) Frank Nielsen, « k-MLE: A fast algorithm for learning statistical mixture models », arxiv (ICASSP 2012),‎ (lire en ligne)
  4. (en) G. Celeux et G. Diebolt, « The sem algorithm : a probabilistic teacher algorithm derived from the em algorithm for the mixture problem », Rapport de recherche RR-1364, Inria, Institut National de Recherche en Informatique et en Automatique,‎