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

18
可視化で理解する マルコフ連鎖モンテカルロ法 @hoxo_m 2014/09/09

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

Page 1: 可視化で理解するマルコフ連鎖モンテカルロ法

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

@hoxo_m

2014/09/09

Page 2: 可視化で理解するマルコフ連鎖モンテカルロ法

自己紹介

• hoxo_m

某ECサイトでデータ分析をやっています

• RPubsHotEntry

RPubs のホットエントリを流す Twitter Bot

フォロワー 100人達成!

https://twitter.com/RPubsHotEntry

Page 3: 可視化で理解するマルコフ連鎖モンテカルロ法

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

• データ x が与えられたとき、事後分布 P(θ|x) からパラメータ θ をサンプリングする手法

)(

)()|()|(

xP

PxPxP

※ベイズ統計で使うだけならこの理解で十分だと思う

Page 4: 可視化で理解するマルコフ連鎖モンテカルロ法

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

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

メトロポリス法 (対称性)

ギブス・ サンプラー (条件付き分布)

Page 5: 可視化で理解するマルコフ連鎖モンテカルロ法

今日のメニュー

• 二変量正規分布からのサンプリングを可視化

1. 非MCMC (mvrnorm)

2. メトロポリス法

3. ギブス・サンプラー

Page 6: 可視化で理解するマルコフ連鎖モンテカルロ法

非 MCMC

• 二変量正規分布は MCMC を使わなくてもサンプリングできる

参考:多変量正規分布にしたがう乱数の生成

• ここでは、R の組み込み関数 mvrnorm() を使って生成してみた

Page 8: 可視化で理解するマルコフ連鎖モンテカルロ法

メトロポリス法

任意の初期状態 (x, y) から始めて以下を繰り返す

1. dx, dy を原点対称の確率密度から発生させる

2. 候補 (x’, y’) を以下で定める

(x’, y’) ← (x + dx, y + dy)

3. 候補の状態と現在の状態の確率の比を計算する

r ← p(x’, y’) / p(x, y)

4. 一様乱数 R(0≦R<1) を発生、R < r なら (x, y) を (x’, y’) で更新

Page 9: 可視化で理解するマルコフ連鎖モンテカルロ法

細かいことは抜きにして

理解すべきこと:

• マルコフ連鎖

⇒ 前の状態から次の状態が決まる

• モンテカルロ法

⇒ 確率的なアルゴリズム

Page 10: 可視化で理解するマルコフ連鎖モンテカルロ法

メトロポリス法

確率の高い方へ 行くときは 必ず受理される

Page 11: 可視化で理解するマルコフ連鎖モンテカルロ法

メトロポリス法

確率の低い方へ 行くときは確率 r で 棄却される

Page 13: 可視化で理解するマルコフ連鎖モンテカルロ法

ギブス・サンプラー

任意の初期状態 (x, y) から始めて以下を繰り返す

1. x の新しい値を条件付き分布 P(x|y) から選ぶ

2. y の新しい値を条件付き分布 P(y|x) から選ぶ

Page 14: 可視化で理解するマルコフ連鎖モンテカルロ法

ギブス・サンプラー

x 方向へ動くときは y を固定した 条件付き確率に従う

Page 15: 可視化で理解するマルコフ連鎖モンテカルロ法

ギブス・サンプラー

y 方向へ動くときは x を固定した 条件付き確率に従う

Page 17: 可視化で理解するマルコフ連鎖モンテカルロ法

おまけ

• 三変量正規分布に対して、ギブス・サンプラーを可視化してみた。

• http://visualize-mcmc.appspot.com/4_gibbs3d.html

Page 18: 可視化で理解するマルコフ連鎖モンテカルロ法

ご清聴ありがとうございました