Try   HackMD

Champs de Markov: Metropolis-Hastings et recuit simule

Rappels

P(X=x) => variable aleatoire

  • x
    : ne pas lister toutes les valeurs possibles pour
    X

P(X=x,etZ=z)

On le notait

au lycee

P(AB)=P(A).P(B)

  • X=(X1,,Xn)
    est un vecteur aleatoire
  • x=(x1,,xn)
    est une realisation

Sudoku

Il existe une solution dediee mais on ne la connait pas

\colorredx1
\colorredx2
\colorredx4
2\colorgreeny1

P(|1|11||)=?{x1=1x2=1x4=1

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

P(|1|13||)=?{x1=1x2=1x4=3P(|1|34||)=?{x1=1x2=3x4=4P(|3|14||)=?{x1=3x2=1x4=4P(|1|11||)\colorgreen<P(|1|13||)\colorgreen<P(|1|34||)\colorgreen=P(|3|14||)\colorredL(X=x|Y=y)=P(Y=y|X=x)

On veut reecrire

f(x,y)=cos(x)sin(1y) en
g(y,x)

g(a,b)=cos(b)sin(1a)

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

On lit les donnees a un espace de recherche

Pour avoir des vraisemblances:

L(|1|11|\colorred2|)\colorredL(|1|13|\colorred2|)\colorredL(|1|34|\colorred2|)\colorred=L(|3|14|\colorred2|)L(|2|11|\colorred2|)

Rappel : Bayes

xsol=arg maxxP(X=x|Y=y)=\colorblueL(X=x|Y=y)P(X=x)P(Y=y)

La meteo de Gulli

Le retour de rand()

{P(beau)=0.5\colorredP(pourri)=0.3\colorred1P(couvert)=0.2\colorred2P(T=t)t{beau,pourri,couvert}

1|\colorred11
22

C'est pareil pour le sudoku: tout depend de tout

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

yuxsol=arg maxxP(X=x|Y=y)

{P(beau)=0.4P(pluie)=0.1P(couvert)=0.2P(orage)=0.2P(neige)=0.2\colorredxsol=beau

On a un echantilloneur:

Px

Il y a plus de chances que l'echantilloneur ne nous donne pas la bonne solution

Hypothese

UP?hypothese:x,P(x)=P(X=x)=\colorred1ZeU(x\colorgreen,y)U(x)=log(Z.P(X=x)\colorredouf)xP(X=x)=1Z=xeU(x)> une constante

Un algo: Metropolis-Hastings

Il a ete invente en meme temps par 2 chercheurs

x(0)=|1112|=\colorred(121)x(1)=|2132|=\colorred(213)x(t)=||

Initialisation:

  1. x0
    tire aleatoirement avec loi uniforme
  2. t
  3. Repeter jusqu'a l'infini (un algo a l'infini)

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

On fait juste un tres grand nombre d'iterations

*Repeter jusqu'a l'infini:

  • xrand
    tire avec loi uniforme
  • Ptrans=P(X=xcandidat)P(X=x(t))
  • Si
    Ptrans>1\colorredP(X=xcandidat)>P(X=x(t))
  • Alors
    x(t+1)xcandidat\colorgreen MIEUX = ON GARDE
  • Sinon on fait
    \colorgreenx(t+1)xcandidat\colorredP(xcandidat)<P(x(t))
    avec la proba
    Ptrans1
    • Sinon
      x(t+1)x(t)
  • tt+1

Quel est cet algo ?

C'est un algorithme de descente

Cet algo est tel que la fonction

P(x(t+1))P(x(t)), quand
t
augmente,
P(x(t))
augmente aussi.

C'est un optimiseur hyper sous-efficace

Surtout compare a des algos de descente

Exemple

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

0
1\colorgreen11
00
RANDMAX

itrans=0.8×RANDMAX

  • Si rand()
    <Ptrans×
    RANDMAX
    • x(t+1)xcandidat
  • Sinon
    x(t+1)x(t)

P(X=x)=1ZeU(x)Ptrans=1ZeU(xcandidat)1ZeU(x(t))=e(U(xcandidat)U(x(t))\colorredΔU)

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

C'est un etat de basse energie qui pourrait etre trouve dans la nature

Algorithme

Initialisation

  1. T()
    elevee
  2. On repete:
    • PT(t)
    • T(t+1)T(t)
    • tt+1

P\colorredT(X=x)=1Z\colorredTeU(x)P(X=x)eU(x)P\colorredT(X=x)eU(x)TUT(x)=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 blanches/noires 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

Initialisation:

  1. (0)
    tire aleatoirement
    (avec loi uniforme)
  2. t
    \colorblueT(0)elevee
  3. Repeter jusqu'a l'infini (un algo a l'infini)

Repeter jusqu'a l'infini:

  • xrand
    tire avec loi uniforme
  • Ptrans=P\colorblueT(X=xcandidat)P\colorblueT(X=x(t))=e(U(xcandidatU(x(t))))\colorblueT(t)
  • Si
    Ptrans>1
  • Alors
    x(t+1)xcandidat\colorgreen MIEUX = ON GARDE
  • Sinon on fait
    \colorgreenx(t+1)xcandidat
    avec la proba
    Ptrans1
    • Sinon
      x(t+1)x(t)
  • \colorblueT(t+1)←∝T(t) ou ∝=1
  • tt+1

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

\colorblue1
\colorblue1
\colorblue1
\colorblue2
\colorblue2
2
3
\colorblue2
\colorblue3
\colorblue3
\colorblue3
4
1
\colorblue4
\colorblue4
\colorblue4

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)

\colorblue1
\colorblue1
\colorblue1
\colorred3
\colorblue2
2
3
\colorblue2
\colorblue3
\colorred2
\colorblue3
4
1
\colorblue4
\colorblue4
\colorblue4

On met de l'intelligence dans cet algo qui a vraiment besoin d'etre aleatoire

PT+(X=x)=1ZeU(x)T\colorredP+(x)=1Zuniforme\colorgreenP1(x)=P(x)P0(x)=x

Ce n'est pas une loi de probabilite car la somme des probas

=0

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

PT(X=xsolution)PT(X=x)=e\colorblue(U(x)U(xsolution)\colorredpositif)T\colorgreen0+0+P0(xxsolution)P0(xsolution)={xxsolution,P0(x)=P0(xsolution)=1

P0(x)={1si x=xsolutionsinon