from mcmc to sgnht
TRANSCRIPT
統計力学を活用したMCMCの
まとめ
hskksk @ 2016/9/2
アジェンダ
• HMC紹介の背景
• サンプリングアルゴリズムの概略
• Hamiltonian Monte Carloとその改良アルゴリズムの紹介
1
機械学習/最適化アルゴリズム 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
今⽇のお話
• 確率分布からのサンプリングアルゴリズムをちょっと解説
• 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
登場する論⽂
[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
なぜサンプリングアルゴリズムがホットなのか?
• 世間的には
– 解析的に最適解が求まらない確率モデルがたくさん
• Variational Bayesなどの近似法で解くか、
• サンプリングするか
– モデルからのサンプルを使う応⽤がたくさん出てきた
• 個⼈的には
– 確率モデルが数式で書ければ、簡単にオレオレモデルが試せる!(Stan)
• 最近は⾃動微分+⾼性能オンライン学習アルゴリズムを備えたChainerもその候補ですね
• 確率モデルのプロトタイプツールとして⾮常に有⽤5
サンプリングアルゴリズム
• 確率密度関数がわかる場合
– 棄却法
• 累積分布関数の逆関数がわかる場合(1次元のみ)
– 逆関数法
• 1次元正規分布
– Box-Muller法
• 多次元分布
– コピュラ
• 正規化定数がわからない場合
– MCMC
– 機械学習の確率モデルにはこれが多い
6
棄却法の模式図
逆関数法の模式図
この範囲で一
様乱数を打つ
F-1(u)
u
MCMC
• 確率密度の⽐だけを使ってサンプリングできれば計算が⼤変な正規化定数が不要になる → Markov Chain Monte Carlo(MCMC、マルコフ連鎖モンテカルロ法)
• Markov Chain(マルコフ連鎖)
– 次の状態が直前の状態のみに依存する確率過程のこと
•
•
– 特に遷移確率が時間に依存しない場合、⻫時的マルコフ連鎖と呼ばれる
•
– 特定の条件を満たす⻫時的マルコフ連鎖では、各状態が現れる確率分布は定常分布に収束する
•7
MCMC
• MCMC
– 定常分布がサンプリング対象の分布となるようなマルコフ連鎖を構成
– そのマルコフ連鎖から発⽣した状態 をサンプルとする⽅法群
– ⼀般的に、初期値依存性がある のサンプルは捨てる(burn-in)
• MCMCにおけるマルコフ連鎖の構成法
– 以下の条件を満たすようにマルコフ連鎖を構成する
• 詳細釣り合い条件 or 可逆性
• エルゴード性(変なことをしなければほぼ満たされるのでここでは気にしない)
– どの初期状態から始めても、すべての状態に到達する確率が0でない
– ⾮周期的8
Metropolis-Hastings法
• ⼀番基本的なMCMC
– 実はこのあと紹介するサンプリング法はすべて、MH⽅の⼀種と捉えられる
– 後で紹介する⽅法は定常分布への収束が速くなるように提案分布を改良している
• アルゴリズム
– マルコフ性を持つ提案分布 から、サンプルを⽣成
• xを平均とする多次元正規分布がよく使われる
– 詳細釣り合い条件を満たすように、以下の基準に基づいてサンプルを採択/棄却
•
• ここで、
– 棄却した場合は、元のxを採択する9
参考アニメーションhttp://qiita.com/kenmatsu4/items/55e78cc7a5ae2756f9da
MH法が詳細釣り合いを満たすことの証明
10
詳細釣り合いの直感的な意味合い
• 詳細釣り合いは感覚的には何を意味しているのか?
–
• 式変形すると
–
• 式を超訳するとx → x’ の遷移は、x’ → x の遷移のp(x’)/p(x) 倍発⽣する
• 確率分布の図上で考えてみると、当たり前の条件
11
x x’
p(x)
p(x’)
赤の遷移は
青の遷移よりp(x’)/p(x)倍多く発生し
ないといけない
Metropolis-Hastings法の⻑所と短所
• Metropolis-Hastings法の⻑所
– (MCMCならどれもそうだが)正規化定数の計算が不要
– 汎⽤性が⾼く、どんな分布からのサンプリングにも(原理的には)使える
– どんな提案分布でも⽤いることができる
• Metropolis-Hastings法の短所
– MH法は対象を選ばずに使えるが、提案分布の選び⽅が効率に⼤きく影響する
– 提案分布の形が対象の分布と似ていないと、棄却率が⾼くなって定常分布への収束が遅くなる
– (提案分布が多変量正規の場合)分散が⼩さいと標本空間の探索に時間がかかる分散が⼤きいと棄却率が⾼くなる
12
Metropolis-Hastings法がうまくいかない例
• 変数間の相関の強い分布からサンプリングしたい時
– 提案分布に無相関の多変量正規分布を使うと、相関のある⽅向に⾶んだ時しか採択されず定常分布への収束が遅くなる
• 他にもたくさん
13
棄却 採択
棄却
模式図
Gibbs Sampler
• 詳細釣り合い条件が必ず満たされるサンプラー
– 棄却が発⽣しないので⾮常に効率が良い
• アルゴリズム
– 標本空間の次元を1つランダムに選択(dとする)
– 以下の提案分布を⽤いてサンプルを⽣成
•
– (採択/棄却ステップは不要)
14
参考アニメーション:http://qiita.com/yagays/items/5bde6addf228b1fe24e6
Gibbs Samplerにおける詳細釣り合い
• 証明は省略するが、Gibbs Samplerは必ず詳細釣り合い条件を満たす
– 詳細釣り合いの式に提案分布の式を⼊れるとすぐわかる
• そのため提案分布からのサンプルは必ず受理される
15
Gibbs Samplerの⻑所短所
• ⻑所
– 棄却がないため効率が良い
• 短所– 棄却がないとはいえ、相関の強い分布の場合には定常分布への収束に時間がかかる
• 1次元ごとにサンプリングするため1ステップで⾶べる距離が制限される
– すべての次元について、残りの次元の条件付き確率分布からのサンプリングができる必要がある
16
Hamiltonian Monte Carlo(HMC)
• Gibbs Samplerより汎⽤的で、かつ収束性が良いサンプラーを
– 受理確率はほぼ1
– 相関が強い確率分布からのサンプリングも⾼速
• 「Hamiltonian」 Monte Carlo?
– 名前の通り、ハミルトン⼒学を活⽤したサンプラー
17
ハミルトン⼒学系
• 概要– 統計⼒学において、ハミルトン⼒学系に従う粒⼦群の粒⼦数の分布は、ある確率分布に従うことが知られている
– HMCでは、サンプリング対象とする確率分布がこの分布と⼀致するようなハミルトン⼒学系を構成する
– この⼒学系の運動⽅程式の解を提案サンプルとして⽤いる
• 変数の定義
– t: ⼒学系の時刻(マルコフ連鎖のステップとは無関係)
– x_i: 粒⼦の次元iの位置。サンプリング対象の変数と1対1対応する
– p_i: 粒⼦の次元iの運動量 (補助変数)
– m: 粒⼦の質量 18
ハミルトン⼒学系における粒⼦の運動
• ハミルトン⼒学系の粒⼦は以下の運動⽅程式に従って運動する
• Hは⼒学系を特徴付ける量で、ハミルトニアンという
– 粒⼦の位置、運動量の変化はハミルトニアンの勾配により決まる
– 粒⼦が運動しても、ハミルトニアンの値は⼀定値を取る(この値を系のエネルギーという)
19
エネルギーの等高面
ハミルトニアンが保存されることの証明
20
を使った
微分の連鎖則
ハミルトニアン
• ハミルトニアンはポテンシャルエネルギーU(x)と運動エネルギーK(p)の和で表される
• 1次元調和振動⼦の場合の例
21
エネルギーと粒⼦数分布の関係
• 外⼒が働かない孤⽴系に対応するミクロカノニカルアンサンブルを考えると、ある位置、運動量の値を持つ粒⼦の数は以下の確率分布に従う(ここからは運動量を⼩⽂字で、確率を⼤⽂字で表記)
• ⾼いエネルギーを持つ状態ほど確率が⼩さい
• やっとハミルトン⼒学系と確率分布が繋がった!
22
ある確率分布に対応するハミルトン⼒学系の導出
• 確率分布の分離
– ハミルトニアンはxのみに依存するポテンシャルエネルギーとpのみに依存する運動エネルギーの和に分離できた
– そのためxとpの確率分布は独⽴で、以下のように書ける
23
ある確率分布に対応するハミルトン⼒学系の導出
• ポテンシャルエネルギーの導出
– サンプリングしたい確率分布P(x)があったら、以下の式で対応するポテンシャルエネルギーを求められる
– 実⽤上cは無視して問題ない
• 例:1次元標準正規分布
24
ある確率分布に対応するハミルトン⼒学系の導出
• ハミルトニアンの導出
• 例:1次元標準正規分布
– 1次元正規分布は1次元調和振動⼦に対応
25
Hamiltonian Monte Carloサンプラーのアルゴリズム
• ランダムに位置の初期値 を設定する
• i=1〜Nの間、以下を繰り返す
– 運動量 を平均0、分散mの正規分布からサンプリング ・・・・ ※1※2
– 位置 と運動量 を運動⽅程式に従い時間発展させる・・ ※3
• 時間発展後の位置・運動量を とする
– 時間発展後の粒⼦の状態を以下の確率で採択する ・・・・・・ ※4
• 棄却された場合は を採択する
– 採択した状態を とする
26
疑問点1
※1 運動量のサンプリングはなぜ必要??
– 運動⽅程式に従う運動は周期性を持つ場合がある
– 運動⽅程式に従う時間発展はエルゴード的でない
※2 運動量の状態遷移の受理/棄却ステップがないが問題ないのか?
– 位置で条件付けした運動量の確率分布は正規分布になっている
• そもそも位置と運動量は独⽴だが
– これはgibbsサンプリングと捉えることができ、必ず詳細釣り合い条件を満たすので、受理/棄却は不要
27
疑問点2
※3 運動⽅程式に従う時間発展はどうやるのか??– 詳細釣り合い条件が満たされるようにエネルギーに誤差が乗らないソルバを⽤いる
– Leap-Frog法がよく使われる
• 時間反転対称性、シンプレクティック性を持つ
※4 運動⽅程式に従う運動はエネルギーを保存するので採択確率は1になるのでは?
– 時間発展に数値誤差が乗るため必要になる
– toy exampleでは受理/棄却ステップをはさまなくても定常分布に収束することが報告されている[Chen+14]
28
HMCの⻑所・短所
• ⻑所
– 相関の強い分布に強い
• 分布の勾配を使った時間発展により提案サンプルを作るため
– 条件付き分布からのサンプリングができなくても使える
• 短所
– 時間発展のために確率分布の勾配を計算できる必要がある
– 事後確率分布からサンプリングする場合、全データから計算される尤度の勾配の計算が必要 → ビッグデータでは⾮常に重くなる
– 相関の強い分布に強いとはいえ、勾配法レベル
• ニュートン法のような2次収束ではない
– 時間発展におけるステップ幅、経路⻑のパラメータ調整が難しい29
参考アニメーション:http://qiita.com/kenmatsu4/items/71141e0249c266c1b653
No-U-Turn Sampler(NUTS)
• ステップ幅と経路⻑パラメータを⾃動的に調整しながら進むHMC
– ステップ幅と経路⻑の調整が不要になって簡単に使えるように
– stanに実装されている
• HMCではステップ幅や経路⻑の選び⽅がパフォーマンスに⼤きな影響を与える
– 経路⻑が⼩:近所に移動するだけになってしまって定常分布への収束が遅い
– 経路⻑が⼤:1周期分以上シミュレーションしてしまったりして計算量の無駄
→ 適度に遠いところまで⾏きたい
– ステップ幅が⼩:精度⾼くシミュレーションしすぎてなかなか遠くまで⾏けない
– ステップ幅が⼤:シミュレーションの精度が低くて棄却率が⾼まる
→ 棄却率を保てる範囲で最⼤のステップ幅を使いたい30
NUTS
経路⻑の調整
• NUTSでは、軌道がUターンを始めるまでpathを伸ばしてやるようにする
• 詳細釣り合いを満たすようにするためにかなりの技巧が⼊っている
ステップ幅の調整
• dual-averagingにより棄却率が⼀定になるように時々刻々時間幅を調整
詳細はまたの機会に・・・31
図は[1]より引用
スケーラブルなサンプラー
• 確率モデルの事後分布からのサンプリングでは、対数尤度やその勾配の計算で観測データ全体にわたる和が発⽣する
– ビッグデータをエビデンスとするとサンプリングが⾮常に難しい
• データ量に対してスケールするサンプラーが欲しい
• 例:事前分布に正規分布を仮定したベイズ線形回帰
32
ここが大変!
スケーラブルなサンプラー開発のポイント
• ポイントは2つ
1. HMCで提案分布を作る時の勾配計算
2. MH採択/棄却ステップのときの事後確率計算
• アイデア
1. 確率的勾配降下法と同じようなことができないか?
• 全データにわたる和を、⼀部のデータに対する和で代⽤する
• 対数尤度やその勾配に⼊るノイズを抑える⼯夫をする
2. Hの保存精度を⾼めておいてMH採択/棄却ステップを無くせないか?
33
Naiveな Stochastic Gradient HMC
単純に勾配を確率勾配に置き換えた系を考えるとどうなるか?
• 確率勾配は真の勾配に正規ノイズがのったものとみなせる
,
• ハミルトニアンの時間変化は
0にならず正規ノイズが⼊る! → Hはランダムウォークする!34
NaïveなStochastic Gradient HMC
• 実際、確率勾配を⽤いてハミルトン系の時間発展を計算すると軌道が⼤きくずれる
• また、p(x)はこの系の定常分布にならない
35 図は[2]より引用
Friction termを加える
• 確率勾配のノイズは、物理的にはブラウン運動のようなランダムな外⼒と捉えられる
• 外⼒と釣り合うような摩擦⼒を加えることで、p(x)を再び系の定常分布とできないか?
• 物理現象としては、実際にこのようなことが起こっていることがわかっており、Langevin⽅程式としてモデル化されている
• Langevin⽅程式に従う系の定常分布はp(x) になることがわかっている
• 粒⼦の時間発展を確率勾配⼊りのLangevin⽅程式で記述したHMCが Stochastic HMC
36
Langevin⽅程式の定常分布がp(x)になることの証明(ガイド)
• Langevin⽅程式に従う系の確率分布の時間発展は、以下のFokker-Planck⽅程式に従う。
–
• p(x)をFokker-Planck⽅程式に代⼊すると、
となることを⽰す。
37
確率勾配のノイズを外⼒項と摩擦項に隠す
• Langevin⽅程式に確率勾配を⼊れて展開すると以下のようになる
• とすれば、摩擦項と外⼒項が釣り合って系の定常分布がp(x)になる
38
(1)
Stochastic Gradient HMCサンプラーのアルゴリズム
• ランダムに位置の初期値 を設定する
• i=1〜Nの間、以下を繰り返す
– 運動量 を平均0の正規分布からサンプリング
– 位置 と運動量 を(1)に従い時間発展させる
• 離散化にはLeap-Frog法を使う意味がなく、Euler法などを使う
• 時間発展後の位置・運動量を とする
– (採択/棄却ステップは⾏わない)
39
実⽤上のポイント
• ノイズの分散
– 実⽤上は、VはわからないのでFisher情報⾏列の逆⾏列などで推定する( と書く)
– Cと のズレが⼤きくなると、摩擦⼒と外⼒の釣り合う位置がずれて、定常分布がp(x)にならなくなる
• 定常分布
– dt(ステップサイズ)→0の極限では になるが、計算量が無駄にかかる
– dtが有限でVの推定に誤差があったとしても、以下のようにステップサイズを取れば定常分布がp(x)になる
40
SGHMCの⻑所短所
• ⻑所
– データ数に⽐例する計算が不要になる
• 確率勾配を使える
• MH採択/棄却ステップがなくても実⽤上問題ない
• 短所
– ノイズの分散 がCと⼤きくずれると定常分布がp(x)にならない
41
Stochastic Gradient Langevin Dynamics
• Langevin⽅程式でdp=0とした⽅程式を運動⽅程式として⽤いる⽅法
– 1st-order Langevin⽅程式 または Overdamped Langevin⽅程式と呼ばれる
– 摩擦⼒が⾮常に強く加速度がすぐに0になる場合、または、観測の時間スケールが加減速の時間スケールに⽐べて⼤きく加速度が無視できる場合に対応
• SGHMCの論⽂の実験ではSGLDよりSGHMCの⽅が⾼性能であることが⽰されている
42
SGLDとSGHMCの⽐較
43図は[2]より引用
Stochastic Gradient Nose Hoover Thermostat
• SGHMCやSGLDで重要なノイズの分散の推定を不要にする⽅法
• HMCとSG*サンプラーの違いをもう⼀度⾒直してみると
– HMCは孤⽴系のシミュレーション
• エネルギーが保存される
– SGHMCやSGLDで使うLangevin⽅程式は⾮孤⽴系のシミュレーション
• 無限に⼤きく温度が⼀定の熱浴と⾃由に温度をやり取りできる(カノニカルアンサンブル)
• エネルギーは保存されず、熱平衡(温度⼀定)状態をシミュレーションしている
• (エネルギーの期待値は⼀定になる)
44
カノニカルアンサンブルの定常分布
実は、カノニカルアンサンブルの定常分布は
ではなく、
になる。ここで はボルツマン定数、 は系の温度で、定常状態では以下の熱平衡条件が成り⽴つ
ここでnは系の⾃由度で、今の場合xの次元数に相当する
系の定常分布がサンプリング対象と⼀致してほしいので、 になっていなければいけない 45
SG*における熱平衡条件
HMCでは正しい勾配を使っているので が満たされる
SG*では確率勾配を使っているのでそのノイズの⼤きさがうまく推定できていない場合になってしまう!
46
SG*における熱平衡条件
47 図は[3]より引用
Stochastic Gradient Nose Hoover Thermostat
• SGNHTでは、温度に相当する新変数を⽤意し、 になるようにコントロールする
– 温度(=平均速度)が上がれば強い摩擦を感じて速度が落ちる
– 温度が下がれば摩擦が弱くなって速度が上がる
48
SGNHTのサンプリングアルゴリズム
49
SGNHTの定常分布に関する定理
• この系の確率分布のθに関する周辺分布がexp(-U(θ))に⽐例し、(9)式が満たされるなら、θの定常分布は元の分布P(θ)と⼀致する。
50
SGNHTの性能
51
図は[3]より引用
HMC周りの論⽂を読んで思ったこと
物理物理しすぎてて、⽅程式の意味の理解が⼤変・・・
52
物理を知らないとサンプラーを設計できないの??
• ノイズ項がある場合でも、ある確率分布を定常分布とする運動⽅程式を導出できる⽅法を提案
• これを使えば⾃動的にサンプラーが調整されて、欲しい定常分布に落ち着くサンプラーが得られる
– 物理的理解不要
• 逆にこれまでのサンプラーは全てこの枠組みに当てはまる
53
欲しい分布を定常分布にする⼒学系
以下の確率微分⽅程式を考える
f(z)は以下の式で表されるとする
ここでDは半正定値⾏列、Qは反対称⾏列とする
定理1 f(z)が(3)式の形の時、exp(-H(z))は(2)式の定常分布になる
定理2 (2)式の定常分布が⼀意に存在すると仮定する。さらに
がルベーグ測度の意味で積分可能であれば、
必ず(3)式を満たすようなQ(z)が存在する。54
(2)
(3)
まとめ
• オレオレモデルを試すならStanを使いましょう
• ビッグデータを使ってモデルのハイパーパラメータのMAP推定するならSG*系のサンプラーを使うと良い
• 特にSGNHTは今の所⼀番安定して使えそう
55