Méthodes avancées en MCMC Bayésien
Méthodes avancées en MCMC Bayésien
Hicham Janati
hjanati@[Link]
1. Pourquoi Monte-Carlo ? (Exemple de modèle hiérarchique)
2. Introduction à la méthode Monte-Carlo (historique, PRNG)
2
Pourquoi les
II. Méthodes de Monte-Carlo
?
3
Pourquoi Monte-Carlo ? Modèle bayésien hiérarchique
Sur-estimer le risque des bons conducteurs / sous-estimer le risque des mauvais conducteurs
On note z i = 1 (bon) et z i = 0 (mauvais)
4
Pourquoi Monte-Carlo ? Modèle bayésien hiérarchique
Sur-estimer le risque des bons conducteurs / sous-estimer le risque des mauvais conducteurs
On note z i = 1 (bon) et z i = 0 (mauvais)
Mais les z i ne sont pas observées...
Comment peut-on adapter le modèle ?
5
Pourquoi Monte-Carlo ? Modèle bayésien hiérarchique
N i| i ⇠ P( i )
On note z i = 1 (bon) et z i = 0 (mauvais)
Comment peut-on modéliser la variable z i ?
On modélise la variable z i |p ⇠ Bernoulli(p)
Lois a priori des bons et des mauvais di érentes:
groupe a une loi a priori: i |z i = 0 ⇠ Gamma(↵0 , 0) et i |z i = 1 ⇠ Gamma(↵1 , 1)
↵ 0 , ↵1 , 0, 1 ⇠ Gamma(⌧, )
L’hyperprior Gamma “lie”
Avec des hyperpriors: les deux groupes
p ⇠ (a, b)
N i| i ⇠Données
P( i ) de l’individu
N i| i ⇠ P( i )
Paramètres individuels
N i | i ⇠ P( i )
Et chaque groupe a une loi a priori: i |z i = 0 ⇠ Gamma(↵0 , 0 ) et i |z i = 1 ⇠ Gamma(↵1 , 1 )
priori: i |z i = 0 ⇠ Gamma(↵0 , 0 ) et i |z i = 1 ⇠ Gamma(↵1 , 1 )
Et chaque groupe a une loi a priori: i |z i = 0 ⇠ Gamma(↵0 , 0 ) et i |z i = 1 ⇠ Gamma(↵1 , 1 )
pe
upe Variables
aEtune
aEt
chaque
une
chaque
loiloi latentes
a groupe
priori:
a groupea(non-observées)
priori: |z
iune |z=iloi
a iiune = ⇠
0loi a⇠
a0 priori:
Gamma(↵
priori:
Gamma(↵ i |zi0i|z
,= 0) 0⇠
0i ,0= 0) ⇠
et |zii|z=i =
Gamma(↵
etiGamma(↵ 1⇠01, ⇠
Gamma(↵ ) eti |zi1i|z
0 ,0 Gamma(↵
) 0et ,= 1) 1⇠
1i ,1= 1) ⇠Paramètres
Gamma(↵
Gamma(↵ 1 ,collectifs
1 ,1 ) 1 )
élise la variable z i |p ⇠ Bernoulli(p)
n modélise la variable z i |p ⇠ Bernoulli(p) ↵0 , ↵1 , 0 , 1 ⇠ Gamma(⌧, )
↵ , ↵ , ↵, , ↵⇠, Gamma(⌧,
0 1 00 1 1 0 , ⇠ Gamma(⌧,
1 ) )
p ⇠ (a, b) Hyper-paramètres
p ⇠ p(a,
⇠ b)(a, b)
7
fl
Pourquoi Monte-Carlo ? Modèle bayésien hiérarchique
iroupe
Et achaquea une
priori: loii =
groupe
i |z … Gamma(↵
a apriori:
0 une
⇠ loi ia|zpriori:
i =… 00, ⇠0 )Gamma(↵
i |z
eti =i |z 0 i⇠=0Gamma(↵ et i |z
,1 0⇠) Gamma(↵ 0 ,i = , ⇠1 )Gamma(↵
0 )11et i |z i = 1 ⇠1Gamma(↵, 1) 1, 1)
peupe
aEtune
aEt
chaque
une
chaque
loiloi
a groupe
priori:
a groupe
priori: |z
a iune |z=iloi
a iiune = ⇠
0loi a⇠
a0 priori:
Gamma(↵
priori:
Gamma(↵ i |zi0i|z
,= 0) 0⇠
0i ,0= 0) ⇠
et |zii|z=i =
Gamma(↵
etiGamma(↵ 1⇠ 01, ⇠
Gamma(↵ ) eti |zi1i|z
0 ,0 Gamma(↵
) 0et ,= 1) 1⇠
1i ,1= 1) ⇠
Gamma(↵
Gamma(↵
1 , 1 ,1 ) 1 )
p ⇠ p(a,
⇠ b)(a, b) Aussi appelé un “Réseau bayésien”
8
fl
Pourquoi Monte-Carlo ? Modèle bayésien hiérarchique
N i| i ⇠Données
P( i ) de l’individu
N i| i ⇠ P( i )
Paramètres individuels
N i | i ⇠ P( i )
Et chaque groupe a une loi a priori: i |z i = 0 ⇠ Gamma(↵0 , 0 ) et i |z i = 1 ⇠ Gamma(↵1 , 1 )
priori: i |z i = 0 ⇠ Gamma(↵0 , 0 ) et i |z i = 1 ⇠ Gamma(↵1 , 1 )
Et chaque groupe a une loi a priori: i |z i = 0 ⇠ Gamma(↵0 , 0 ) et i |z i = 1 ⇠ Gamma(↵1 , 1 )
pe
upe Variables
aEtune
aEt
chaque
une
chaque
loiloi latentes
a groupe
priori:
a groupea(non-observées)
priori: |z
iune |z=iloi
a iiune = ⇠
0loi a⇠
a0 priori:
Gamma(↵
priori:
Gamma(↵ i |zi0i|z
,= 0) 0⇠
0i ,0= 0) ⇠
et |zii|z=i =
Gamma(↵
etiGamma(↵ 1⇠01, ⇠
Gamma(↵ ) eti |zi1i|z
0 ,0 Gamma(↵
) 0et ,= 1) 1⇠
1i ,1= 1) ⇠Paramètres
Gamma(↵
Gamma(↵ 1 ,collectifs
1 ,1 ) 1 )
élise la variable z i |p ⇠ Bernoulli(p)
n modélise la variable z i |p ⇠ Bernoulli(p) ↵0 , ↵1 , 0 , 1 ⇠ Gamma(⌧, )
↵ , ↵ , ↵, , ↵⇠, Gamma(⌧,
0 1 00 1 1 0 , ⇠ Gamma(⌧,
1 ) )
p ⇠ (a, b) Hyper-paramètres (non aléatoires)
p ⇠ p(a,
⇠ b)(a, b)
n n n
Question: trouver la loi a posteriori jointe de tous les paramètres ({ i }i=1 , {z i }i=1 , p, ↵0 , ↵1 , 0, 1 ) |{N i }i=1 .
9
fl
Pourquoi Monte-Carlo ? Modèle bayésien hiérarchique
( )
⌘ Yn ⇣ ⌘ ⇣ ⌘ ⇣ ⌘
, 1 , {zi }, { i } | {Ni } / P Ni | i P i | zi , ↵ 0 , 0 , ↵ 1 , 1 P z i | p P p P ↵ 0 P 0 P ↵1 P 1 .
i=1
( ✓ ◆1 ) "" #
n
Y Ni ↵0 zi ✓ ↵1 ◆z i
i e i
⌧ ⌧ 11 e ↵00 ⌧ 11 0 0 0
↵10 ↵1⌧ 0 ⌧10 1 0 0
/ 0
i
↵0 1
e 0 i 1
i
↵1 1
e 1 i zi
p (1 p) 1 zi
p a 1
(1 p) b 1 ↵
↵00 e ↵
00 ee ↵1 1 1 e1
00⌧⌧
↵ e 1 1 e e 1
.1
i=1
N i! (↵0 ) (↵1 )
n n
Comment obtenir les lois a posteriori d’intérêt: j |{N i }i=1 ? z j |{N i }i=1 ?
Solution: Obtenir des échantillons “simulés” issus de la loi a posteriori et construire des estimateurs empiriques
10
Pourquoi les
2. Méthodes de Monte-Carlo
?
11
ff
II Méthodes de Monte-Carlo
1. Introduction
12
Calcul d’intégrale pre-WWII
Nous sommes en 1902
?
Cible X
? ?
Z = XZ =XX X
Vous
On note d = 30 le diamètre de la cib
?
On note X et X les coordonnées du projectile et de la cible.
? 2
On modélise X ⇠ N (X , ) avec = 50.
On note d = 30 le diamètre de la cible.
Pour détruire la cible, il faut en moins 40 impacts directs, combien de projectiles devez-vous lancer ?
def X X ?
On pose Z = ⇠ N (0, 1). P(Impact)
P(Impact)==P(|X
P(|X ??
X | d)==P(|Z|
X |d) dd
P(|Z| ))== (( )) dd
(( dd
))
d 30
\ = =2 ( ) 1=2 ( 50 ) 1 ⇡ 0.45
P(Impact) 40
N )N = \
40
⇡ 40
0.45 ⇡ 89
P(Impact) Comment on calcule 30
( 50 ) en 1902 ?
13
Calcul d’intégrale pre-WWII
30
Comment on calcule ( 50 ) en 1902 ?
Z x
def 1 x2
(x) = P(Z x) = p e 2 2 dx
2⇡ 1
x2 x3 x
4. Calculer les exp: exp(x) = 1 + x + 2! + 3! + · · ·
Beaucoup de calculs à la main…
14
Calcul d’intégrale pre-WWII
“Un computer” à l’époque était un travail:
15
ff
ENIAC et méthodes de quadrature
16
L’idée “Monte-Carlo”
Metropolis propose de nommer leur article “The Monte-Carlo Method” inspiré par
l’oncle d’Ulam qui était accro au célèbre casino de Monte-Carlo.
18
Le premier PRNG
1. Les
Se PRNG
basentd’aujourd’hui:
sur un mélange F d’opérations (addition, multiplication, reste de division, shift de bits . . . )
1.
1. Se
Se basent
basent sur
sur un
un mélange
mélange F
F d’opérations
d’opérations (addition,
(addition, multiplication,
multiplication, reste
reste de
de division,
division, shift
shift de
de bits
bits .. .. .. ))
1. Se
1. Se basent
basent sur sur unun mélange
mélange F F d’opérations
d’opérations (addition,
(addition, multiplication,
multiplication, reste reste de de division,
division, shift
shift dede bits
bits .. .. .. ))
2. Définissent toujours une suite d’entiers périodique xn+1 = F (xn ) avec xi 2 [0, M ], avec M très grand et une pério
2.
2. Définissent
Définissent toujours
toujours une
une suite
suite d’entiers
d’entiers
12 périodique
périodique x
x n+1
n+1 =
= F
F (x
(x n
n )) 18
avec
avec x
x ii 2
2 [0,
[0, M
M ],
], avec
avec M
M très
très grand
grand et
et une
une période
période
2. très très grande
2. Définissent
Définissent toujours
toujours (même
une
une avec d’entiers
suite
suite 10
12 chi↵res
d’entiers / seconde,
périodique
périodique x
x n+1 il=
=faut
F
F (x
(x 10)) avec
18
n années
avec x
x i 2
2 pour
[0,
[0, M
M voir
],
], avec
avectoute
M
M la séquence).
très
très grand
grand et
et une
une période
période
très
très très
très grande
grande (même
(même avec
avec 10
10 12
12 chi↵res
chi↵res /
/ seconde,
seconde, il
n+1
il faut
faut 10
10 n années
18
18 années ipour
pour voir
voir toute
toute la
la séquence).
séquence).
très très
très très grande
grande (même avec
xi (même avec 10
10 chi↵res
12 chi↵res // seconde,
seconde, il il faut
faut 10
10 années
18 années pour
pour voir
voir toute
toute la
la séquence).
séquence).
3. Définir ui = xxM permet d’obtenir des nombres qui “semblent” suivre
i permet d’obtenir des nombres qui “semblent” suivre une loi uniforme U ([0, 1]).
une loi uniforme U ([0, 1]).
3.
3. Définir
Définir u
u ii =
= x
M
i
i
i permet d’obtenir des nombres qui “semblent” suivre une loi uniforme U ([0, 1]).
3. Définir
3. Définir u uii == Mi permet
M
x permet d’obtenir
d’obtenir desdes nombres
nombres qui qui “semblent”
“semblent” suivre suivre une une loiloi uniforme
uniforme U U ([0,
([0, 1]).
1]).
4.
4. Il
Il existe
existe plusieurs
M
plusieurs testsqui
tests quipermettent
permettent de de mesurer
mesurer la la qualité
qualité statistique
statistique d’un d’un
PRNGPRNG (corrélation,
(corrélation, biais biais
de de sélection.
sélection...)
4. Il
4. Il existe
Il existe plusieurs
existe plusieurs
plusieurs teststests qui
tests qui permettent
qui permettent
permettent de de mesurer
de mesurer
mesurer la la qualité
la qualité statistique
qualité statistique
statistique d’un d’un PRNG
d’un PRNG (corrélation,
PRNG (corrélation, biais
(corrélation, biais
biais de de sélection...)
de sélection...)
sélection...)
4.
5. On
5. On appelle
appellexx0lalagraine graine(seed)
(seed)duduPRNG:
PRNG: si si
on on
la la connait,
connait, on on
peut peut déterminer
déterminer toutetoute
la la suite.
suite.
5. On
5. On appelle
On appelle
appelle x x 0
0
x00 lala graine
la graine (seed)
graine (seed) du
(seed) du PRNG:
du PRNG:
PRNG: si si on
si on la
on la connait,
la connait,
connait, on on peut
on peut déterminer
peut déterminer toute
déterminer toute la
toute la suite.
la suite.
suite.
5.
6.
6.
6. Fixer
Fixer
Fixer la
la
la seed
seed
seed permet
permet
permet de
dede garantir
garantir
garantir la
lala reproducibilité
reproducibilité
reproducibilité d’un
d’und’un programme
programme
programme avec
avec avec
des
des des nombres
nombres
nombres (pseudo)
(pseudo)
(pseudo) aléatoires.
aléatoires.
aléatoires.
6. Fixer
6. Fixer la la seed
seed permet
permet de de garantir
garantir lala reproducibilité
reproducibilité d’un d’un programme
programme avec avec desdes nombres
nombres (pseudo)
(pseudo) aléatoires.
aléatoires.
7.
7.
7. Les
Les
Les PRNG
PRNG
PRNG les
les
les plus
plus
plus connus
connus
connus sont:
sont:
sont:
7. Les
7. Les PRNG
PRNG les les plus
plus connus
connus sont:
sont:
(a) Mersenne
(a)
(a) MersenneTwister
Mersenne Twister(1997):
Twister (1997):utilisé
(1997): utilisépar
utilisé par par défaut
défaut
défaut Numpy
Numpy
Numpy <=
<= <=
1.16.
1.16. 1.16 [Link]
(a) Mersenne
(a) Mersenne Twister Twister (1997):
(1997): utilisé
utilisé par
par défaut
défaut Numpy
Numpy <= <= 1.16.
1.16.
(b) PCG64
(b)
(b) PCG64(2014):
PCG64 (2014):adopté
(2014): adoptépar
adopté parNumpy
par Numpy>=
Numpy >=>=1.171.17
1.17 en
en en 2019. [Link].default_rng
2019.
2019.
(b) PCG64
(b) PCG64 (2014):
(2014): adopté
adopté par
par Numpy
Numpy >= >= 1.17
1.17 enen 2019.
2019.
8. Ne doivent pas être utilisés en cryptographie (générer des clés privées / mots de passe)
20
Algorithmes de simulation
21
Algorithmes de simulation Rejection sampling
22
Algorithmes de simulation Rejection sampling
23
Algorithmes de simulation Rejection sampling
24
Algorithmes de simulation Rejection sampling
On souhaite adapter cette méthode pour avoir des échantillons qui suivent une densité f: dé nie sur [-3, 3]:
(x, y)
(x, y)
x à garder x à rejeter
Comment peut-on simuler des échantillons à partir de sa distribution avec des échantillons uniformes ?
25
fi
Algorithmes de simulation Rejection sampling
(animated)
26
Algorithmes de simulation Rejection sampling
Ou celle-ci ?
27
Algorithmes de simulation Rejection sampling
On rejette beaucoup trop d’échantillons.
Comment y remédier ?
(animated)
Rejection sampling
1.
1. Sample x⇠
Sample x ⇠ gg
2. Sample yy ⇠
2. Sample ⇠ U([0,
U([0, M
M g(x)])
g(x)])
On cherche alors une constante M telle que f < Mg: 3. If yy
3. If ff (x):
(x): Accept
Accept x
x else
else Reject
Reject x.
x.
0, M g(x)])
ple x ⇠ g
cept x else Reject x.
ple y ⇠ U([0, M g(x)])
f (x): Accept x else Reject x.
1. Sample x ⇠ g
f: Target distribution 29
g: Proposal distribution
2. Sample y ⇠ U([0, M g(x)])
Algorithmes de simulation Rejection sampling
30
Algorithmes de simulation Rejection sampling
Algorithme de rejet:
1.
1. On
On souhaite
souhaite simuler
simuler à
à partir
partir d’une
d’une densité
densité ff ..
1. On souhaite simuler à partir d’une densité f .
2.
2. On
On cherche
cherche une
une densité
densité gg selon
selon à
à laquelle
laquelle on
on sait
sait générer
générer des
des échantillons.
échantillons.
2. On cherche une densité g selon à laquelle on sait générer des échantillons.
3.
3. Il
Il faut
faut dominer
dominer ff par
par gg en
en trouvant
trouvant M
M >
> 0
0 tel
tel que:
que: ff
M
M gg partout.
partout.
3. Il faut dominer f par g en trouvant M > 0 tel que: f M g partout.
1
4.
4. La
La probabilité
probabilité d’acceptation
d’acceptation est
est donnée
donnée par
par M
1 : on veut le plus petit M possible
1 : on veut le plus petit M possible (borne
(borne serrée)
serrée)
4. La probabilité d’acceptation est donnée par M M : on veut le plus petit M possible (borne serrée)
5.
5. On
On itère
itère par
par la
la suite
suite l’algorithme:
l’algorithme:
5. On itère par la suite l’algorithme:
1. Sample x ⇠ g Quelles sont les limites de cette méthode ?
2. Sample y ⇠ U([0, M g(x)])
1. Il faut connaître la densité f normalisée !
3. If y f (x): Accept x else Reject x.
2. En grande dimension, la zone de rejet explose
31
II Méthodes de Monte-Carlo
1. Introduction
2. Markov Chain Monte-Carlo (MCMC)
3. Algorithmes MCMC avancés
32
Markov Chains Dé nition
Dé nition: Chaîne de Markov
On dit que (X n )n est homogène si les variables X n+1 | X n ont la même loi 8n.
X
X nn peut
peut valoir
valoir A,
A, B
B ou
ou CC et
et X
X n+1
n+1
ne
ne dépend
dépend que
que de
de X
Xnn
avec
avec les
les probabilités
probabilités conditionelles
conditionelles de
de transition:
transition:
To A To B To C
From A 0.5 0.3 0.2
From B 0.3 0.4 0.3
From C 0.2 0.3 0.5
La matrice de transition P
⇥ ⇤>
On note la distribution de X n par le vecteur de probabilités ⇡n = P(X n = A) P(X n = B) P(X n = C) 2 R3 .
1. Déterminez ⇡n+1 en fonction de P et de ⇡n .
1. (X nn )nn 0
0 est dite irréductible si 8i, j 2 S, 9n 2 N tel que on peut atteindre j à partir de i après n étapes.
2. (X nn )nn 0
0 est dite apériodique si la chaı̂ne ne présente pas de comportement cyclique.
3. (X nn )nn 0
0 est dite récurrente
ergodique sipositive
elle est àsilalefois
temps de retour àetn’importe
irréductible quel i 2 S est fini.
apériodique.
4. (X
Unenn )chaı̂ne
n
n 00 est(X
dite
n )nergodique si elle
0 ergodique est àtoujours
admet la fois irréductible, apériodique
une distribution stationnaireet⇡récurrente
= limn!+1positive.
⇡n .
5. Une chaı̂ne (X nn )nn 0
0 ergodique admet toujours une distribution stationnaire unique ⇡ = limn!+1
n!+1 ⇡n
n.
Histogramme
des états A, B, C
35 (animated)
Markov Chains Stationnarité: cas continu
Soit (X n )n 0 une chaı̂ne de Markov à valeurs dans Rd .
La matrice de transition P devient un “noyau”: (x, y) 7! K(x, y) qui correspond à la densité de X n+1 = y|X n = x
R R
n ⇠
Si XSi X⇡n n⇠alors
⇡ n alors
X n+1X⇠ ⇡?
n+1 ⇠ ⇡(y)
n+1 (y) K(x,
n+1= = K(x,
y)⇡ ny)⇡ n (x)dx
(x)dx
Une condition suffisante pour avoir une distribution stationnaire ⇡ est le principe “detailed balance”:
Detailed balance
Si ⇡ vérifie la condition:
K(x, y)⇡(x) = K(y, x)⇡(y) 8x, y
Soit (X n )n une chaı̂ne de Markov ergodique ayant pour distribution stationnaire ⇡. Alors:
n
X Z “Loi des grands
1 n!+1
nombres” pour des
f (X i ) ! E⇡ (f (X)) = f (x)⇡(x)dx
n i=1 échantillons non i.i.d
37
fi
Markov Chains Monte-Carlo Dé nition
Algorithmes MCMC
def
Soit g une densité (non-normalisée). On veut simuler un échantillon x selon la densité ⇡ = Rg .
g
1. Gibbs Sampling
Foundation of MCMC 2. Metropolis
3. Metropolis-Hastings (MH)
4. Langevin dynamics
On veut souvent des échantillons suivant une loi a posteriori multivariée f (✓,µ,..., 2) . Peut-on gé
2 2
Où on sait générer ✓|µ, ..., et µ|✓, . . . , et ainsi de suite
39
Gibbs sampling En deux dimensions
Algorithme de Gibbs (2D)
On
On souhaite
souhaite simuler
simuler XX == (X
(X 1, ,
X X 2))22 RR2 2
d’une
d’une distribution
distribution jointe
jointe PP (X ,X ). . Soit
Soit xx 2 2
2 RR22
. .
On souhaite simuler X = (X 1
1 , X 2 ) 2 R 2
d’une distribution jointe
On souhaite simuler X = (X 1 , X 2 ) 2 R d’une distribution jointe P(X 1 ,X 2 ) . Soit x2 2 R .
2 2 P (X
(X 1
1
1,X
,X 2
2
2)
) . Soit x 2
2 2 R 2
2 .
1.
1. On
On sait
sait générer
générer xx 1 ⇠
⇠ X
X 1 avec
avec XX 2 fixée
fixée selon
selon la
la loi
loi conditionnelle
conditionnelle XX |X
1 |X 2 = = xx 2
1. On sait générer x 1 ⇠ X 1 avec X 2 fixée selon la loi conditionnelle
1. On sait générer x1 ⇠ X 1 avec X 2 fixée selon la loi conditionnelle X 1 |X 2 = x2 2
1 1 2 X 1
1 |X 2
2 = x 2
2.
2. On
On sait
sait générer
générer XX 2 avec
avec XX 1 fixée
fixée selon
selon lala loi
loi conditionnelle
conditionnelle XX 2 |X
|X 1 = = xx 1
2. On sait générer X 2 avec X 1 fixée selon la loi conditionnelle
2. On sait générer X 2 avec X 1 fixée selon la loi conditionnelle X 2 |X 1 = x1 1
2 1 X 2
2 |X 1
1 = x 1
Alors
Alors en
en partant
partant d’un
d’un quelconque
quelconque x x 2 22 R,
R, la
la suite
suite XX n définie
définie par
par ces
ces itérés
itérés est
est une
une chaı̂ne
chaı̂ne de
de
Alors en partant d’un quelconque x 2 2R,R, la suite X n définie par ces itérés est une chaı̂ne de
Alors
Markov
Markoven partant
avec
avec PP d’un
(X ,X quelconque
) comme
comme x 2
2
distribution
2
distribution la suite X
stationnaire.
stationnaire.n
ndéfinie par ces itérés est une chaı̂ne de
Markov avec P (X
(X 1
1,X
,X 2
2) comme distribution
Markov avec P(X 1 ,X 2 ) comme distribution stationnaire.
1 2 ) stationnaire.
Application (Ex 3. TD 1)
2 2 2
Soit Z|µ, ⇠ N (µ, ). µ et ont des densités 2 2
a priori indépendantes fµ et f 2 . Z|µ, ⇠ N (µ, )
1. Dessiner le graphe probabiliste du modèle.
2µ ⇠ f
2. Déterminez la loi a posteriori jointe (µ, 2
)|Z.
Z|µ, ⇠ Nµ (µ
2 2
2 2
Z|µ, ⇠ N (µ, )
3. Déterminez les lois conditionnelles µ| , Z et |µ, Z.
2
4. Quelles lois a priori fµ et f 2 devrait-on prendre pour Z|µ, ⇠ N⇠(µ,
f 2
2
La suite Xn définie par ces itérés est une chaı̂ne de Markov avec P(X 1 ,...,X n ) comme distribution stationnaire.
42
Metropolis Random Walk
2
Une chaîne de Markov simple est donnée par une marche aléatoire: X n+1 = X n + " avec " ⇠ N (0, )
43
Metropolis L’algorithme
On souhaite créer une chaîne de Markov avec la distribution stationnaire:
Soit
Soitf ffune
Soit une densité
densitédede
unedensité probabilité.
deprobabilité. On
probabilité.On suppose
Onsuppose que
queXX
supposeque X
nn estdéjà
est déjàgénéré.
généré.XX
n est déjà généré. X
estdéfini
est définipar:
par:
n+1 est défini par:
n+1
n+1
2 2 2
1.1. Générery yy⇠⇠
Générer
[Link]́nérer ⇠NN (X
N(X
(Xn ,n
n
,
, 2)
) ) équivalent à y = Xn + " et générer " ⇠ N (0, )
2.2. Générer
[Link]́nérer u⇠⇠
Généreru u U([0,
⇠U([0, 1]).
U([0,1]).
1]). équivalent à accepter y avec probabilité min(1, f (y)
f (Xn ) )
f
f (y)
f (y)
(y)) )alors
3.3. Si
Si u u
< < min(1,
min(1,
3. Si u < min(1,f (X
f (X ) ) ) alors
X
alors X
X =
n+1
n+1
n+1
=
= y,
y,
y, sinon
sinon X
sinon X
X =
n+1
n+1
n+1
=
=XX
Xn .
n
n
.
.
f (Xnnn )
45
Metropolis Metropolis in action
Soit
Soitf ffune
Soit une densité
densitédede
unedensité probabilité.
deprobabilité. On
probabilité.On suppose
Onsuppose que
queXX
supposeque X
nn estdéjà
est déjàgénéré.
généré.XX
n est déjà généré. X
estdéfini
est définipar:
par:
n+1 est défini par:
n+1
n+1
2 2
1.1. Générery yy⇠⇠
Générer
[Link]́nérer ⇠NN (X
N(X
(Xn ,n
n
,
, 2)
) )
2.2. Générer u⇠⇠
Généreru u
[Link]́nérer U([0,
⇠U([0, 1]).
U([0,1]).
1]).
f
f (y)
f (y)
(y)) )alors
3.3. Si
Si u u
< < min(1,
min(1,
3. Si u < min(1,f (X
f (X ) ) ) alors
X
alors X
X =
n+1
n+1
n+1
=
= y,
y,
y, sinon
sinon X
sinon X
X =
n+1
n+1
n+1
=
=XX
Xn .
n
n
.
.
f (Xnnn )
2 2
Quel est l’e↵et de ? contrôle le trade-o↵ “exploration-exploitation”
47
Metropolis L’algorithme
Algorithme de Metropolis (Gaussien)
Soit
Soitf ffune
Soit une densité
densitédede
unedensité probabilité.
deprobabilité. On
probabilité.On suppose
Onsuppose que
queXX
supposeque X
nn estdéjà
est déjàgénéré.
généré.XX
n est déjà généré. X
estdéfini
est définipar:
par:
n+1 est défini par:
n+1
n+1
2 2
1.1. Générery yy⇠⇠
Générer
[Link]́nérer ⇠NN (X
N(X
(Xn ,n
n
,
, 2)
) )
2.2. Générer u⇠⇠
Généreru u
[Link]́nérer U([0,
⇠U([0, 1]).
U([0,1]).
1]).
f
f (y)
f (y)
(y)) )alors
3.3. Si
Si u u
< < min(1,
min(1,
3. Si u < min(1,f (X
f (X ) ) ) alors
X
alors X
X =
n+1
n+1
n+1
=
= y,
y,
y, sinon
sinon X
sinon X
X =
n+1
n+1
n+1
=
=XX
Xn .
n
n
.
.
f (Xnnn )
1. La variance doit être assez petite pour éviter trop de rejets (random walk behavior)
Inconvénients: 2. La variance doit être assez grande pour bien explorer l’espace (distributions multimodales)
3. Le pourcentage d’acceptation tend vers 0 en grande dimension
ffi
Intro to Metropolis-Hastings
49
Metropolis-Hastings L’algorithme
Hastings généralise l’algorithme de Metropolis en prenant une distribution de transition (exploration) quelconque:
Algorithme de Metropolis-Hastings
1. Générer y ⇠ q(.|Xn )
2. Générer u ⇠ U([0, 1]).
f (y)q(Xn |y)
3. Si u < min(1, f (Xn )q(y|Xn ) ) alors X n+1 = y, sinon X n+1 = Xn .
Avantages: 1. Utile si la distribution cible f a un domaine borné (par ex. [0, 1], on peut choisir Q = Beta)
2. Utile si la distribution cible f est discrète (Q uniforme sur ensemble ni)
3. On peut utiliser une densité q non normalisée (Gaussienne tronquée)
def R
On est souvent confronté à calculer une quantité du type: I = '(x)f (x)dx.
51
Monte-Carlo: récap des séances passées
def R
On est souvent confronté à calculer une quantité du type: I = '(x)f (x)dx.
En pratique on utilise:
Pn
Avec une chaı̂ne de Markov ergodique (Xi )i à distribution stationnaire f , on peut estimer I avec : Ib = 1
n i=1 '(Xi ).
52
ffi
fi
MCMC diagnostics in 1D Visuals
Soit (X n )n 0 une chaı̂ne de Markov donnée par un algorithme MCMC.
b P
1
P
n n
L’estimateur Ib =I =
L’estimateur 1
n n i=1 '(X
i=1 '(X
i ) )
est
i est
de de bonne
bonne qualité
qualité si: si:
1. 1. Converge
Converge rapidement:
rapidement: lesles
XiXutilisés
i utilisés
ontont atteint
atteint le régime
le régime stationnaire.
stationnaire.
b P P n P P
petite variance: V(
b
2. L’estimateur a une petite variance: V(I) = = i=1i=1
2. L’estimateur a une I) n V('(X
V('(X i) 2
i) + + 2 i<ji<j Cov(X
Cov(X i ,jX
i, X ) j)
Régime stationnaire = X n ⇠ f :
la chaı̂ne semble “mélangée”,
pas de tendance,
Soit (X n )n 0 une chaı̂ne de Markov donnée par un algorithme MCMC. absence de “pattern”,
b 1
P n ne reste pas bloquée.
L’estimateur I = '(Xi ) est de bonne qualité si:
n i=1
“Trace plot”
Histogramme des échantillons
54
MCMC diagnostics in 1D Visuals
“Trace plot”
Histogramme des échantillons
En pratique, on “jette” la
première partie des
échantillons pour être dans le
régime stationnaire: période de
“chau e” / Burn-in.
“Auto-correlation plot”
55
ff
MCMC diagnostics in 1D Visuals
Auto-corrélations excessives:
Corr(X n , X n+k )
Auto-corrélation avec lag k = Cov(X n , X n+k ).
56
MCMC diagnostics in 1D Visuals
(autocorr inutile ici, on s’y
attendait vu le trace plot)
Corr(X n , X n+k )
Auto-corrélation avec lag k = Cov(X n , X n+k ).
Explications principales ?
Très probablement:
Est-ce une bonne chaîne MCMC ?
1. Erreur d’implémentation
Drift excessif !
2. Loi a priori extrêmement loin des données
3. Convergence très très lente
57
MCMC diagnostics in 1D Visuals
(autocorr inutile ici, on s’y
attendait vu le trace plot)
Corr(X n , X n+k )
Auto-corrélation avec lag k = Cov(X n , X n+k ).
Explications principales ?
58
MCMC diagnostics in 1D Visuals
Corr(X n , X n+k )
Auto-corrélation avec lag k = Cov(X n , X n+k ).
En pratique:
1. Très rare d’avoir une loi a posteriori avec “un
Est-ce une bonne chaîne MCMC ? désert” entre les modes
Oui ! Mais la distribution cible est multimodale … 2. Si c’est le cas, il vaut mieux changer de modèle: Ici
par ex, ajouter une variable latente (si possible) Z =
0 ou 1 pour distinguer les modes
59
MCMC diagnostics in 1D Visuals
Lancer plusieurs chaînes avec des initialisations X0 di érentes:
60
ff
fi
ff
MCMC diagnostics in 1D Metrics: R hat de Gelman-Rubin
Moyenne des moyennes X
Moyenne et m
n X
variance de (j) 2
Variance des moyennes “between” B = (X X)
chaque chaîne m 1 j
m
X
(1) (1) (1) 2 (1) 1 2 (j)
Chaı̂ne 1 : X1 , . . . , Xn !X , Moyenne des variances “within” W =
m j=1
..
.
(j) (j) 2 (j)
Chaı̂ne j : X1 , . . . , Xn(j) !X , Pourquoi n ? (j) 2
car V(X )= n
..
.
(m) (m) (m) 2 (m) Si les chaînes convergent B
Chaı̂ne m : X1 , . . . , X n !X , !0
vers la même moyenne: n
B ?
Sinon !b >0
n
“R hat” de Gelman-Rubin (1992) s
s 8
n 1 1
< = 1 si B ! 0 b def
n 1 2
n
1 2
within + n between
R =
b =def n W + nB !r n 2
R : within
W > 1 sinon
En pratique on veut R < 1.01
Détails en TD 61
MCMC diagnostics in 1D Metrics
s s
n 1 1 n 1 1
W+ B b = n W+ nB
= 1.025
def
b =
R = 1.005
def n n R
W W
Converging Not converging
62
MCMC diagnostics in 1D Metrics: E ective sample size (ESS)
On estime la moyenne d’une loi ⇡ avec deux estimateurs:
On suppose
Étant donnée une MC X1 , . . . , XN1 , ESS correspond au nombre que V(I0 ) = V(I1 ). On peut en d
N0 tel que:
En général, sauf cas
N1
ESS = P1 N1 spéciaux (autocorr < 0)
1 + 2 t=1 AutoCorr(lag t) (variables antithétiques à voir
en Méthodes de simulation)
Preuve: il su t d’égaliser la variance des deux estimateurs en supposant le régime stationnaire atteint
Remarques
1. On interprète ESS comme le nombre d’échantillons “réellement” utilisés (en moins ~ 400)
2. On calcule une version améliorée qui prend en compte plusieurs chaînes (Gelman, 2013)
63
ff
ffi
ff
MCMC diagnostics in 1D Metrics
N = 5500
Corr(X n , X n+k )
ESS = 5149
échantillons “e caces”
N = 5500
Corr(X n , X n+k )
ESS = ESS = 145 << N
Notre estimation a la qualité
d’une moyenne i.i.d avec
145 échantillons seulement
Auto-corrélation avec lag k = Cov(X n , X n+k ).
Inconvénient: quanti e la qualité de l’estimation de la moyenne uniquement (ESS mean)
On peut dé nir d’autres ESS pour l’estimation des quantiles (ESS median, ESS Q95%..)
64
fi
ffi
fi
MCMC diagnostics in 1D Metrics
s
n 1 2 1 2
b def n within + n between
R = 2
within
Inconvénient:
On peut avoir R ~ 1 alors que les
chaînes sont très di érentes. Comment
construire un tel exemple ?
2
R⇡1, between ⇡0
Il su t d’avoir des chaînes di érentes
mais de mêmes moyennes !
s s
n 1 1 n 1 1
W + B W+ B
b =
R = 1.005
def n
ESS
n
= 4500 b =
R = 1.025
def n n
W W
Converging Not converging
65
ffi
ff
ff
MCMC diagnostics in 1D Metrics
(j)
3. Si les chaı̂nes sont bien “mélangées” alors u (j)
(j) ⇠ U([0, 1])
3.
3. Si
Si les
les chaı̂nes
chaı̂nes sont
sont bien
bien “mélangées”
“mélangées” alorsalors uuii ⇠
i ⇠ U([0,
U([0, 1])
1])
def
(j) def 1 (j)(j)
4. Avec le théorème d’inversion Z (j)
(j) =
def 1 (u (j) ) ⇠ N (0, 1), :: Fct de répart. de N (0, 1).
4.
4. Avec
Avec lele théorème
théorème d’inversion
d’inversion Z Z ii =
i = 1
(uii )) ⇠
(u i ⇠NN (0,
(0, 1),
1), : Fct
Fct de
de répart.
répart. de
de N
N (0,
(0, 1).
1).
b (j) (j)
5.
5. Calculer
Calculer R
b
b classique sur Z (j)
(j) au lieu des X (j)
(j) .
5. Calculer R R classique
classique sur
sur Z
Z ii au
i au lieu
lieu des
des XX ii ..
i
Remarques:
67
MCMC diagnostics in 1D MCSE
Monte-Carlo Standard Error (MCSE): L’écart type d’un estimateur Monte-Carlo
def
On suppose le régime stationnaire atteint Xi ⇠ f . On pose = V(Xi )
n 2 3
1 X n
X X 2
L’estimateur de la moyenne est: Xi Sa variance: 1 4 5 =
n V(X i ) + 2 Cov(X i , X j )
i=1 n2 i=1 i<j
n ESS
" n 1
#
1 X X
ˆ = 2 +2 1 Cov(X
Xn i , Xi+k )
n ˆi=1 2
MCSE = p = k=1(X X̄)
i
nESS n 1 i=1
MCSE de la moyenne
Avec le même principe, on peut dé nir le MCSE de la médiane, de l’écart type lui même etc …
68
fi
MCMC diagnostics in 1D HDI: High density intervals
High density interval (HDI) ou Credible Interval (CI):
équivalent de l’intervalle de con ance en statistiques bayésiennes
Comment peut-on les comparer aux intervalles de con ance d’un point de vue statistique ?
69
fi
fi
fi
Application (Python)
Application (MCMC Diagnostics)
Soit Z|µ, 2 ⇠ N (µ, 2 ). µ et 2 ont des densités
2 2
a priori indépendantes fµ et f 2 . Z|µ, ⇠ N (µ, )
1. Dessiner le graphe probabiliste du modèle.
2µ ⇠ f
2. Déterminez la loi a posteriori jointe (µ, 2
)|Z. Z|µ, ⇠ Nµ (µ,
2 2
3. Déterminez les lois conditionnelles µ| 2
, Z et 2
|µ, Z. Z|µ, ⇠ N (µ, )
4. Quelles lois a priori fµ et f 2 devrait-on prendre pour 2 2
avoir des lois conditionnelles usuelles ?
Z|µ, ⇠ N⇠(µ,
2
f 2
70
II Méthodes de Monte-Carlo
1. Introduction
2. Markov Chain Monte-Carlo (MCMC)
3. Algorithmes MCMC avancés
71
MCMC: algorithmes avancés Langevin Dynamics
Des particules d’un uide dont le mouvement est expliqué par:
d 2 Xt dXt p
1. Des forces déterministes
m 2 (gravitation)
= + F (Xt ) + 2 kT ⇠(t)
dt dt
2. Forces aléatoires (chaleur thermique) G(Xt )
d 2 Xt dXt p
3. Frottements / amortissement
m 2 = + F (Xt ) + 2 kT ⇠(t)
dt dt
Loi de Newton généralisée:
The Langevin Equation (1908)
2
d Xt dXt
m 2 = + F (Xt ) + G(Xt )
dt dt
p
2
d Xt
m 2 ⇡0 F (Xt ) = rU (Xt ) G(Xt ) = 2 kT ⇠t ⇠t ⇠ N (0, 1)
dt
Dé nition de l’énergie potentielle U Moyenne des forces aléatoires modélisée
La masse d’une particule
par une Gaussienne (thm. central)
est négligeable
s k: constante de Boltzmann
Ainsi:
dXt 1 2kT
= rU (Xt ) + ⇠t
dt
72
fi
fl
MCMC: algorithmes avancés Langevin Dynamics
s
dXt 1 2kT
= rU (Xt ) + ⇠t
dt
✓ ◆
U (x)
À l’équilibre, la distribution de ces particules est celle de Boltzmann: f (x) / exp
kT
U (x) rU (x)
) log (f (x)) = + cte ) r log (f (x)) =
kT kT
s
dXt kT 2kT
= rlog (f (Xt )) + ⇠t
dt Coe cient de di usion
d’Einstein
Stochastic di erential dXt p def kT
= Drlog (f (Xt )) + 2D⇠t D =
equation (SDE) dt
p
p
p
XX
Xt+h
t+h
t+h
t+h XX
t tt=
X =Dhrlog
t= Dhrlog(f
Dhrlog (f(X
(f (Xttt))
(X )) dt
dt + 2Dh⇠tttt
+ 2Dh⇠
2Dh⇠
p
Xn+1 = Xn + "rlog (f (Xn )) + 2"⇠n ⇠n ⇠ N (0, 1)
74
MCMC: algorithmes avancés Langevin Dynamics
Unadjusted Langevin Algorithm (ULA)
p
Xn+1 = Xn + "rlog (f (Xn )) + 2"⇠n ⇠n ⇠ N (0, 1)
Interpréter cette suite. Quel est le lien avec Metropolis ?
1. Dirige la suite vers les régions à haute densité en explorant l’espace
2. Si on enlève le terme du gradient, on retrouve l’étape d’exploration de Metropolis
Pas d’étape de rejet: risque de non-convergence due aux erreurs de discrétisation
(animated)
76
MCMC: algorithmes avancés Metropolis vs MALA
77 (animated)
MCMC: algorithmes avancés Metropolis vs MALA
78
MCMC: algorithmes avancés Hamiltonian Dynamics
En grande dimension, les algorithmes Metropolis / MALA explorent ine cacement l’espace.
Idée: au lieu d’explorer avec une position aléatoire x, simuler une vitesse initiale aléatoire.
(animated)
79
ffi
MCMC: algorithmes avancés Hamiltonian Dynamics
Hamiltonian Monte-Carlo (Duane 1987, Neal 1996)
81
ff
MCMC: algorithmes avancés Hamiltonian Dynamics
Barrière d’énergie
Est-il possible qu’une chaîne simulée par NUTS ne découvre qu’un seul mode de cette distribution ?
Oui ! Pour sortir de l’un des deux puits, il faut simuler un moment (vitesse) très grand
82
Algorithmes MCMC Combining MCMC algorithms
On veut simuler une loi a posteriori (↵, m|data) avec ↵ continue et m discrète. Comment faire ?
Algorithme de Gibbs:
Géré automatiquement par PyMC: à chaque variable (ou groupe de variables) est associé le meilleur
algorithme (exemple en TP).
83
Algorithmes MCMC Résumé
Marche aléatoire avec densité de proposition Densité non di érentiable (discrète) et asymétrique
Metropolis-Hastings
quelconque comme la LogNormal, Gamma
Metropolis Adjusted
Marche aléatoire Gaussienne guidée par le
Langevin Algorithm Variable continue en faible dimension
gradient de la densité
(MALA)
84
fi
ff
ff
Chapitre 3. Applications et thématiques avancées
85
Bibliography
86