# Méthode de l'entropie croisée

La méthode de l'entropie-croisée (CE) attribuée à Reuven Rubinstein est une méthode générale d'optimisation de type Monte-Carlo, combinatoire ou continue, et d'échantillonnage préférentiel. La méthode a été conçue à l'origine pour la simulation d'événements rares, où des densités de probabilité très faibles doivent être estimées correctement, par exemple dans l'analyse de la sécurité des réseaux, les modèles de file d'attente, ou l'analyse des performances des systèmes de télécommunication. La méthode CE peut être appliquée à tout problème d'optimisation combinatoire où les observations sont bruitées comme le problème du voyageur de commerce, l'optimisation quadratique, le problème d'alignement de séquences d'ADN, le problème de la coupure maximale et les problèmes d'allocation de mémoire, tout comme des problèmes d'optimisation continue avec de nombreux extrema locaux.
La méthode CE se décompose en deux phases :
* Créer aléatoirement un échantillon de données (trajectoires, vecteurs, etc.) selon un mécanisme spécifique.
* Mettre à jour les paramètres du mécanisme de création aléatoire à partir de l'échantillon de données pour produire un meilleur échantillon à l'itération suivante. Cette étape implique de minimiser l'entropie croisée ou la divergence de Kullback-Leibler.

## Estimation via l'échantillonnage préférentiel

Considérons le problème général d'estimation de la quantité $\ell =\mathbb {E} _{\mathbf {u} }[H(\mathbf {X} )]=\int H(\mathbf {x} )\,f(\mathbf {x} ;\mathbf {u} )\,{\textrm {d}}\mathbf {x}$, où $H$ est une fonction objectif et $f(\mathbf {x} ;\mathbf {u} )$ est une densité de probabilité paramétrique. En utilisant l'échantillonnage préférentiel cette quantité peut être estimée par ${\hat {\ell }}={\frac {1}{N}}\sum _{i=1}^{N}H(\mathbf {X} _{i}){\frac {f(\mathbf {X} _{i};\mathbf {u} )}{g(\mathbf {X} _{i})}}$, où $\mathbf {X} _{1},\dots ,\mathbf {X} _{N}$ est un échantillon de variables aléatoires de densité $g\,$. Pour $H$ positif, l'optimum théorique de la densité de probabilité des variables aléatoires est donné par $g^{*}(\mathbf {x} )=H(\mathbf {x} )f(\mathbf {x} ;\mathbf {u} )/\ell$. Cependant $\ell$ est un paramètre inconnu. La méthode CE propose d'approcher la densité optimale en sélectionnant les éléments de l'échantillon qui sont les plus proches (au sens de Kullback-Leibler) de la densité optimale $g^{*}$.

## Algorithme CE générique

* Choisir un vecteur des paramètres initial $\mathbf {v} ^{(0)}$; poser $t=1$.
* Créer un échantillon de variables aléatoires $\mathbf {X} _{1},\dots ,\mathbf {X} _{N}$ selon la densité $f(\cdot ;\mathbf {v} ^{(t-1)})$
* Calculer $\mathbf {v} ^{(t)}$, où $\mathbf {v} ^{(t)}=\mathop {\textrm {argmax}} _{\mathbf {v} }{\frac {1}{N}}\sum _{i=1}^{N}H(\mathbf {X} _{i}){\frac {f(\mathbf {X} _{i};\mathbf {u} )}{f(\mathbf {X} _{i};\mathbf {v} ^{(t-1)})}}\log f(\mathbf {X} _{i};\mathbf {v} )$
* Si l'algorithme a convergé alors stopper; sinon, incrémenter $t$ de 1 recommencer à l'étape 2.
Dans certains cas, la solution de l'étape 3 peut être trouvée analytiquement. Les situations où cela se produit sont
* Quand $f\,$ fait partie des fonctions de la famille exponentielle naturelle
* Quand $f\,$ est discrète avec un support fini
* Quand $H(\mathbf {X} )=\mathrm {I} _{\{\mathbf {x} \in A\}}$ et $f(\mathbf {X} _{i};\mathbf {u} )=f(\mathbf {X} _{i};\mathbf {v} ^{(t-1)})$, alors $\mathbf {v} ^{(t)}$ correspond à l'estimateur du maximum de vraisemblance basé sur les $\mathbf {X} _{k}\in A$.

## Optimisation continue—exemple

Le même algorithme CE peut être utilisé pour l'optimisation et l'estimation. Soit le problème consistant à maximiser une fonction $S(x)$, par exemple, $S(x)={\textrm {e}}^{-(x-2)^{2}}+0.8\,{\textrm {e}}^{-(x+2)^{2}}$. Pour utiliser l'entropie croisée on doit d'abord considérer le problème stochastique associé de l'estimation de $\mathbb {P} _{\boldsymbol {\theta }}(S(X)\geq \gamma )$ pour un niveau donné $\gamma \,$, et une famille de distributions de probabilité paramètriques $\left\{f(\cdot ;{\boldsymbol {\theta }})\right\}$, par exemple la loi normale à une dimension, dont les paramètres sont la moyenne $\mu _{t}\,$ et la variance $\sigma _{t}^{2}$ (tel que ${\boldsymbol {\theta }}=(\mu ,\sigma ^{2})$ ici). Ainsi, pour un $\gamma \,$ donné, l'objectif est de déterminer ${\boldsymbol {\theta }}$ tel que la quantité $D_{\mathrm {KL} }({\textrm {I}}_{\{S(x)\geq \gamma \}}\|f_{\boldsymbol {\theta }})$ soit minimisée. Ce qui est fait en utilisant la version échantillonnée (contrepartie stochastique) du problème de la minimisation de la divergence KL, comme précédemment dans l'étape 3. Il se trouve que pour ce choix de distribution les paramètres qui minimisent la version stochastique du problème sont la moyenne et la variance empirique de l'échantillon d'élite qui est composé des tirages dont la valeur de la fonction score est $\geq \gamma$. Le plus mauvais des éléments de l'échantillon d'élite sert de paramètre de niveau à l'itération suivante. Cela donne l'algorithme stochastique suivant pour ce problème.

### Pseudo-code
## Méthodes liées

* Recuit simulé
* Algorithme génétique
* Algorithme à estimation de distribution
* Recherche tabou