Imputation Posterior
次元の呪い
MCMC
Metropolis-Hastings アルゴリズム
Gibbsサンプリング
10. マルコフ連鎖モンテカルロ 法
クラシックな機械学習の入門
by 中川裕志(東京大学)
 EMやVBで解析的に処理して数値計算に持ち込
める場合ばかりではない。
VBの場合、因子化仮定による近似も問題。
 シミュレーションで解く方法は対象に係わらず使え
る。
 ただし、一般にシミュレーションで良い解に収束させ
るには時間が膨大にかかる。
次元の呪いも影響してくるので、事態は良くない。
 そこで、効率の良いシミュレーション法が必要にな
る。
Sampling法の必要性
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したデータでシミュ
レーションによって計算する。
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
XZp
L
Q
1
)(
)|,(log
1
),( 
観測データ
この部分の面積に比例するように
観測データをサンプリングする
P(X)
X
観測データ
の値 Y
X
これらを
Σ して
分布
P(X)に
沿う積分
を計算
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
XZp
L
Xp
1
)(
),|(
1
)|( 
(x1,x2)の赤、
青、黄の教師
データが図のよ
うに配置。
新規のデータ●
が何色かを決
める方法を教師
データから学習
次元の呪い(Curse of dimensinality)
x2
x1
次元が高いと、周辺部分ばかりに
サンプル点が集まり、中心部分に
サンプルデータが非常に少ない。
 データを記述するための情報の種類(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の値の閾値が比較的小さいところになる場合は、
教師データが極端に少なくなり、学習の精度が落ちる。
Markov Chain Monte Carlo:
MCMC の基本アイデア
次のデータ点が指定した領域から外に出ていたら、
元のデータ点に戻って、次のデータ点を選びなおす。
近似分布の導入
 sampling でp(Z)の正確な評価が困難でも、 p(Z)と比例
する分布 なら乱数によってsamplingすることがで
きるとしよう. 両者の関係は正規化定数Zpで下のように
書ける。
 ただし、 Zpは未知。だから、 のままで計算できる
ことが望ましい。
 さらに近似分布(proposal分布)q(z(t+1)|z(t))にしたがい、
z(t)からsamplingしてz(t+1)を求める。
)(~1
)( Zp
Z
Zp
p

)(~ Zp
)(~ Zp
本当に知りたいのは
これだが、
この条件付き確率(遷移確率)
は、問題から求めておく
Markov連鎖
 Markov連鎖の定常性
 ただし、定常的であっても、一つに状態に収束しているとは言い
切れない。循環的になっているかもし れない。
 下の図のような状況はまずい。つまり、a,b,cばかりにシミュレー
ションでサンプルする点が集中してしまい、p(z)の示す領域全体
の体積(=確率)が正確に求まらない。
)()(then,)()|()(when )()1()()()1()1(
)(
tttttt
ppppp t zzzzzz Z
 
  
a b
c
Z1
bzZ
1
1
z
p(z)
循環的になると、
サンプル点はこの
a,b,cばかりにな
る!
Markov連鎖
 Markov連鎖の定常性
 ただし、定常的であっても、一つに状態に収束しているとは言い
切れない。循環的になっているかもしれない。
Z1
1z
a b
c
Z1
1z
循環的でない定常状態になるためには次の詳細釣り合い条件
が必要。この条件から定常性もいえる。
詳細釣り合い条件:
)'()()'()'(
',,
**
*
zzpzpzzpzp
zzp

に対して すべてのが存在しある
)()(then,)()|()(when )()1()()()1()1(
)(
tttttt
ppppp t zzzzzz Z
 
  
詳細釣り合い条件を書き換えると
つまり、zz’の遷移確率を決めるには、正規
化定数:Zpは知らなくてもよい。
)'(~
)(~
/)'(~
/)(~
)'(
)(
)'(
)'(
zp
zp
Zzp
Zzp
zp
zp
zzp
zzp
p
p



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
new
tnew
zp
zp
zzA
z(t)を捨てずにとっておき、 q(z(t+1)|z(t))を用いて再度のsample znew
の生成で役立てるところがポイント
 1,0u
 p
~
ˆ
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
new
tnew
zp
zp
zzA
 1,0u
    uzpzp tnew
 )(~~
)(~
)(~
)(t
new
zp
zp
Metropolisアルゴリズムの味噌
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
new
tnew
k
zzqzp
zzqzp
zzA
 1,0u
 p
~
ˆ
Gibbs Sampling
z=(z1z2,…zM)からなるベクトルの場合, zの全
要素を一度に生成して、条件A(znew,z(t))>uを
満たすかをチェックするのは効率が悪い。
そこで、zj
newをz1
(t),.., zj-1
(t)が与えられた条件で
samplingする方法が有効。
Gibbs Samplingでは、zjのsampling と評価
を、条件A(znew,z(t))>uのチェックの代わりに、
それ以前の結果を利用して行う。
Gibbs Sampling
1. z1z2,…zMの初期化
2. 以下をt=1からTまで繰り返す
1. Sample z1
(t+1) z1
new :p(z1
new|z2
(t),z3
(t),…,zM
(t))
2. Sample z2
(t+1) z2
new :p(z2
new|z1
(t+1),z3
(t),…,zM
(t))
3. Sample z3
(t+1) z3
new :p(z3
new|..,z2
(t+1),z4
(t),…,zM
(t))
…
j. Sample zj
(t+1) zj
new :p(zj
new|..,zj-1
(t+1),zj+1
(t),…,zM
(t))
…
M. Sample zM
(t+1) zM
new :p(zM
new|..,zM-1
(t+1))
水平の線はx2の値を固定
して次の点に進むイメージ
垂直の線はx1の値を固定
して次の点に進むイメージ
X2
X1
 
 
 
 
 
 
   
   
 
 
Sampling Gibbs
1
)|()|(
)|()|(
,1min
|)|(
|)|(
,1min
|)(
~
ˆ
|)(
~
ˆ
,1min),(
HastingMetroplis
)|()(
)|()(
)|(|
)|(|
z

)(

)(

)(

)(

)(
)(

)(
)(

)(

)(
)()(
)(
)(

)()(

)(

)(

)()(

)()(

)(































は常に採用されるよって、新規のデータ
法を書き換えるこれを利用して
   
に注意は固定されていることを更新するときには
k
t
k
new
k
new
k
new
k
t
k
new
k
t
k
t
k
t
k
new
tnew
kk
new
k
new
k
t
newt
kk
t
k
t
k
new
tnew
k
t
newt
k
new
tnew
k
k
new
k
new
k
tt
k
t
k
t
k
newnew
k
new
k
tnewt
k
k
t
k
newtnew
k
k
new
k
t
kk
zzpzpzzp
zzpzpzzp
zzqzpzzp
zzqzpzzp
zzqzp
zzqzp
zzA
zpzzpzp
zpzzpzp
zzpzzq
zzpzzq
z
z z
条件付正規分布
 Gibbs Sampling で行った方法(他の変数の条件
は同一にした条件付き分布で、1変数だけを予測す
る一例を正規分布で示す。
 変数ベクトルzをxとyに分割すると
X=a
y
p(y)
P(y|x=a)
 D次元変数ベクトル をスカラー とD-1次元ベクト
ル に分割する。
 ここで多次元正規分布の指数の肩の項は次式
-(G-10)
yx
T
xy
yyyx
xyxx
T
xx
T
x
xx
y
x
where
μx
N







































 

とすると精度行列:
多次元正規分布
1
2
),|(
yy
yyy
y
μ
μ
y
z
μz
)()(
2
1
)()(
2
1
)()(
2
1
)()(
2
1
)()(
2
1 1
yyy
T
yxyx
T
y
yxyxxxxx
T
μx
μxμxμx
μyμyμy
μy
μzμz


 

xz
y
一般に正規分布 の指数の肩は次式で書け、右
辺の第1項、第2項の係数の部分に着目すれば期待値、共分
散が求まる。
-(G-20)
),( μ|zN
constTTT
 
μzzzμzμz 111
2
1
)()(
2
1
条件付正規分布p(x|y)の期待値μx|yと共分散Σ x|yをこの方法を
(G-10)式に適用して求めよう。ー 問題
一方、(G-10)においてxの1次の項がΣ -1 μ これは次式
 
 
)(
)(
)(
1
12
|
2
||
yy
yyyyy
μy
μy
μy





xxxx
xxxxxxxxx
yxyxxx
μ
μ
x



より
これにより
次に、これらの結果を共分散行列を用いて書き直す
yxyyxyxx
xxx
xxxxxxxxxx
yyyx
xyxx
yyyx
xyx
μμ
Matrix





























122
|
1
|
1112112
1
1
|
2
)(
)()(
)(



y
yyyyy
yyyyyyyyyyyy
y
μy
を使えばにおいて
yを定数とみなしてxの分布を求めれば、条件付分布になるか
ら(G-10)の第1項のxの2次の項の係数が共分散。すなわち
12
|
2
1 
 xxxxx xx  yにより
粒子フィルタ
• 内部状態𝑥𝑡が 𝑥𝑡+1 = 𝑔 𝑥𝑡 + 𝑣𝑡(ガウス雑
音)という更新式で変化していく
• 観測されるのは𝑦𝑡 = ℎ 𝑥𝑡 + 𝑢 𝑡 𝑣𝑡(ガウス雑
音)
• 𝑡毎の観測値を用いて𝑥𝑡を推定、𝐸𝑡 𝑓 𝑥𝑡 を
計算するメカニズム
– カルマンフィルタによく似ている。
2-3
f( )
)
)
)
クラシックな機械学習の入門  10. マルコフ連鎖モンテカルロ 法

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