HyperAIHyperAI

Command Palette

Search for a command to run...

Méthode De Monte Carlo Par Chaîne De Markov MCMC

Date

MCMC Il s'agit d'un algorithme d'échantillonnage à partir d'une distribution aléatoire basée sur une chaîne de Markov, qui approxime la distribution postérieure du paramètre d'intérêt en échantillonnant aléatoirement dans l'espace de probabilité.

La théorie de base du MCMC est le processus de Markov. Dans les algorithmes connexes, afin d'échantillonner sur une distribution spécifiée, nous pouvons simuler ce processus à partir de n'importe quel état selon le processus de Markov et effectuer en continu des transitions d'état jusqu'à ce qu'il converge finalement vers une distribution stable.

L'idée générale est d'utiliser une distribution stable pour remplacer la distribution complexe, et de l'utiliser pour échantillonner et ajuster afin d'obtenir finalement la distribution de l'échantillon complexe.

Méthodes MCMC courantes : échantillonnage Metropolis-Hastings, échantillonnage Gibbs

Échantillonnage de Metropolis-Hastings

1 : Initialiser l'état initial de la chaîne de Markov latexX_0 = x_0latex {X\mathop{{}}\nolimits\_{{0}}\text{ }=\text{ }x\mathop{{}}\nolimits\_{{0}}}latexX_0 = x_0

2 : Exemple du processus suivant du cycle latext = 0, 1, 2, latex {t\text{ }=\text{ }0,\text{ }1,\text{ }2,\text{ }…}latext = 0, 1, 2, 

  • À l'instant latextlatex {t}latext, l'état de la chaîne de Markov estlatexX_t = x_tlatex {X\mathop{{}}\nolimits\_{{t}}\text{ }=\text{ }x\mathop{{}}\nolimits\_{{t}}}latexX_t = x_t , et l'échantillonnagelatexy  q(xx_t)latex {y\text{ } \sim \text{ }q{ \left( {x \left| x\mathop{{}}\nolimits\_{{t}}\right. } \right) }}latexy  q(xx_t)
  • Échantillonnage à partir d'une distribution uniformelatexu  Uniforme[0,1]latex {u\text{ } \sim \text{ }Uniforme{ \left[ {0,1} \right] }}latexu  Uniforme[0,1]
  • Si latex {u\text{ } < \text{ } \alpha { \left( {x\mathop{{}}\nolimits\_{{t}},y} \right) }\text{ }=\text{ }min{ \left\{ {\frac{{p{ \left( {y} \right) }q{ \left( {x\mathop{{}}\nolimits\_{{t}} \left| y\right. } \right) }}}{{p{ \left( {x\mathop{{}}\nolimits\_{{t}}} \right) }p{ \left( {y \left| {x\mathop{{}}\nolimits\_{{t}}\text{ } \to \text{ }y}, c'est-à-dire, latexX_t+1 =\texteylatex {X\mathop{{}}\nolimits\_{{t+1}}\text{ }=\texte{ }y}latexX_t+1 =\textey
  • Sinon, le transfert n'est pas accepté, c'est-à-dire latexX_t+1 = x_tlatex {X\mathop{{}}\nolimits\_{{t+1}}\text{ }=\text{ }x\mathop{{}}\nolimits\_{{t}}}latexX_t+1 = x_t

Échantillonnage de Gibbs

1 : Initialiser aléatoirement latexX_0 = x_0, Y_0 = y_0latex {X\mathop{{}}\nolimits\_{{0}}\text{ }=\text{ }x\mathop{{}}\nolimits\_{{0}},\text{ }Y\mathop{{}}\nolimits\_{{0}}\text{ }=\text{ }y\mathop{{}}\nolimits\_{{0}}}latexX_0 = x_0, Y_0 = y_0

2 : Échantillonnage cyclique de latext = 0, 1, 2, latex {t\text{ }=\text{ }0,\text{ }1,\text{ }2,\text{ }…}latext = 0, 1, 2, 

  • latexy_t+1\texte\textep\gauche(y\gauchex_t\droite.\droite)latex {y\mathop{{}}\nolimits\_{{t+1}}\texte{ } \sim \texte{ }p{ \gauche( {y \gauche| x\mathop{{}}\nolimits\_{{t}}\droite. } \droite) }}latexy_t+1\texte\textep\gauche(y\gauchex_t\droite.\droite)
  • latexx_t+1\texte\textep\gauche(x\gauchey_t+1\droite.\droite)latex {x\mathop{{}}\nolimits\_{{t+1}}\texte{ } \sim \texte{ }p{ \gauche( {x \gauche| y\mathop{{}}\nolimits\_{{t+1}}\droite. } \droite) }}latexx_t+1\texte\textep\gauche(x\gauchey_t+1\droite.\droite)

Références

【1】Premiers pas avec MCMC

【2】Une brève analyse de la méthode de Monte Carlo par chaîne de Markov

Créer de l'IA avec l'IA

De l'idée au lancement — accélérez votre développement IA avec le co-codage IA gratuit, un environnement prêt à l'emploi et le meilleur prix pour les GPU.

Codage assisté par IA
GPU prêts à l’emploi
Tarifs les plus avantageux

HyperAI Newsletters

Abonnez-vous à nos dernières mises à jour
Nous vous enverrons les dernières mises à jour de la semaine dans votre boîte de réception à neuf heures chaque lundi matin
Propulsé par MailChimp