MLaPP Ch.24
マルコフ連鎖モンテカルロ法
(MCMC) による推論
Markov chain Monte Carlo (MCMC) inference
1 / 24
Markov chain Monte Carlo
アウトライン
1. イントロダクション
2. ギブスサンプリング
3. メトロポリス・ヘイスティングス法
4. MCMCの収束速度と精度
5. 補助変数法
6. アニーリング (やきなまし法)
7. 周辺尤度の近似
2 / 24
Markov chain Monte Carlo
この章の内容
▶ MCMCの具体的な⼿法の解説が中⼼
▶ 理論が知りたい!って⼈は...
▶ とにかく使いたい!って⼈は...
3 / 24
Markov chain Monte Carlo Introduction
Subsection 1
Introduction
4 / 24
Markov chain Monte Carlo Introduction
マルコフ連鎖モンテカルロ法 (MCMC)
▶ 多次元の分布からのサンプリングで使える
▶ ⽬当ての分布を定常分布に持つようなマルコフ連鎖
からサンプルを作る
▶ (状態空間が連続値のマルコフ連鎖を考える)
5 / 24
Markov chain Monte Carlo Introduction
MCMCの種類
▶ ギブスサンプリング
▶ メトロポリス・ヘイスティングス法
▶ ...
6 / 24
Markov chain Monte Carlo Introduction
変分法 (→21章) vs MCMC
変分法
1. ⼩規模〜中規模の問題
で⾼速
2. 決定論的アルゴリズム
3. 収束の判定が簡単
4. 対数尤度の下界が与え
られる
サンプリング (MCMC)
1. 実装が容易
2. 広い範囲の問題に適⽤
できる
3. ⼤規模な問題で変分法
より⾼速
7 / 24
Markov chain Monte Carlo Gibbs sampling
Subsection 2
Gibbs sampling
8 / 24
Markov chain Monte Carlo Gibbs sampling
ギブスサンプリング
▶ 最もポピュラーなMCMCのアルゴリズムのひとつ
▶ 物理の分野では Glauber Dynamics や熱浴法 (heat
bath method) としても知られる
9 / 24
Markov chain Monte Carlo Gibbs sampling
簡単な例
▶ 3次元の分布 p (x1, x2, x3) からのサンプルを考える
▶ s 回⽬のサンプルのもとでの条件付き分布から s + 1
回⽬のサンプルを⽣成
▶ xs+1
1 ∼ p (x1|xs
2, xs
3)
▶ xs+1
2 ∼ p
(
x2|xs+1
1 , xs
3
)
▶ xs+1
3 ∼ p
(
x3|xs+1
1 , xs+1
2
)
10 / 24
Markov chain Monte Carlo Gibbs sampling
▶ ⼀般には欲しい D 次元の分布
p (x1, . . . , xD)
の i 番⽬の変数をそれ以外を固定した条件付き分布
p (xi|x−i) ≜ p (xi|x1, . . . , xi−1, xi+1, . . . , xD)
から順番にサンプリング
▶ グラフィカルモデルなら xi の隣のノードの値だけ考
えればよい
▶ p (xi|x−i) を完全条件付き (perfect conditional) と
呼ぶ
11 / 24
Markov chain Monte Carlo Gibbs sampling
Burn in
▶ マルコフ連鎖が定常分布に収束する (burn in) まで
時間がかかる
▶ はじめの⽅で得たサンプルは切り捨てる
12 / 24
Markov chain Monte Carlo Gibbs sampling
例: イジングモデル
イジング模型の完全条件付き分布
p
(
xt = +1|x−t, θ
)
=
∏
s∈nbr(t) ψst (xt = +1, xs)
∏
s∈nbr(t) ψst (xt = +1, xs) +
∏
s∈nbr(t) ψst (xt = −1, xs)
=
exp
[
J
∑
s∈nbr(t) xs
]
exp
[
J
∑
s∈nbr(t) xs
]
+ exp
[
−J
∑
s∈nbr(t) xs
]
=
exp [Jηt]
exp [Jηt] + exp [−Jηt]
= sigm (2Jηt)
▶ ψ (xs, xt) = exp (Jxsst): edge potential
▶ ηt ≜
∑
s∈nbr(t) xs =
xt
(
#同じ向きの隣接点 − #逆向きの隣接点
)
13 / 24
Markov chain Monte Carlo Gibbs sampling
2次元イジング模型による画像復元
p (xt = +1|x−t, y, θ) =
exp [Jηt] ψt (+1)
exp [Jηt] ψt (+1) + exp [−Jηt] ψt (−1)
= sigm
(
2J − log
ψt (+1)
ψt (−1)
)
▶ y: 観測された画像
▶ 観測にガウシアンノイズ
ψt (xt) = N
(
yt|xt, σ2
)
が含まれる
14 / 24
Markov chain Monte Carlo Gibbs sampling
sample 1, Gibbs
−1
−0.5
0
0.5
1
sample 5, Gibbs
−1
−0.5
0
0.5
1
mean after 15 sweeps of Gibbs
−1
−0.5
0
0.5
1
▶ 後に⽣成したサンプルの⽅が事後分布の平均に近い
15 / 24
Markov chain Monte Carlo Gibbs sampling
例2: GMMのパラメータ推定
混合ガウスモデルの同時分布
p (x, z, µ, Σ, π) = p (x|z, µ, Σ) p (z|π) p (π)
K∏
k=1
p (µk) p (Σk)
=
( N∏
i=1
K∏
k=1
(πkN (xi|µk, Σk))I(zi=k)
)
×
Dir (π|α)
K∏
k=1
N (µk|m0, V0) IW (Σk|S0, ν0)
▶ 観測した xi (i = 1, . . . , N) からパラメータ z, µ, Σ, π
を推定する
▶ 事前分布は共役事前分布を使った
16 / 24
Markov chain Monte Carlo Gibbs sampling
各パラメータの完全条件付き分布は
▶ p (zi = k|xi, µ, Σ, π) ∝ πkN (xi|µk, Σk)
▶ p (π|z) = Dir
({(
αk +
∑N
i=1 I (zi = k)
)}K
k=1
)
▶ p (µk|Σk, z, x) = N (µk|mk, Vk)(
V−1
k = V−1
0 + NkΣ−1
k , mk = Vk
(
Σ−1
k Nk¯xk + V−1
0 m0
))
(
Nk ≜
∑N
i=1 I (zi = k) , ¯xk ≜ N−1
k
∑N
i=1 I (zi = k) xi
)
▶ p (Σk|µk, z, x) = IW (Σk|Sk, νk)(
Sk = S0 +
∑N
i=1 I (zi = k) (xi − µk) (xi − µk)T
, νk = ν0 + Nk
)
17 / 24
Markov chain Monte Carlo Gibbs sampling
ラベルスイッチング
▶ ラベルの交換に対して尤度が不変
▶ 特定の混合要素に対応するパラメータの事後分布の
平均の計算などができない
▶ ”気にしない” のが⼀番の解決法
▶ 各データ点がどのクラスターに属するかではなく、
データ点同⼠が同じクラスターに属するかどうかを
考えればよい
18 / 24
Markov chain Monte Carlo Metropolis Hastings algorithm
Subsection 3
Metropolis Hastings algorithm
19 / 24
Markov chain Monte Carlo Metropolis Hastings algorithm
メトロポリス・ヘイスティングス法
▶ 提案分布を⽤いて状態遷移を効率よく⾏う⼿法
▶ ギブスサンプリングが適⽤できないロジスティック
回帰なんかにも使える
▶ ギブスサンプリングより⾼速
20 / 24
Markov chain Monte Carlo Metropolis Hastings algorithm
基本的なアイディア
▶ 現在の状態 (最新のサンプル) が x である時に次の
状態の候補 x′
を確率 q (x′
|x) で選ぶ
▶ q (x′
|x) を提案分布 (proposal distribution) と呼ぶ
21 / 24
Markov chain Monte Carlo Metropolis Hastings algorithm
▶ 提案分布はいくつかの条件に従えばどんな種類の分
布でもよい
▶ 現在の状態を中⼼とするガウス分布 (ランダムウォー
クメトロポリスアルゴリズム)
▶ 現在の状態に依存しない分布 q (x′|x) = q (x′)
(independence sampler)
▶ importance sampling (23章) に似ている
22 / 24
Markov chain Monte Carlo Metropolis Hastings algorithm
▶ 提案分布から⽣成した候補 x′
は確率 min
(
1, p∗(x′)
p∗(x)
)
で採択 (accept) される
▶ x′ での確率密度が x より⾼ければ必ず動く
▶ 低い場合はどのくらい低いかに依存して確率的に
▶ x′
が棄却されたら現在の状態をもう⼀度繰り返す
23 / 24
Markov chain Monte Carlo Metropolis Hastings algorithm
▶ 提案分布が⾮対称つまり q (x′
|x) ̸= q (x|x′
) のときは
Hastings correction hastings correction
r = min (1, α)
α =
p∗
(x′
) q (x|x′
)
p∗ (x) q (x′|x)
=
p∗
(x′
) /q (x′
|x)
p∗ (x) /q (x|x′)
が必要
▶ p∗ (x′) と p∗ (x) の⽐がわかれば α が計算できる
→ 正規化係数を知らなくても使える!
24 / 24

MLaPP 24章 「マルコフ連鎖モンテカルロ法 (MCMC) による推論」

  • 1.
  • 2.
    Markov chain MonteCarlo アウトライン 1. イントロダクション 2. ギブスサンプリング 3. メトロポリス・ヘイスティングス法 4. MCMCの収束速度と精度 5. 補助変数法 6. アニーリング (やきなまし法) 7. 周辺尤度の近似 2 / 24
  • 3.
    Markov chain MonteCarlo この章の内容 ▶ MCMCの具体的な⼿法の解説が中⼼ ▶ 理論が知りたい!って⼈は... ▶ とにかく使いたい!って⼈は... 3 / 24
  • 4.
    Markov chain MonteCarlo Introduction Subsection 1 Introduction 4 / 24
  • 5.
    Markov chain MonteCarlo Introduction マルコフ連鎖モンテカルロ法 (MCMC) ▶ 多次元の分布からのサンプリングで使える ▶ ⽬当ての分布を定常分布に持つようなマルコフ連鎖 からサンプルを作る ▶ (状態空間が連続値のマルコフ連鎖を考える) 5 / 24
  • 6.
    Markov chain MonteCarlo Introduction MCMCの種類 ▶ ギブスサンプリング ▶ メトロポリス・ヘイスティングス法 ▶ ... 6 / 24
  • 7.
    Markov chain MonteCarlo Introduction 変分法 (→21章) vs MCMC 変分法 1. ⼩規模〜中規模の問題 で⾼速 2. 決定論的アルゴリズム 3. 収束の判定が簡単 4. 対数尤度の下界が与え られる サンプリング (MCMC) 1. 実装が容易 2. 広い範囲の問題に適⽤ できる 3. ⼤規模な問題で変分法 より⾼速 7 / 24
  • 8.
    Markov chain MonteCarlo Gibbs sampling Subsection 2 Gibbs sampling 8 / 24
  • 9.
    Markov chain MonteCarlo Gibbs sampling ギブスサンプリング ▶ 最もポピュラーなMCMCのアルゴリズムのひとつ ▶ 物理の分野では Glauber Dynamics や熱浴法 (heat bath method) としても知られる 9 / 24
  • 10.
    Markov chain MonteCarlo Gibbs sampling 簡単な例 ▶ 3次元の分布 p (x1, x2, x3) からのサンプルを考える ▶ s 回⽬のサンプルのもとでの条件付き分布から s + 1 回⽬のサンプルを⽣成 ▶ xs+1 1 ∼ p (x1|xs 2, xs 3) ▶ xs+1 2 ∼ p ( x2|xs+1 1 , xs 3 ) ▶ xs+1 3 ∼ p ( x3|xs+1 1 , xs+1 2 ) 10 / 24
  • 11.
    Markov chain MonteCarlo Gibbs sampling ▶ ⼀般には欲しい D 次元の分布 p (x1, . . . , xD) の i 番⽬の変数をそれ以外を固定した条件付き分布 p (xi|x−i) ≜ p (xi|x1, . . . , xi−1, xi+1, . . . , xD) から順番にサンプリング ▶ グラフィカルモデルなら xi の隣のノードの値だけ考 えればよい ▶ p (xi|x−i) を完全条件付き (perfect conditional) と 呼ぶ 11 / 24
  • 12.
    Markov chain MonteCarlo Gibbs sampling Burn in ▶ マルコフ連鎖が定常分布に収束する (burn in) まで 時間がかかる ▶ はじめの⽅で得たサンプルは切り捨てる 12 / 24
  • 13.
    Markov chain MonteCarlo Gibbs sampling 例: イジングモデル イジング模型の完全条件付き分布 p ( xt = +1|x−t, θ ) = ∏ s∈nbr(t) ψst (xt = +1, xs) ∏ s∈nbr(t) ψst (xt = +1, xs) + ∏ s∈nbr(t) ψst (xt = −1, xs) = exp [ J ∑ s∈nbr(t) xs ] exp [ J ∑ s∈nbr(t) xs ] + exp [ −J ∑ s∈nbr(t) xs ] = exp [Jηt] exp [Jηt] + exp [−Jηt] = sigm (2Jηt) ▶ ψ (xs, xt) = exp (Jxsst): edge potential ▶ ηt ≜ ∑ s∈nbr(t) xs = xt ( #同じ向きの隣接点 − #逆向きの隣接点 ) 13 / 24
  • 14.
    Markov chain MonteCarlo Gibbs sampling 2次元イジング模型による画像復元 p (xt = +1|x−t, y, θ) = exp [Jηt] ψt (+1) exp [Jηt] ψt (+1) + exp [−Jηt] ψt (−1) = sigm ( 2J − log ψt (+1) ψt (−1) ) ▶ y: 観測された画像 ▶ 観測にガウシアンノイズ ψt (xt) = N ( yt|xt, σ2 ) が含まれる 14 / 24
  • 15.
    Markov chain MonteCarlo Gibbs sampling sample 1, Gibbs −1 −0.5 0 0.5 1 sample 5, Gibbs −1 −0.5 0 0.5 1 mean after 15 sweeps of Gibbs −1 −0.5 0 0.5 1 ▶ 後に⽣成したサンプルの⽅が事後分布の平均に近い 15 / 24
  • 16.
    Markov chain MonteCarlo Gibbs sampling 例2: GMMのパラメータ推定 混合ガウスモデルの同時分布 p (x, z, µ, Σ, π) = p (x|z, µ, Σ) p (z|π) p (π) K∏ k=1 p (µk) p (Σk) = ( N∏ i=1 K∏ k=1 (πkN (xi|µk, Σk))I(zi=k) ) × Dir (π|α) K∏ k=1 N (µk|m0, V0) IW (Σk|S0, ν0) ▶ 観測した xi (i = 1, . . . , N) からパラメータ z, µ, Σ, π を推定する ▶ 事前分布は共役事前分布を使った 16 / 24
  • 17.
    Markov chain MonteCarlo Gibbs sampling 各パラメータの完全条件付き分布は ▶ p (zi = k|xi, µ, Σ, π) ∝ πkN (xi|µk, Σk) ▶ p (π|z) = Dir ({( αk + ∑N i=1 I (zi = k) )}K k=1 ) ▶ p (µk|Σk, z, x) = N (µk|mk, Vk)( V−1 k = V−1 0 + NkΣ−1 k , mk = Vk ( Σ−1 k Nk¯xk + V−1 0 m0 )) ( Nk ≜ ∑N i=1 I (zi = k) , ¯xk ≜ N−1 k ∑N i=1 I (zi = k) xi ) ▶ p (Σk|µk, z, x) = IW (Σk|Sk, νk)( Sk = S0 + ∑N i=1 I (zi = k) (xi − µk) (xi − µk)T , νk = ν0 + Nk ) 17 / 24
  • 18.
    Markov chain MonteCarlo Gibbs sampling ラベルスイッチング ▶ ラベルの交換に対して尤度が不変 ▶ 特定の混合要素に対応するパラメータの事後分布の 平均の計算などができない ▶ ”気にしない” のが⼀番の解決法 ▶ 各データ点がどのクラスターに属するかではなく、 データ点同⼠が同じクラスターに属するかどうかを 考えればよい 18 / 24
  • 19.
    Markov chain MonteCarlo Metropolis Hastings algorithm Subsection 3 Metropolis Hastings algorithm 19 / 24
  • 20.
    Markov chain MonteCarlo Metropolis Hastings algorithm メトロポリス・ヘイスティングス法 ▶ 提案分布を⽤いて状態遷移を効率よく⾏う⼿法 ▶ ギブスサンプリングが適⽤できないロジスティック 回帰なんかにも使える ▶ ギブスサンプリングより⾼速 20 / 24
  • 21.
    Markov chain MonteCarlo Metropolis Hastings algorithm 基本的なアイディア ▶ 現在の状態 (最新のサンプル) が x である時に次の 状態の候補 x′ を確率 q (x′ |x) で選ぶ ▶ q (x′ |x) を提案分布 (proposal distribution) と呼ぶ 21 / 24
  • 22.
    Markov chain MonteCarlo Metropolis Hastings algorithm ▶ 提案分布はいくつかの条件に従えばどんな種類の分 布でもよい ▶ 現在の状態を中⼼とするガウス分布 (ランダムウォー クメトロポリスアルゴリズム) ▶ 現在の状態に依存しない分布 q (x′|x) = q (x′) (independence sampler) ▶ importance sampling (23章) に似ている 22 / 24
  • 23.
    Markov chain MonteCarlo Metropolis Hastings algorithm ▶ 提案分布から⽣成した候補 x′ は確率 min ( 1, p∗(x′) p∗(x) ) で採択 (accept) される ▶ x′ での確率密度が x より⾼ければ必ず動く ▶ 低い場合はどのくらい低いかに依存して確率的に ▶ x′ が棄却されたら現在の状態をもう⼀度繰り返す 23 / 24
  • 24.
    Markov chain MonteCarlo Metropolis Hastings algorithm ▶ 提案分布が⾮対称つまり q (x′ |x) ̸= q (x|x′ ) のときは Hastings correction hastings correction r = min (1, α) α = p∗ (x′ ) q (x|x′ ) p∗ (x) q (x′|x) = p∗ (x′ ) /q (x′ |x) p∗ (x) /q (x|x′) が必要 ▶ p∗ (x′) と p∗ (x) の⽐がわかれば α が計算できる → 正規化係数を知らなくても使える! 24 / 24