数式をまったく使わないMCMC(マルコフ連鎖モンテカルロ法)の説明

こんにちは。

今回は、確率分布の平均値やモード(最頻値)を探す方法のアルゴリズムである「MCMC(マルコフ連鎖モンテカルロ法、Markov chain Monte Carlo methods)」について、お話ししたいと思います。

ここでは山田君が登場します。このストーリーは社内でも意外に好評で、週刊ダイヤモンドでも採用していただきました。

1 洞穴に落ちてしまった!

山田君は、山に遊びにいって、誤って大きな洞穴に落ちて気を失ってしまいました。

気が付いたら、もう夜。そこは大きな洞穴で、なんとか上の落ちた穴の位置を探したいと思いました。

さて、真っ暗闇の中で、どうやって穴の位置を探したらよいでしょうか?

mcmc1

2 落ちた穴を探す

山田君は、洞穴の一番高いところに落ちた穴があるだろうと考えました。

そこで、近くの小石を拾って、それを真上に投げ上げて、小石が天井にぶつかって落ちてくるまでの時間を測ることにしました。

山田君はランダムに歩いて、一歩進むたびに石を投げ上げながら天井の高いところを探します。
「ここら辺が高いな」と思ったら、その周辺に集中的に石を投げ上げて、落ちた穴を探すようにしました。

3 平均値・モードを求める

山田君は、20回小石を投げ上げたとしましょう。

ここで、山田君が小石を投げた時の足の位置に注目してみます。
天井が高ければ、「足の位置」の密度は、次の図のように高くなっているはずです。

mcmc2

確率分布 \(\mathrm{P}(x)\) の形状がわからなくても、「足の位置の分布」をみることにより、確率分布の平均値、分散、モードを推測することができます。天井ではなく足もとを見る。これがMCMC法(メトロポリス・ヘイスティングス法)の発想です。

「足の位置」の右から2番目までの範囲を考えると、ここには20個中2個の足跡があるので、この部分の確率は、およそ 0.1 だろうと推測もできます。今回は20回の試行ですが、これを1000回行ったとしたら推測精度はさらにあがります。

山田君が落ちた穴を見つけられるかは、どうやら体力との勝負になりそうですね。

しかし、落ちた穴を見つける方法は、他にもありそうです。

それは、朝まで待って、落ちた穴から陽が差し込むのを待つ方法です。

「あせりは禁物」ということですね。