はじめに
- MCMCの一種
- 目標: ある分布
からのサンプリングを行いたい- Metropolis-Hastingsアルゴリズム (MH)
- Hamiltonian Monte Carlo (HMC)
- Langevin Dynamics (Metropolis-adjusted Langevin Algorithm)
- Stochastic Gradient Langevin Dynamics (SGLD)
- の順に見ていくと理解しやすい
Metropolis-Hastings
- Metropolis-Hastingsについては既知のもとする
- 提案分布
を元に判定関数を用いて受容・棄却を行うMCMC - cf. GibbsSamplingとHM
- 提案分布が対称, すなわち
ならば, 判定関数はただの となる- これを単にメトロポリス法と呼ぶ
- 提案分布
Hamiltonian Monte Carlo
- Hamiltonian Monte Carlo (HMC)
-
ここでハミルトニアンが登場する
-
HMCのお気持ち
- 解析力学に則り, ある系における座標と運動量の時間に関する軌道を元に, サンプリングを行う
- 例えば,
があるとして, 一定時間が経ったときの終点 が得られればサンプル取れるよね - このとき, 判定関数がハミルトニアンの差で表せるので嬉しい
- ハミルトニアン自体は系全体のエネルギーそのものなので, エネルギー保存則が成り立つ.
- ゆえにハミルトニアンの差分は本来0なので嬉しい.
-
簡単のため, 質量を
としておく ( が下記のように表せるため)
-
サンプリングしたい分布
について, 補助変数 を導入して, と拡張する. -
また
とし, とすると,
-
から,
-
となる
-
ここで, 提案分布を
とすると, Metropolis-Hastings→メトロポリス法となるので,-
を からサンプリング
-
- Leapfrog法で
から候補点 を取得 (ステップサイズ ・ステップ数 )
- Leapfrog法で
-
-
とすれば, 判定関数
は
-
となる. だが, そもそもハミルトニアンは系全体のエネルギーそのものなので時間変化せず, 常に
と は一致するので, 判定関数 は常に になる- めでたしめでたし
- (実際はLeapfrogの誤差の影響で棄却されることもある)
-
ここからはハイパラのお話
- Leapfrogではステップサイズ
・ステップ数 というパラメタが存在する が小さければ探索空間が小さく非効率だし, 大きすぎると棄却される- なので, 基本は
- ①
固定で 動かす - ②
固定で 動かす
- ①
- のどちらかだが, 後者は後者で計算コストが高すぎる
- したがって, ここらへんは慎重に選択する必要がある
- Leapfrogではステップサイズ
-
Leapfrog
- 一旦ここでLeapfrogのおさらいをする
- ハミルトニアンの正準方程式をLeapfrogで解こうとすると,
- 一つの式にまとめると
- ハミルトニアンの正準方程式をLeapfrogで解こうとすると,
Langevin Dynamics
- Langevin Dynamics (LD)
-
LDは先程のHMCの特殊例である. 具体的には
としたときのHMCである -
LDにおいて, あるモデルのパラメタ
に関して, 確率分布 からのサンプリングを考えてみる -
上のLeapfrogの式より
-
ここで, データ
について, であるとき, ベイズより
-
ただし,
は先程の説明通り からサンプリング -
なので, これはノイズを加えた勾配法と同じようになる
-
Stochastic Gradient Langevin Dynamics
- Stochastic Gradient Langevin Dynamics (SGLD)
- お待ちかねのSGLDだが, これは単純に上の式の第一項をサブサンプリングするだけ
- なので更新幅は
- これで, 棄却率がほぼ0 ∧ 計算量激減のMCMCが出来上がったことになる