38
お前の逐モン、 GETだぜ!!! 39勉強会@東京(#TokyoR) @teramonagi

お前の逐モン、GETだぜ!

Embed Size (px)

DESCRIPTION

Tokyo.R 39

Citation preview

Page 1: お前の逐モン、GETだぜ!

お前の逐モン、GETだぜ!!!

第39回 勉強会@東京(#TokyoR)

@teramonagi

Page 2: お前の逐モン、GETだぜ!

貴方が今すぐフォローすべき たった1つのトゥイッター・アカウント

• @Nekopuni_

2

Page 3: お前の逐モン、GETだぜ!

3

WHY?

Page 4: お前の逐モン、GETだぜ!

素晴らしき、俺様備忘録(Rネタ多数)

4 http://nekopuni.holy.jp/

※「Rによるベイジアン動的線形モデル」の内容多数あり

Page 5: お前の逐モン、GETだぜ!

そんな彼がこんなん言ってました

5

Page 6: お前の逐モン、GETだぜ!

本日のワタクシのLTタイトル

6 http://atnd.org/events/50887

Page 7: お前の逐モン、GETだぜ!

畜じゃねぇし、逐だし

7

Page 8: お前の逐モン、GETだぜ!

でも、それ、 いいフリだぜぇ?

8

Page 9: お前の逐モン、GETだぜ!

お前の畜モン、GETだぜ!!!

第39回 勉強会@東京(#TokyoR)

@teramonagi

Page 10: お前の逐モン、GETだぜ!

畜モンとは?

• 社畜モンスター、縮めて畜モン

• コヨウケイヤクショで捕まえられる

• 常に大量の仕事を抱える不思議な生物

• 仲間と仲良く暮らしている畜モンもいれば、職を失い公園や浜辺に生息している無職の野良畜モンも

10

Page 11: お前の逐モン、GETだぜ!

本題、逐次モンテカルロ法

• Sequential MonteCarlo Method(SMC)

• 別名いっぱい(SIR, 粒子フィルタ)

• 逐次モンテカルロ→逐モン→(畜モン)

(こう呼んでる人を見たことはない)

• モンテカルロ法を用いた、系列データに対する、モデルの隠れ変数(状態変数)の逐次的な推定法

11

Page 12: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

0:元気よく社畜を投げる

1:(尊い)労働を実行させる

2:営業成績の評価

3:リストラと採用の実施

4:1へ戻る 12 ※SMCの”フィルタリング”というアルゴリズムに相当

Page 13: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

13 時点 0 1 2

Page 14: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 0:元気よく社畜を投げる

14 時点 0 1 2

Page 15: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 1:(尊い)労働を実行させる

15 時点 0 1 2

Page 16: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 2:営業成績の評価

16 時点 0 1 2

70点

80点

60点

100点

30点

25点

Page 17: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 3:リストラと採用の実施

17 時点 0 1 2

70点

80点

60点

100点

30点

25点

残留

残留

残留

残留

リストラ

リストラ

Page 18: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 3:リストラと採用の実施

18 時点 0 1 2

70点

80点

60点

100点

30点

25点

残留

残留

残留

残留

リストラ

リストラ

Page 19: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 1:(尊い)労働を実行させる

19 時点 0 1 2

Page 20: お前の逐モン、GETだぜ!

大事なところなので、もう一度

20

Page 21: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 0:元気よく社畜を投げる

21 時点 0 1 2

Page 22: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 1:(尊い)労働を実行させる

22 時点 0 1 2

Page 23: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 2:営業成績の評価

23 時点 0 1 2

70点

80点

60点

100点

30点

25点

Page 24: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 3:リストラと採用の実施

24 時点 0 1 2

70点

80点

60点

100点

30点

25点

残留

残留

残留

残留

リストラ

リストラ

Page 25: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 3:リストラと採用の実施

25 時点 0 1 2

70点

80点

60点

100点

30点

25点

残留

残留

残留

残留

リストラ

リストラ

Page 26: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

• 1:(尊い)労働を実行させる

26 時点 0 1 2

Page 27: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

0:元気よく社畜を投げる

1:(尊い)労働を実行させる

2:営業成績の評価

3:リストラと採用の実施

4:1へ戻る 27

Page 28: お前の逐モン、GETだぜ!

アルゴリズム、ダイジェスト

0:初期分布作成

1:状態方程式を解く

2:尤度の計算

3:リサンプリングの処理

4:1へ戻る 28

Page 29: お前の逐モン、GETだぜ!

くわしくは、これを読め

29 予測にいかす統計モデリングの基本―ベイズ統計入門から応用まで

Page 30: お前の逐モン、GETだぜ!

そんなSMC, 書いてみた

30

particle.filter <- function(x0, size.particle, size.dim, size.data, system.equation, likelihood, lag=0)

{

total.loglikelihood <- 0

#dimension index : paricle * dimension * lag

dims <- c(size.particle, size.dim, lag+1)

x0 <- array(c(rep(x0, each=size.particle),rep(NA, size.dim*size.particle*lag)), dims)

x <- array(rep(NA, size.particle*size.dim*(lag+1)), dims)

dimnames(x0) <- make.name(size.particle, size.dim, lag)

dimnames(x) <- make.name(size.particle, size.dim, lag)

states <- vector("list", size.data)

for( t in 1:size.data)

{

#Prediction : p(x_{t}|x_{t-1}) for(index.particle in 1:size.particle)

{

x[index.particle,, 1] <- system.equation(x0[index.particle,,1])

x[index.particle,,-1] <- x0[index.particle,,-(lag+1)]

}

#Likelihood : p(y_{t}|y_{1:t}) w <- apply(x, 1, function(z){likelihood(t, z[,1])})

total.loglikelihood <- total.loglikelihood + log(sum(w)/size.particle)

#Weight ' resampling

index <- resampling(w/sum(w))

#Filtering : p(x_{t}|y_{t}) x0 <- x[index,,,drop=FALSE]

states[[t]] <- make.state(t, w, x, x0)

}

list(loglikelihood=total.loglikelihood, size=c(particle=size.particle, data=size.data, dim=size.dim,lag=lag), states=states)

}

Page 31: お前の逐モン、GETだぜ!

そんなSMC, 動かしてみた

31

• カルマンフィルタとあってそう

Page 32: お前の逐モン、GETだぜ!

32

よし、では本番だ

Page 34: お前の逐モン、GETだぜ!

34

無理でした

Page 35: お前の逐モン、GETだぜ!

結局、何?

35

で、実際どうすればいいの?

Page 36: お前の逐モン、GETだぜ!

Stan使ったらいい 36

Page 37: お前の逐モン、GETだぜ!

サプリメント的Blogポスト

37 http://d.hatena.ne.jp/teramonagi/20140525/1400996808

Page 38: お前の逐モン、GETだぜ!

Enjoy!!! 38