自己紹介 ステータス • @piroyoung • 家具作りが好き • 数学(ゲーム理論) → (物流 → 小売)→ データなんとか 装備 • R → Python, SQL, VBA, Stan, Ruby,…F# スキル・興味 • アドテク系の商品企画・開発など • NLP新参者 • ベイズスパイラル 1
自己紹介ステータス!
• @piroyoung
!
!
• 家具作りが好き
!
!
!
• 数学(ゲーム理論) → (物流 → 小売)→ データなんとか
装備!
• R → Python, SQL, VBA, Stan, Ruby,…F#
!
スキル・興味!
• アドテク系の商品企画・開発など
• NLP新参者
• ベイズスパイラル
1
ノリと勢いがLTの決め手!
は表裏一体!
スベる♨ウケる
痩せる「行動経済学」
Piroyoung
そんな知識持ってません!
超要約 Stan Reference@piroyoung
数値計算をしないとモデリングは終わらないので.
1.Stanを使おう
Stan JagsNUTS-HMC Gibbs Sampling
if文あり 💀💀💀
行列演算あり 💀💀💀
vectorize 💥💀💀💀💥
商用並みのサポート(?) (笑)カッコいい 💀カッコ悪い💀
1.Stanを使おう
▲なかなかいいいい▲
▶︎初動はStanかなという感じ.
2.みどりぼんでやったこと
2.みどりぼんでやったこと
f(✓|Y ) =f(Y |✓)f(✓)Rf(Y |✓)f(✓)d✓
コレがあれば事後分布からサンプルとれるよ!
log f(✓|Y ) = log f(Y |✓) + log f(✓)� Z
3.STANのモデル記法
3.STANのモデル記法
log f(✓|Y ) = log f(Y |✓) + log f(✓)� Z
data{ !
} parameters{ !
} model{ !
}log f(Y |✓) + log f(✓)
✓
Y
4.increment_log_prob
4.increment_log_prob
対数事前密度・尤度を足し合わせて increment_log_prob()に渡す
4.increment_log_prob
4.increment_log_prob(データ追加)
観測値を増やしたければ どんどん各点対数尤度を足していく
4.increment_log_prob(データ追加)
4.increment_log_prob(データ追加)
繰り返し引数に渡すと,その和を以て 事後分布をサンプルしてくれる
5.sampling statement
5.sampling statement
increment_log_prob( xxx_log( p,param,…))!と
p~xxx(param,…)!は同値な表現だよ.xxxは分布の名前.
5.sampling statement
6.vectorize
6.vectorize
increment_log_probにベクトル・配列を渡すと!
各成分を繰り返し渡すのと同じ挙動
このyはint型の配列.!
引数に高次元のベクトル・配列を渡すと!返り値も適切な次元で帰ってくれる.
6.vectorize
• increment_log_probを正しく理解しよう
• vectorizeを使おう
• Stan-Usersを活用しよう
• Tarzan 10月号買って健康になりましょう
7.まとめ・補足
おまけ
おまけ
何のモデルか,わかりますか?
おまけ
銀座の夜を定常分布で表現してみました.!銀座の夜をStanで彩る (完)