HyperAIHyperAI

Command Palette

Search for a command to run...

マルコフ連鎖モンテカルロ法 MCMC

日付

7年前

MCMC これは、ランダム分布からのマルコフ連鎖サンプリングに基づくアルゴリズムであり、確率空間でランダムにサンプリングすることによって対象パラメータの事後分布を近似します。

MCMC の基本理論はマルコフ過程であり、関連するアルゴリズムでは、指定された分布でサンプリングするために、マルコフ過程に従って任意の状態から開始して状態遷移を継続し、最終的には に収束します。定常分布。

全体的な考え方は、定常分布を使用して複素分布を置き換え、このサンプリング フィッティングを使用して最終的に複素サンプルの分布を取得することです。

一般的に使用される MCMC 手法: メトロポリス・ヘイスティングス サンプリング、ギブス サンプリング

メトロポリス・ヘイスティングスのサンプリング

1: マルコフ連鎖の初期状態を初期化する latexX_0 = x_0latex {X\mathop{{}}\nolimits\_{{0}}\text{ }=\text{ }x\mathop{{}}\nolimits\_{{0}}} latexX_0 = x_0

2: latexの以下の処理をサンプルします。t = 0, 1, 2, latex の以下の処理をサンプルします。 {t\text{ }=\text{ }0,\text{ }1,\text{ }2,\text{ }…}latexの以下の処理をサンプルします。t = 0, 1, 2, 

  • latextlatex {t}latext 時点でのマルコフ連鎖の状態は latexX_t = x_tlatex {X\mathop{{}}\nolimits\_{{t}}\text{ }=\text{ }x\mathop{{}}\nolimits\_{ {t }}}latexX_t = x_t、サンプリング latex {y\text{ } \sim \text{ }q{ \left( {x \left| x\mathop{{}}\nolimits\_{{t}}\right. } \右) }}
  • 一様分布からの latexのサンプリングu  Uniform[0,1]latex のサンプリング {u\text{ } \sim \text{ }Uniform{ \left[ {0,1} \right] }}latexのサンプリングu  Uniform[0,1]
  • If latexu < α(x_t,y) = min{p(y)q(x_ty)p(x_t)p(yx_t),1}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}}\right. } \right) }}},1} \right\} }}latexu < α(x_t,y) = min{p(x_t)p(yx_t)p(y)q(x_ty),1} は転送を受け入れます latexx_t  ylatex {x\mathop{{}}\nolimits\_{{t}}\text{ } \to \text{ }y}latexx_t  y、つまり latexX_t+1 = ylatex {X\mathop{{}}\nolimits\_{{t+1}}\text{ }=\text{ }y}latexX_t+1 = y
  • それ以外の場合、転送は受け入れられません。つまり、latexX_t+1 = x_tlatex {X\mathop{{}}\nolimits\_{{t+1}}\text{ }=\text{ }x\mathop{{}}\nolimits\_{{ t}}}latexX_t+1 = x_t

ギブスサンプリング

1: latex {X\mathop{{}}\nolimits\_{{0}}\text{ }=\text{ }x\mathop{{}}\nolimits\_{{0}},\text{ }Y\ をランダムに初期化しますmathop{{}}\nolimits\_{{0}}\text{ }=\text{ }y\mathop{{}}\nolimits\_{{0}}}

2: latexの循環サンプリングt = 0, 1, 2, latex の循環サンプリング {t\text{ }=\text{ }0,\text{ }1,\text{ }2,\text{ }…}latexの循環サンプリングt = 0, 1, 2, 

  • latex {y\mathop{{}}\nolimits\_{{t+1}}\text{ } \sim \text{ }p{ \left( {y \left| x\mathop{{}}\nolimits\_{{t }}\右。 } \右) }}
  • latexx_t+1  p(xy_t+1)latex {x\mathop{{}}\nolimits\_{{t+1}}\text{ } \sim \text{ }p{ \left( {x \left| y\mathop{{}}\nolimits\_{{t +1}}\right. } \right) }}latexx_t+1  p(xy_t+1)

参考文献

【1】MCMC スタートガイド

【2】マルコフ連鎖モンテカルロ法の簡単な分析

AIでAIを構築

アイデアからローンチまで — 無料のAIコーディング支援、すぐに使える環境、最高のGPU価格でAI開発を加速。

AI コーディング補助
すぐに使える GPU
最適な料金体系

HyperAI Newsletters

最新情報を購読する
北京時間 毎週月曜日の午前9時 に、その週の最新情報をメールでお届けします
メール配信サービスは MailChimp によって提供されています