ほくそ笑む

R言語と統計解析について

可視化で理解するマルコフ連鎖モンテカルロ法(MCMC)

先日行われた第9回「データ解析のための統計モデリング入門」読書会にて、
「可視化で理解するマルコフ連鎖モンテカルロ法」というタイトルで発表させて頂きました。

発表スライドは以下です。


この発表は、みどりぼんに登場する、マルコフ連鎖モンテカルロ法(MCMC)のアルゴリズムである「メトロポリス法」と「ギブス・サンプラー」について、可視化して理解しようというお話です。

マルコフ連鎖モンテカルロ法」というのは、字面だけ見ると難しそうですが、この発表で理解すべきポイントは、次のスライド 1枚に凝縮されています。

このことを念頭に置いて、それぞれの手法を見ていきましょう。


まず、メトロポリス法ですが、これは、

  1. 前の状態の近くの点を次の遷移先候補として選ぶ(マルコフ連鎖
  2. そのときの確率比 r < 1 ならば確率 r で棄却する。それ以外は受理(モンテカルロ法

というアルゴリズムです。

これを可視化してアニメーションにすると次のようになります。


http://visualize-mcmc.appspot.com/2_metropolis.html

MCMC でない乱数生成法のアニメーションの動きと比べてみると、メトロポリス法では、次の点への遷移が前の点からそう離れていない場所へと移っていることが分かると思います。ここに、前の状態から次の状態が決まるというマルコフ連鎖の性質が表れています。

また、棄却の様子が赤い×で表現されています。新しい候補を棄却するかどうかは確率的に決まります。これはモンテカルロ法の性質です。*1


一方、ギブス・サンプラーは、

  1. y の値を固定した条件付き分布から x の次候補をサンプリングする
  2. x の値を固定した条件付き分布から y の次候補をサンプリングする

ということを交互に行うシンプルな手法です。

やはりこのアルゴリズムも、次の状態が前の状態によって決まる(マルコフ連鎖)、確率を使ったアルゴリズム(モンテカルロ法)であることが分かると思います。

ギブス・サンプラーは、メトロポリス法を一般化した「メトロポリスヘイスティングス法」の一種で、必ず r = 1 となるため、得られた候補を棄却しなくて済みます。

これは非常に強力な手法なのですが、アルゴリズムの性質上、条件付き分布からのサンプリングが容易にできる場合にしか適用できません。

運の良いことに、階層ベイズモデルではこれが容易にできるので、ベイズ統計ではよく使われているようです。

ギブス・サンプラーを可視化してアニメーションにすると次のようになります。


http://visualize-mcmc.appspot.com/3_gibbs.html

一方を固定してもう一方をサンプルするという動作を繰り返すので、常に直角にカクカク曲がっています。

このようなサンプリング方法で、最終的にはメトロポリス法と同じ分布が得られるというのは面白いですね。

おまけ

おまけとして、三変量正規分布に対するギブス・サンプラーも可視化しています。
結構苦労して作ったので、よければ見てみてください。
http://visualize-mcmc.appspot.com/4_gibbs3d.html

まとめ

2つの MCMC アルゴリズム、「メトロポリス法」と「ギブス・サンプラー」を可視化してみました。

アニメーションにより、それぞれのアルゴリズムの違いがうまく表現できたのではないかと思います。

マルコフ連鎖モンテカルロ法についての理解の助けになれば幸いです。

それではまた。

参考文献

計算統計 2 マルコフ連鎖モンテカルロ法とその周辺 (統計科学のフロンティア 12)

計算統計 2 マルコフ連鎖モンテカルロ法とその周辺 (統計科学のフロンティア 12)

*1:次候補を選ぶ際にも確率的な決め方をしていますが、これもモンテカルロ法の性質です