Home CMKV: Metropolis-Hastings et recuit simule
Post
Cancel

CMKV: Metropolis-Hastings et recuit simule

Lien de la note Hackmd

Rappels

$P(X=x)$ => variable aleatoire

  • $x$: ne pas lister toutes les valeurs possibles pour $X$
\[P(X=x\underbrace{,}_{\text{et}} Z=z)\]

On le notait $\cap$ au lycee

\[P(A\cap B) = P(A).P(B)\]

Sudoku

Il existe une solution dediee mais on ne la connait pas

$\color{red}{x_1}$$\color{red}{x_2}$  
$\color{red}{x_4}$$2\color{green}{\rightarrow y_1}$  
    
    
\[P(\begin{vmatrix}1\vert&1 \\ 1\vert&\end{vmatrix}) = ? \begin{cases} x_1 =1\\ x_2=1\\ x_4=1 \end{cases}\]

Dans ce cas, on ne regard que 3 realisations et on va les evaluer

\[P(\begin{vmatrix}1\vert&1 \\ 3\vert&\end{vmatrix}) = ? \begin{cases} x_1 =1\\ x_2=1\\ x_4=3 \end{cases}\\ P(\begin{vmatrix}1\vert&3 \\ 4\vert&\end{vmatrix}) = ? \begin{cases} x_1 =1\\ x_2=3\\ x_4=4 \end{cases}\\ P(\begin{vmatrix}3\vert&1 \\ 4\vert&\end{vmatrix}) = ? \begin{cases} x_1 =3\\ x_2=1\\ x_4=4 \end{cases}\\ P(\begin{vmatrix}1\vert&1 \\ 1\vert&\end{vmatrix})\color{green}{\lt}P(\begin{vmatrix}1\vert&1 \\ 3\vert&\end{vmatrix})\color{green}{\lt}P(\begin{vmatrix}1\vert&3 \\ 4\vert&\end{vmatrix})\color{green}{=}P(\begin{vmatrix}3\vert&1 \\ 4\vert&\end{vmatrix})\\ \color{red}{\boxed{L(X=x\vert Y=y) = P(Y=y\vert X=x)}}\\\]

On veut reecrire $f(x,y)=\cos(x)\sin(\frac{1}{y})$ en $g(y,x)$

\[g(a,b)=\cos(b)\sin(\frac{1}{a})\]

Retour au sudoku: on sait parler des probas et des vraisemblances

Pour avoir des vraisemblances:

\[\begin{aligned} &L(\begin{vmatrix}1\vert&1 \\ 1\vert&\color{red}{2}\end{vmatrix})\color{red}{} &L(\begin{vmatrix}1\vert&1 \\ 3\vert&\color{red}{2}\end{vmatrix})\color{red}{} &L(\begin{vmatrix}1\vert&3 \\ 4\vert&\color{red}{2}\end{vmatrix})\color{red}{=} &L(\begin{vmatrix}3\vert&1 \\ 4\vert&\color{red}{2}\end{vmatrix})\\ &\overbrace{L(\begin{vmatrix}2\vert&1 \\ 1\vert&\color{red}{2}\end{vmatrix})}^{\downarrow}&\uparrow&& \end{aligned}\]

La meteo de Gulli

Le retour de rand()

\[\begin{cases} P(\text{beau}) = 0.5 &\color{red}{\varnothing}\\ P(\text{pourri}) = 0.3 &\color{red}{1}\\ P(\text{couvert}) = 0.2 &\color{red}{2} \end{cases} \leftarrow P(T=t)\quad t\in{\text{\{beau}}, \text{pourri}, \text{couvert\}}\]
$0 RANDMAX
$\varnothing\dots\varnothing$$1\vert\color{red}{1}\dots1$$2\dots2$

On va voir comment calculer des probas ou les variables ne sont pas independantes

\[\begin{aligned} y&\rightarrow\\ u&\rightarrow \end{aligned} \bigcirc\rightarrow x_{\text{sol}} = \text{arg max}_xP(X=x\vert Y=y)\] \[\begin{cases} P(\text{beau}) = 0.4 \\ P(\text{pluie}) = 0.1 \\ P(\text{couvert}) = 0.2 \\ P(\text{orage}) = 0.2 \\ P(\text{neige}) = 0.2 \end{cases}\\ \color{red}{x_{sol} = beau}\]

On a un echantilloneur:

\[P\rightarrow \bigcirc \rightarrow x\]

Hypothese

\[U\to P?\\ \text{hypothese}: \not\exists x, P(x)=\varnothing\\ P(X=x)=\boxed{\color{red}{\frac{1}{Z}}e^{-U(x\color{green}{,y})}}\Rightarrow U(x)=-\log(Z.\underbrace{P(X=x)}_{\color{red}{\text{ouf}\neq\varnothing}})\\ \sum_xP(X=x)=1\Rightarrow Z=\sum_xe^{-U(x)}\gt\varnothing\text{ une constante}\]

Un algo: Metropolis-Hastings

Il a ete invente en meme temps par 2 chercheurs

\[x^{(0)} = \begin{vmatrix} 1&1\\ 1&\not 2 \end{vmatrix} = \color{red}{\begin{pmatrix} 1\\ 2\\ 1 \end{pmatrix}}\\ x^{(1)} = \begin{vmatrix} 2&1\\ 3&\not 2 \end{vmatrix} = \color{red}{\begin{pmatrix} 2\\ 1\\ 3 \end{pmatrix}}\\ \vdots\\ x^{(t)}= \begin{vmatrix} \bullet&\bullet\\ \bullet& \bullet \end{vmatrix}\]

Quel est cet algo ?

Cet algo est tel que la fonction $P(x^{(t+1)})\ge P(x^{(t)})$, quand $t$ augmente, $P(x^{(t)})$ augmente aussi.

Surtout compare a des algos de descente

Exemple

$0$RANDMAX
$1\dots\color{green}{\boxed{1}}1$$0\dots0$
\[i_{\text{trans}} = 0.8 \times \text{RANDMAX}\]
  • Si rand() \(\lt P_{\text{trans}}\times\) RANDMAX
    • $x^{(t+1)}\leftarrow x_{\text{candidat}}$
  • Sinon $x^{(t+1)}\leftarrow x^{(t)}$
\[\begin{aligned} P(X=x) &= \frac{1}{Z}e^{-U(x)}\\ P_{\text{trans}} &= \frac{\not{\frac{1}{Z}}e^{-U(x_{\text{candidat}})}}{\not{\frac{1}{Z}}e^{-U(x^{(t)})}}\\ &= e^{-(\underbrace{U(x_{\text{candidat}}) - U(x^{(t)})}_{\color{red}{\Delta U}})} \end{aligned}\]

Recuit simule

Comme les forgerons qui chauffe la lame d’une epee, qui la mette dans l’eau le temps de manger, la rechauffe en revenant et la laisse refroidir lentement a l’air libre apres avoir ete formee

  • Apres avoir ete dans l’eau, l’epee est cassante
  • On atteint l’etat le plus stable possible en lassant refroidir lentement, l’epee est la plus solide possible

Algorithme

\[P_{\color{red}{T}}(X=x) = \frac{1}{Z_{\color{red}{T}}}e^{-U(x)}\\ P(X=x)\propto e^{-U(x)}\\ P_{\color{red}{T}}(X=x)\propto e^{-\frac{U(x)}{T}}\\ U_T(x)=\frac{U(x)}{T}\]

Exemples d’utilisation

  • On prend une image en niveau de gris qu’on stylise
  • On prend une image qu’on veut binariser, avec le moins de regions blanchesoires possibles mais les plus grandes possibles

Est-ce qu’on a la meilleure solution ?

On en a pas la moindre idee

Retour sur l’algo

Si on fait un tirage aleatoire, est-ce que c’est intelligent de mettre que des $1$ dans une grille vide d’un sudoku ?

Non, c’est la meme proba de mettre des $1$ que n’importe quel autre chiffre

$\color{blue}{1}$$\color{blue}{1}$$\color{blue}{1}$$\color{blue}{2}$
$\color{blue}{2}$$\boxed{2}$$\boxed{3}$$\color{blue}{2}$
$\color{blue}{3}$$\color{blue}{3}$$\color{blue}{3}$$\boxed{4}$
$\boxed{1}$$\color{blue}{4}$$\color{blue}{4}$$\color{blue}{4}$

C’est quoi l’interet de ce tirage “moins con”? (et pas du tout aleatoire)

On peut changer $x^{(t)}$ aleatoirement (en echangeant des cases par exemples)

$\color{blue}{1}$$\color{blue}{1}$$\color{blue}{1}$$\color{red}{\boxed{3}}$
$\color{blue}{2}$$\boxed{2}$$\boxed{3}$$\color{blue}{2}$
$\color{blue}{3}$$\color{red}{\boxed{2}}$$\color{blue}{3}$$\boxed{4}$
$\boxed{1}$$\color{blue}{4}$$\color{blue}{4}$$\color{blue}{4}$
\[P_{T\to+\infty}(X=x)=\frac{1}{Z}e^{-\frac{U(x)}{T}}\\ \color{red}{P_{+\infty}(x) = \frac{1}{Z}}\quad\text{uniforme}\\ \color{green}{P_1(x)=P(x)\\ P_0(x)=\varnothing\quad\forall x}\]

On va determiner la loi de probas autrement, en regardant par exemple un ratio:

\[\frac{P_T(X=x_{\text{solution}})}{P_T(X=x)}=e^{\boxed{\frac{-(\overbrace{U(x)-U(x_{\text{solution}})}^{\color{red}{\text{positif}}})}{T\color{green}{\to 0^+}}}}_{\color{blue}{\to-\infty}}\to 0^+\\ \frac{P_0(x\neq x_{\text{solution}})}{P_0(x_{\text{solution}})} = \varnothing\\ \begin{cases} \forall x\neq x_{\text{solution}}, P_0(x)=\varnothing\\ P_0(x_{\text{solution}}) = 1 \end{cases}\]

\[\downarrow\\ P_0(x)=\begin{cases} 1&\text{si } x=x_{\text{solution}}\\ \varnothing &\text{sinon} \end{cases}\]
This post is licensed under CC BY 4.0 by the author.