• Aucun résultat trouvé

Chapitre III : Les problèmes inverses

III.2. Méthodes de Monte Carlo

III.2.3. Choix de la fonction saut

Comme nous l’avons dit, la fonction saut doit être symétrique et strictement positive. Le but est ensuite de choisir une fonction saut qui produise une suite rapidement convergente vers la solution. Il n’est pas question ici d’énoncer des théorèmes mathématiques pour déterminer ce choix (le choix optimal dépend certainement de la densité limite), mais d’expliquer comment nous pouvons faire ce choix en pratique, les solutions énoncées étant basées sur l’expérience.

Les densités de probabilité positives qui viennent directement à l’esprit sont les densités gaussiennes. Il s’agit alors de déterminer quelle gaussienne sera appropriée pour notre problème.

III.2.3.1. Le mode « marche aléatoire »

Lorsque l’on n’a pas d’information précise sur la densité que l’on cherche à échantillonner, la solution la plus simple est de choisir une gaussienne de matrice de covariance D diagonale (pas de corrélation entre les différentes variables). Il reste alors à choisir les déviations standards σ1,…,σn

pour chaque variable x

1,…, xn (dont les carrés forment les éléments diagonaux de la matrice)

D= σ12 z σn2 , sachant que :

• si on choisit une déviation standard trop importante par rapport au « domaine d’intérêt » de la densité limite (le domaine où la densité n’est pas négligeable), nous risquons de choisir des candidats qui sont trop systématiquement rejetés ;

• si on choisit une déviation standard trop faible par rapport à ce domaine d’intérêt, la marche risque de faire des très petits sauts, et elle mettra donc longtemps pour couvrir entièrement le domaine d’intérêt.

Pour éviter que les covariances sur les paramètres aient une valeur trop grande ou trop petite par rapport au domaine d’intérêt, on utilise une facteur d’échelle adaptatif s, et la matrice de

covariance utilisée est s⋅D . L’ajustement de ce facteur d’échelle sera détaillé dans la section

III.2.3.3.

III.2.3.2. Le mode « marche forcée »

L’application du mode « marche aléatoire » peut être très lente. En effet, le domaine d’intérêt de la densité que l’on cherche à reconstruire ressemble souvent à une pseudo−variété dans un espace de dimension n, qui présente une forte corrélation entre les différentes variables. Il faut imaginer par exemple une ligne floue dans un espace de dimension 3. L’espace que nous cherchons à échantillonner est donc essentiellement vide, et d’autant plus vide que la dimension de l’espace est grande.

L’idée du mode « marche forcée » est donc de choisir une fonction saut gaussienne avec une direction préférentielle, c’est à dire de matrice de covariance non diagonale. En fait, cette matrice de covariance C sera déterminée à partir de la matrice de covariance C

obs des précédents éléments de la suite. Les candidats seront donc choisis dans la direction moyenne des anciens termes de la suite.

Bien que les résultats théoriques de convergence aient été démontrés pour une chaîne de Markov homogène, l’algorithme est périodiquement mis à jour après un nombre fixé de boucles (typiquement quelques centaines). La variance du saut est donc régulièrement mise à jour selon les résultats précédents, ajustant par conséquent la direction de recherche.

Comme dans le mode « marche aléatoire », l’utilisation d’un facteur d’échelle s pour ajuster la « longueur de l’exploration » est appropriée. Nous prendrons donc C=s⋅Cobs, et s sera ajusté comme indiqué dans la section suivante.

Pour initialiser le mode « marche forcée », nous démarrerons en pratique par le mode « marche aléatoire », qui nous donnera une vision globale mais peu raffinée du domaine d’intérêt de la densité de probabilité limite. Puis le mode « marche forcée » utilisera la covariance des points sélectionnés par le mode « marche aléatoire », et il permettra une convergence plus rapide de l’algorithme.

III.2.3.3. Ajustement du facteur d’échelle

L’ajustement du facteur d’échelle dépend très certainement de la densité limite que l’on cherche à reconstruire. Néanmoins, des tests peuvent être réalisé sur des densités mathématiques

bien connues. Gelman et al. [1995] basent leur réponse en appliquant l’algorithme de Metropolis− Hastings à des densité gaussiennes incluant de 1 à 50 variables. Ils concluent que le critère principal pour déterminer une valeur efficace du facteur d’échelle est le taux d’acceptation de l’algorithme calculé après un nombre donné d’itérations. Ainsi, un taux d’acceptation trop élevé signifie des sauts trop petits autour d’un point et induira une surestimation de la densité de cette région. Au contraire, un taux d’acceptation trop bas équivaut à des sauts trop grands et une convergence très lente de l’algorithme. Gelman et al. [1995] montrent ainsi que le facteur d’échelle doit être modifié pour contraindre le taux d’acceptation entre 0.23 (nombre de variables supérieur à 5) et 0.44 (nombre de variables égal à 1).

III.2.3.4. Comment générer une suite aléatoire qui suit une loi gaussienne ?

L’algorithme de Metropolis nous amène donc à choisir aléatoirement des nombres :

• un nombre entre 0 et 1 pour la loi d’acceptation−rejet,

• un vecteur qui suit une loi gaussienne pour la fonction saut.

Les ordinateurs peuvent classiquement nous fournir des nombres pseudo−aléatoires compris entre 0 et 1. Le premier point ne pose donc pas de problème. Le deuxième point nécessite par contre deux étapes : construire des nombres qui suivent une loi gaussienne définie, puis construire des vecteurs qui suivent une loi gaussienne de matrice de covariance définie.

Théorème 1

Soient u et v deux variables aléatoires indépendantes suivant des densités de probabilité constantes sur 0 ; 1 . Alors les suites :

x= B2 ln u cos 2 π v y= B2 ln u sin 2 π v

Supposons maintenant que nous soyons dans un espace à n dimensions de vecteurs x= x1,…, xn , et que nous voulions créer une suite aléatoire x1, x2,… qui suive une loi gaussienne

de matrice de covariance C symétrique et définie positive. Cela peut être fait grâce aux étapes suivantes :

• diagonalisation de la matrice : C=P D Pt

: P matrice orthogonale (i.e. P matrice inversible et

PB1= Pt

) et D matrice diagonale définie positive :

D=

σ12

z

σn2

,

• Création d’une suite de vecteurs aléatoires y1, y2,… suivant une loi gaussienne de matrice de

covariance D. Chaque vecteur est composé de n variables aléatoires indépendantes y

1,…, yn qui suivent une loi de probabilité gaussienne d’écarts types respectifs σ1,…,σn ;

• obtentions des vecteurs aléatoires x 1, x

2,… en transformant les vecteurs y1, y

2,… d’après la

formule :

x=P y .

Justification : soit X un vecteur aléatoire de moyenne nulle, et C

X sa matrice de covariance : C X=X Xt . 0 1 u 0 1 v -4 -3 -2 -1 0 1 2 3 4 x -4 -3 -2 -1 0 1 2 3 4 y

Soit P une matrice de changement de base orthogonale et soit le changement de variable Y=PB1X . Alors : CX=X Xt =PY Yt P t =PY Yt P t =PCYtP