• Aucun résultat trouvé

On considère de nouveau le problème de ltrage non linéaire, où le système est décrit par les densités p(x0), p(xk|xk−1) et p(zk|xk). En particulier, les processus d'état et de mesure pourront être dénis par :



xk= fk(xk−1, wk)

zk= hk(xk, vk), (2.9)

où aucune hypothèse de linéarité sur les fonctions fk, hk n'est faite et où wk, vk sont des bruits blancs indépendants, éventuellement non gaussiens. Dans un premier temps, nous nous intéressons à la loi complète p(x0:k|z1:k), et à l'estimation d'intégrales de la forme suivante :

Ep(x0:k|z1:k)[φ(x0:k)] = I(φ(x0:k)) = Z

φ(x0:k) p(x0:k|z1:k) dx0:k (2.10) Cette intégrale est impossible à calculer en pratique du fait de sa trop grande dimension. L'application de l'algorithme d'échantillonnage pondéré, avec pour loi objectif p(x0:k|z1:k), nous permet d'en obtenir un estimateur.

On suppose tirer N échantillons (ou particules) {x(i)

0:k} selon la fonction d'importance π(x0:k|z1:k)(dont le support contient le support de p(x0:k|z1:k)). En appliquant directement l'algorithme 6, on obtient l'estimateur de l'intégrale suivant :

IN(φ(x0:k)) =

N

X

i=1

φ(x(i)0:k) wek(i), (2.11) où les poids d'importance normalisés s'écrivent :

e wk(i)= w (i) k PN j=1w(j)k avec w(i) k = p(x (i) 0:k|z1:k) π(x(i)0:k|z1:k) . (2.12)

38 2.2 Méthodes séquentielles de Monte Carlo

De la même manière, on peut approcher la loi objectif p(x0:k|z1:k)par la somme pondérée :

pN(x0:k|z1:k) = N X i=1 e w(i)k δ x(i)0:k(x0:k). (2.13)

2.2.1 Échantillonnage pondéré séquentiel

Pour le moment, l'estimation de l'intégrale décrite est une procédure non séquentielle. Or, le but est de construire une solution itérative, qui permet l'estimation de la loi a poste-riori p(x0:k|z1:k)à partir du nuage pondéré de particules approchant p(x0:k−1|z1:k−1)et de la nouvelle observation. Cela est rendu possible en supposant que la fonction d'importance est causale :

π(x0:k|z1:t) = π(x0:k|z1:k) ∀t ≥ k, (2.14) et que son expression est de la forme récursive suivante :

π(x0:k|z1:k) = π(x0) k Y t=1 π(xt|x0:t−1, z1:t), (2.15) ce qui implique : π(x0:k|z1:k) = π(xk|x0:k−1, z1:k) π(x0:k−1|z1:k−1). (2.16) Chaque nouvelle particule x(i)

0:k ∼ π(x0:k|z1:k) est alors dénie comme étant la par-ticule à l'instant précédent x(i)

0:k−1 ∼ π(x0:k−1|z1:k−1) augmentée d'un nouvel état x(i)k ∼ π(xk|x0:k−1, z1:k).

An d'obtenir une expression pour la mise à jour des poids, la loi p(x0:k|z1:k) est exprimée en fonction de p(xk|xk−1), p(zk|xk) et p(x0:k−1|z1:k−1) en utilisant le théorème de Bayes ainsi que les propriétés d'indépendance dénies en (0.3, 0.4) p.17 :

p(x0:k|z1:k) = p(x0:k|z1:k−1, zk) = p(x0:k, zk|z1:k−1) p(zk|z1:k−1) ∝ p(zk|x0:k, z1:k−1) p(x0:k|z1:k−1)

∝ p(zk|xk) p(xk|x0:k−1, z1:k−1) p(x0:k−1|z1:k−1)

∝ p(zk|xk) p(xk|xk−1) p(x0:k−1|z1:k−1). (2.17) En insérant cette relation et (2.16) dans l'expression des poids d'importance, on obtient la formule de récursivité des poids :

w(i)k = p(x (i) 0:k|z1:k) π(x(i)0:k|z1:k) ∝ p(zk|x (i)

k ) p(x(i)k |x(i)k−1) p(x(i)0:k−1|z1:k−1) π(x(i)k |x(i)0:k−1, z1:k) π(x(i)0:k−1|z1:k−1) ∝ wk−1(i) p(zk|x

(i)

k ) p(x(i)k |x(i)k−1) π(x(i)k |x(i)0:k−1, z1:k)

En résumé, la construction récursive du nuage approchant la loi a posteriori au temps k se fait par une procédure d'échantillonnage pondéré séquentiel. Tout d'abord chaque particule x(i)

0:k−1 est augmentée d'un nouvel état x(i)

k tiré selon la fonction d'importance π(xk|x(i)0:k−1, z1:k). Puis les nouveaux poids sont calculés par (2.18) et normalisés. L'algo-rithme 7 décrit cette procédure. Il a l'avantage d'être parallélisable.

Il est important de noter que le nuage pondéré obtenu permet une estimation de la loi de ltrage p(xk|z1:k), et de toute quantité de la forme Ep(xk|z1:k)[φ(xk)]pour toute fonction φintégrable par rapport à p(xk|z1:k) (cf annexe A).

Algorithme 7 Échantillonnage pondéré séquentiel dans le cadre bayésien • initialisation :

pour i = 1...N, générer x(i)

0 ∼ π(x0), et xer w(i)

0 = 1/N pour k = 1, 2, ...

• échantillonnage pondéré séquentiel : 1. échantillonnage :

pour i = 1...N, générer x(i)

k ∼ π(xk|x(i)0:k−1, z1:k)et poser x(i)

0:k , (x(i)0:k−1, x(i)k ). 2. mise à jour des poids d'importance :

pour i = 1...N, calculer w(i)

k = w(i)k−1p(zk|x

(i)

k ) p(x(i)k |x(i)k−1) π(x(i)k |x(i)0:k−1,z1:k) . 3. normalisation des poids :

pour i = 1...N, calculerwe(i)k = w

(i) k

PN j=1wk(j)

• estimations de Monte Carlo : le nuage {x(i)

0:k,we(i)k }i=1...N permet d'approcher la loi a posteriori p(x0:k|z1:k) ' N X i=1 e w(i)k δ x(i)0:k(x0:k) et pour toute fonction φ intégrable par rapport à p(x0:k|z1:k)

Ep(x0:k|z1:k)[φ(x0:k)] '

N

X

i=1

φ(x(i)0:k) wek(i) de plus, la loi de ltrage est approchée par

p(xk|z1:k) ' N X i=1 e w(i)k δ x(i)k (xk)

40 2.2 Méthodes séquentielles de Monte Carlo

2.2.2 Problème de dégénérescence et taille ecace du N-échantillon

Choisir des fonctions d'importance de la forme (2.16) conduit à une augmentation de la variance des poids dans le temps [Kong 94]. En pratique, cela a pour eet de faire décroître rapidement le nombre de particules signicatives. Ce problème de dégé-nérescence conduit à une divergence du nuage de particules, et à une détérioration de l'estimation en sortie de l'algorithme d'échantillonnage pondéré séquentiel. Cette dégéné-rescence est d'autant plus grande que la fonction d'importance est diérente de p(x0:k|z1:k). Une mesure de la dégénérescence de l'algorithme, décrite dans [Kong 94] [Liu 95], est apportée par la taille ecace du N-échantillon (eective sample size) notée ESS. Ce cri-tère est déni en utilisant le ratio entre la variance de l'estimée obtenue par l'échantillon-nage pondéré selon π(x0:k|z1:k)et la variance de l'estimée obtenue par un échantillonnage parfait selon p(x0:k|z1:k). Ce ratio reète l'ecacité de la procédure d'échantillonnage pon-déré. En remarquant que :

varπ(.|z1:k)[IN(φ(x0:k))]

varp(.|z1:k)[IN(φ(x0:k))] ' 1 + varπ(.|z1:k)[wk] = Eπ(.|z1:k)[(wk)2], (2.19) la taille ecace du N-échantillon est dénie telle que

ESS = N

Eπ(.|z1:k)[(wk)2]. (2.20) Bien que cette expression ne puisse pas être calculée directement, il est possible de l'ap-procher par l'estimateur

ESSN = N

PN

i=1(we(i)k )2 (2.21)

où les wek(i) sont les poids d'importance normalisés. Une valeur faible de ESSN indique une forte dégénérescence.

Carpenter et al. [Carpenter 99] proposent de calculer une approximation de la taille ecace du N-échantillon par une méthode de Monte Carlo. La procédure consiste à lancer le ltre particulaire L fois sur un ensemble de données identiques avec N particules, pour obtenir L estimées indépendantes Il

N(φ) d'une fonction d'intérêt φ. Ces estimées sont calculées par (2.11). Pour chaque réalisation l du ltre, une covariance intra-réalisation Pl est calculée, qui correspond à la covariance de Il

N(φ).

Les méthodes séquentielles de Monte-Carlo étant fondées sur la simulation de variables aléatoires, les estimées Il

N(φ) et Pl varient d'une réalisation du ltre à l'autre. Par consé-quent, on peut calculer une covariance inter-réalisations qui est dénie comme la covariance de l'ensemble des L estimées {IN(φ)}l=1...L. Dans ce cas, la taille ecace du N-échantillon est approchée par le rapport entre la moyenne des covariances intra-réalisation et la cova-riance inter-réalisations (il est à remarquer que cette valeur dépend de la fonction φ).

En pratique, la première possibilité pour le calcul de ESS sera conservée, pour une raison de simplicité de mise en ÷uvre.

Enn, un autre critère de la dégénérescence des poids a été proposé par Pham [Pham 98]. Il est fondé sur un critère d'entropie mesurant la dispersion des pondérations :

log(N ) + X

i=1...N

e

w(i)k logwek(i). (2.22)

Cette quantité est toujours positive et vaut zéro uniquement lorsque tous les poids sont égaux à 1/N.

2.2.3 Échantillonnage pondéré séquentiel avec rééchantillonnage

Pour limiter la dégénérescence des poids, deux méthodes ont été proposées (qui peuvent être couplées). Une première solution consiste à choisir une fonction d'importance appro-priée, qui minimise la variance des poids et maximise ESS. Il a été démontré qu'une telle fonction de proposition optimale s'écrit π(xk|x0:k−1, z1:k) = p(xk|xk−1, zk) [Doucet 00b] (la démonstration sera donnée dans la section 2.3 p. 42 où le choix d'une loi de proposi-tion est discuté). Malheureusement, en pratique, celle-ci n'est que très rarement accessible. Dans tous les cas, il est important d'utiliser une fonction qui guide les particules dans les zones de l'espace d'état de forte vraisemblance.

Une deuxième solution consiste à ajouter une étape de rééchantillonnage à l'algorithme d'échantillonnage pondéré séquentiel. La procédure complète est appelée échantillonnage pondéré séquentiel avec rééchantillonnage et constitue l'algo-rithme de ltrage particulaire. Le principe de cette étape est de supprimer les particules ayant un faible poids normalisé et d'ajouter des copies des particules associées à un poids fort. La technique classique consiste à tirer avec remise N nouvelles particules parmi l'ensemble des particules, proportionnellement à leur poids. Plusieurs autres méthodes de simulation peuvent être utilisées. Elles seront décrites dans la section 2.4.

L'introduction du rééchantillonnage permet une amélioration de la qualité des estima-tions de Monte Carlo en diminuant le problème de dégénérescence. Cependant, cette étape introduit des problèmes pratiques et théoriques. Du point de vue de la mise en ÷uvre, la possibilité de paralléliser l'algorithme est réduite. Au niveau théorique, le rééchantillonnage introduit une dépendance entre les particules. Cela rend les résultats de convergence dicile à établir. De plus, les particules ayant un fort poids seront sélectionnées plusieurs fois. Cela implique le problème connu sous le nom d'appauvrissement des états, qui décrit une perte de diversité parmi les particules. Ce problème est d'autant plus important que les modes de la vraisemblance sont très prononcés et que la densité de prédiction est peu informative. Dans un cas extrême, toutes les particules se trouvent à la même position de l'espace d'état. De nombreuses améliorations ont été proposées [Doucet 01a], qui portent sur le choix de la fonction d'importance ou le choix d'une étape de rééchantillonnage. Ces méthodes seront décrites dans les deux sections suivantes.

En résumé, la procédure de rééchantillonnage permet de corriger une divergence du nuage de particules. Cette divergence est inhérente à l'algorithme d'échantillonnage pon-déré séquentiel. Elle rend compte de la diérence entre la fonction d'importance π(x0:k|z1:k) et la densité recherchée p(x0:k|z1:k). Une étape de rééchantillonnage est essentielle, mais du fait de ces inconvénients, elle doit être réalisée uniquement quand cela est nécessaire. En