from mcmc to sgnht

56
統計力学を活用したMCMCの まとめ hskksk @ 2016/9/2

Upload: keisuke-hosaka

Post on 19-Mar-2017

816 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: From mcmc to sgnht

統計力学を活用したMCMCの

まとめ

hskksk @ 2016/9/2

Page 2: From mcmc to sgnht

アジェンダ

• HMC紹介の背景

• サンプリングアルゴリズムの概略

• Hamiltonian Monte Carloとその改良アルゴリズムの紹介

1

Page 3: From mcmc to sgnht

機械学習/最適化アルゴリズム from ⾃然科学

• CNN/DNN

– from 脳の構造の研究

• GA/PSO/ACO

– from ⽣物の⾏動の研究

• Burnes-Hut t-SNE(t-distributed stochastic neighbor embedding)

– from 天体運動のシミュレーション(Burnes-Hutの部分)

• Hamiltonian Monte Carlo

– from 統計⼒学/分⼦動⼒学

2

Page 4: From mcmc to sgnht

今⽇のお話

• 確率分布からのサンプリングアルゴリズムをちょっと解説

• Hamiltonian Monte Carloとその改良アルゴリズムたちを紹介

– Hamiltonian Monte Carlo(HMC)

– No U-turn Sampler(NUTS)

– Stochastic Gradient HMC

– Stochastic Gradient Langevin Dynamics

– Stochastic Gradient Riemmanian Langevin Dynamics

– Stochastic Gradient Nose-Hoover Thermostat

3

Page 5: From mcmc to sgnht

登場する論⽂

[1] Hoffman, M. D., & Gelman, A. (2014). The No-U-Turn Sampler: Adaptively Setting Path Lengths

in Hamiltonian Monte Carlo. Journal of Machine Learning Research, 15, 1593–1623.

[2] Welling, M., & Teh, Y.-W. (2011). Bayesian Learning via Stochastic Gradient Langevin Dynamics.

Proceedings of the 28th International Conference on Machine Learning, 681–688.

[3] Ding, N., Chen, C., Skeel, R. D., & Babbush, R. (2014). Bayesian Sampling Using Stochastic

Gradient Thermostats. Nips, 1–14. http://doi.org/10.1007/s00453-014-9909-1

[4] Ma, Y.-A., Chen, T., & Fox, E. B. (n.d.). A Complete Recipe for Stochastic Gradient MCMC.

4

Page 6: From mcmc to sgnht

なぜサンプリングアルゴリズムがホットなのか?

• 世間的には

– 解析的に最適解が求まらない確率モデルがたくさん

• Variational Bayesなどの近似法で解くか、

• サンプリングするか

– モデルからのサンプルを使う応⽤がたくさん出てきた

• 個⼈的には

– 確率モデルが数式で書ければ、簡単にオレオレモデルが試せる!(Stan)

• 最近は⾃動微分+⾼性能オンライン学習アルゴリズムを備えたChainerもその候補ですね

• 確率モデルのプロトタイプツールとして⾮常に有⽤5

Page 7: From mcmc to sgnht

サンプリングアルゴリズム

• 確率密度関数がわかる場合

– 棄却法

• 累積分布関数の逆関数がわかる場合(1次元のみ)

– 逆関数法

• 1次元正規分布

– Box-Muller法

• 多次元分布

– コピュラ

• 正規化定数がわからない場合

– MCMC

– 機械学習の確率モデルにはこれが多い

6

棄却法の模式図

逆関数法の模式図

この範囲で一

様乱数を打つ

F-1(u)

u

Page 8: From mcmc to sgnht

MCMC

• 確率密度の⽐だけを使ってサンプリングできれば計算が⼤変な正規化定数が不要になる → Markov Chain Monte Carlo(MCMC、マルコフ連鎖モンテカルロ法)

• Markov Chain(マルコフ連鎖)

– 次の状態が直前の状態のみに依存する確率過程のこと

– 特に遷移確率が時間に依存しない場合、⻫時的マルコフ連鎖と呼ばれる

– 特定の条件を満たす⻫時的マルコフ連鎖では、各状態が現れる確率分布は定常分布に収束する

•7

Page 9: From mcmc to sgnht

MCMC

• MCMC

– 定常分布がサンプリング対象の分布となるようなマルコフ連鎖を構成

– そのマルコフ連鎖から発⽣した状態 をサンプルとする⽅法群

– ⼀般的に、初期値依存性がある のサンプルは捨てる(burn-in)

• MCMCにおけるマルコフ連鎖の構成法

– 以下の条件を満たすようにマルコフ連鎖を構成する

• 詳細釣り合い条件 or 可逆性

• エルゴード性(変なことをしなければほぼ満たされるのでここでは気にしない)

– どの初期状態から始めても、すべての状態に到達する確率が0でない

– ⾮周期的8

Page 10: From mcmc to sgnht

Metropolis-Hastings法

• ⼀番基本的なMCMC

– 実はこのあと紹介するサンプリング法はすべて、MH⽅の⼀種と捉えられる

– 後で紹介する⽅法は定常分布への収束が速くなるように提案分布を改良している

• アルゴリズム

– マルコフ性を持つ提案分布 から、サンプルを⽣成

• xを平均とする多次元正規分布がよく使われる

– 詳細釣り合い条件を満たすように、以下の基準に基づいてサンプルを採択/棄却

• ここで、

– 棄却した場合は、元のxを採択する9

参考アニメーションhttp://qiita.com/kenmatsu4/items/55e78cc7a5ae2756f9da

Page 11: From mcmc to sgnht

MH法が詳細釣り合いを満たすことの証明

10

Page 12: From mcmc to sgnht

詳細釣り合いの直感的な意味合い

• 詳細釣り合いは感覚的には何を意味しているのか?

• 式変形すると

• 式を超訳するとx → x’ の遷移は、x’ → x の遷移のp(x’)/p(x) 倍発⽣する

• 確率分布の図上で考えてみると、当たり前の条件

11

x x’

p(x)

p(x’)

赤の遷移は

青の遷移よりp(x’)/p(x)倍多く発生し

ないといけない

Page 13: From mcmc to sgnht

Metropolis-Hastings法の⻑所と短所

• Metropolis-Hastings法の⻑所

– (MCMCならどれもそうだが)正規化定数の計算が不要

– 汎⽤性が⾼く、どんな分布からのサンプリングにも(原理的には)使える

– どんな提案分布でも⽤いることができる

• Metropolis-Hastings法の短所

– MH法は対象を選ばずに使えるが、提案分布の選び⽅が効率に⼤きく影響する

– 提案分布の形が対象の分布と似ていないと、棄却率が⾼くなって定常分布への収束が遅くなる

– (提案分布が多変量正規の場合)分散が⼩さいと標本空間の探索に時間がかかる分散が⼤きいと棄却率が⾼くなる

12

Page 14: From mcmc to sgnht

Metropolis-Hastings法がうまくいかない例

• 変数間の相関の強い分布からサンプリングしたい時

– 提案分布に無相関の多変量正規分布を使うと、相関のある⽅向に⾶んだ時しか採択されず定常分布への収束が遅くなる

• 他にもたくさん

13

棄却 採択

棄却

模式図

Page 15: From mcmc to sgnht

Gibbs Sampler

• 詳細釣り合い条件が必ず満たされるサンプラー

– 棄却が発⽣しないので⾮常に効率が良い

• アルゴリズム

– 標本空間の次元を1つランダムに選択(dとする)

– 以下の提案分布を⽤いてサンプルを⽣成

– (採択/棄却ステップは不要)

14

参考アニメーション:http://qiita.com/yagays/items/5bde6addf228b1fe24e6

Page 16: From mcmc to sgnht

Gibbs Samplerにおける詳細釣り合い

• 証明は省略するが、Gibbs Samplerは必ず詳細釣り合い条件を満たす

– 詳細釣り合いの式に提案分布の式を⼊れるとすぐわかる

• そのため提案分布からのサンプルは必ず受理される

15

Page 17: From mcmc to sgnht

Gibbs Samplerの⻑所短所

• ⻑所

– 棄却がないため効率が良い

• 短所– 棄却がないとはいえ、相関の強い分布の場合には定常分布への収束に時間がかかる

• 1次元ごとにサンプリングするため1ステップで⾶べる距離が制限される

– すべての次元について、残りの次元の条件付き確率分布からのサンプリングができる必要がある

16

Page 18: From mcmc to sgnht

Hamiltonian Monte Carlo(HMC)

• Gibbs Samplerより汎⽤的で、かつ収束性が良いサンプラーを

– 受理確率はほぼ1

– 相関が強い確率分布からのサンプリングも⾼速

• 「Hamiltonian」 Monte Carlo?

– 名前の通り、ハミルトン⼒学を活⽤したサンプラー

17

Page 19: From mcmc to sgnht

ハミルトン⼒学系

• 概要– 統計⼒学において、ハミルトン⼒学系に従う粒⼦群の粒⼦数の分布は、ある確率分布に従うことが知られている

– HMCでは、サンプリング対象とする確率分布がこの分布と⼀致するようなハミルトン⼒学系を構成する

– この⼒学系の運動⽅程式の解を提案サンプルとして⽤いる

• 変数の定義

– t: ⼒学系の時刻(マルコフ連鎖のステップとは無関係)

– x_i: 粒⼦の次元iの位置。サンプリング対象の変数と1対1対応する

– p_i: 粒⼦の次元iの運動量 (補助変数)

– m: 粒⼦の質量 18

Page 20: From mcmc to sgnht

ハミルトン⼒学系における粒⼦の運動

• ハミルトン⼒学系の粒⼦は以下の運動⽅程式に従って運動する

• Hは⼒学系を特徴付ける量で、ハミルトニアンという

– 粒⼦の位置、運動量の変化はハミルトニアンの勾配により決まる

– 粒⼦が運動しても、ハミルトニアンの値は⼀定値を取る(この値を系のエネルギーという)

19

エネルギーの等高面

Page 21: From mcmc to sgnht

ハミルトニアンが保存されることの証明

20

を使った

微分の連鎖則

Page 22: From mcmc to sgnht

ハミルトニアン

• ハミルトニアンはポテンシャルエネルギーU(x)と運動エネルギーK(p)の和で表される

• 1次元調和振動⼦の場合の例

21

Page 23: From mcmc to sgnht

エネルギーと粒⼦数分布の関係

• 外⼒が働かない孤⽴系に対応するミクロカノニカルアンサンブルを考えると、ある位置、運動量の値を持つ粒⼦の数は以下の確率分布に従う(ここからは運動量を⼩⽂字で、確率を⼤⽂字で表記)

• ⾼いエネルギーを持つ状態ほど確率が⼩さい

• やっとハミルトン⼒学系と確率分布が繋がった!

22

Page 24: From mcmc to sgnht

ある確率分布に対応するハミルトン⼒学系の導出

• 確率分布の分離

– ハミルトニアンはxのみに依存するポテンシャルエネルギーとpのみに依存する運動エネルギーの和に分離できた

– そのためxとpの確率分布は独⽴で、以下のように書ける

23

Page 25: From mcmc to sgnht

ある確率分布に対応するハミルトン⼒学系の導出

• ポテンシャルエネルギーの導出

– サンプリングしたい確率分布P(x)があったら、以下の式で対応するポテンシャルエネルギーを求められる

– 実⽤上cは無視して問題ない

• 例:1次元標準正規分布

24

Page 26: From mcmc to sgnht

ある確率分布に対応するハミルトン⼒学系の導出

• ハミルトニアンの導出

• 例:1次元標準正規分布

– 1次元正規分布は1次元調和振動⼦に対応

25

Page 27: From mcmc to sgnht

Hamiltonian Monte Carloサンプラーのアルゴリズム

• ランダムに位置の初期値 を設定する

• i=1〜Nの間、以下を繰り返す

– 運動量 を平均0、分散mの正規分布からサンプリング ・・・・ ※1※2

– 位置 と運動量 を運動⽅程式に従い時間発展させる・・ ※3

• 時間発展後の位置・運動量を とする

– 時間発展後の粒⼦の状態を以下の確率で採択する ・・・・・・ ※4

• 棄却された場合は を採択する

– 採択した状態を とする

26

Page 28: From mcmc to sgnht

疑問点1

※1 運動量のサンプリングはなぜ必要??

– 運動⽅程式に従う運動は周期性を持つ場合がある

– 運動⽅程式に従う時間発展はエルゴード的でない

※2 運動量の状態遷移の受理/棄却ステップがないが問題ないのか?

– 位置で条件付けした運動量の確率分布は正規分布になっている

• そもそも位置と運動量は独⽴だが

– これはgibbsサンプリングと捉えることができ、必ず詳細釣り合い条件を満たすので、受理/棄却は不要

27

Page 29: From mcmc to sgnht

疑問点2

※3 運動⽅程式に従う時間発展はどうやるのか??– 詳細釣り合い条件が満たされるようにエネルギーに誤差が乗らないソルバを⽤いる

– Leap-Frog法がよく使われる

• 時間反転対称性、シンプレクティック性を持つ

※4 運動⽅程式に従う運動はエネルギーを保存するので採択確率は1になるのでは?

– 時間発展に数値誤差が乗るため必要になる

– toy exampleでは受理/棄却ステップをはさまなくても定常分布に収束することが報告されている[Chen+14]

28

Page 30: From mcmc to sgnht

HMCの⻑所・短所

• ⻑所

– 相関の強い分布に強い

• 分布の勾配を使った時間発展により提案サンプルを作るため

– 条件付き分布からのサンプリングができなくても使える

• 短所

– 時間発展のために確率分布の勾配を計算できる必要がある

– 事後確率分布からサンプリングする場合、全データから計算される尤度の勾配の計算が必要 → ビッグデータでは⾮常に重くなる

– 相関の強い分布に強いとはいえ、勾配法レベル

• ニュートン法のような2次収束ではない

– 時間発展におけるステップ幅、経路⻑のパラメータ調整が難しい29

参考アニメーション:http://qiita.com/kenmatsu4/items/71141e0249c266c1b653

Page 31: From mcmc to sgnht

No-U-Turn Sampler(NUTS)

• ステップ幅と経路⻑パラメータを⾃動的に調整しながら進むHMC

– ステップ幅と経路⻑の調整が不要になって簡単に使えるように

– stanに実装されている

• HMCではステップ幅や経路⻑の選び⽅がパフォーマンスに⼤きな影響を与える

– 経路⻑が⼩:近所に移動するだけになってしまって定常分布への収束が遅い

– 経路⻑が⼤:1周期分以上シミュレーションしてしまったりして計算量の無駄

→ 適度に遠いところまで⾏きたい

– ステップ幅が⼩:精度⾼くシミュレーションしすぎてなかなか遠くまで⾏けない

– ステップ幅が⼤:シミュレーションの精度が低くて棄却率が⾼まる

→ 棄却率を保てる範囲で最⼤のステップ幅を使いたい30

Page 32: From mcmc to sgnht

NUTS

経路⻑の調整

• NUTSでは、軌道がUターンを始めるまでpathを伸ばしてやるようにする

• 詳細釣り合いを満たすようにするためにかなりの技巧が⼊っている

ステップ幅の調整

• dual-averagingにより棄却率が⼀定になるように時々刻々時間幅を調整

詳細はまたの機会に・・・31

図は[1]より引用

Page 33: From mcmc to sgnht

スケーラブルなサンプラー

• 確率モデルの事後分布からのサンプリングでは、対数尤度やその勾配の計算で観測データ全体にわたる和が発⽣する

– ビッグデータをエビデンスとするとサンプリングが⾮常に難しい

• データ量に対してスケールするサンプラーが欲しい

• 例:事前分布に正規分布を仮定したベイズ線形回帰

32

ここが大変!

Page 34: From mcmc to sgnht

スケーラブルなサンプラー開発のポイント

• ポイントは2つ

1. HMCで提案分布を作る時の勾配計算

2. MH採択/棄却ステップのときの事後確率計算

• アイデア

1. 確率的勾配降下法と同じようなことができないか?

• 全データにわたる和を、⼀部のデータに対する和で代⽤する

• 対数尤度やその勾配に⼊るノイズを抑える⼯夫をする

2. Hの保存精度を⾼めておいてMH採択/棄却ステップを無くせないか?

33

Page 35: From mcmc to sgnht

Naiveな Stochastic Gradient HMC

単純に勾配を確率勾配に置き換えた系を考えるとどうなるか?

• 確率勾配は真の勾配に正規ノイズがのったものとみなせる

,

• ハミルトニアンの時間変化は

0にならず正規ノイズが⼊る! → Hはランダムウォークする!34

Page 36: From mcmc to sgnht

NaïveなStochastic Gradient HMC

• 実際、確率勾配を⽤いてハミルトン系の時間発展を計算すると軌道が⼤きくずれる

• また、p(x)はこの系の定常分布にならない

35 図は[2]より引用

Page 37: From mcmc to sgnht

Friction termを加える

• 確率勾配のノイズは、物理的にはブラウン運動のようなランダムな外⼒と捉えられる

• 外⼒と釣り合うような摩擦⼒を加えることで、p(x)を再び系の定常分布とできないか?

• 物理現象としては、実際にこのようなことが起こっていることがわかっており、Langevin⽅程式としてモデル化されている

• Langevin⽅程式に従う系の定常分布はp(x) になることがわかっている

• 粒⼦の時間発展を確率勾配⼊りのLangevin⽅程式で記述したHMCが Stochastic HMC

36

Page 38: From mcmc to sgnht

Langevin⽅程式の定常分布がp(x)になることの証明(ガイド)

• Langevin⽅程式に従う系の確率分布の時間発展は、以下のFokker-Planck⽅程式に従う。

• p(x)をFokker-Planck⽅程式に代⼊すると、

となることを⽰す。

37

Page 39: From mcmc to sgnht

確率勾配のノイズを外⼒項と摩擦項に隠す

• Langevin⽅程式に確率勾配を⼊れて展開すると以下のようになる

• とすれば、摩擦項と外⼒項が釣り合って系の定常分布がp(x)になる

38

(1)

Page 40: From mcmc to sgnht

Stochastic Gradient HMCサンプラーのアルゴリズム

• ランダムに位置の初期値 を設定する

• i=1〜Nの間、以下を繰り返す

– 運動量 を平均0の正規分布からサンプリング

– 位置 と運動量 を(1)に従い時間発展させる

• 離散化にはLeap-Frog法を使う意味がなく、Euler法などを使う

• 時間発展後の位置・運動量を とする

– (採択/棄却ステップは⾏わない)

39

Page 41: From mcmc to sgnht

実⽤上のポイント

• ノイズの分散

– 実⽤上は、VはわからないのでFisher情報⾏列の逆⾏列などで推定する( と書く)

– Cと のズレが⼤きくなると、摩擦⼒と外⼒の釣り合う位置がずれて、定常分布がp(x)にならなくなる

• 定常分布

– dt(ステップサイズ)→0の極限では になるが、計算量が無駄にかかる

– dtが有限でVの推定に誤差があったとしても、以下のようにステップサイズを取れば定常分布がp(x)になる

40

Page 42: From mcmc to sgnht

SGHMCの⻑所短所

• ⻑所

– データ数に⽐例する計算が不要になる

• 確率勾配を使える

• MH採択/棄却ステップがなくても実⽤上問題ない

• 短所

– ノイズの分散 がCと⼤きくずれると定常分布がp(x)にならない

41

Page 43: From mcmc to sgnht

Stochastic Gradient Langevin Dynamics

• Langevin⽅程式でdp=0とした⽅程式を運動⽅程式として⽤いる⽅法

– 1st-order Langevin⽅程式 または Overdamped Langevin⽅程式と呼ばれる

– 摩擦⼒が⾮常に強く加速度がすぐに0になる場合、または、観測の時間スケールが加減速の時間スケールに⽐べて⼤きく加速度が無視できる場合に対応

• SGHMCの論⽂の実験ではSGLDよりSGHMCの⽅が⾼性能であることが⽰されている

42

Page 44: From mcmc to sgnht

SGLDとSGHMCの⽐較

43図は[2]より引用

Page 45: From mcmc to sgnht

Stochastic Gradient Nose Hoover Thermostat

• SGHMCやSGLDで重要なノイズの分散の推定を不要にする⽅法

• HMCとSG*サンプラーの違いをもう⼀度⾒直してみると

– HMCは孤⽴系のシミュレーション

• エネルギーが保存される

– SGHMCやSGLDで使うLangevin⽅程式は⾮孤⽴系のシミュレーション

• 無限に⼤きく温度が⼀定の熱浴と⾃由に温度をやり取りできる(カノニカルアンサンブル)

• エネルギーは保存されず、熱平衡(温度⼀定)状態をシミュレーションしている

• (エネルギーの期待値は⼀定になる)

44

Page 46: From mcmc to sgnht

カノニカルアンサンブルの定常分布

実は、カノニカルアンサンブルの定常分布は

ではなく、

になる。ここで はボルツマン定数、 は系の温度で、定常状態では以下の熱平衡条件が成り⽴つ

ここでnは系の⾃由度で、今の場合xの次元数に相当する

系の定常分布がサンプリング対象と⼀致してほしいので、 になっていなければいけない 45

Page 47: From mcmc to sgnht

SG*における熱平衡条件

HMCでは正しい勾配を使っているので が満たされる

SG*では確率勾配を使っているのでそのノイズの⼤きさがうまく推定できていない場合になってしまう!

46

Page 48: From mcmc to sgnht

SG*における熱平衡条件

47 図は[3]より引用

Page 49: From mcmc to sgnht

Stochastic Gradient Nose Hoover Thermostat

• SGNHTでは、温度に相当する新変数を⽤意し、 になるようにコントロールする

– 温度(=平均速度)が上がれば強い摩擦を感じて速度が落ちる

– 温度が下がれば摩擦が弱くなって速度が上がる

48

Page 50: From mcmc to sgnht

SGNHTのサンプリングアルゴリズム

49

Page 51: From mcmc to sgnht

SGNHTの定常分布に関する定理

• この系の確率分布のθに関する周辺分布がexp(-U(θ))に⽐例し、(9)式が満たされるなら、θの定常分布は元の分布P(θ)と⼀致する。

50

Page 52: From mcmc to sgnht

SGNHTの性能

51

図は[3]より引用

Page 53: From mcmc to sgnht

HMC周りの論⽂を読んで思ったこと

物理物理しすぎてて、⽅程式の意味の理解が⼤変・・・

52

Page 54: From mcmc to sgnht

物理を知らないとサンプラーを設計できないの??

• ノイズ項がある場合でも、ある確率分布を定常分布とする運動⽅程式を導出できる⽅法を提案

• これを使えば⾃動的にサンプラーが調整されて、欲しい定常分布に落ち着くサンプラーが得られる

– 物理的理解不要

• 逆にこれまでのサンプラーは全てこの枠組みに当てはまる

53

Page 55: From mcmc to sgnht

欲しい分布を定常分布にする⼒学系

以下の確率微分⽅程式を考える

f(z)は以下の式で表されるとする

ここでDは半正定値⾏列、Qは反対称⾏列とする

定理1 f(z)が(3)式の形の時、exp(-H(z))は(2)式の定常分布になる

定理2 (2)式の定常分布が⼀意に存在すると仮定する。さらに

がルベーグ測度の意味で積分可能であれば、

必ず(3)式を満たすようなQ(z)が存在する。54

(2)

(3)

Page 56: From mcmc to sgnht

まとめ

• オレオレモデルを試すならStanを使いましょう

• ビッグデータを使ってモデルのハイパーパラメータのMAP推定するならSG*系のサンプラーを使うと良い

• 特にSGNHTは今の所⼀番安定して使えそう

55