お前の逐モン、GETだぜ!

2,984 views
2,885 views

Published on

Tokyo.R 39

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,984
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
10
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

お前の逐モン、GETだぜ!

  1. 1. お前の逐モン、 GETだぜ!!! 第39回 勉強会@東京(#TokyoR) @teramonagi
  2. 2. 貴方が今すぐフォローすべき たった1つのトゥイッター・アカウント • @Nekopuni_ 2
  3. 3. 3 WHY?
  4. 4. 素晴らしき、俺様備忘録(Rネタ多数) 4 http://nekopuni.holy.jp/ ※「Rによるベイジアン動的線形モデル」の内容多数あり
  5. 5. そんな彼がこんなん言ってました 5
  6. 6. 本日のワタクシのLTタイトル 6 http://atnd.org/events/50887
  7. 7. 畜じゃねぇし、逐だし 7
  8. 8. でも、それ、 いいフリだぜぇ? 8
  9. 9. お前の畜モン、 GETだぜ!!! 第39回 勉強会@東京(#TokyoR) @teramonagi
  10. 10. 畜モンとは? • 社畜モンスター、縮めて畜モン • コヨウケイヤクショで捕まえられる • 常に大量の仕事を抱える不思議な生物 • 仲間と仲良く暮らしている畜モンもいれ ば、職を失い公園や浜辺に生息してい る無職の野良畜モンも 10
  11. 11. 本題、逐次モンテカルロ法 • Sequential MonteCarlo Method(SMC) • 別名いっぱい(SIR, 粒子フィルタ) • 逐次モンテカルロ→逐モン→(畜モン) (こう呼んでる人を見たことはない) • モンテカルロ法を用いた、系列データ に対する、モデルの隠れ変数(状態変 数)の逐次的な推定法 11
  12. 12. アルゴリズム、ダイジェスト 0:元気よく社畜を投げる 1:(尊い)労働を実行させる 2:営業成績の評価 3:リストラと採用の実施 4:1へ戻る 12※SMCの”フィルタリング”というアルゴリズムに相当
  13. 13. アルゴリズム、ダイジェスト 13 時点0 1 2
  14. 14. アルゴリズム、ダイジェスト • 0:元気よく社畜を投げる 14 時点0 1 2
  15. 15. アルゴリズム、ダイジェスト • 1:(尊い)労働を実行させる 15 時点0 1 2
  16. 16. アルゴリズム、ダイジェスト • 2:営業成績の評価 16 時点0 1 2 70点 80点 60点 100点 30点 25点
  17. 17. アルゴリズム、ダイジェスト • 3:リストラと採用の実施 17 時点0 1 2 70点 80点 60点 100点 30点 25点 残留 残留 残留 残留 リストラ リストラ
  18. 18. アルゴリズム、ダイジェスト • 3:リストラと採用の実施 18 時点0 1 2 70点 80点 60点 100点 30点 25点 残留 残留 残留 残留 リストラ リストラ
  19. 19. アルゴリズム、ダイジェスト • 1:(尊い)労働を実行させる 19 時点0 1 2
  20. 20. 大事なところな ので、もう一度 20
  21. 21. アルゴリズム、ダイジェスト • 0:元気よく社畜を投げる 21 時点0 1 2
  22. 22. アルゴリズム、ダイジェスト • 1:(尊い)労働を実行させる 22 時点0 1 2
  23. 23. アルゴリズム、ダイジェスト • 2:営業成績の評価 23 時点0 1 2 70点 80点 60点 100点 30点 25点
  24. 24. アルゴリズム、ダイジェスト • 3:リストラと採用の実施 24 時点0 1 2 70点 80点 60点 100点 30点 25点 残留 残留 残留 残留 リストラ リストラ
  25. 25. アルゴリズム、ダイジェスト • 3:リストラと採用の実施 25 時点0 1 2 70点 80点 60点 100点 30点 25点 残留 残留 残留 残留 リストラ リストラ
  26. 26. アルゴリズム、ダイジェスト • 1:(尊い)労働を実行させる 26 時点0 1 2
  27. 27. アルゴリズム、ダイジェスト 0:元気よく社畜を投げる 1:(尊い)労働を実行させる 2:営業成績の評価 3:リストラと採用の実施 4:1へ戻る 27
  28. 28. アルゴリズム、ダイジェスト 0:初期分布作成 1:状態方程式を解く 2:尤度の計算 3:リサンプリングの処理 4:1へ戻る 28
  29. 29. くわしくは、これを読め 29予測にいかす統計モデリングの基本―ベイズ統計入門から応用まで
  30. 30. そんな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) }
  31. 31. そんなSMC, 動かしてみた 31 • カルマンフィルタとあってそう
  32. 32. 32 よし、では本番だ
  33. 33. 私が本当にやりたかったもの 33http://heartruptcy.blog.fc2.com/blog-entry-90.html
  34. 34. 34 無理でした
  35. 35. 結局、何? 35 で、実際どう すればいい の?
  36. 36. Stan使ったらいい36
  37. 37. サプリメント的Blogポスト 37http://d.hatena.ne.jp/teramonagi/20140525/1400996808
  38. 38. Enjoy!!!38

×