###### tags: `generalization` `generative model` `energy-based model`
# Implicit Generation and Generalization Methods for Energy-Based Models
[Yilun Du](https://yilundu.github.io/)<sup>1,2</sup>, [Igor Mordatch](https://scholar.google.com/citations?user=Vzr1RukAAAAJ&hl=en)<sup>2</sup>
<sup>1</sup>MIT <sup>2</sup>Open AI
---
[[Paper](https://arxiv.org/abs/1903.08689)] [[Code](https://github.com/openai/ebm_code_release)] [[Page](https://sites.google.com/view/igebm)] [[Slide](https://nips.cc/media/Slides/nips/2019/westexhibitionhallc+b3(10-16-10)-10-16-30-15853-implicit_genera.pdf)]
---
NeurIPS 2019 (Spotlight)
NeurIPS 2018 Workshop on Bayesian Deep Learning
[続編](https://openreview.net/forum?id=BygZARVFDH) ICLR 2020 Reject :cry:
---
### :thinking_face: なぜEBMを使う?
>- **Implicit Generation**
> - Flexibility
> - One Object to Learn
> - Compositionalitly
> - Generic Initialization and Computation Time
>- **Intriguing Properties**
> - Robustness
> - Online Learning
### :thinking_face: なぜEBMが動くようになった?
>- Faster Sampling
> - Continuous gradient based sampling using Langevin Dynamics
> - Replay buffer of past samples (similar to persistent CD)
> --より速い収束が期待されるadaptive HMC
>
>- Stability improvements
> - Constrain Lipschitz constant of energy function (spectral norm)
> - Smoother activations (swish)
> - And others ...
#### 概要
![](https://i.imgur.com/AejTSB9.png)
#### 比較
![](https://i.imgur.com/Z51BIRg.png)
---
## :brain: Energy-based model (EBM) (cf. [LeCunの解説](http://yann.lecun.com/exdb/publis/pdf/lecun-06.pdf))
- おおまかにはボルツマンマシン(無向グラフ上の確率モデルであるマルコフ確率場)
データ: $\boldsymbol{x}$
エネルギー関数(パラメータ$\theta$をもつニューラルネットで表現): $E_{\theta}(\boldsymbol{x})\in \mathbb{R}$
ボルツマン分布: $p_{\theta}(\boldsymbol{x}) = \frac{\exp(-E_{\theta}(\boldsymbol{x}))}{Z(\theta)}$
分配関数: $Z(\theta) = \int\exp(-E_{\theta}(\boldsymbol{x}))d\boldsymbol{x}$
- 最尤推定を用いてパラメータ$\theta$を最適化したいが, 期待値計算はしんどいので, 変分近似, MCMC(例えば, ギブスサンプリングの改良版であるCD法 (cf. [CD法の解説 [Turner 2005]](http://www.gatsby.ucl.ac.uk/~turner/Notes/ContrastiveDivergence/CDv3.pdf)))による近似が導入されている
- 分布から画像等の高次元データサンプルを生成するには混交時間 (mixing time)は長くなる
- そこでランジュバン動力学 (Langevin Dynamics)に従ったサンプリング法を採用する
\begin{gather}
\tilde{\boldsymbol{x}}^k = \tilde{\boldsymbol{x}}^{k-1}-\frac{\lambda}{2} \nabla_\boldsymbol{x}E_{\theta}\left(\tilde{\boldsymbol{x}}^{k-1} \right) + \omega^k, \omega^k \sim \mathcal{N}(0,\lambda) \tag{1}\\
\tilde{\boldsymbol{x}}^K\sim q_{\theta}
\end{gather}
- この反復法(1)で得られる生成サンプル$\tilde{\boldsymbol{x}}$はある適当な分布$q_{\theta}$に従うが, $K\to\infty$, $\lambda\to0$ において $q_{\theta}\to p_{\theta}$ が示せる [[Welling and Teh, 2011](https://www.stats.ox.ac.uk/~teh/research/compstats/WelTeh2011a.pdf)]
- エネルギー関数で定義される分布からサンプル生成されるとしてよい
- 順伝播型ニューラルネットワークで陽に(explicitly)生成されるのに対してサンプルは **陰的に(implicitly)** 生成される
- 画像を扱う場合にはエネルギー関数はCNNで構成されることが想定されるが, その場合式(1)のエネルギー勾配$\nabla_{\boldsymbol{x}}E$は都合のいいことにdeconvolutionの形になっている
- 陽にデザイン/計算する要請をすることなく, 典型的な画像生成ネットワークと同じような構成になっている
- $E$ についての見方
1. データの従う分布を定義するもの
2. 式(1)による陰的生成器(implicit generator)を定義する
:memo: メモ: (1)式の方法の決定論的表現は$\boldsymbol{x}=\arg\min E(\boldsymbol{x})$であるが, これは陰関数への関連
---
### Maximum Likelihood Training
- データ分布$p_D$をモデル化するエネルギー関数$E$ によって定義される分布を得たい
- コスト関数としてデータに関する負の対数尤度を最小化する
\begin{gather}
\mathcal{L}_{ML}(\theta) = \mathbb{E}_{\boldsymbol{x}\sim p_D}\left[ -\log p_{\theta} (\boldsymbol{x}) \right] \\
-\log p_{\theta} (\boldsymbol{x}) = E_{\theta}(\boldsymbol{x})-\log Z (\theta)
\end{gather}
- この目的関数の微分は以下のようになる [[Turner 2005](http://www.gatsby.ucl.ac.uk/~turner/Notes/ContrastiveDivergence/CDv3.pdf)]
\begin{gather}
\nabla_{\theta}\mathcal{L}_{ML} = \mathbb{E}_{\boldsymbol{x}^+\sim p_D}\left[\nabla_{\theta}E_{\theta}(\boldsymbol{x}^+)\right] - \mathbb{E}_{\boldsymbol{x}^-\sim p_{\theta}}\left[\nabla_{\theta}E_{\theta}(\boldsymbol{x}^-)\right]
\end{gather}
- 直感的には, この勾配は正例データ$\boldsymbol{x}^+$のエネルギーを減らして負例データ$\boldsymbol{x}^-$のエネルギーを増やす
- 第二項目の期待値は$p_{\theta}$からサンプリングするが(1)式により生成される$q_{\theta}$を$p_{\theta}$の近似とする
\begin{gather}
\nabla_{\theta}\mathcal{L}_{ML} \approx \mathbb{E}_{\boldsymbol{x}^+\sim p_D}\left[\nabla_{\theta}E_{\theta}(\boldsymbol{x}^+)\right] - \mathbb{E}_{\boldsymbol{x}^-\sim q_{\theta}}\left[\nabla_{\theta}E_{\theta}(\boldsymbol{x}^-)\right] \tag{2}
\end{gather}
- これは**Wasserstein GAN** [[Arjovsky et al., 2017](https://arxiv.org/abs/1701.07875)]の目的関数の勾配に似ている
- 今回のモデルはgeneratorのモデルを陽に定義していない(MCMCで陰的に生成する)ため勾配は$q_{\theta}$を経由しない
- このgeneratorを定義しなくていいというのはこの論文の推しどころの一つで,GANと異なりgeneratorに関する目的関数が不要になる
- 勾配なしというのは尤度モデルの多様性とGANにおけるモード崩壊を制御する
- 式(2)の近似は十分な反復数(混交時間)の後にLangevin Dynamicsが$p$からサンプル生成するようになるとexactになる
---
### Sample Replay Buffer
- Persistent Contrastive Divergence (PCD) [[Tieleman, 2008](https://dl.acm.org/doi/abs/10.1145/1390156.1390290)] では以前の勾配計算に使用したサンプルを再利用することで通常のCD法より良好な結果が得られる場合が多いとされる
- 生成された$\tilde{\boldsymbol{x}}$を *sample replay buffer* $\mathcal{B}$ に格納しておいて,そのデータもしくは一様乱数をlangevin dynamics procedureの初期状態として使う
- 過去の生成サンプルを洗練し続けられる
- サンプリングステップ数$K$と生成サンプルの多様性を増やせる
- 95%で$\mathcal{B}$, それ以外は一様乱数
---
### Regularization and Algorithm
- 任意のエネルギー関数の微分値は大きく変化することがあり, ランジュバン動力学によるサンプリングを不安定にする
1. 各層のスペクトルノルムを制限することによりリプシッツ定数を制御するスペクトル正則化 [[Miyato et al., 2018](https://arxiv.org/abs/1802.05957)] を使う
2. 訓練時に(正例負例両方に対する)エネルギー関数の値自体に弱いL2正則化をかける
- そうしないと正例負例の違いが保たれて実際の値は不安定に...
- スペクトル正則化とL2正則化は分配関数の入力の定義域において可積分性を担保
- スペクトラル正則化は滑らかさを保証し, L2係数は正規化されていない分布の絶対値を拘束する
![](https://i.imgur.com/KZtPZco.jpg)
![](https://i.imgur.com/3ybCWbF.gif)
---
## 実験
### 画像
>#### MCMC samples from conditional ImageNet128x128 models
>![](https://i.imgur.com/OX9SLOk.jpg)
>#### Table of Inception and FID scores
>![](https://i.imgur.com/n5omzT0.png)
**Inception Score**: 生成画像の「良さ」を以下2つの観点から評価
- 画像識別器が識別しやすい
- 物体クラスのバリエーションが豊富
**Fréchet Inception Distance (FID)**:
- 実画像の分布と生成画像の分布間の距離をFréchet距離(Wasserstein-2距離)
#### モザイク除去 Impainting タスク
![](https://i.imgur.com/V4p9jmD.jpg)
### Cross Class Mapping
![](https://i.imgur.com/Gx53VXK.png)
![](https://i.imgur.com/wnQE6No.jpg)
### Robustness: Out-of-distribution (OOD) detection
- OOD検出はデータ多様体上では高い尤度を有して他の場所では低い尤度を有していてほしい
- 対数尤度の代理
- [生成モデルは知らざるを知らずと為すか? [Nalisnick et al., 2019]](https://arxiv.org/abs/1810.09136) ではVAE, PixelCNN, and Glow modelsがOOD画像に対して高い尤度を当てはめてしまい見分けることができなかった
- [[Hendrycks and Gimpel, 2016](https://arxiv.org/abs/1610.02136)]に従ってCIFAR-10テスト画像を他のOOD画像から区別したときの**AUROCスコア**を相対対数尤度を使って評価する
- OOD画像はSVHN, Textures [[Cimpoi et al., 2014](https://arxiv.org/abs/1411.6836)], モノクロ画像, 一様ノイズ, CIFAR-10画像同士の混ぜ合わせ画像
![](https://i.imgur.com/nDsAQzE.png)
#### Generalization
![](https://i.imgur.com/57wTMGX.png)
#### Relative Likelihoods
![](https://i.imgur.com/DWyovEW.png)
#### 考察
1. EBMにおける負例を使ったサンプリング近似(negative sampling)のプロセスが偽の最小解 (spurious minima)を排除することを助けているのかも
2. EBMは柔軟な構造である(潜在表現に制限を課していない)ので大域的なコンテキストを持てるのかも
- 自己回帰モデルは順番にモデル尤度をモデル化していくので大域的な一貫性を得られない
- flowモデルは連続的な変換を連続な接続した確率分布に対して行う必要があり切断されたモードをモデル化するのは難しいのでモード間には偽の密度を与えてしまっているかも
### Robust Classification
- EBMは敵対的摂動にロバストである
- $\epsilon>13$の$L_{\infty}$攻撃に対してSOTA $L_{\infty}$モデル [[Madry et al., 2017](https://arxiv.org/abs/1706.06083)] より優れていた
![](https://i.imgur.com/vdHBbnR.png)
- logitsを計算するのに各クラスに属する画像毎に負のエネルギーを計算する
- EBMはFine-tuningなしで49.6%
- projected gradient descent (PGD)を20ステップさらに10ステップサンプリングして最小の負のエネルギーをみることで分類する
- BaselineはWide ResNet18
### Continual Learning: Split MNIST
![](https://i.imgur.com/tPqoo6h.png)
[[Hsu at al, 2019](https://arxiv.org/abs/1810.12488)]
![](https://i.imgur.com/ylRl3VD.png)
### EBMは合成できる :exclamation:
#### Compositionality via Sum of EBMs
![](https://i.imgur.com/00lNpGA.png)
[[Hinton, 1999](https://www.cs.toronto.edu/~hinton/absps/icann-99.pdf)]
#### Compositionality via Sum of Energies
![](https://i.imgur.com/cn49uQQ.jpg)
### トラジェクトリ
- ロボットハンドのダイナミクスのトラジェクトリ予測の課題では順伝播型ニューラルネットでは平均的な予測に潰れ込んでしまうがEBMは長時間かつ安定したダイナミクスの生成に成功
![](https://i.imgur.com/leXzfUf.png)
- ニューラルネットは幅128の3層で構成
- 各層にはスペクトラル正則化を適用
- Fréchet距離
### EBMs for Trajectory Modeling and Control
![](https://i.imgur.com/mLsNPvZ.png)
![](https://i.imgur.com/rFsdP80.png)
### EBMs for Control
![](https://i.imgur.com/dLqMRRi.png)
Short-cut learning
https://arxiv.org/abs/2004.07780
https://iclr.cc/virtual_2020/speaker_7.html