260 likes | 537 Views
クラシックな機械学習の入門. 10. マルコフ 連鎖モンテカルロ 法. Imputation Posterior 次元の呪い MCMC Metropolis-Hastings アルゴリズム Gibbs サンプリング. b y 中川裕志(東京大学). Sampling 法の必要性. EMやVBで解析的に処理して数値計算に持ち込める場合ばかりではない。 VBの場合、因子化仮定による近似も問題。 シミュレーションで解く方法は対象に係わらず使える。 ただし、一般にシミュレーションで良い解に収束させるには時間が膨大にかかる。
E N D
クラシックな機械学習の入門 10. マルコフ連鎖モンテカルロ法 Imputation Posterior 次元の呪い MCMC Metropolis-Hastingsアルゴリズム Gibbsサンプリング by中川裕志(東京大学)
Sampling法の必要性 • EMやVBで解析的に処理して数値計算に持ち込める場合ばかりではない。 • VBの場合、因子化仮定による近似も問題。 • シミュレーションで解く方法は対象に係わらず使える。 • ただし、一般にシミュレーションで良い解に収束させるには時間が膨大にかかる。 • 次元の呪いも影響してくるので、事態は良くない。 • そこで、効率の良いシミュレーション法が必要になる。
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と同じように行う。
観測データ 観測データの値 Y これらをΣ して 分布 P(X)に 沿う積分を計算 X P(X) この部分の面積に比例するように観測データをサンプリングする 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はうまくやらないと効率が悪くなってしまう. (次元の呪い)
次元の呪い(Curse of dimensinality) • (x1,x2)の赤、青、黄の教師データが図のように配置。 • 新規のデータ●が何色かを決める方法を教師データから学習 x1 次元が高いと、周辺部分ばかりにサンプル点が集まり、中心部分にサンプルデータが非常に少ない。 x2
データを記述するための情報の種類(feature)を表す次元Dが増加するとどうなるか?データを記述するための情報の種類(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)を求める。 本当に知りたいのはこれだが、 この条件付き確率(遷移確率)は、問題から求めておく
Markov連鎖 • Markov連鎖の定常性 • ただし、定常的であっても、一つに状態に収束しているとは言い切れない。循環的になっているかもし れない。 • 下の図のような状況はまずい。つまり、a,b,cばかりにシミュレーションでサンプルする点が集中してしまい、p(z)の示す領域全体の体積(=確率)が正確に求まらない。 循環的になると、サンプル点はこのa,b,cばかりになる! p(z) Z1bz a b c Z11z
Markov連鎖 • Markov連鎖の定常性 • ただし、定常的であっても、一つに状態に収束しているとは言い切れない。循環的になっているかもしれない。 Z11z a b Z11z c • 循環的でない定常状態になるためには次の詳細釣り合い条件が必要。この条件から定常性もいえる。 • 詳細釣り合い条件:
詳細釣り合い条件を書き換えると • つまり、zz’の遷移確率を決めるには、正規化定数:Zpは知らなくてもよい。
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: 新規のsampleznew を生成する。 Step 4: とする。 また をあらかじめ決めた閾値とする。 Step 5: if A(znew,z(t)) > u then z(t+1)=znew else z(t)からznewを生成してstep 3へ戻る z(t)を捨てずにとっておき、 q(z(t+1)|z(t))を用いて再度のsample znewの生成で役立てるところがポイント
Metropolisアルゴリズムの味噌 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)に近づくことを保証する。
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: 新規のsampleznew を生成する。 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へ戻る
Gibbs Sampling • z=(z1z2,…zM)からなるベクトルの場合, zの全要素を一度に生成して、条件A(znew,z(t))>uを満たすかをチェックするのは効率が悪い。 • そこで、zjnewをz1(t),.., zj-1(t)が与えられた条件でsamplingする方法が有効。 • GibbsSamplingでは、zjのsampling と評価を、条件A(znew,z(t))>uのチェックの代わりに、それ以前の結果を利用して行う。
Gibbs Sampling • z1z2,…zMの初期化 • 以下をt=1からTまで繰り返す • Sample z1(t+1)z1new :p(z1new|z2(t),z3(t),…,zM(t)) • Sample z2(t+1)z2new :p(z2new|z1(t+1),z3(t),…,zM(t)) • Sample z3(t+1)z3new :p(z3new|..,z2(t+1),z4(t),…,zM(t)) … j. Sample zj(t+1)zjnew :p(zjnew|..,zj-1(t+1),zj+1(t),…,zM(t)) … M. Sample zM(t+1)zMnew :p(zMnew|..,zM-1(t+1))
水平の線はx2の値を固定して次の点に進むイメージ水平の線はx2の値を固定して次の点に進むイメージ 垂直の線はx1の値を固定して次の点に進むイメージ X2 X1
粒子フィルタ • 内部状態が (ガウス雑音)という更新式で変化していく • 観測されるのは(ガウス雑音) • 観測値を用いてを推定、を計算するメカニズム • カルマンフィルタによく似ている。