-
Energy Based Model
- 生成モデルによく用いられる
- 拡散モデルとも関係が深い
- 分類回帰問題についてはYour classifier is secretly an energy based model and you should treat it like oneを参照
- GANやVAE同様, データ
は何らかの高次元確率分布 からサンプリングされたものと仮定する
- 生成モデルによく用いられる
-
EBMでは以下のように確率分布
を仮定し, をエネルギー関数, を分配関数と呼ぶ
-
はただの正規化係数で以下の通り.
-
EBMのお気持ち
-
さえ度外視してしまえば, 正規化という確率分布の大原則から逃れられるため, をNNでどのようにでも近似してよいことになり嬉しい -
でも
無視できないよね -
→
を直接計算するのは困難なのでサンプリングしましょう- 方法1. MCMC
- 制限ボルツマンマシン時代はGibbs SamplingのようなMCMCが主流であった
- 高次元空間でのMCMCは非常に品質が悪く, 速度も遅いため, NNにより高次元なベクトルを扱う今日では単純なMCMCは扱われない
- 方法2. Stochastic Gradient Langevin Dynamics
- したがって近年ではMCMCにLangevin Dynamicsを組み込んだSGLDを使うことが多い
- 方法1. MCMC
-
また, EBMでの最適化は単なる対数尤度最大化
- 負の対数尤度
の勾配を計算していくと
- 負の対数尤度
-
-
上のようになり, trainの勾配とsampleの勾配の差の方向に解を更新していけば良い
-
後は勾配さえ計算できればよく, 第二項のサンプリングにMCMCの一種であるStochastic Gradient Langevin Dynamicsを使うだけ
-
EBMにおける最適化のイメージ
を最大化したい- ということは,
を無限にでかくすれば良い - だが, 周辺化された
は小さくなる方向に働くので, サンプル点 以外の点の値は小さくなる - つまり, trainデータの値が押し上げられ, sampleの値を押し下げられることになる (下図)
引用: https://deepgenerativemodels.github.io/assets/slides/cs236_lecture11.pdf
- VAEとの違い
- VAEは確率分布を直接最適化しているわけではなく, ELBOを最適化している
- イェンセンの不等式で出てくる例のアレ
- cf. Prototypical Contrastive Learning of Unsupervised Representations
- VAEは確率分布を直接最適化しているわけではなく, ELBOを最適化している