ベイズ推定と MCMC

ベイズ推定において、事後分布を計算で導くことが困難である場合が多いため、マルコフ連鎖モンテカルロ法で解くことが一般的である。ベイズ推定による事後分布 w'(θ|z) の推定は、事前分布 w(θ) および尤度 f(z|θ) を用いて、次のようにかける。

\[ w'(\theta|z) = \frac{w(\theta)f(z|\theta)}{\int_{\Theta} w(\theta)f(z|\theta)d\theta} \]

ベイズ推定式の分子の計算は比較的に簡単に行える。事前分布は、例えば正規分布などのように、解析に使う分布を予め決めれば、その分布の分布関数をそのまま利用できる。また、尤度についても、決められた分布関数にパラメーター θ と観測データ z を代入すれば、比較的に簡単に計算できる。しかし、分布関数と尤度の積を積分することは困難であることが多い。そのため、事後分布を正確に計算することは非常に難しい。そこで、数式通りに正確な値を計算することを諦め、近似解を求める方法が使われる。その方法の一つが MCMC である。

MCMC は、まずマルコフ連鎖を利用して乱数を生成し、次に、それらの乱数を利用してモンテカルロ積分を行うことで、積分の近似解を求める方法である。以下に、MCMC を使った積分の近似解を求める方法を説明する。説明を簡単にするために、パラメータを 1 つだけとする。

マルコフ連鎖

まず、何らかの分布からパラメータ θ を n 個生成する。事前知識があれば、その事前知識に基づく分布から θ を生成すればよく、そうでなければマイナス無限大からプラスの無限大までの区間からなる一様分布から θ を生成する。

サンプリングによるパラメータ推定(1)

なお、n 個目の θ を生成するときは、まったくランダムに生成するのではなく、n-1 個目の θ の値を考慮しながら生成する。このように一つ前の値に基づいて乱数を生成する過程をマルコフ連鎖とよぶ。どのような基準(あるいは制限)で次の θ を生成するのかを決めるアルゴリズムは、複数ある。有名なアルゴリズムとして、メトロポリス・ヘイスティングスアルゴリズム、ギブス・サンプリング、ハミルトニアンモンテカルロアルゴリズムなどがある。

モンテカルロ積分

マルコフ連鎖によって生成された n 個の θ を w(θ)f(z|θ) に代入すると、関数 w(θ)f(z|θ) の概ねの形が求められる。仮に n = 13 として、θ をランダムに 13 個生成して、これを関数 w(θ)f(z|θ) に代入すると、次のようになる。

サンプリングによるパラメータ推定(2)

ここで n をさらに増やすと、関数 w(θ)f(z|θ) の形がより正確に推測できる。

サンプリングによるパラメータ推定(3)

n をさらに増やすと、関数 w(θ)f(z|θ) の下の部分が w(θi)f(z|θi), i = 1, 2, 3, ..., n の棒で埋め尽くされる。このとき、モンテカルロ法によって関数 w(θ)f(z|θ) の積分を推定することができる。

サンプリングによるパラメータ推定(3)

ここで、モンテカルロ積分とよばれる乱数を使った積分方法を使い、w(θ)f(z|θ) を θ 全体について積分する。すると、ベイズ推定の分母の積分の近似解が得られる。

w(θ)f(z|θ) の分布の形およびそれの θ の積分値もわかった。これらの値をベイズ推定の式に代入すると、w(θ|z) の分布が計算される。

\[ w(\theta | z) = \frac{w(\theta)f(z|\theta)}{\int_{\Theta}w(\theta)f(z|\theta)d\theta} \]
サンプリングによるパラメータ推定(4)

以上で見たように、ベイズ推定を行うにはパラメータ θ を何らかの分布からマルコフ連鎖によって生成し、その生成された乱数を使ってモンテカルロ積分を行っている。これがマルコフ連鎖モンテカルロ法(MCMC)と呼ばれている。