SlideShare a Scribd company logo
PyMCを使えば
(ちょっと)複雑な
確率モデルも怖くない
@yoichi_t
混合モデルって⾯⽩いよね
PRML, 2.3節
混合モデルって⾯⽩いよね
PRML, 2.3節
• 複数の確率モデルを線型結合したモデル
• 確率モデルをスイッチする構造(混合するモデルは何でもOK)
• 任意の連続な密度関数を任意の精度で近似できる
(ガウス混合モデル)
• クラスタリング、多クラスの回帰など応⽤例も楽しい
モデル
• 𝑋:データ[𝑥!, 𝑥", ⋯ 𝑥#]
• Θ:データ𝑥$を⽣成する確率
モデルのパラメータ集合
[𝜃!, 𝜃", ⋯ 𝜃%]
• 𝑆:潜在変数(混合要素を指
し⽰す)[𝑠!, 𝑠", ⋯ 𝑠#]
• 𝜋:混合⽐
モデル
ガウス混合モデルなら
混合モデルのパラメータ推論をやってみよう
ガウス混合モデルが有名だけど、
ちょっとひねった問題を考えてみる
問題設定
こんなデータを考える
• 線形モデル?
➤ 全くトレンドが異なる
データが混在
明らかに傾向が違う⼆種類の構造のデータ
• データを事前に分割してそれぞれ回帰モデルを推論
• 少ないデータをノイズと考えてロバストな回帰モデ
ルを推論
線形回帰の混合モデルを考えてみよう!
明らかに傾向が違う⼆種類の構造のデータ
問題設定
実際は…
⼆つの⼆次関数の混合
混合線形回帰モデル
線形回帰モデル
混合要素の
切り替え
https://learning-with-
machine.hatenablog.com/entry/2020/03/09/083000
あとは素直に確率モデルをコードにしていく…
• めっちゃ時間かかる
(2次元GMMでも10分以上かかったり)
• 不安定
計算の効率化
周辺化消去する
• 離散確率変数の扱いが不安定
• Stanでは、離散変数をサ
ポートしてない
• Marginalized Gaussian
Mixture Model
• Identifying Bayesian
Mixture Models
• MixtureAPIを利⽤する
混合線形回帰モデルの実装
https://learning-with-machine.hatenablog.com/entry/2020/03/14/213438
混合線形回帰モデルの推論
概ね設定値付近にピークが現れ
るサンプルが取得できた
(3次の回帰モデルの混合)
https://learning-with-
machine.hatenablog.com/entry/2020/03/14/213438
混合線形回帰モデルの推論結果
https://learning-with-machine.hatenablog.com/entry/2020/03/14/213438
事後分布からサンプルした関数を
プロットしたもの
まとめ
• PyMC3を利⽤すると、確率モデルを定義すれば(ほぼ)直接書
くだけモデルを定義できる
• あとは推論ボタン(inference button)を押すだけ
• モデリングに集中できる
• 混合モデルは複数の確率モデルを⾃由に組み合わせる
• 現実的なデータ解析に重要な考え⽅
⾃⼰紹介
• 時⽥ 陽⼀(@yoichi_t)
• 所属:株式会社Glia Computing
(https://www.glia-computing.com/)
• 2018年8⽉に設⽴(Co-Founder)
• 機械学習/データ分析のPoC、導⼊⽀援、
コンサル
ブログやってます
• チョコボール統計
• https://chocolate-ball.hatenablog.com/
• 機械と学習する
• https://learning-with-machine.hatenablog.com/
チョコボール 統計 機械と学習する
参考資料
• PyMC3
• https://docs.pymc.io/
• https://docs.pymc.io/nb_examples/index.html
• 「ベイズ推論により混合分布のパラメータ推論をやってみる」, 機械
と学習する
• https://learning-with-machine.hatenablog.com/entry/2020/03/14/213438
• https://learning-with-machine.hatenablog.com/entry/2020/03/09/083000
• C.M.ビショップ, 「パターン認識と機械学習 上下」, 2007, シュプリ
ンガー・ジャパン
• 須⼭, 「ベイズ推論による機械学習 ⼊⾨」, 2017, 講談社
• 須⼭, 「ベイズ深層学習」, 2019, 講談社

More Related Content

More from Yoichi Tokita

20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub
Yoichi Tokita
 
20190721 gaussian process
20190721 gaussian process20190721 gaussian process
20190721 gaussian process
Yoichi Tokita
 
20190609 bayes ml ch3
20190609 bayes ml ch320190609 bayes ml ch3
20190609 bayes ml ch3
Yoichi Tokita
 
20190606_ml_and_buisiness
20190606_ml_and_buisiness20190606_ml_and_buisiness
20190606_ml_and_buisiness
Yoichi Tokita
 
20190526 bayes ml
20190526 bayes ml20190526 bayes ml
20190526 bayes ml
Yoichi Tokita
 
20190512 bayes hands-on
20190512 bayes hands-on20190512 bayes hands-on
20190512 bayes hands-on
Yoichi Tokita
 
20190330 chainer meetup chocoball
20190330 chainer meetup chocoball20190330 chainer meetup chocoball
20190330 chainer meetup chocoball
Yoichi Tokita
 
20190316 bayes modeling
20190316 bayes modeling 20190316 bayes modeling
20190316 bayes modeling
Yoichi Tokita
 
20190317 prml ch2 probability Distribution
20190317 prml ch2 probability Distribution20190317 prml ch2 probability Distribution
20190317 prml ch2 probability Distribution
Yoichi Tokita
 
20190209 bayes modeling_s_pub
20190209 bayes modeling_s_pub20190209 bayes modeling_s_pub
20190209 bayes modeling_s_pub
Yoichi Tokita
 
チョコボールのエンゼル出現確率をベイズ推定する
チョコボールのエンゼル出現確率をベイズ推定するチョコボールのエンゼル出現確率をベイズ推定する
チョコボールのエンゼル出現確率をベイズ推定する
Yoichi Tokita
 

More from Yoichi Tokita (11)

20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub
 
20190721 gaussian process
20190721 gaussian process20190721 gaussian process
20190721 gaussian process
 
20190609 bayes ml ch3
20190609 bayes ml ch320190609 bayes ml ch3
20190609 bayes ml ch3
 
20190606_ml_and_buisiness
20190606_ml_and_buisiness20190606_ml_and_buisiness
20190606_ml_and_buisiness
 
20190526 bayes ml
20190526 bayes ml20190526 bayes ml
20190526 bayes ml
 
20190512 bayes hands-on
20190512 bayes hands-on20190512 bayes hands-on
20190512 bayes hands-on
 
20190330 chainer meetup chocoball
20190330 chainer meetup chocoball20190330 chainer meetup chocoball
20190330 chainer meetup chocoball
 
20190316 bayes modeling
20190316 bayes modeling 20190316 bayes modeling
20190316 bayes modeling
 
20190317 prml ch2 probability Distribution
20190317 prml ch2 probability Distribution20190317 prml ch2 probability Distribution
20190317 prml ch2 probability Distribution
 
20190209 bayes modeling_s_pub
20190209 bayes modeling_s_pub20190209 bayes modeling_s_pub
20190209 bayes modeling_s_pub
 
チョコボールのエンゼル出現確率をベイズ推定する
チョコボールのエンゼル出現確率をベイズ推定するチョコボールのエンゼル出現確率をベイズ推定する
チョコボールのエンゼル出現確率をベイズ推定する
 

20200808_PyMCを使えばちょっと複雑な確率モデルも怖くない