本記事では、Windows版CmdStanR動作するCmdStanRでGPU(OpenCL)を使う方法を紹介します。「CmdStanRってナニソレオイシイノ?」って人は、清水先生の資料を参照してください。 先日、WindowsのWSL2(Ubuntu)上のCmdStanRで、GPUを使う方法を紹介されている記事を見かけ、これならWindows上で動作するRやRStudio上でも行けそうだなと思い、試してみることにしました(WSL2がGPUを認識してくれなかったので)。 基本的には公式サイトとvignettesを参考にしています。ただ、筆者の環境ではつまづきポイントがあったので、解決方法もまとめて紹介します。ちなみに、NVIDIA GPUでの動作紹介になります、AMDのものを使用する場合は、AMD用のドライバーを入れる必要があり、CmdStanのインストールで別途設定が不要かもしれません。
TL; DR Stanのmap_rect使うchain内並列化は、たぶんデータ点が10万ぐらいはないとご利益ないような…。その10万個を切って並列処理する感じ。— Kentaro Matsuura (@hankagosa) 2018年10月10日 導入 PyStanは2.18.0系からStanに搭載されたThreading機能を使うことができるようになりました。公式のドキュメントはこちらになります*1。 この機能は、今までのMCMC chainごとにスレッドをフォークして並列化するのではなく、MCMCサンプル内での並列化です。先程のリンク先のExampleの欄にも書かれているとおりに、chain数×設定スレッド数分の並列化ができるように成りました。ただし、まだかなり作りかけの機能であるため、運用上は幾つか疑問点があります。 並列化することでどれほど早くなるのか? 単一のMCMC chain
こんにちは,株式会社Nospareリサーチャー・千葉大学の小林です. 今回はJournal of Royal Statistical Society Series Aにも掲載されたGabry et al. (2017)(arXiv版)の紹介をします.この論文では次の挙げられるベイズ分析のワークフロー 探索的データ分析 分析前のモデルチェック アルゴリズムの動作チェック モデル推定後のモデルチェック において視覚化をどのように使っていくかについて書かれており,実証分析や実務においてベイズ分析を行うにあたってとても有用な内容になっています.本記事で掲載する図などは著者がgithubにポストしてあるコードを使って作成しました. データ分析例の設定 この論文では終始PM2.5に関するデータ分析例を取り扱っており,この例では以下の設定があります. PM2.5は人体に対して影響があると考えられ,本当は
はじめに 自然言語処理の領域では広く知られいるLDA(Latent Dirichlet Allocation)について復習する。 LDAはトピックモデルの1種であり、文書がどのようなトピックから構成されているかを推論するモデル。 推論するパラメータは以下の2つ。 トピック分布:文書ごとのトピック構成比率 単語分布:トピックごとの単語比率 トピックモデルに関する理解はこの1枚に尽きると思う。 Fast and Scalable Algorithms for Topic Modeling | Center for Big Data Analyticsより引用 後、日本語でのLDAの説明としては視覚的にも以下が分かりやすかった。 LDA for Pokemon analysis | haripo.com モデリング 数式によるLDAはググれば色々出てくるのでここでは割愛する。今回は「尤度計算」の
はじめに Stan Advent Calendar 2018 11日目の記事です。また、タイトルを見て察した人もいるかもしれませんが、Stan Advent Calendar 2018の2日目の記事である、北條大樹さんによるIntroduction to bayesplot (mcmc_ series) の続編でもあります。bayesplotパッケージそのものについては、本記事では説明を省略するため、まずは北條さんの記事をご一読ください。以下引用。 Stanには、既にggplot2ライクな事後処理用の関数が標準装備されています。ここら辺に関しては、以下の資料をご覧ください。 Stanの便利な事後処理関数 これとは別にStan公式が出しているbayesplotパッケージというものがあって、これも同じようなことができます。 既に日本語文献として小杉先生のサイトで紹介されていました(こちら)。上
## Warning: パッケージ 'knitr' はバージョン 3.5.2 の R の下で造られました 今年も始まりましたね。Stanアドカレ!! 3年連続のエントリーとなりました。本記事は、Stan adventcalender 2018 3日目の記事になります。 2日目のHojoさんの記事で登場したbayesplotパッケージのように、Stanでモデリングした結果を扱いやすくしてくれるパッケージがいくつか出されています。ここでは、tidybayesパッケージを紹介したいと思います。 tidybayesは,ミシガン大学情報学部の助教 Matthew Kayさんが開発したRのパッケージです。去年のアドカレで紹介したctmパッケージの開発もイケメンでしたが、これまたイケメンです。ちなみに昨日担当のHojoさんもイケメン(*´Д`)ハァハァです。 tidybayesのHPに飛ぶとこう書いてい
図1: Monte-Carlo, from Neugebauer (2018) イントロダクション モンテカルロ法とは どこを見て収束を確認するか トレースプロット GR統計量 を確認する. 多重連鎖はいくつ必要か 自己相関関数 (ACF, コレログラム) 有効サンプルサイズ 事後診断ツール bayesplot こういう時どうすればいい? GR統計量の値が大きい アルゴリズムを変える 有効サンプルサイズ の値が小さい 低速混合 間引き そもそもプログラムが間違っている場合 まとめ 参考文献 イントロダクションこの投稿は, 第78回R勉強会@東京(#TokyoR) - connpass での LT の内容を加筆修正したものである. 以下は当時のスライドである. bayesplot を使ったモンテカルロ法の実践ガイド from 智志 片桐 以前, Tokyo.R かどこかの懇親会で, マルコフ
概要A. Vehtari, Gelman, Simpson, Carpenter, & Bürkner (2020)で提案されているマルコフ連鎖モンテカルロ法(MCMC)の収束確認方法を紹介する. これらはや有効サンプルサイズ(ESS)といった従来よく使われた方法の問題点を解消したものである. 特に重要な, 以下の概念の使い方を紹介する. 正規化ランクと中央値まわりの畳み込み bulk-ESSとtail-ESS ランクプロットを始めとする, 上記の視覚化 今回紹介する方法の多くはbayesplotパッケージで用意されている. これは去年Tokyo.Rの5分間LTやるために書いたものの続きである.ill-identified.hatenablog.com 2021/4/7 追記: この論文は Bayesian Analysis 誌にアクセプトされたらしい (DOI: 10.1214/20-B
dat <- read.csv("gp_test.csv") N1 <- nrow(dat) x1 <- dat$x y1 <- dat$y N2 <- 59 x2 <- seq(1, 30, length.out = N2) data.gp <- list( N1 = N1, N2 = N2, x1 = x1, x2 = x2, y1 = y1 ) model.gp <- stan_model("GP_reg.stan") fit.gp <- sampling( model.gp, data = data.gp, iter = 5000, chains = 4, cores = 4 ) print(fit.gp, pars = "y2") print(fit.gp, pars = "theta") # plot ext.fit <- rstan::extract(fit.gp) y2.m
このプレプリントで、カイカムリにサイズの異なる三つのスポンジを与えて、どのサイズを気に入るかテストしています。その解析部分をここで解説してみます。それぞれの選択肢を選ぶ確率が身体の大きさと脚の欠損度合いとどのような関係にあるか、統計モデルをつくって推定してみようと思います。また、この選択行動に個体差があると考えてそれがどれくらいか推定してみます。個性を考慮しないモデルも適用しWAICをつかったモデルの評価もしていますが、ここでは省略します。興味のあるかたは論文とコードを参照してください。 コードはこちら:https://gist.github.com/kagaya/3188dd0a4571b068e501aeef9863e255 松浦氏のStanとRでベイズ統計モデリング、階層ベイズモデルとWAICに多くを負っています。 データ CSV file for Harada and Kagaya
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く