[DL輪読会]Deep Learning for Sampling from Arbitrary Probability Distributions
-
Upload
deep-learning-jp -
Category
Technology
-
view
103 -
download
2
Transcript of [DL輪読会]Deep Learning for Sampling from Arbitrary Probability Distributions
DEEP LEARNING JP[DL Papers]
Deep Learning for Sampling from ArbitraryProbability Distributions
with サンプリングの基礎:モンテカルロとMCMC冨山翔司 松尾研究室,DeepX
http://deeplearning.jp/
書誌情報
• Arxiv 12 Jan 2018.
• Felix Horger, Tobias W¨ urfl, Vincent Christlein and Andreas Maier
• Pattern Recognition Lab of the Friedrich-Alexander-University Erlangen-Nuremberg
• ディープラーニングによって任意の分布からのサンプリングをします(タイトル直訳)– ???
• サンプリングについて⾊々話してみます.
2
サンプリングとは
• ある確率分布からサンプルを抽出すること.– トートロジー
• サンプリングの実⽤的なメリットとして,低コストで分布の期待値(あるいは積分)を近似計算できる.– 多くの場合,分布の積分は解析的に解けない
• サンプリングの話は, 𝑝(𝑥)は既知であるという前提の話– 確率密度関数はわかってるんだけど,そのサンプリングは難しい.
3
モンテカルロサンプリングによる期待値の近似計算
• 𝑥がある確率分布𝑝(𝑥)に従う時の関数𝑓(𝑥)の期待値を,抽出されたサンプルの平均値によって近似する
4
𝑠 = ∫ 𝑝 𝑥 𝑓 𝑥 𝑑𝑥 = 𝐸+[𝑓 𝑥 ]
�̂� =1𝑛1𝑓(𝑥2
3
245
)𝑥2~𝑝(𝑥)
を
によって推定(不偏推定量)
𝑝(𝑥)からランダムサンプリングしたい!のだけど, 𝑝(𝑥)から計算機上で簡単にサンプリングできるのは
正規分布とか⼀様分布ぐらい.
逆関数サンプリング法
• 確率分布𝑝(𝑥)の,累積分布(CDF)を𝐹(𝑥)とする.– 1.標準⼀様分布𝑈(0,1)に従う乱数𝑢を発⽣させる.
– 2.𝑢に𝐹=5を作⽤させ,𝑣 = 𝐹=5(𝑢)を得る.この𝑣がp(𝑥)に従う.
5
𝐹(𝑥)
𝑝(𝑥)
𝑢~𝑈(0,1)
𝑣 = 𝐹=5(𝑢)
問題点:𝐶𝐷𝐹及びその逆関数を解析的に求められないといけない
棄却サンプリング
• 提案分布𝑔(𝑥)からサンプリングされた値を定数倍(𝑀 ∗ 𝑔(𝑥))し,[0, 𝑀 ∗
𝑔(𝑥)]から乱数をサンプリングし,それが⽬標分布の値𝑓(𝑥)以下であれば,受理,そうでなければ棄却する.– 提案分布・・・サンプリング可能な分布
6
http://aidiary.hatenablog.com/entry/20140712/1405165815
棄却サンプリングの問題
• + EF∗G(E)
が⼩さいと,サンプリング効率が悪い.
– 全然違うスライドですが,下で⾔うと緑のような提案分布だと棄却ばかりされる.
– 特に⾼次元だと,どんどん棄却される割合が⾼くなる
• e.g. N次元球と,それを囲う⽴⽅体の⽐の極限は0
7
http://www.juergenwiki.de/old_wiki/lib/exe/fetch.php?w=500&tok=8a7dbf&media=public:murray_mlss2009talk_mcmc_13.png
重点サンプリング
• 𝑝 𝑥 𝑓 𝑥 = 𝑞 𝑥 + E I(E)J(E)
と分解できることを利⽤
– 𝑞 𝑥 からサンプリングして,+ EJ(E)
で重み付け.
8
問題点:推定量の分散は𝑉 �̂�J = 𝑉𝑎𝑟 + E I EJ E
/𝑛で,𝑞(𝑥)の選択に⼤きく依存する
�̂� =1𝑛1𝑓(𝑥2
3
245
)𝑥2~𝑝(𝑥)
𝑠JO =1𝑛1
𝑝(𝑥2)𝑓(𝑥2)𝑞 𝑥2
3
245
𝑥2~𝑞(𝑥)
マルコフ連鎖モンテカルロ法(MCMC)
• サンプリングしたい⽬標分布に対して,それを「不変分布」とするマルコフ連鎖を構成する.– http://ebsa.ism.ac.jp/ebooks/sites/default/files/ebook/1881/pdf/vol3_ch10.pdf
• MCMCでサンプリングしたい理由– 𝑥が⾼次元の時や,サンプリングしたい分布𝑝(𝑥)が複雑である時,前述の⽅法だと,サ
ンプリング容易かつ分布𝑝(𝑥)に近い提案分布𝑞(𝑥)を選ぶことが難しい.• MCMCでは,初めに初期分布を決めるとそれがだんだん⽬標分布へ近づいていく
9
マルコフ連鎖
• ある時点での条件付き確率分布が,前の状態のみに依存する(マルコフ性)ような確率過程
• 𝑝 𝑖, 𝑗 = 𝑃𝑟(𝑥ST5 = 𝑗|𝑥S = 𝑖)とすると,現在の状態が𝑖である時,𝑗にいく確率を表す遷移⾏列が次のように書ける– 𝑥は1次元の確率変数でその状態空間は𝜒 ∈ {1, …𝑘}とする
• 初期状態𝑥\の確率分布を𝜋\とする.と,
10
Pr(𝑥ST5 = 𝑗|𝑥S = 𝑖)
𝜋S = 𝜋\𝑇S
MCMCでやりたいこと
• 最終的に⽬標分布𝜋に収束させるために,適切な遷移⾏列𝑇と初期状態𝜋\を設定したい!
• では,どのような遷移⾏列𝑇を選べば(初期状態𝜋\は実は何でもいい)⽬標分布に収束してくれるのか????– 既約性
– ⾮周期性
– 不変分布
11
𝑥S~𝜋S = 𝜋\𝑇S
既約性
• 連鎖がどのような状態から出発したとしても, 有限回のステップで別の状態にたどり着くことができる性質のこと
• 例えばこれは,状態1もしくは状態2からは状態3にはどうやっても⾏けない.
12
⾮周期性
• ⼀定の時間間隔で訪れる状態がないこと
• 下は,例えば状態1からはじまると再び状態1に戻るのは偶数タイムステップ後になる,周期2のマルコフ連鎖
13
不変分布
• ある確率分布𝜋が,𝜋 = 𝜋𝑇を満たす時,𝜋は𝑇の不変分布.
14
マルコフ連鎖モンテカルロの収束定理
• マルコフ連鎖が既約性と⾮周期性を持ち, 𝜋が𝑇の不変分布である時,任意の初期分布𝜋\は,𝜋に収束する– ⽬標分布𝜋からのサンプリングが可能に!!!
• 既約性と⾮周期性を持つような𝑇を作るのは簡単だけど,問題は⽬標分布が不変分布となるような𝑇にしなければいけないってところ.– そこで出てくるのが,詳細釣り合い条件!
15
詳細釣り合い条件とは
• 𝜋が𝑇の不変分布であるための⼗分条件
– ある状態𝑖にいてかつそこから状態𝑗にいく確率と,ある状態𝑗にいてかつそこから状態𝑖
にいく確率が等しい.
• 上を満たすように𝑇を作ればオッケー!
• 今までの議論は連続状態空間でも同様に成り⽴つ
• (ちなみに詳細釣り合い条件は⼗分条件で,それを緩和した条件で不変分布を満たしてMCMCをする,諏訪モンテカルロなるものがあるらしい)
16
𝜋2𝑝 𝑖, 𝑗 = 𝜋a𝑝(𝑗, 𝑖)
今⽇紹介する代表的なMCMCアルゴリズム
• メトロポリス・ヘイスティングス法
• ハミルトニアンモンテカルロ
• ギブスサンプリング
• これらのアルゴリズムは,適当な分布が⽬標分布へ収束することが保証されているマルコフ連鎖を構築する,というわけです.
17
メトロポリス・ヘイスティングス(MH)法
• 𝑞 𝑥bST5 𝑥S を提案分布と呼ぶ.– あらかじめ決める任意の分布
• 例えば提案分布を標準正規分布とすれば,𝛼 = min{1, g Ebhij
g Eh}となる
– つまり,⽬標分布の確率が⾼い⽅へ⾏くときは必ずサンプリングは受理され,そうでない時は確率的に棄却される
• ⽬標分布は正規化されている必要がない– ⼤事!!!
• 正規化定数だけがわからないってのはよくあるケース
• MH法によって⽣成されるマルコフ連鎖は,詳細釣り合い条件を満たしています(調べてみてください)
18
(1)初期値𝑥\~𝜋\を決める.(2)t=0,1,…に対して以下を繰り返す
(i)𝑥bST5~𝑞 𝑥bST5 𝑥S(ii)𝑢を⼀様分布𝒰(0,1)から発⽣させる(iii)𝛼 𝑥, 𝑥bST5 = min{1, g Ebhij J(E|Ebhij)
g(E)J(Ebhij|Eh)}
(iv)𝑢 < 𝛼 𝑥, 𝑥bST5 であれば, 𝑥ST5 = 𝑥bST5そうでなければ,𝑥ST5 = 𝑥S
メトロポリス・ヘイスティングス法の提案分布
• 酔歩連鎖(random walk chain)
– 採択確率𝛼が,⽬標分布のみの関数に簡略化される(前ページの通り)
– これが,メトロポリス法(1953)
– 𝜎をステップサイズと呼ぶ.
– 酔歩連鎖はガウス分布に限らず, 𝑞 𝑥bST5 𝑥S = 𝑞 𝑥S 𝑥bST5 となるような提案分布だったらなんでもそう呼ぶみたいです.
• ⼀様分布とかでも酔歩連鎖
• 問題点– 提案分布は⽬標分布の情報を全く使わない
• サンプリングされる点は⽬標分布の確率が⾼い点(モード)がいいよね.
19
𝑥bST5 = 𝑥 + 𝜖, 𝜖~𝒩(0, 𝜎q𝐼)
メトロポリス・ヘイスティングス法の提案分布
• ランジェバンダイナミクス
– ⽬標分布において確率が⾼いところへ⾏きやすくなる
– 𝑥の勾配を確率勾配にしたやつがStochastic Gradient Langevin Dynamics• 最近良く聞く気がする
20
𝑥bST5 = 𝑥 +𝜎q
2𝜕𝑙𝑜𝑔𝜋(𝑥)
𝜕𝑥 + 𝜖, 𝜖~𝒩(0, 𝜎q𝐼)
ハミルトニアンモンテカルロ(HMC)
• メトロポリスヘイスティングでは,提案分布の選択がサンプリング効率に⼤きく影響する– 混合のされやすさ
– 受理のされやすさ
• HMCでは,ハミルトニアンが⼀定であるところを遷移し,時々外⼒を加えて違うハミルトニアンの値に移動する,という遷移をする.– ある物体の位置エネルギーをU(𝑥)とし,運動エネルギーをK(𝑣) (ハミルトニアン的には運動
量𝑝とするのが普通だけど,確率分布の𝑝と被るので・・・)とすると,ハミルトニアンはその和.
– 外⼒の加わらない孤⽴系において,ハミルトニアンが保存されるように物体は移動していく• これを確率分布で再現する
• めんどくさいので質量𝑚は省略します(m=1)21
𝐻 = 𝑈 𝑥 + 𝐾(𝑣)
わかりやすいGIFその1
• From https://qiita.com/kenmatsu4/items/71141e0249c266c1b653
22
わかりやすいGIFその2
• http://arogozhnikov.github.io/2016/12/19/markov_chain_monte_carlo.html
23
HMCのポイント
• 確率分布に対応するハミルトニアンはどうやって構築する?
• 運動エネルギーを保存したまま複雑な確率分布上を移動するって,計算できるんだっけ?– リープフロッグ法
24
確率分布とハミルトン⼒学系の関係
• 外⼒がかからない孤⽴系を考えると,ある位置および運動量を持つ粒⼦の数は,以下の確率分布に従う
• ハミルトニアンの位置エネルギーと運動エネルギーを𝑈 𝑥 , K(v)とすると,ハミルトニアンはその和なので,
– 𝑝(𝑥)と𝑝(𝑣)は独⽴!
25
𝑝 𝑥, 𝑣 =1𝑍 exp(−𝐻 𝑥, 𝑣 )
𝑝 𝑥, 𝑣 ∝ exp −𝐻 𝑥, 𝑣= exp(−𝐾 𝑣 )exp(−𝑈 𝑥 )∝ 𝑝 𝑥 𝑝(𝑣)
確率分布に対応する位置エネルギー
• サンプリングしたい確率分布𝑝(𝑥)の位置エネルギーは,
• ということで,確率分布のサンプリングは,この位置エネルギーと,𝑝(𝑥)と独⽴である運動量を適当にサンプリングすることで⾏える!
26
𝑝 𝑥 ∝ exp(−𝑈 𝑥 )⟹ 𝑈 𝑥 = − log 𝑝 𝑥 + 𝑐
正規分布の例
• 𝑝 𝑥 = 5qg� exp(− E�
q) からサンプリングをしたい!
• この位置エネルギーは,𝑈 𝑥 = −𝑙𝑜𝑔𝑝 𝑥 + 𝐶 = 𝑥q + 𝐶
• ハミルトニアンは,𝐻 𝑥, 𝑣 = 𝑥q + 5q𝑣q
– 調和振動⼦に対応.
• アルゴリズム– 0:𝑥\を適当に決める
– 1:𝑣を正規分布からサンプリング
– 2:求まったハミルトニアンに従って,リープフロッグ法によって𝑥をLステップ動かしていく
– 3:Lステップ後に得られる𝑥bと𝑣bを,以下の確率で採択
– 1に戻る• 周期性を持ってしまう場合があるので,それを回避するために都度𝑣をサンプリングするということらし
い27
min(1, exp{𝐻 𝑥2T5, 𝑣2T5 − 𝐻 𝑥b2T5, 𝑣b2T5) )
同ハミルトニアン上を動くので右は常に1のはずだけど,リープフロッグは近似計算なので誤差が⽣じうる
わかりやすいGIFその1再び
• From https://qiita.com/kenmatsu4/items/71141e0249c266c1b653
28
HMCのpro con
• Pros– 提案分布いらない
– ほぼ100パーセントサンプルが受理される
– 𝑣を加えるおかげで,混合がMCMCよりは促されやすくなる
• Cons– 確率分布の勾配を計算できる必要
29
ICLR2018であったHMCの研究
• GENERALIZING HAMILTONIAN MONTE CARLO WITH NEURAL NETWORKS– リープフロッグの際に,求めた𝑣に従ってどれだけ進むかのステップ幅をニューラル
ネットワークによって決定する
– これを紹介するつもりだったんですけど時間が⾜りない&ごちゃごちゃしてるのでやめました.
• HMCを理解すれば読めると思います.
30
ギブスサンプリング
• ギブスサンプリングは提案分布を必要としない
• ⼀⽅で,全ての 𝑖に関して, 𝜋(𝑥2|𝑥=2)がサンプリング可能である必要がある.– 例えば正規分布に従うデータの事後分布からのサンプリングとかはギブスサンプリング
でできる.
31
MCMCによるサンプリングの問題点
• 初期分布が⽬標分布に収束するまでにかかる時間(burn in)は,わからない.– ⽬標分布に収束したかどうかを判定する⽅法もちゃんとはわからないようです.
⽬で⾒るとか,サンプルを⼆つに切って同じ統計量を持ってるか,みたいな⽅法らしい
• 時間的に連続するサンプル同⼠は相関を持ってしまう– ⻑い時間間隔をあければサンプル同⼠の相関は消える
• 分離されたモードのサンプリングに失敗することがある– 結局峰がたくさんある分布は実際にはサンプリングが難しい.
32
良い例 混合ができない例
Deep Learning for Sampling from Arbitrary Probability Distributions
• 𝑢~𝒰(−1,1)を,ニューラルネットワーク𝑓�(𝑢)にかませた結果が,⽬標分布𝑝(𝑥)からのランダムサンプリングになる(ようにニューラルネットワークを訓練する)– 全ての結果が受理されるのでサンプル効率は当然良い
– モード混合問題も関係ない
– 独⽴したサンプルを出せる
33
訓練⽅法
• 1.𝑢2~𝒰(−1,1)を発⽣させ,ミニバッチを作る.
• 2.ニューラルネットワークによって,𝑦2 = 𝑓�(𝑢2)を計算
• 3.得られた𝑦2について,カーネル密度推定によって関数を推定
• 4.推定された関数と⽬標分布が⼀致するように⽬的関数を設定する– ⼆乗誤差
– JS-Divergence
34
(カーネル密度推定)
• データ標本から確率密度関数を推定するノンパラメトリックな⽅法
• 各観測値を中⼼とした分布を想定し,それを積み上げれば滑らかな形状の分布が得られる,というアイディア– ガウシアンカーネルとかがよく⽤いられる
35
⽬的関数
• 𝑞(𝑦)が,カーネル密度推定によって推定された関数
• 𝑦はミニバッチ内の𝑢2にニューラルネットワークをかませることによってサンプリングされ,それらの値を⽤いて上の積分をモンテカルロ近似.– ⼆乗誤差の場合は𝑝(𝑦)と𝑞(𝑦)の⼆乗誤差.
• 実験的にはJS-divergenceのほうが良かったようです.
36
⼆乗誤差
or
実験設定
• 𝑢2~𝒰(−1,1) を500個サンプルした結果を⼀つのベクトルとしてみて(?),𝑦を⽣成.– 相関するに決まってるんだけど,そうしたほうが⽬標分布への収束が早いらしい(検証
されてないし説明良くわからない)
– 相関させたくない時は,1個だけサンプルしたのをベクトルとする.
• 全結合NNで,500ユニット×10レイヤー– でかい
• 全結合NNって4レイヤーくらい積むと挙動がおかしくなるんじゃなかったっけ
• 訓練には10�の𝑢を使⽤
37
実験1
• 上のbimodal gaussianの⽬標分布からサンプリングしたい– ⼀次元だ
• 下が結果– よくフィッティングできてる
– サンプルが相関してる
38
実験2
• 上の⽬標分布からサンプリングしたい– これは逆関数法が使えるのでそれと⽐較
• 下が結果– 左が提案⼿法,右が逆関数法.どっちもうまくできてる
• だからなんなんだっけ...
39
実験3
40
• 上の⽬標分布からサンプリングしたい– これは逆関数法が使えるのでそれと⽐較
• 下が結果– 左が提案⼿法,真ん中が棄却サンプリング,右がMH.全部うまくできてる
• だからなんなんだっけ...
実験4
• ⼆次元のbimodal Gaussianを⽬標分布とした場合– できてる
• でも⼆次元って・・・
41
実験まとめ
• 既存のサンプリング⼿法と同じようにサンプリングができる,というだけ.
• ⾼次元での有効性は⽰されていない– 多分ニューラルネットワークの訓練がうまくできないのではないか
• KDEで⾼次元の分布をうまく推定するにはかなりサンプル必要そう
• モード障壁の話も無し
• サンプリングの速さについても実験なし– これは⽐較となる提案分布𝑞(𝑥)を筆者が⾃分で決めないといけないから,フェアな実験
が難しいのかもしれない
42
まとめ
• アイディアは⾯⽩いけど実験結果がアレ– もしかしたらアップデート版ですごい実験結果が出るかもかもしれない
43