JavaScriptを有効にしてください

Stochastic Gradient Langevin Dynamicsを理解する

 ·  ☕ 4 min read

はじめに

  • MCMCの一種
  • 目標: ある分布 π(x)からのサンプリングを行いたい
    1. Metropolis-Hastingsアルゴリズム (MH)
    2. Hamiltonian Monte Carlo (HMC)
    3. Langevin Dynamics (Metropolis-adjusted Langevin Algorithm)
    4. Stochastic Gradient Langevin Dynamics (SGLD)
  • の順に見ていくと理解しやすい

Metropolis-Hastings

  • Metropolis-Hastingsについては既知のもとする
    • 提案分布 q(z)を元に判定関数を用いて受容・棄却を行うMCMC
    • cf. GibbsSamplingとHM
    • 提案分布が対称, すなわち q(z|z)=q(z|z)ならば, 判定関数はただの min(1,π(z)π(z))となる
      • これを単にメトロポリス法と呼ぶ

Hamiltonian Monte Carlo

  • Hamiltonian Monte Carlo (HMC)
    • ここでハミルトニアンが登場する
      H:=H(q,p;t)=K(p)+U(q)

    • HMCのお気持ち

      • 解析力学に則り, ある系における座標と運動量の時間に関する軌道を元に, サンプリングを行う
      • 例えば, (z,p)があるとして, 一定時間が経ったときの終点 (z,p)が得られればサンプル取れるよね
      • このとき, 判定関数がハミルトニアンの差で表せるので嬉しい
        • ハミルトニアン自体は系全体のエネルギーそのものなので, エネルギー保存則が成り立つ.
        • ゆえにハミルトニアンの差分は本来0なので嬉しい.
    • 簡単のため, 質量を 1としておく (Kが下記のように表せるため)
      K(p)=12pIp

    • サンプリングしたい分布 π(z)π~(z)について, 補助変数 pを導入して, π(z,p):=π(z)=π(z)π(p)と拡張する.

    • また π(p)=N(p|0,I)とし, lnπ~(z)=U(z)とすると,
      π(p)=1(2π)k/2exp(pIp2)

    • から,
      π(z,p)=π(z)π(p)=exp(lnπ(z)+lnπ(p))exp(lnπ~(z)pIp2)=exp(lnπ~(z)U(p))=exp(K(p)U(p))=exp(H(z,p))

    • となる

    • ここで, 提案分布を N(0,I)とすると, Metropolis-Hastings→メトロポリス法となるので,

        1. pN(0,I)からサンプリング
        1. Leapfrog法(z,p)から候補点 (z,p)を取得 (ステップサイズ ϵ・ステップ数 L)
    • とすれば, 判定関数 A(z,p)
      A(z,p)=min(1,π(z,p)π(z,p))=exp(H(z,p)+H(z,p))

    • となる. だが, そもそもハミルトニアンは系全体のエネルギーそのものなので時間変化せず, 常に H(z,p)H(z,p)は一致するので, 判定関数 A(z,p)は常に 1になる

      • めでたしめでたし
      • (実際はLeapfrogの誤差の影響で棄却されることもある)
    • ここからはハイパラのお話

      • Leapfrogではステップサイズ ϵ・ステップ数 Lというパラメタが存在する
      • ϵが小さければ探索空間が小さく非効率だし, 大きすぎると棄却される
      • なので, 基本は
        • L固定で ϵ動かす
        • ϵ固定で L動かす
      • のどちらかだが, 後者は後者で計算コストが高すぎる
      • したがって, ここらへんは慎重に選択する必要がある

Leapfrog

  • 一旦ここでLeapfrogのおさらいをする
    • ハミルトニアンの正準方程式をLeapfrogで解こうとすると,
      pi(t+ϵ2)=pi(t)ϵ2dUdzizi(t+ϵ)=zi(t)+ϵpi(t+ϵ2)
    • 一つの式にまとめると
      zi(t+ϵ)=zi(t)ϵ22dUdzi+ϵpi(t)

Langevin Dynamics

  • Langevin Dynamics (LD)
    • LDは先程のHMCの特殊例である. 具体的には L=1としたときのHMCである

    • LDにおいて, あるモデルのパラメタ θに関して, 確率分布 π(θ)からのサンプリングを考えてみる

    • 上のLeapfrogの式より
      Δθ:=θt+1θt=ϵ22U+ϵpi(t)=ϵ22lnπ(θ)+ϵpi(t)(lnπ~(θ)=U(θ))

    • ここで, データ (X,Y)について, π(θ)π(θ|Y,X)であるとき, ベイズより
      Δθ=ϵ22lnπ(θ|Y,X)+ϵpt=ϵ22(lnπ(Y|θ,X)+lnπ(θ))+ϵpt=ϵ22(nlnπ(yn|θ,xn)+lnπ(θ))+ϵpt

    • ただし, ptは先程の説明通り N(0,I)からサンプリング

    • なので, これはノイズを加えた勾配法と同じようになる

Stochastic Gradient Langevin Dynamics

  • Stochastic Gradient Langevin Dynamics (SGLD)
    • お待ちかねのSGLDだが, これは単純に上の式の第一項をサブサンプリングするだけ
    • なので更新幅は
      Δθ=ϵ22(NMn=1Mlnπ(yn|θ,xn)+lnπ(θ))+ϵp
    • これで, 棄却率がほぼ0 ∧ 計算量激減のMCMCが出来上がったことになる
共有

YuWd (Yuiga Wada)
著者
YuWd (Yuiga Wada)
機械学習・競プロ・iOS・Web