ここでは、モンテカルロ法である重点サンプリング、
そしてマルコフ連鎖モンテカルロ法(MCMC法)について説明していきます。
重点サンプリング
確率分布を求めることは難しいが、
確率変数に対して確率を求めることはできる場合、
あえて、期待値で考えることで求めれる。
確率変数\(X\)の期待値の求め方として、主に連続と離散に分けて以下2つがあります。
- 和の計算(離散):\(E[X] = \displaystyle \sum_{i=1} X_{i}P(X=X_{i})\)
- 積分の計算(積分):\(E[X] = \displaystyle \int xf(x)dx\)
今確率分布の計算が難しいので、和の計算を使うと良さそうと言うことはわかります。
しかし連続の確率変数であれば、その連続をうまく連続→離散に変換して適用が必要になります。
\begin{eqnarray}
H = \int h(x)dx
\end{eqnarray}
が解析的に求めれない場合があるとする。この計算を求めるためのサンプリングになります。
ここで\(h(x)\)を覆うような新たな関数\(\pi(x)\)とします。\(\pi(x) は0を取らない\)とした時、
( \(\pi(x) > h(x)\) )
\begin{eqnarray}
H
&=& \displaystyle \int \frac{h(x)}{\pi(x)}\pi(x)dx \\
&=& \displaystyle E_{\pi} \left[\frac{h(x)}{\pi(x)}\right]・・・①
\end{eqnarray}
上の2行目を見ると、期待値の定義の形式に似ています。
通常\(E[X] = \displaystyle \int xf(x)dx\)です。
なので、期待値の定義の意味は、\(f(x)\)から生成された確率変数\(x\)の期待値という意味になるので、
上の\(①\)は、\(\pi(x)\)から生成された確率変数\(\displaystyle \frac{h(x)}{\pi(x)}\)の期待値ということになります。
こうすることで、解析的に求めれなかった\(h(x)\)は確率変数の方に持っていくことができたのが分かります。
なぜこうする必要があり、こうすることによるメリットは何か?
それは平均と期待値の意味するところの違いになります。
期待値とは「統計学で、確率の見地から算定した平均値」で、
平均は「各値の総和を個数で割った値」のことです。
つまり、期待値は確率を用いて計算をした平均のことなので、
今上記積分の期待値を計算できない今、あと残りの平均を求める方法としては実際に値の総和を出して、それを個数で割って計算をするということに帰着できそうです。
そして、確率変数の和は中心極限定理と大数の法則によって収束することが知られています。
確率変数\(X\)とし、得られたデータを\(X_{i (i=1,2,3,...)}\)とし
\( \displaystyle \frac{1}{n} \sum_{i=1}^{n} X_{i} \)とした時、\(n\)を大きくしていくと、\(E[X]\)に確率収束する。
その原理を用いることで、\(n\)が多いと仮定した上で(サンプリング数を増やす)、
\begin{eqnarray}
H &=& \displaystyle E_{\pi} \left[\frac{h(x)}{\pi(x)}\right]・・・① \\
&\rightarrow& \frac{1}{n} \sum_{i=1}^{n} \frac{h(x_{i})}{\pi(x_{i})}
\end{eqnarray}
元々の仮定としては、\(H\)を解析的に計算はできない状態で、\(h(x)\)はわかっている状態です。
さらに\(\pi(x)\)も自分で選択した関数なのでわかっているはずなので、
\(h(x)\)と\(\pi(x)\)の\(x\)にランダムで値を入れていき、上の平均の計算をしていくことで、最終的な\(H\)を求めることができるということになります。
上記の平均式を見ると、分母は\(\pi(x)\)なので、この値が極端に大きすぎる、つまり覆いかぶしても極端に\(h(x)\)から離れていては計算が計算が小さくなってしまいます。