MCMC と greta package
石上 漱眞
筑波大学国際総合学類4年
株式会社Insight Factory インターン
19/6/2017. Shuma Ishigami.
内容
• MCMCについて
– MCMCとベイズ
• “greta”package について
– 目的
– よいところ
– 推定のフロー
– 例(線形回帰)
– greta vs rstan
29/6/2017. Shuma Ishigami.
MCMCについて
39/6/2017. Shuma Ishigami.
MCMCについて
• 乱数を用いたシミュレーション手法
• MC(Markov Chain)
– 一つ前の状態にのみ依存する
• MC(Monte Carlo)
– 乱数を用いた数値計算
• ベイズ統計学によく用いられる(なぜ?)
49/6/2017. Shuma Ishigami.
伝統的統計学 vs ベイズ統計学
[母集団は、あるパラメータ𝜃を持つある確率分布に従う] とき…
伝統的統計学(頻度論アプローチ)
- パラメータ𝜃は母集団特有の唯一値が存在
- データから、その唯一値を推定
ベイズ統計学
- パラメータ𝜃も、ある確率分布に従う確率変数
- データから、その分布を調べたい
59/6/2017. Shuma Ishigami.
MCMC と ベイズ
• 関心のあるパラメータ𝜃の事後確率分布𝜋(𝜃|𝑋)がほしい(X:
データ)
-> ベイズの定理で表すと
𝜋 𝜃 𝑋 =
𝑓 𝑋 𝜃 𝜋(𝜃)
𝑓 𝑋 𝜃 𝜋 𝜃 𝑑𝜃
, 𝑓 𝑋 𝜃 は尤度
-> 右辺分母の積分がとても面倒くさい。次元が大きいと解析的
に解くことができない。
-> 多重積分を解析的に解くのではなく、
”事後分布に従うような”乱数を発生させ、サンプリングする。
(事後分布を直接得るのではなく、事後分布からのデータを得
る。)
69/6/2017. Shuma Ishigami.
MCMC と ベイズ
• なぜ事後分布からのサンプルが得られるの?
• ある条件のもとで、
マルコフ連鎖のパラメータ𝜃の分布は
𝑛 → ∞のとき定常分布𝜋(𝜃|𝑋)に収束する
-> MCMCでたくさんサンプルを得れば、得られたサン
プルの分布は欲しい事後分布𝜋 𝜃 𝑋 になる!
79/6/2017. Shuma Ishigami.
さまざまなMCMCのアルゴリズム
• Gibbs sampling
• M-H algorithm
• Hamiltonian MC (<-gretaはこれを使用)
• etc…
89/6/2017. Shuma Ishigami.
greta について
Ver. 0.2.0 (2017-06-26)
99/6/2017. Shuma Ishigami.
“greta” package
• 目的
R で統計モデリングとMCMCをするパッケージ
– ほかには”rstan”(Stan), ”R2WinBUGS”(Win/Open
BUGS)といったパッケージが存在
• よいところ/特徴
– Google Tensorflowを用いている
– モデリングが自由
– Stan, BUGSと異なり、独自の文法を覚えなくてもよい
– モデルの可視化がわかりやすい
109/6/2017. Shuma Ishigami.
greta array objects
• モデルはgreta arrayというarrayで構成される
• 普通のarrayやmatrixと同じように操作可能
• 普通のarrayとの違い
– 値の計算がされない(操作を記憶する”箱”)
– 分布を定義できる
119/6/2017. Shuma Ishigami.
推定の流れ
1. 各パラメータの事前分布の設定
2. モデルの定義
3. MCMCサンプリング・推定
129/6/2017. Shuma Ishigami.
1.各パラメータの事前分布の設定
• gretaはさまざまな分布に対応している
?greta::distributions で確認可能
• 事前分布を設定するには以下のようにすれ
ばよい
• 例: あるパラメータが一様分布
parameter = greta::uniform(min, max)
139/6/2017. Shuma Ishigami.
2.モデルの定義
• distribution(観測データ) :観測データに関し
て尤度𝑓 𝑋 𝜃 を定義できる
• model(greta_array): greta_model objectの作
成。モデルの定義。
• plot(greta_model):モデルを可視化。
149/6/2017. Shuma Ishigami.
3. MCMCサンプリング・推定
• greta::mcmc(greta_model, n_sample,
warmup,…)
– MCMCサンプリングを行う関数
– MCMCのアルゴリズムはHamiltonian Monte Carlo
– 返り値はmcmc.listでMCMCのサンプルを含む。
“coda” packageの関数を使用して、summaryや
trace plotができる。
159/6/2017. Shuma Ishigami.
例 線形回帰
𝑦~𝑁(𝛼 + 𝛽𝑋, 𝜎)
# データの準備
set.seed(22)
x <- rnorm(1000)
y <- 4*x + rnorm(1000,sd = 2)
# as_data converts R objects into greta arrays
x.g <- as_data(x)
y.g <- as_data(y)
169/6/2017. Shuma Ishigami.
1.各パラメータの事前分布の設定
# 各パラメータに事前分布を設定する。
# たとえば、切片intには平均0、分散1の正規分
布を設定している
int = normal(0, 1)
coef = normal(0, 3)
sd = student(3, 0, 1, truncation = c(0, Inf))
179/6/2017. Shuma Ishigami.
2.モデルの定義
mean <- int + coef * x.g
# 尤度𝑓 𝑋 𝜃 の定義
distribution(y.g) = normal(mean, sd)
# モデルの定義
# 推定したいパラメータが引数
m <- model(int, coef, sd)
# モデル構造のプロット
plot(m)
189/6/2017. Shuma Ishigami.
モデルの可視化
199/6/2017. Shuma Ishigami.
3. MCMCサンプリング・推定
# MCMC sampling
draws <- greta::mcmc(m, n_samples = 1000)
# Summarize the result
summary(draws)
# “coda” package is useful to handle mcmc object
library(coda); codamenu()
209/6/2017. Shuma Ishigami.
実際の推定の流れ
• はじめに、紙とペンでモデルを書きだす
• 各パラメータの分布・モデルを設定後、モデ
ルをプロットし、最初に思い描いていたモデル
にあっているか確認する
219/6/2017. Shuma Ishigami.
“greta” vs “rstan”
• CRANのgreta ページで公開されているgreta と stan
のサンプルコードで速さ比較
• Air model(1000 burn-in & 10000 samples )
– greta: 157 ~ 222 sec
– Rstan(4 chains): 4 ~ 5 sec
• Beetles model(1000 burn-in & 10000 samples )
– greta: 246 sec
– Rstan(4chains) : 1~2 sec
229/6/2017. Shuma Ishigami.
“greta” vs “rstan”
• これらの例だと圧倒的にrstanのほうが速い
• Gretaの強みはTensorFlowを用いた大きいデータでの計算なの
で、今回の例では強みが出なかったのかも
• きれいなモデルの可視化が強みかも
• 学びやすさ
• greta: Stanの文法を覚えなくてもよい。
• rstan: さまざまな入門本、情報が多い。
• 人気: rstanのほうが利用人口が多い
• In Stackoverflow, search([r] rstan)=126 results, ([r], greta)=0
(9/17/17 13:20)
• 使用人口の多さは、導入方法、入門本、ヘルプやネット上の質
問・回答など情報量に直結
greta紹介しているのに, rstanのほうが良いかもしれない…
239/6/2017. Shuma Ishigami.
参考
[greta]
Website (https://greta-dev.github.io/greta/)
CRAN(https://cran.r-project.org/web/packages/greta/index.html)
Example model codes for greta, BUGS and Stan
(https://cran.r-
project.org/web/packages/greta/vignettes/example_models.html)
249/6/2017. Shuma Ishigami.

More Related Content

PDF
はじぱた7章F5up
PDF
確率的深層学習における中間層の改良と高性能学習法の提案
PPT
Jokyokai
PPTX
第五回統計学勉強会@東大駒場
PDF
SSII2019企画: 点群深層学習の研究動向
PDF
20150803.山口大学集中講義
PDF
点群深層学習 Meta-study
PPTX
ブートストラップ法とその周辺とR
はじぱた7章F5up
確率的深層学習における中間層の改良と高性能学習法の提案
Jokyokai
第五回統計学勉強会@東大駒場
SSII2019企画: 点群深層学習の研究動向
20150803.山口大学集中講義
点群深層学習 Meta-study
ブートストラップ法とその周辺とR

What's hot (12)

PDF
Linqで画像処理
PPTX
テクスチャ合成
PDF
PPTX
Matrix capsules with em routing
PDF
誤差逆伝播法の計算(ディープラーニング)
PDF
Visualizing Data Using t-SNE
PDF
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
PDF
クラシックな機械学習の入門 4. 学習データと予測性能
PDF
DL Hacks輪読 Semi-supervised Learning with Deep Generative Models
PDF
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
PDF
Probabilistic Graphical Models 輪読会 #1
Linqで画像処理
テクスチャ合成
Matrix capsules with em routing
誤差逆伝播法の計算(ディープラーニング)
Visualizing Data Using t-SNE
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
クラシックな機械学習の入門 4. 学習データと予測性能
DL Hacks輪読 Semi-supervised Learning with Deep Generative Models
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
Probabilistic Graphical Models 輪読会 #1
Ad

Similar to MCMC and greta package社内勉強会用スライド (20)

PDF
RStanとShinyStanによるベイズ統計モデリング入門
PPTX
MCMC法
PDF
ベイズ推定でパラメータリスクを捉える&優れたサンプラーとしてのMCMC
PPTX
RとStanで分散分析
PDF
状態空間モデルの実行方法と実行環境の比較
PDF
データ解析のための統計モデリング入門9章後半
PDF
データ解析のための統計モデリング入門9章後半
PPTX
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
PDF
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
 
PDF
Stanの紹介と応用事例(age heapingの統計モデル)
 
PDF
Tokyo r94 beginnerssession3
PPTX
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
PDF
Tokyo r #43
PDF
みどりぼん9章前半
PDF
モンテカルロサンプリング
PDF
MCMCとともだちになろう【※Docswellにも同じものを上げています】
PDF
自動微分変分ベイズ法の紹介
PDF
Stanコードの書き方 中級編
PDF
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
PDF
パターン認識 04 混合正規分布
RStanとShinyStanによるベイズ統計モデリング入門
MCMC法
ベイズ推定でパラメータリスクを捉える&優れたサンプラーとしてのMCMC
RとStanで分散分析
状態空間モデルの実行方法と実行環境の比較
データ解析のための統計モデリング入門9章後半
データ解析のための統計モデリング入門9章後半
NagoyaStat#7 StanとRでベイズ統計モデリング(アヒル本)4章の発表資料
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
 
Stanの紹介と応用事例(age heapingの統計モデル)
 
Tokyo r94 beginnerssession3
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
Tokyo r #43
みどりぼん9章前半
モンテカルロサンプリング
MCMCとともだちになろう【※Docswellにも同じものを上げています】
自動微分変分ベイズ法の紹介
Stanコードの書き方 中級編
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
パターン認識 04 混合正規分布
Ad

MCMC and greta package社内勉強会用スライド

Editor's Notes

  • #5: Monte Carlo Method 乱数による積分近似 ベイズ統計学 vs 頻度論・伝統的統計学 伝統的統計学では、真の母集団のパラメータは一つ=点 ベイズ統計学では、真の母集団のパラメータもある分布に従う確率変数
  • #7: 尤度って何? - あるパラメータのもとでの、事象Xの起きる確率 - データXはもうあるので、thetaが変数
  • #14: Distributions の返り値はgreta array
  • #15: 尤度を定義するとは? パラメータが定まったら、観測データの確率が定まるという意味での尤度 これは未知であるからこれに関して適当な分布を仮定する この尤度の分布を仮定している 確率分布のパラメータとデータの関係性をあらわす
  • #23: https://cran.r-project.org/web/packages/greta/vignettes/example_models.html
  • #24: 現状ではrstanのほうがよさげ。 Stanの文法を新たに学ぶ必要があるが、rstanはgretaよりも年数、使用人口が多く、情報が充実しており、やりたいと思ったモデルは大体誰かが実装している