🎃

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

2023/11/03に公開

はじめに

マルコフ連鎖モンテカルロ法(MCMC法)とは多変量の確率分布からサンプルを得る手法である。応用先としてよく取り上げられるのはベイズ推定であるが、
本質は「モンテカルロ法 = ベイズ推定で用いる」ではなく、多変量の確率分布を扱うための手法がモンテカルロ法であるという部分かと思われる。

ベイズ推定

ベイズ推定では、

p(\theta | D) = \frac{p(D|\theta)p(\theta)}{p(D)}

で表される事後分布を求めることになる[1]。この式は

p(\theta | D) = \frac{p(D|\theta)p(\theta)}{ \int p(D|\theta)p(\theta) d\theta}

と変形されるが、つまり事後分布からサンプルを得るためには分母の積分計算を実行する必要が生じる。一般的にこの積分計算は(パラメータ \theta が多変量であることから)解析的に処理できないケースが多いため実行できない[2]。そこでベイズ推定を実際に解く際には何らかの、事後確率 p(\theta|D) を扱うための手法が必要となる。

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

モンテカルロ法とは生成した乱数を用いて数値計算を行う手法であり、よく円周率を求める問題が例題として取り上げられたりする。
そのうちでマルコフ連鎖モンテカルロ法(MCMC法)とはマルコフ過程を用いたモンテカルロ法(=乱数を生成する手法)のことであり、 モンテカルロ法の一種である。

マルコフ過程

将来の状態(t の状態)が現在の値にのみ依存している確率過程のことであり、

p(x_t|x_{t-1},...,x_0) = p(x_t|x_{t-1})

が成立する確率過程のこと。

メトロポリス・ヘイスティング法

MCMC法の代表的な手法の一つである。

上述したように、例えばベイズ推定の事後分布からサンプリングをしたい場合を考えてみる。この問題は確率密度関数 p(\theta|D) からサンプリングすることとなるが、 一般的には積分計算が解析的に実行できないため、直接サンプリングを実行することができないのであった。そこで以下の方法を取ることで近似的にサンプリングを実行するのが、メトロポリス・ヘイスティング法(=MCMC法)である[3]

参考文献

脚注
  1. p(\theta|D)が分かれば、知りたいパラ―メータ \theta に関する推定が可能となる。 ↩︎

  2. 「実行できないので」とうよりは「困難であるので」という方が自分的にはしっくりきた。 ↩︎

  3. メトロポリス・ヘイスティング法はあくまでもMCMC法の計算方法・実装方法の一つ。 ↩︎

GitHubで編集を提案

Discussion