Upload
hirotaka-matsumoto
View
395
Download
2
Embed Size (px)
Citation preview
PRML 第11章 サンプリング法
11.2~11.6
木立研 D1
松本 拡高
3 pudding !!
11.2 マルコフ連鎖モンテカルロ (MCMC)
• これまでのサンプリング法は、棄却率の高さが問題となる(特に高次元空間において)。
• ここでは、提案分布が現在の状態に依存するモデルを考えることで、高次元空間でも効率よくサンプリングできる手法を学ぶ。
2
とりあえずMetropolisアルゴリズム • ここでは提案分布は対称とする(q(zA|zB)=q(zB|zA))。
• 1.提案分布 からz*のサンプリング
• 2.以下の確率に従い受理(棄却された場合はz(t+1)<-z(t))
※提案分布の例:z(t)を中心にしたガウス分布 ※本手法の正当性は後で一般化した後に示す。
3
q(z�|z(t))
A(z�, z(t)) = min(1, p(z�)/p(z(t)))
実用的な問題点 • 直近のサンプリングはお互いに独立でない。 – 独立なサンプルが欲しければ例えば、M個ごとのサンプル結果のみを保持すればいい。
• ランダムウォーク的なふるまいを示す。 – 状態空間全体を効率的に探索できない。
4
なかなかこっちまで来ない
11.2.1 マルコフ連鎖
• MCMCに入る前に、まずマルコフ連鎖について知るべし。
5
マルコフ連鎖とは • 1次マルコフ連鎖 – 確率変数の系列データzに対し、以下の条件付き独立性が成立するもの。 – 次に選ばれる状態が過去の状態に依存せず、今の状態のみに依存するモデル。
– 去った物は追いかけず、過ぎたことは振り返らず。
• k次マルコフ連鎖では、k個前までの状態に依存する。つまり女々しくなる。
• 今後は基本的に1次マルコフ連鎖に関して考える。 6
P (z(m+1)|z(1), z(2), ..., z(m)) = P (z(m+1)|z(m))
均一マルコフ連鎖と不変分布 • 均一マルコフ連鎖 – 遷移確率が系列のどの時点でも同じモデル
• ある時点での周辺確率は以下のようになる
• ここで周辺確率があらゆる時点で同じとき、その分布は不変あるいは定常という。
7
Tm(z(m), z(m+1)) � P (z(m+1)|z(m))
P (z(m+1)) =�
z(m)
P (z(m+1)|z(m))P (z(m)) =�
z(m)
T (z(m), z(m+1))P (z(m))
P �(z) =�
z�
T (z�, z)P �(z�)
不変分布と成る条件は • 詳細釣り合い条件 – 分布p*(z)に対し以下の式が成立する遷移確率を選択すれば、p*(z)は不変分布と成る。
• なぜなら
8
P �(z)T (z, z�) = P �(z�)T (z�, z)
�
z�
T (z�, z)P �(z�) =�
z�
T (z, z�)P �(z) = P �(z)�
z�
T (z, z�) = P �(z)
11.2.2 Metropolis-Hastingsアルゴリズム
• Metropolisアルゴリズムの提案分布が対称でない場合への拡張。
• 以降、M-Hと呼びます ※今このときより私の夢はMatsumoto-Hirotakaアルゴリズムを開発し、本手法より有名にすることとなりました。
9
とりあえず、手順を見てみる • 1.提案分布 からz*のサンプリング
• 2.以下の確率に従い受理
– kは考えられる可能な遷移の集合の要素を表すラベル – 例によってp(z)は正規化定数は不明だが、正規化されていない物は観測可能とする。
10
qk(z|z(t))
Ak(z�, z(t)) = min
�1,
p(z�)qk(z(t)|z�)p(z�)qk(z�|z(t))
�
先ほどの手順でいいのか? • 詳細釣り合い条件を満たしており、望み通りp(z)が不変分布である。
• すなわちp(z)に従ってサンプリングされている。
11
p(z)qk(z�|z)Ak(z�, z) = min(p(z)qk(z�|z), p(z�)qk(z|z�))= min(p(z�)qk(z|z�), p(z)qk(z�|z))
= p(z�)qk(z|z�)min(1,p(z)qk(z�|z)p(z�)qk(z|z�)
)
= p(z�)qk(z|z�)Ak(z, z�)
実用における問題点 • 効率の良い提案分布の選択は楽でない。 例 • 提案分布: 現在の状態を中心とするガウス分布 • p(z):大きく歪んだガウス分布
• 緑:提案分布の分散が小さい場合 – 直近のサンプル間で強い相関
• 青:提案分布の分散が大きい場合 – 高い棄却率
12
pz��
11.3 ギブスサンプリング • 単純で適用範囲の広いMCMC
• M-Hの特殊な場合と見なせる。
• サンプリングしたい確率分布 があったとき、1つの変数をそれ以外の変数を固定した分布 からサンプリングしていく手法。
13
p(z1, z2..., zM )
p(zi|z\i)
とりあえず、手順を見てみる を初期化する に対して以下を行う。 をサンプリングする をサンプリングする
をサンプリングする
14
1.{zi : i = 1, ...,M}2.t = 1, ..., T
� z(t+1)1 � p(z1|z(t)
2 , z(t)3 ..., z(t)
M )
� z(t+1)2 � p(z2|z(t)
1 , z(t)3 ..., z(t)
M ).
.
.
� z(t+1)M � p(zM |z(t)
1 , ..., z(t)M�1)
先ほどの手順でいいのか? • 先述の手続きが求めたい分布からのサンプルをきちんと生成していることを示す。
15
�
z�
T (z�, z)p�(z�) =�
z�i
pa(zi|z�\i)p
�(z�)
=�
z�i
pa(zi|z�\i)p
a(z�i|z�
\i)pb(z�
\i)
= pa(zi|z�\i)p
b(z�\i)
�
z�i
pa(z�i|z�
\i)
= pa(zi|z�\i)p
b(z�\i)
= p�(zi, z�\i)
= p�(z) z�\i = z\i���
不変分布だからといって安心はできない • エルゴート性を満たさなければならない。
• これは条件付き分布の確率が0となる場合がなければ、とりま満たされる。
• それ以外の場合は本当に成り立つか証明する必要がある。
• 私的考察:とりあえず条件付き分布の確率が0となる場合のないものを設計すればおk?
16
ギブスとM-Hの関係 • ギブスはM-Hの特殊例と捉えることができる
– 遷移確率
– 受理確率は常に1
17
qk(z�|z) = p(z�k|z\k)
A(z�, z) =p(z�)qk(z|z�)p(z)qk(z�|z)
=p(z�k|z�\k)p(z�\k)p(zk|z�\k)p(zk|z\k)p(z\k)p(z�k|z\k)
= 1
実用上の問題点 • ランダムウォーク的な振る舞い – 変数間に相関があると、独立なサンプルを分布から得るまでにかかるステップ数が大きくなってしまう。
18
解決手法:過剰緩和 • ステップの向きを恣意的にバイアスをかけることで、大域的に歩き回らせる。
• ここでは条件付き分布がガウス分布となるものについて扱う。(非ガウス分布への拡張:順序付き過剰緩和)
• 特定の要素ziの条件付き分布の平均、分散をμi,σi^2とすると、ziの更新は、-1<α<1であるパラメータαと標準正規分布からサンプリングしたνを用いて以下のように置き換えられる。
19
z�i = µi + �(zi � µi) + �i(1� �2)
12 �
過剰緩和の続き • α=0の場合、この方式は通常のギブスと同じ • α<0だとステップは平均と反対方向へバイアスがかかる。
• 分布が不変である証明 – 上記式の三項は独立なので
20
z�i = µi + �(zi � µi) + �i(1� �2)
12 �
E[z�i] = E[µi] + E[�(zi � µi)] + E[�i(1� �2)
12 �] = µi
V ar[z�i] = V ar[µi] + V ar[�(zi � µi)] + V ar[�i(1� �2)
12 �]
= �2V ar[zi � µi] + �2(1� �2)V ar[�]
= �2�2 + �2(1� �2) = �2
ギブスサンプリングの適用可能性 • ギブスサンプリングが適用可能かは、条件付き分布p(zk|z\k)からサンプリングが容易にできるかに依存する。
• 8章のグラフィカルモデル的に考えると、zkの条件付き分布はマルコフブランケットの中の変数にのみ依存し、例えば親から子へとサンプリングするとうまくいく。
21
ブロック化ギブスサンプリング • 単純なギブスサンプリングでは同時に1変数しか考慮しないので、連続するサンプルの間には強い相関がある。
• 同時分布から直接サンプリングした場合は連続するサンプル間でも独立である。
• 1変数ではなく変数のグループとみなすことで、2つの中間的なアプローチが可能である(ブロック化ギブスサンプリング)。
22
11.4 スライスサンプリング • Metropolisアルゴリズムの難点の1つはステップサイズに対し敏感であること(p.10)。
• ここでは分布の特徴にあわせて自動的に調整されるスライスサンプリングを学ぶ。
23
とりあえず手順を見る • 付加的な変数uを用いる。 1. 一様分布0<=u<=p~(z(t))からuをサンプリングする。
2. p~(z)>uを満たすzからz(t+1)を一様にサンプリングする。
24
1.#u������ 2.#z(t+1)������
こんな手法でいいのか? • 先述のサンプリングは以下で与えられる分布からサンプリングしていることになる。
• uの値自体は無視してzのみに着目するので、以下の式から結果的にzはp(z)からサンプリングしている。
25
p(z, u) =�
1/Zp if 0 � u � p(z(t))0 otherwise
�p(z, u)du =
� p(z)
0
1Zp
du =p(z)Zp
= p(z)
実用上の問題点 • p~(z)>uから一様サンプリングするのは困難なことがある。
• zの範囲を制限する。 – 小さすぎると大域的に移動できない。 – 大きすぎると棄却率が高くなる。
• 解決策の1つ – z(t)を含む幅wの範囲からはじめて、いずれかの端点が含まれる限り広げていく。その後のサンプリングでz(t+1)が範囲を超えたら、範囲を縮小して再度サンプリング。
– エルゴート性を保証してない気がするがまあいいか。 26
11.5 ハイブリッドモンテカルロアルゴリズム
• Metropolisアルゴリズムはランダムウォーク的な振る舞いを示す危険性がある。
• 単純にステップサイズを大きくしただけだと、棄却率が高くなってしまう。 ↓ • ここでは、物理システムの類似に基づき、棄却率を小さいままに大きな状態遷移をできる手法を紹介する。
※本手法は状態変数の対数確率の勾配が容易に求められる連続変数の分布にのみ適応できる。
27
11.5.1 力学系 • 確率的シミュレーションをハミルトン系の形にあてはめることで、目的の確率分布からのサンプリングをこころみる。
28
位置変数、運動量変数、位相空間 まずは一般的な力学系のはなし。
• tで表される連続時間の下での状態変数ziの時間発展を考える。
• Zを位置変数と捉え、その変化率を運動量変数rとする。
• 位置変数と運動量変数の結合空間を位相空間と呼ぶ。 ※ここの位相はトポロジーとは違うよ。
29
ri =dzi
dt
確率分布のポテンシャルエネルギーによる解釈 • 一般性を失うことなく確率分布p(z)は以下の形で表現でき、E(z)を状態zでの系のポテンシャルエネルギーと解釈できる。らしい。
• 系の加速度(運動量の変化率)=作用する力
30
p(z) =1Zp
exp(�E(z))
dri
dt= ��E(z)
�zi
いざ、ハミルトン力学へ • 以下の運動エネルギーを定義する。
• 系の全エネルギーはポテンシャルエネルギーと運動エネルギーの和であり、ハミルトン関数という。
• 力学系(11.53,11.55)をハミルトン方程式で表現できる。
31
K(r) =12
||r||2 =12
�
i
r2i
H(z, r) = E(z) + K(r)
dzi
dt=
�H
�ri
dri
dt= ��H
�zi
�H
�ri=
�K(r)�ri
=�
�ri(12
�
i
r2i ) = ri =
dzi
dt
�H
�zi=
�E(z)�ri
= �dri
dt
ハミルトン力学の性質 • 時間発展においてハミルトン関数Hの値は一定 – 式略(11.60)
• 位相空間の体積が保存されている(Liouville’s Theorem) – 時間発展させたとき変数(z,r)の領域は変化するが、その体積は変化しない。
– 式略(11.62)
32
確率分布のハミルトン関数による表現 • 先述の体積保存とHの保存から、以下の同時分布は不変分布となる。
• よってハミルトン方程式の時間発展を有限時間追えば、zに大きな変化を起こしつつも棄却されることなくサンプリングできる。
• ここでランラダムウォーク的な振る舞いが避けられると述べているが、時間発展をきちんと有限時間追う必要あるし、はたして本当に効率的なのだろうか?
33
p(z, r) =1
ZHexp(�H(z, r))
実用的な問題点 • 先述の手法はエルゴート性を保証しない。
• p(z,r) を不変分布としつつもHの値を変えるような、位相空間での追加的な移動を導入する。
例 • rの値をzを条件とする分布からサンプリングして置き換える。(ギブスサンプリング)
34
実用的な問題点2 • ハミルトン力学を有限の時間区間で積分している。→ 数値積分は必然的に数値誤差を生じる
• リープフロッグ離散化 – 数値誤差を招きつつも、Liouville’s Theoremを厳密に成り立つようにした手法の1つ。
– zとrを以下の式で交互に更新する
※ε→0の極限ではゼロになるが、実際問題はいくらか誤差は残る。
35
ri(t + �/2) = r(t)� �
2�E
�zi(z(t))
zi(t + �) = zi(t) + �ri(t + �/2)
ri(t + �) = r(t + �/2)� �
2�E
�zi(z(t + �))
そのほか、雑学 • ハミルトン力学系による方式は、Metropolisあるごりずむとは異なり分布自身のみならず確率分布の対数の勾配に関する情報も用いることができる。
• 勾配の情報が得られる場合は、それを利用することで大きな利点が得られることが多い。
36
11.5.2 ハイブリッドモンテカルロアルゴリズム
• リープフロッグ離散化における誤差を、Metropolisアルゴリズムを組み合わせることで取り除く。
37
とりあえず、手順を見てみる • 運動量変数rの確率的な更新と、リープフロッグアルゴリズムによるハミルトン力学系の更新を、マルコフ連鎖を用いて交互に行う。
1. リープフロッグアルゴリズムに基づく、新規候補点(r*,z*)の導出(εの向きを考慮しつつ、(11.64~66)に従って計算する。)
2. 以下の確率に従い受理
38
min(1, exp{H(z, r)�H(z�, r�)})
先ほどの手順の正当性 • 例によって、詳細釣り合い条件の確認
39
1ZH
exp(�H(z, r))�V12
min(1, exp{H(z, r)�H(z�, r�)})
=1
ZH�V
12
min(exp(�H(z, r)), exp(�H(z�, r�)))
=1
ZHexp(�H(z�, r�))�V
12
min(exp{H(z�, r�)�H(z, r)}, 1)
実用上の問題点 • ステップサイズεが一定だと、有限回数の繰り返しの後開始点に戻ってしまうようなエルゴート性を満たさない可能性がある。
• これはステップサイズの大きさをある小さな範囲からランダムに選択することで回避できる。
40
11.6 分配関数の推定 • ある分布からデータをサンプリングするという目的においては分配関数(正規化定数)を知る必要はない。という話をしてきた。
• しかし分配関数の値は、モデルエビデンスなどに有用である。
• なので、分配関数の値を知りたい。
41
重点サンプリングを用いる • エネルギー関数G(z)を持つ分布から重点サンプリングをしたとする。
• z^lはpG(z)で定義される分布からのサンプル。 • pGの分配関数が解析的にわかる場合、ZEもわかる。
42
ZE
ZG=
�z exp(�E(z))�z exp(�G(z))
=�
z exp(�E(z) + G(z)) exp(�G(z))�z exp(�G(z))
= EG(z)[exp(�E + G)]
� 1L
�
l
exp(�E(zl) + G(zl))
先ほどの手法の問題点と代替案 • 先ほどの手法はpGの分布がpEの分布に近い場合のみ、精度が良い。
• 複雑な分布に対する、分布の近い解析的に解ける分布pGは一般的には見つけられないと考えてよい。
• 代わりにマルコフ連鎖からのサンプリングを利用する。
43
1ZG
exp(�G(z)) =1L
�
l
T (zl, z)
依然残る問題点と解決手法 • マルコフ連鎖用いても、分布の形が十分に似てないと精度が良くない。
• 連鎖(chaining) – 単jん名分布と求めたい複雑な分布の間を補完する一連の中間分布を導入する。
• 本当にこれらでうまく行くのかは疑問
44