25
Imputation Posterior 次元の呪い MCMC Metropolis-Hastings アルゴリズム Gibbsサンプリング 10. マルコフ連鎖モンテカルロ クラシックな機械学習の入門 by 中川裕志(東京大学)

クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Embed Size (px)

DESCRIPTION

学習データから母集団の確率分布を求める万能な方法であるマルコフ連鎖モンテカルロ 法(MCMC)について説明する。MCMCは乱数を発生させて推定するモンテカルロ法の一種である。ただし、乱数の無駄打ちを避けるために種々の効率化が施されている。

Citation preview

Page 1: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Imputation Posterior

次元の呪い

MCMC

Metropolis-Hastings アルゴリズム

Gibbsサンプリング

10. マルコフ連鎖モンテカルロ 法

クラシックな機械学習の入門

by 中川裕志(東京大学)

Page 2: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

EMやVBで解析的に処理して数値計算に持ち込める場合ばかりではない。 VBの場合、因子化仮定による近似も問題。

シミュレーションで解く方法は対象に係わらず使える。

ただし、一般にシミュレーションで良い解に収束させるには時間が膨大にかかる。 次元の呪いも影響してくるので、事態は良くない。

そこで、効率の良いシミュレーション法が必要になる。

Sampling法の必要性

Page 3: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Samplingによるシミュレーションを用いる局面

EM,VBでは以下の更新式を解析解として求めておき、繰り返し計算を行うようになる。

繰り返し

P(Z,X| θold,M)argmaxθexp(E[logP(Z,X| θold,M)])でθを推定

この途中で行う期待値計算E[logP(Z,X | θold,M)])の中で周辺化などの積分計算の解析解を求めることが困難である場合は、その部分を期待値計算で用いる確率分布p(Z)にかなうようにsamplingしたデータでシミュレーションによって計算する。

Page 4: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

EMのQ計算をsamplingで置き換える方法

Q関数 この積分を以下のようにしてsamplingで求める

事後分布 を用いて観測データからsamplingして{ Z(l) }(l=1,2,..,L)を得る。

こうして得た { Z(l) }を用いて、以下のようにθを求める.

M-stepは、これらの結果を使って通常のEMと同じように行う。

d)|,(log),|(),( XZpXZpQ oldold

),|( XZp old

L

l

lold XZpL

Q1

)( )|,(log1

),(

Page 5: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

観測データ

この部分の面積に比例するように観測データをサンプリングする

P(X)

観測データの値 Y

これらをΣ して

分布 P(X)に

沿う積分を計算

Page 6: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Imputation Posterior: IP Algorithm

I-step の計算にあたって、sample

θ(l) l=1,2,..,L をp(θ|X)にしたがって、取り出し、これを用いてp(Z|θ(l),X)によってZ(l)を取り出してp(Z|X)を計算

P-step

の計算にあたって、 -

I-stepで得たsample { Z(l) }を用いて、以下のようにθを求める.

しかし、sampleはうまくやらないと効率が悪くなってしまう. (次元の呪い)

d)|(),|()|( XpXZpXZp

ZXZpXZpXp d)|(),|()|(

L

l

l XZpL

Xp1

)( ),|(1

)|(

Page 7: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

(x1,x2)の赤、青、黄の教師データが図のように配置。

新規のデータ●が何色かを決める方法を教師データから学習

次元の呪い(Curse of dimensinality)

x2

x1

次元が高いと、周辺部分ばかりにサンプル点が集まり、中心部分にサンプルデータが非常に少ない。

Page 8: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

データを記述するための情報の種類(feature)を表す次元Dが増加するとどうなるか? 各次元のfeatureの間の関係を示す係数の数がfeatureのとりうる値N(f)の積で増加。

各featureの値:rによって以下のように識別するとしよう。 If 1-e<r<1 then A else B

1-e<r<1という条件を満たすデータ空間の 体積:K(1-(1-e)D )のデータ空間全体:K 1Dに対する割合は 1-(1-e) D

この割合はDが大きくなると急激に1に近づく。

つまり、Dが大きい次元の空間では、縁の部分の体積ばかり大きくなる。よって、実測された教師データは縁の部分にばかり集まる。

よって、rの値の閾値が比較的小さいところになる場合は、教師データが極端に少なくなり、学習の精度が落ちる。

Page 9: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Markov Chain Monte Carlo:

MCMC の基本アイデア

次のデータ点が指定した領域から外に出ていたら、

元のデータ点に戻って、次のデータ点を選びなおす。

Page 10: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

近似分布の導入 sampling でp(Z)の正確な評価が困難でも、 p(Z)と比例する分布 なら乱数によってsamplingすることができるとしよう. 両者の関係は正規化定数Zpで下のように書ける。

ただし、 Zpは未知。だから、 のままで計算できることが望ましい。

さらに近似分布(proposal分布)q(z(t+1)|z(t))にしたがい、z(t)からsamplingしてz(t+1)を求める。

)(~1)( Zp

ZZp

p

)(~ Zp

)(~ Zp

本当に知りたいのはこれだが、

この条件付き確率(遷移確率)は、問題から求めておく

Page 11: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Markov連鎖 Markov連鎖の定常性

ただし、定常的であっても、一つに状態に収束しているとは言い切れない。循環的になっているかもし れない。

下の図のような状況はまずい。つまり、a,b,cばかりにシミュレーションでサンプルする点が集中してしまい、p(z)の示す領域全体の体積(=確率)が正確に求まらない。

)()( then ,)()|()(when )()1()()()1()1()(

tttttt ppppp t zzzzzzZ

 

a b

c

Z1bz Z

11z

p(z)

循環的になると、サンプル点はこのa,b,cばかりにな

る!

Page 12: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Markov連鎖

Markov連鎖の定常性

ただし、定常的であっても、一つに状態に収束しているとは言い切れない。循環的になっているかもしれない。

Z11z

a b

c Z11z

循環的でない定常状態になるためには次の詳細釣り合い条件が必要。この条件から定常性もいえる。

詳細釣り合い条件:

)'()()'()'(

',,

**

*

zzpzpzzpzp

zzp

に対して すべてのが存在しある

)()( then ,)()|()(when )()1()()()1()1()(

tttttt ppppp t zzzzzzZ

 

Page 13: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

詳細釣り合い条件を書き換えると

つまり、zz’の遷移確率を決めるには、正規化定数:Zpは知らなくてもよい。

)'(~)(~

/)'(~/)(~

)'(

)(

)'(

)'(

zp

zp

Zzp

Zzp

zp

zp

zzp

zzp

p

p

Page 14: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Metropolis アルゴリズム Step 1: 近似分布(proposal分布)として、q(z(t+1)|z(t))を設定しておく。

Step 2: q(z(t+1)|z(t)) を用いてsample z(1), z(2),…. z(t)を求めておき、

が計算できる状態にした上で、以下のstep,3,4,5で生成する。

Step 3: 新規のsample znew を生成する。

Step 4: とする。

また をあらかじめ決めた閾値とする。

Step 5: if A(znew,z(t)) > u then z(t+1)=znew

else z(t)からznewを生成してstep 3へ戻る

)(~ˆ

)(~ˆ

,1min),()(

)(

t

newtnew

zp

zpzzA

z(t)を捨てずにとっておき、 q(z(t+1)|z(t))を用いて再度のsample znew

の生成で役立てるところがポイント

1,0 u

p~ˆ

Page 15: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Step 4: とする。

また。 をあらかじめ決めた閾値とする。

Step 5: if A(znew,z(t)) > u then z(t+1)=znew

else z(t)からznewを生成してstep 3へ戻る

つまり、 であること、すなわち新たな znew が前の値 z(t)よりある程度以上、狙った分布に近い場合のみ採用されることになる。

だから、正規化定数Zpを知らなくてもよいところが味噌

対称性 q(za|zb)=q(zb|za) の条件は t∞のとき、samplingされた z の分布がp(z)に近づくことを保証する。

)(~)(~

,1min),()(

)(

t

newtnew

zp

zpzzA

1,0 u

uzpzp tnew )(~~

)(~)(~

)(t

new

zp

zp

Metropolisアルゴリズムの味噌

Page 16: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Metropolis-Hastings アルゴリズム

Step 1: 近似分布(proposal分布)として、q(z(t+1)|z(t))を設定しておく。

Step 2: q(z(t+1)|z(t)) を用いてsample z(1), z(2),…. z(t)を求めて、

が計算できる状態にしたうえで、以下のstep3,4,5で生成する。

Step 3: 新規のsample znew を生成する。

Step 4: とする。

ただしkは検討すべき状態遷移の集合上のインデックス。Step5の条件を満たすものを選ぶ。(Znewに行ったきり戻ってこられないようなもの、つまりmin

の第2項の分子が小さいものは使わない)

また をあらかじめ決めた閾値とする。

Step 5: if A(znew,z(t)) > u then z(t+1)=znew

else z(t)からznewを生成してstep 3へ戻る

)()(

)()(

|)(~ˆ

|)(~ˆ

,1min),(tnew

k

t

newt

k

newtnew

kzzqzp

zzqzpzzA

1,0 u

p~ˆ

Page 17: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Gibbs Sampling

z=(z1z2,…zM)からなるベクトルの場合, zの全要素を一度に生成して、条件A(znew,z(t))>uを満たすかをチェックするのは効率が悪い。

そこで、zjnewをz1

(t),.., zj-1(t)が与えられた条件で

samplingする方法が有効。

Gibbs Samplingでは、zjのsampling と評価を、条件A(znew,z(t))>uのチェックの代わりに、それ以前の結果を利用して行う。

Page 18: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Gibbs Sampling

1. z1z2,…zMの初期化

2. 以下をt=1からTまで繰り返す

1. Sample z1(t+1) z1

new :p(z1new|z2

(t),z3(t),…,zM

(t))

2. Sample z2(t+1) z2

new :p(z2new|z1

(t+1),z3(t),…,zM

(t))

3. Sample z3(t+1) z3

new :p(z3new|..,z2

(t+1),z4(t),…,zM

(t))

j. Sample zj(t+1) zj

new :p(zjnew|..,zj-1

(t+1),zj+1(t),…,zM

(t))

M. Sample zM(t+1) zM

new :p(zMnew|..,zM-1

(t+1))

Page 19: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

水平の線はx2の値を固定して次の点に進むイメージ

垂直の線はx1の値を固定して次の点に進むイメージ

X2

X1

Page 20: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

Sampling Gibbs

1)|()|(

)|()|(,1min

|)|(

|)|(,1min

|)(~ˆ

|)(~ˆ

,1min),(

HastingMetroplis

)|()(

)|()(

)|(|

)|(|

z

\)(

\\)(

\)(

\)(

\)(

)(\\

)(

)(\

)(\

)(

)()(

)()(

\\)()(

\)(

\)(

\)()(

\)()(

\\)(

\

は常に採用されるよって、新規のデータ

法を書き換えるこれを利用して

   

に注意は固定されていることを更新するときには

kt

knew

knew

knew

kt

knew

kt

kt

kt

knew

tnew

kknew

knew

kt

newt

kkt

kt

knew

tnew

k

t

newt

k

newtnew

k

knew

knew

ktt

kt

kt

knewnew

knew

ktnewt

k

kt

knewtnew

k

knew

kt

kk

zzpzpzzp

zzpzpzzp

zzqzpzzp

zzqzpzzp

zzqzp

zzqzpzzA

zpzzpzp

zpzzpzp

zzpzzq

zzpzzq

z

z z

Page 21: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

粒子フィルタ

• 内部状態𝑥𝑡が 𝑥𝑡+1 = 𝑔 𝑥𝑡 + 𝑣𝑡(ガウス雑音)という更新式で変化していく

• 観測されるのは𝑦𝑡 = ℎ 𝑥𝑡 + 𝑢𝑡𝑣𝑡(ガウス雑音)

• 𝑡毎の観測値を用いて𝑥𝑡を推定、𝐸𝑡 𝑓 𝑥𝑡 を計算するメカニズム

– カルマンフィルタによく似ている。

Page 22: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法
Page 23: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法
Page 24: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法
Page 25: クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法