JavaScriptを有効にしてください

Energy Based Model

 ·  ☕ 3 min read
  • Energy Based Model

  • EBMでは以下のように確率分布 p(x)を仮定し, Eθ(x)をエネルギー関数, Zθを分配関数と呼ぶ
    pθ(x)=exp(Eθ(x))Zθ

  • Zθはただの正規化係数で以下の通り.
    Zθ=xexp(Eθ(x))dx

  • EBMのお気持ち

    • Zθさえ度外視してしまえば, 正規化という確率分布の大原則から逃れられるため, Eθ(x)NNでどのようにでも近似してよいことになり嬉しい

    • でも Zθ無視できないよね

    • Zθを直接計算するのは困難なのでサンプリングしましょう

      • 方法1. MCMC
        • 制限ボルツマンマシン時代はGibbs SamplingのようなMCMCが主流であった
        • 高次元空間でのMCMCは非常に品質が悪く, 速度も遅いため, NNにより高次元なベクトルを扱う今日では単純なMCMCは扱われない
      • 方法2. Stochastic Gradient Langevin Dynamics
        • したがって近年ではMCMCにLangevin Dynamicsを組み込んだSGLDを使うことが多い
    • また, EBMでの最適化は単なる対数尤度最大化

      • 負の対数尤度 logpθ(x)の勾配を計算していくと

θlogexp(Eθ(x))Zθ=θEθ(xtrain)+θlogZθ=θEθ(xtrain)+1Zθθexp(Eθ(x))dx=θEθ(xtrain)exp(Eθ(x))ZθθEθ(x)dx=θEθ(xtrain)Esample[θEθ(xsample)]

  • 上のようになり, trainの勾配とsampleの勾配の差の方向に解を更新していけば良い

  • 後は勾配さえ計算できればよく, 第二項のサンプリングにMCMCの一種であるStochastic Gradient Langevin Dynamicsを使うだけ

  • EBMにおける最適化のイメージ

    • pθ(x)=exp(fθ(xtrain))Zθを最大化したい
    • ということは, fθ(xtrain)を無限にでかくすれば良い
    • だが, 周辺化された Zθは小さくなる方向に働くので, サンプル点 xtrain以外の点の値は小さくなる
    • つまり, trainデータの値が押し上げられ, sampleの値を押し下げられることになる (下図)

引用: https://deepgenerativemodels.github.io/assets/slides/cs236_lecture11.pdf

共有

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