RealNVPの論文を読んだので要約とメモ

**[Density estimation using Real NVP(Laurent Dinh, Jascha Sohl-Dickstein, Samy Bengio. 2016)](https://arxiv.org/abs/1605.08803)**を読んだので要約とメモ。筆者の理解と疑問を<font color="LightSteelBlue">青色</font>でメモしている。

一言で言うと、画像生成用に拡張したNICE。
カップリングレイヤがアフィンになり、内部で２種類のマスクとCNNを使用。評価はbits/dimensionでVAE,DRAWの変種と互角。PixelRNNには及ばない。NICEより生成画像がきれい。

先に[NICE: Non-linear Independent Components Estimation(Laurent Dinh, David Krueger, Yoshua Bengio. 2014)](https://arxiv.org/abs/1410.8516)を読んだほうが理解しやすい。

#本文
##概要
機械学習において確率的モデルの教師なし学習は中心的だがチャレンジングな問題である。特に、学習、サンプリング、推定、評価が容易なモデル設計することはこの問題を解く上で重要である。本論文では実数値非体積保存(**real-valued non-volume preserving (real NVP)**)変換と呼ぶ、強力な、安定的で可逆な、学習可能変換を用いてそのようなモデル<font color="LightSteelBlue">(学習等が容易な確率的モデル)</font>を拡張する。これは対数尤度を直接計算でき、サンプリング、潜在変数の推定が効率的に直接でき、潜在空間が解釈可能である。４つのデータセットを使って、サンプリングにより自然な画像をモデリングする能力、対数尤度の評価、潜在変数の操作を示す。


##1. イントロ
表現学習のドメインは教師あり学習の進歩によって非常に発達した。しかし教師なし学習は巨大なラベルなしデータを利用し、これらの進歩を、そうでないならば非効率または不可能な形式に拡張できるポテンシャルを持っている。<font color="LightSteelBlue">教師ありの進歩を使って教師なしも進歩できる</font>

教師なし学習の原理的な手法の一つに確率的生成モデリングがある。それらは新しいコンテンツを作る能力だけでなく、幅広い再構成の能力があり、その応用は画像修復[61,46,59]、ノイズ除去[3]、彩色[71]、超解像[9]などがある。

関心のあるデータは一般に高次元で構造化されており、このドメインのチャレンジはその複雑性を捉えるだけ強力で、なお訓練可能なモデルを作ることである。本論文では表現力が強く、かつ扱いやすい高次元データのモデリング手法である**real-valued non-volume preserving (real NVP) transformations**を導入してこの問題に取り組む。

本モデルは**効率的な直接の**推定、サンプリング、データ点の対数密度推定ができる。さらに、本アーキテクチャはモデルが抽出した階層構造の特徴から、**直接・効率的な**入力画像の再構成ができる。

##2. 関連研究
確率的生成モデルの多くの研究が対数尤度での訓練にフォーカスしている。

<font color="LightSteelBlue">[無向グラフモデル]</font>

* 最大対数尤度モデルの一種は**Restricted Boltzmann Machines [58]**や**Deep Boltzmann Machines [53]**といった、確率的無向グラフと呼ばれるものである。これらのモデルは、潜在変数での効率的な直接または近似の事後確率推定のために、彼ら自体の２部構造が持つ条件付き独立の性質を利用して訓練する。しかし、潜在変数上での、関連する周辺分布が計算できないために、評価、サンプリングで**Mean Field inference**や**Markov Chain Monte Carlo**のような近似を使わざるをえない。これらはそのような複雑なモデルでは収束時間が確定せず、相関の高いサンプルを生成する結果になる事が多い。<font color="LightSteelBlue">似たようなサンプルになる？</font>
さらに、これらの近似はモデルのパフォーマンスを妨げることもある[7]。

<font color="LightSteelBlue">[有向グラフモデル(VAE)]</font>

* これに対して有向グラフモデルは伝承サンプリングの観点から定義されており、概念的にも計算の簡単さでも魅力がある。しかし無向グラフモデルの持つ条件付き独立の構造が欠けており、潜在変数上の直接および近似事後確率推定が面倒になる[56]。近年の**stochastic variational inference[27]**と**amortized inference[13, 43, 35, 49]**の進歩により対数尤度の変分下限を最大化することでディープな有向グラフモデルの学習と近似推定が効率的になった[45]。特に、**variational autoencoder algorithm [35, 49]**はガウス分布の潜在変数zをサンプルxにマップする**生成ネットワーク**と、それに対応した、サンプルxを意味のある潜在空間zにマップする**近似推定ネットワーク**を**reparametrization trick [68]**を利用して同時に学習する。それらの近年のディープニューラルネットにおける**backpropagation [51, 39]**の進歩を利用した成功はスピーチ合成[12]から言語モデリング[8]までいくつかの応用に適用されている。しかし、推定処理における近似は高次元のディープな表現を学習する能力を制限しており、近似推定を改善する近年の研究の動機となっている[42, 48, 55, 63, 10, 59, 34]。

<font color="LightSteelBlue">[自己回帰モデル]</font>

* そのような近似は潜在変数を捨てれば全く回避できる。自己回帰モデル(**Autoregressive models[18, 6, 37, 20]**)は訓練の柔軟性を保持しながらこの戦略を実装できる。この種のアルゴリズムは、次元上での固定の順番によって確率論のチェインルールを使うことで、結合分布を条件付き分布に分解してモデリングできる。これにより対数尤度評価とサンプリングが簡単になる。<font color="LightSteelBlue">この辺よくわからない</font>この分野の最近の研究はstate-of-the-artな**画像生成モデル[61, 46]**や**言語モデル[32]**を学習するため、**リカレントネットワーク[51]**、とくに**LSTM[26]**の近年の進歩と**residual networks [25, 24]**を利用している。次元の順番は、任意なこともあるが、モデルの訓練で重要になりうる[66]。この種のモデルは時系列になるため、計算効率は制限される。たとえば、サンプリング処理が並列化できないため、スピーチ・音楽合成やリアルタイムレンダリングといった応用では面倒が起きる。加えて、自己回帰モデルには自然な潜在表現がなく、また半教師あり学習に利用可能かどうかは示されていない。

<font color="LightSteelBlue">[GAN]</font>

* 一方、**Generative Adversarial Networks (GANs) [21]**は最大尤度の原理を全く回避して微分可能な生成ネットワークを訓練できる。代わりに生成ネットワークには本物のデータとサンプルとを識別する**ディスクリミネータ**ネットワークが関係してくる。計算が難しい対数尤度ではなく、ディスクリミネータは生成ネットに敵対する形で訓練シグナルを送る。**訓練が成功したGAN[21, 15, 47]**はくっきりしたリアルなサンプルを生成できる[38]。しかし、**生成サンプルの多様性を測る尺度は現在のところ扱いづらい[62, 22, 30]**。加えて、**訓練が不安定[47]**であり、発散を防ぐために慎重なハイパラのチューニングが必要となる。

潜在変数$z \sim p_Z$をサンプル$x \sim p_X$にマップする生成ネットワークgを訓練するには、理論的にはGANのディスクリミネータやVAEの近似推定は必要ない。実際、gが全単射なら、次の変数変換の式を使って最大尤度で訓練できる。

```math
p_X(x) = p_Z(z) \left| det \bigl( \frac{\partial{g(z)}}{\partial{z^{T}}}  \bigr)\right|^{-1} \tag{1}
```
この式は**独立成分分析(ICA) [4, 28], gaussianization [14, 11],deep density models[5, 50, 17, 3]**などのいくつかの論文で議論されている。**nonlinear ICA solutions [29]**の証明によれば、自己回帰モデルは**最大尤度非線形ICA**の計算可能なインスタンスだとみなすことができ、残り(**residual**)は独立要素に対応する。<font color="LightSteelBlue">residualが何を意味するのかわからない。独立成分分析いずれ調べる。</font>
しかし、変数変換のナイーブな応用は計算コストが高く、条件が悪いため、この種のラージスケールモデルは一般的な使用はできない。

##3. モデルの定義
本論文では、高次元連続空間で最大尤度を使って高度に非線形なモデルを学習する問題に取り組む。対数尤度を最適化するため、変数変換を使って、連続データ上で対数尤度計算を可能にするもっと柔軟なアーキテクチャを導入する。本論文の先行研究である**[17]**<font color="LightSteelBlue">(Nice: non-linear independent components estimation)</font>に基づき、扱いやすい直接の密度評価と推定を可能にする強力な全単射な関数を定義する。さらに、導かれたコスト関数は固定形式の二乗誤差[38,47]のような再構成誤差に依存せず、結果としてサンプルがシャープになる。<font color="LightSteelBlue">二乗誤差を使うと画像がぼやけることが知られている。</font>
また、この柔軟性はマルチレベルの抽象化で非常に深いマルチスケール構造を定義するために**batch normalization [31]**と**residual networks [24, 25]**における最近の進歩を利用できるようする。

###3.1. 変数変換の式
観測されたデータ変数$x \in X$、潜在変数$z \in Z$上のシンプルな事前確率分布$p_Z$、全単射な$f:X \rightarrow Z$($g=f^{-1}$とする)があり、変数変換の式はXにおけるモデル分布を次のように定義する。

```math
\begin{align}
p_X(x)&=p_Z(f(x))\left| det \bigl( 
\frac{\partial{f(x)}}{\partial{x^T}} \bigr) \right| \tag{2} \\
log(p_X(x))&=log(p_Z(f(x))) + log \Bigl( \left| det \bigl( 
\frac{\partial{f(x)}}{\partial{x^T}} \bigr) \right| \Bigr) \tag{3}
\end{align}
```
ここで$\frac{\partial{f(x)}}{\partial{x^T}} $はxにおけるfのヤコビ行列。
<font color="LightSteelBlue">(3)は(2)の両辺にlogをつけたもの</font>

結果の分布からサンプルそのものは逆変換サンプリング[16]を使って生成できる。<font color="LightSteelBlue">(逆変換サンプリングは$f^{-1}$を使って潜在変数を逆変換してサンプルに戻すやつ。[16]は未読。</font>
サンプル$z\sim p_Z$は潜在空間から得られ、その逆の画像$x=f^{-1}(z)=g(z)$は元の空間でサンプルを生成する。点xにおける<font color="LightSteelBlue">確率</font>密度の計算はその像であるf(x)の<font color="LightSteelBlue">確率</font>密度を計算し、関連するヤコビ行列の行列式$\frac{\partial{f(x)}}{\partial{x^T}}$を掛けることで実現できる。<font color="LightSteelBlue">（2）式のことを言っている。</font>
**図1**も参照。直接的で効率的な推定は正確で高速なモデルの評価を可能にする。

><img src=https://qiita-image-store.s3.amazonaws.com/0/296108/ec1f3969-742e-7c79-7393-8f75e53aabf1.png>
**図1**:RealNVPはデータ分布$\hat{p_X}$と潜在分布$p_Z$(一般的にはガウス分布)の間の可逆で、安定なマッピングを学習する。２次元のトイデータセットで学習されたマッピングを示す。関数$f(x)$は左上のデータ分布からサンプルxを右上の潜在分布からの近似サンプルzへ写像する。これはデータを受け取って潜在状態の推定を直接行うことに相当する。逆関数$f^{-1}(z)$はサンプルzを右下の潜在分布から左下のデータ分布からの近似サンプルxへ写像する。これはモデルからサンプルを生成することに対応する。$f(x), f^{-1}(x)$両方について$X$と$Z$の空間のグリッド線の変換も示されている。

###3.2. カップリングレイヤ
定義域と終域が高次元な関数のヤコビ行列の計算と、巨大な行列の行列式計算は計算コストが非常に高い。この事実は全単射な関数という制約と合わせて、(2)式で任意の分布をモデリングするのを非現実的にする。

**[17]**で示したように、関数$f$を慎重に設計すると、非常に柔軟で扱いやすい全単射なモデルを学習できる。変換のヤコビ行列の行列式の計算はこの原理を使って効率よく訓練するのに重要なので、本論文では**三角行列の行列式はその対角要素の積として効率的に計算できる**というシンプルな事実を利用する。

本論文ではシンプルな全単射の系列をスタックすることで、柔軟で扱いやすい全単射な関数を作る。各シンプルな全単射において、入力ベクトルの一部は逆が計算しやすい関数を使って更新される。しかしそれは入力ベクトルの残りと複雑な依存関係にある。各シンプルな全単射を**アフィンカップリングレイヤ**と呼ぶ。D次元の入力xと、$d \lt D$があるとして、アフィンカップリングレイヤの出力yは次式。

```math
\begin{align}
y_{1:d}&=x_{1:d} \tag{4} \\
y_{d+1:D}&=x_{d+1:D} \odot exp(s(x_{1:d})) + t(x_{1:d}) \tag{5} \\
\end{align}
```
<font color="LightSteelBlue">入力ベクトルxの要素を[1:d]と[d+1:D]に分けて使っている</font>
ここで$s$と$t$はスケールと平行移動を表す$R^{d} \mapsto R^{D-d}$の関数であり、$\odot$は**アダマール積**または**要素ごとの積**である(**図２(a)**参照)。

><img src=https://qiita-image-store.s3.amazonaws.com/0/296108/6aaf2902-f5b6-911a-ec22-258f2fd3c692.png>
**図2**:順方向・逆方向伝播の計算グラフ。カップリングレイヤは入力ベクトルの一片である$x_1$に条件付けられた、スケーリング後に定数オフセットを加算するというシンプルで可逆な変換を、入力ベクトルのもう一つの部分$x_2$に対して適用する。性質がシンプルなので、この変換は簡単に逆を計算でき、行列式も簡単である。しかし、条件付きの性質があるので、関数sとtによってキャプチャされ、そうでなければ弱い関数が非常に増強される。<font color="LightSteelBlue">sとtがあるから、シンプルだが表現力が強い関数になった。</font>
順方向・逆方向操作の計算コストは等しい。

###3.3. 性質
この変換のヤコビ行列は

```math
\frac{\partial{y}}{\partial{x^T}}= 
\begin{bmatrix}
\mathbb{I}_d & 0 \\
\frac{\partial{y_{d+1:D}}}{\partial{x^T_{1:d}}} & diag(exp[s(x_{1:d})]) 
\end{bmatrix} \tag{6}
```
$diag(exp[s(x_{1:d})])$は対角要素がベクトル$exp[s(x_{1:d})]$に対応する対角行列である。このヤコビ行列が三角行列であるという事実により、その行列式は効率的に$exp \left[ \sum_j s(x_{1:d}) \right]_j$として計算できる。カップリングレイヤのヤコビ行列の行列式計算はsやtのヤコビ行列の計算を含まないので、これらは好きなだけ複雑でよい。本論文ではディープCNNを使う。sとtの隠れ層はその入力や出力よりも要素数が多い。

確率モデルを定義する観点で、カップリングレイヤのその他の面白い性質として、その可逆性がある。実際、逆方向の計算が順方向の伝播より複雑になることはなく(**図2(b)**参照)、

```math
\left\{
\begin{array}{ll}
y_{1:d} &= x_{1:d} \\
y_{d+1:D} &= x_{d+1:D} \odot exp(s(x_{1:d}))+ t(x_{1:d}) 
\end{array}
\right. \tag{7} \\
```

```math
\Leftrightarrow \left\{
\begin{array}{ll}
x_{1:d} &= y_{1:d} \\
x_{d+1:D} &= (y_{d+1:D}-t(y_{1:d})) \odot exp(-s(y_{1:d}))
\end{array}
\right. \tag{8} \\
```
<font color="LightSteelBlue">(7)->(8)は$exp(s)$の逆が$exp(-s)$であることを使う</font>
であり、このモデルではサンプリングが推定と同じくらい効率的であることを示している。カップリングレイヤの逆の計算はs,tの逆の計算を含まず、これらの関数は任意でよいことが確認できる。

###3.4. Masked convolution
任意の二値マスクbを使って分割が計算でき、yに関する関数形を使って次のように書ける。

```math
y=b \odot x +(1-b) \odot \bigl( x\odot exp(s(b\odot x)) + t(b\odot x) \bigr) \tag{9}
```
画像の局所的な相関構造を利用するために２つの分割を使用する。空間的なチェッカーボードパターンと、チャネルごとのマスキングである(**図3**参照)。
空間的チェッカーボードのマスクは空間的な座標の和が奇数なら１、そうでなければ０である。<font color="LightSteelBlue">x座標とy座標のインデックスの和が奇数の箇所は１。</font>
チャネルごとマスクbは<font color="LightSteelBlue">画像を</font>チャネル次元で半分に分け、最初の半分は1、後は0。
ここで示したモデルでは、$s(\cdot),t(\cdot)$ともにrectifiedな畳み込みネットワークである。
<img src=https://qiita-image-store.s3.amazonaws.com/0/296108/7300b8d4-ed95-699c-b7b7-eb2db98be25d.png>
**図3**:アフィンカップリングレイヤのマスキング手法。左は空間的チェッカーボードパターンマスク。右はチャネルごとマスク。絞り(**squeezing**)操作は4x4x1テンソル(左)を2x2x4テンソル(右)に縮める。絞り操作の前にチェッカーボードパターンはカップリングレイヤのために使用され、チャネルごとパターンはその後使用される。<font color="LightSteelBlue">黒が１，白が。squeezingってなんだ?処理のどこかにsqueezeが入っていて、マスクはその前後で２種類とも利用される(マスク$\neq$squeeze)ということかな</font>

###3.5. カップリングレイヤを結合する
カップリングレイヤは強力だが、その順方向変換はいくつかの要素を不変のままにする。この困難はカップリングレイヤをかわりばんこに合成することで克服できる。つまり一つのカップリングレイヤで変更されなかった要素は次のレイヤで変更されるようにする(**図4(a)**参照)。
結果の関数のヤコビ行列の行列式は次の事実から計算可能である。

```math
\begin{align}
\frac{\partial{(f_b \circ f_a)}}{\partial{x_a^T}}(x_a) &=\frac{\partial{f_a}}{\partial{x_a^T}}(x_a) \cdot \frac{\partial{f_b}}{\partial{x_a^T}}(x_b=f_a(x_a)) \tag{10}\\

det(A \cdot B)&=det(A)det(B) \tag{11}
\end{align}
```
<font color="LightSteelBlue">(10)がわからない。$x_b$って何</font>

同様に、逆も簡単に計算できる。

```math
(f_b \circ f_a)^{-1} = f_a^{-1} \circ f_b^{-1} \tag{12}
```
><img src=https://qiita-image-store.s3.amazonaws.com/0/296108/fca0837e-7cde-f6a2-12b2-5a33a1f52e07.png>
**図4**:アフィンカップリングレイヤの合成方法
(a)かわりばんこのパターンにより、一つの変換では不変だったユニットが次で修正される。
(b)変数を除外する。各ステップで、変数の半分は直接ガウス分布としてモデリングされる。一方でもう半分は更に変換される。

###3.6. マルチスケールアーキテクチャ
**squeezing**操作を使ってマルチスケールアーキテクチャを実装する。この操作は各チャネルごとに、画像を2x2xcの部分正方形に分割し、その後それらを1x1x4cの部分正方形にreshapeする。**squeezing**はs x s x cのテンソルを$\frac{s}{2} \times \frac{s}{2} \times 4c$ のテンソルに変換する(**図3**参照)。

各スケールで、いくつかの操作を組み合わせて系列にする。最初に**３つのカップリングレイヤとチェッカーボードマスクを交互に適用**する。次に**squeezing**する。最後にまた**３つのカップリングレイヤとチャネルごとのマスキングを交互に適用**する。チャネルごとのマスキングは結果の分割が前のチェッカーボードマスクと重複しないように選ばれる。<font color="LightSteelBlue">チェッカーボードだと混ざらないのだろうか。マスクの目的は何？</font>
最後のスケールでは、４つのカップリングレイヤとチェッカーボードマスクだけを交互に適用する。

D次元のベクトルをすべてのカップリングレイヤを通して伝播させるのは、計算コスト・メモリコストにおいても、訓練が必要なパラメータ数においても厄介である。そこで[57]の設計に従い、一定間隔で次元の半分を除外(**factor out**)する((14)式を見よ）。<font color="LightSteelBlue">(14)式から読みづらいが、左辺の(z,h)のうちzは除外することを言っている。</font>この操作は再帰的に定義できる(**図4(b)**参照)。

```math
\begin{align}
h^{(0)}&=x \tag{13} \\ 
(z^{(i+1)}, h^{(i+1)}) &=f^{(i+1)}(h^{(i)}) \tag{14} \\
z^{L} &= f^{(L)}(h^{(L-1)}) \tag{15} \\
z&=(z^{(1)},...,z^{(L)}) \tag{16}
\end{align}
```
実験では、$i \leq L$についてこの操作を使用した。上記のカップリング-**squeeze**-カップリングの操作は$f^{(i)}$を計算するときにレイヤごとに実行される((14)式)。<font color="LightSteelBlue">($f^{(i)}$の内部にカップリング〜が入っているという意味。)</font>各レイヤで、空間解像度が減少するごとに、sとtの隠れ層の特徴数が２倍になる。<font color="LightSteelBlue">s,tはCNNだから、チャネル方向に２倍にすることを言ってる。</font>異なるスケールで除外された全ての変数は最後の変換の出力を得るために結合される((16)式)。

結果として、モデルは除外されるユニットを、より細かいスケール(前のレイヤ)でガウス分布化(**Gaussianize**)する必要がある。粗いスケール(後のレイヤ)で除外されるより前に。<font color="LightSteelBlue">一般には粗いほうが前になる気がするが、スケールが細かい=低レベルな表現を見ている、という意味で細かいものが前と書いてあるんじゃないか。
図4(b)を見ると、次のレイヤでｚになって除外されるユニットを、今のレイヤにおいて(今はまだhだが)gaussianizeするという意味だろう</font>
これはより局所的で、精選された特徴に対応する、中間レベルの表現の定義になる[53,49]。付録D参照。

さらに、前方のレイヤで**Gaussianizing**とユニットの除外を行うことは誤差関数をネットワーク中に分散するという実践的なメリットがあり、中間分類器を使って中間レイヤをガイドする[40]ことと似た哲学に従っている。さらにモデルの計算量とメモリ使用を大きく減らすこともでき、より大きいモデルを訓練できる。

###3.7. Batch normalization
訓練シグナルの伝播を更に改善するため、**deep residual networks [24, 25], batch normalization [31], weight normalization [2, 54]**をsとtで使う。付録Eで説明するが、最近のミニバッチの移動平均に基づく新しいbatch normalizationの変種を使用する。これは非常に小さいミニバッチで訓練すると、よりロバストになる。

batch normalizationをカップリングレイヤ全体の出力にも適用する。batch normalizationの効果は、各次元における線形のリスケーリングとして動作するので、ヤコビ行列の計算にも容易に取り込まれる。すなわち、推定されたバッチ統計量$\tilde{\mu}$と$\tilde{\sigma}^2$があって、リスケーリング関数

```math
x \mapsto \frac{x-\tilde{\mu}}{\sqrt{\tilde{\sigma}^2+\epsilon}} \tag{17}
```
はヤコビ行列の行列式

```math
\bigl(\prod_i (\tilde{\sigma_i}^2+\epsilon) \bigr)^{-\frac{1}{2}} \tag{18}
```
を持つ。
このbatch normalizationの形式は深層強化学習の**reward normalization[44,65]**に似たものである。

##4. 実験
###4.1. 手順
(2)式のアルゴリズムは制限のない空間で分布を学習する方法を示している。一般的にはデータは大きさが限られている。例えば画像のピクセルは推奨される**jittering procedure[64,62]**<font color="LightSteelBlue">(?)</font>をの適用後、$[0,255]^{D}$の範囲に収まる。境界値の影響をへらすために、代わりにロジット（**logit**）($\alpha + (1-\alpha)\odot \frac{x}{256}$)の密度をモデリングする。$\alpha$はここでは0.5を使用した。対数尤度と**bits per dimension**を計算するときはこの変換を考慮にいれた。**CIFAR-10, CelebA, LSUN**は訓練中に水平フリップでデータ拡張した。

モデルは４つの自然画像データセットで訓練した。**CIFAR-10 [36], Imagenet [52], Large-scale Scene Understanding (LSUN) [70], CelebFaces Attributes (CelebA) [41]**である。具体的には、**Imagenet**は32x32と64x64のダウンサンプル版[46]で訓練した。**LSUN**は**bedroom, tower, church outdoor**のカテゴリで訓練した。**LSUN**の手順は[47]同様で、短い辺が96pxになるように画像をダウンサンプルし、64x64のランダムクロップを適用した。**CelebA**では[38]と同じ手順で、ほぼ中央の148x148のクロップを取り、それを64x64にリサイズした。

3.6節で説明したマルチスケールアーキテクチャを使用する。カップリングレイヤで、[46]で提案されたようにReLU活性化関数とスキップコネクションありのディープ畳み込みresidualネットワークを使用する。スケーリング関数sを計算するため、**hyperbolic tangent**関数を学習されたスケールに掛けて使用する。一方、平行移動関数tはaffine outputを持つ。<font color="LightSteelBlue">(?)</font>マルチスケールアーキテクチャは最後の入力が4x4xcテンソルになるまで再帰的に繰り返される。32x32の画像データセットについては、４個のresidual blockを使い、最初のカップリングレイヤについては隠れフィーチャマップが32個、チェッカーボードマスクを使用した。64x64画像ではresidual blockは2個だけ使用した。バッチサイズは64を使用。CIFAR-10は８個のresidual block, フィーチャマップは64, ダウンスケールは１回のみ。デフォルトパラメータの**ADAM[33]**で最適化し、$5\cdot10^{-5}$の重みスケールパラメータで$L_2$正則化を使用した。

事前分布$p_Z$を等方性単位ノルムガウス分布(**isotropic unit norm Gaussian**)に設定した。しかし自己回帰モデルや、(目的関数に多少変更を加えた）VAEのように、訓練中に学習される分布を含めて$p_Z$にはどんな分布でも使用できる。

###4.2. 結果
**bits per dimension**の値を表1に示した。ベースラインの**Pixel RNN [46]**より優れているとは言えないが、他の生成モデルとは互角である。パラメータ数の増加につれて性能が上がっていることがわかるため、より大きいモデルでは更に性能が上がると予想される。CelebAとLSUNでは、バリデーションセットの**bits per dimension**は訓練中いたるところで減少しており、少し過学習があるとみられる。<font color="LightSteelBlue">bits per dimension</font>

><img src=https://qiita-image-store.s3.amazonaws.com/0/296108/ce533815-13a1-ed2f-f836-fd6fe33949d1.png>
**表1**: **CIFAR-10, Imagenet, LSUN, CelebA**の**Bits/dim**の結果。CIFAR-10はテスト、それ以外はバリデーション(括弧内は訓練での結果)。

比較のため、**図５**にモデルが生成したサンプルとデータセットからのサンプルを示す。[62, 22]が述べているように、最大尤度はキャパシティが限られているセッティングでは、クオリティよりも多様性に価値を置く基準である。結果として、本モデルはたまに全然ありそうになりサンプルを出力しており、特にCelebAではよく分かる。VAEとは対照的に、本モデルで生成されたサンプルは**全体的に一貫しているだけでなくくっきりしている。**本論文の想定は、これらの<font color="LightSteelBlue">VAEのような</font>モデルとは対照的に**realNVP**は頻度が多い要素より少ない要素を捉えることを推奨させる$L_2$ノルムのような固定形式の再構成誤差に依存しないというものであった。自己回帰モデルとは異なり、本モデルのサンプリングは入力の次元で並列化できるので非常に効率的に行われる。ImagenetとLSUNでは、背景・前景の概念をよく捉えており、明るさや、反射と影に関して一貫した光源方向といったライティングの作用も捉えているようである。

><img src=https://qiita-image-store.s3.amazonaws.com/0/296108/d7f9e092-e078-2c0e-a83f-5352c0dc29c5.png>
**図5**: 左の列はデータセットのサンプル。右の列はそのデータセットで訓練されたモデルのからのサンプル。この図にあるデータセットは次の順。CIFAR-10, Imagenet (32 × 32), Imagenet (64 × 64), CelebA, LSUN (bedroom)

また、潜在変数のなめらかな一貫した意味づけについても示す。本論文では潜在空間で、4つのバリデーションサンプル$z_{(1)},z_{(2)},z_{(3)},z_{(4)}$に関して多様体を定義し、２つのパラメータ$\phi$および$\phi'$について次のようにパラメータ表示した。

```math
z= cos(\phi)(cos(\phi')z_{(1)}+ sin(\phi')z_{(2)}) +sin(\phi)(cos(\phi')z_{(3)} + sin(\phi')z_{(4)}) \tag{19}
```
<font color="LightSteelBlue">右辺の第１項目がz1とz2、２項目がz3とz4の間の補間になっている。さらに、第１項目と２項目自体が別のパラメータ$\phi$によって補間される。</font>
結果の多様体は$g(z)$を計算してデータ空間に戻した。結果は**図６**。モデルはピクセル空間の補完がうまくいくような意味の概念を持って潜在空間を構成しているようである。さらなる可視化は付録。潜在空間が意味的に一貫した補完ができることをテストするために、CelebAでクラス条件付きモデルを訓練し、学習された表現がクラスラベルに渡って意味的に一貫していることがわかった(付録F)。

##5. 議論と結論
本論文では、直接の対数尤度評価、推定、サンプリングを可能にする、ヤコビ行列の行列式が扱いやすい可逆な関数を定義した。この種の生成モデルの性能がサンプルクオリティと対数尤度両面で競争力があることを示した。変換の関数形には例えば**dilated convolutions [69]**と**residual networksの構造[60]**における最近の進歩を利用してさらなる改善の余地がある。

本論文は自己回帰モデル、VAE、GANの間のギャップを橋渡しする技術を示した。これは自己回帰モデルのように、訓練において扱いやすい直接の対数尤度評価を可能にし、また、VAEの生成モデルに似たもっと柔軟な関数形を可能にする。これはモデルの分布から高速な直接のサンプリングを可能にする。VAEとは異なり、またGANのように、本技術は固定形式の再構成誤差を必要とせず、高レベルの特徴に関してコストを定義し、シャープな画像を生成する。
最後に、VAE・GAN両方と異なり、本技術は入力空間と同じだけ高次元の意味のある潜在空間を学習できる。このことはアルゴリズムを特に半教師あり学習に適したものにする可能性がある。これについては更に研究したい。

出力が構造化されたアルゴリズムを作るために、**RealNVP**生成モデルは追加の変数(例えばクラスラベル)で条件付けることもできる。それ以上に、可逆な変換は確率分布モジュールとして扱うことができるので、自己回帰モデルやVAEなど他の確率モデルを改善するためにも使用できる。VAEについては、この変換は柔軟な再構成誤差[38]と柔軟な確率的推定分布(**stochastic inference distribution**)[48]両方に使用できる。本論文で示したように、確率モデルは一般に**batch normalization**で恩恵を受ける。

強力な訓練可能な可逆関数の定義は生成的教師なし学習以外のドメインでも有用である。例えば、強化学習では、可逆関数は**連続Qlearning [23]**で**argmax**操作が扱いやすいように関数を拡張したり、また局所線形ガウス近似(**local linear Gaussian approximations [67]**)がより適切な表現を見つける<font color="LightSteelBlue">(?)</font>等に役立つ。


## References

* [1] Martın Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S
Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, et al. Tensorflow: Large-scale machine learning on
heterogeneous distributed systems. arXiv preprint arXiv:1603.04467, 2016.
* [2] Vijay Badrinarayanan, Bamdev Mishra, and Roberto Cipolla. Understanding symmetries in deep networks.
arXiv preprint arXiv:1511.01029, 2015.
* [3] Johannes Ballé, Valero Laparra, and Eero P Simoncelli. Density modeling of images using a generalized
normalization transformation. arXiv preprint arXiv:1511.06281, 2015.
* [4] Anthony J Bell and Terrence J Sejnowski. An information-maximization approach to blind separation and
blind deconvolution. Neural computation, 7(6):1129–1159, 1995.
* [5] Yoshua Bengio. Artificial neural networks and their application to sequence recognition. 1991.
* [6] Yoshua Bengio and Samy Bengio. Modeling high-dimensional discrete data with multi-layer neural
networks. In NIPS, volume 99, pages 400–406, 1999.
* [7] Mathias Berglund and Tapani Raiko. Stochastic gradient estimate variance in contrastive divergence and
persistent contrastive divergence. arXiv preprint arXiv:1312.6002, 2013.
* [8] Samuel R Bowman, Luke Vilnis, Oriol Vinyals, Andrew M Dai, Rafal Jozefowicz, and Samy Bengio.
Generating sentences from a continuous space. arXiv preprint arXiv:1511.06349, 2015.
* [9] Joan Bruna, Pablo Sprechmann, and Yann LeCun. Super-resolution with deep convolutional sufficient
statistics. arXiv preprint arXiv:1511.05666, 2015.
* [10] Yuri Burda, Roger Grosse, and Ruslan Salakhutdinov. Importance weighted autoencoders. arXiv preprint
arXiv:1509.00519, 2015.
* [11] Scott Shaobing Chen and Ramesh A Gopinath. Gaussianization. In Advances in Neural Information
Processing Systems, 2000.
* [12] Junyoung Chung, Kyle Kastner, Laurent Dinh, Kratarth Goel, Aaron C Courville, and Yoshua Bengio. A
recurrent latent variable model for sequential data. In Advances in neural information processing systems,
pages 2962–2970, 2015.
* [13] Peter Dayan, Geoffrey E Hinton, Radford M Neal, and Richard S Zemel. The helmholtz machine. Neural
computation, 7(5):889–904, 1995.
* [14] Gustavo Deco and Wilfried Brauer. Higher order statistical decorrelation without information loss. In
G. Tesauro, D. S. Touretzky, and T. K. Leen, editors, Advances in Neural Information Processing Systems
7, pages 247–254. MIT Press, 1995.
* [15] Emily L. Denton, Soumith Chintala, Arthur Szlam, and Rob Fergus. Deep generative image models using
a laplacian pyramid of adversarial networks. In Advances in Neural Information Processing Systems 28:
10
Published as a conference paper at ICLR 2017
Annual Conference on Neural Information Processing Systems 2015, December 7-12, 2015, Montreal,
Quebec, Canada, pages 1486–1494, 2015.
* [16] Luc Devroye. Sample-based non-uniform random variate generation. In Proceedings of the 18th conference
on Winter simulation, pages 260–265. ACM, 1986.
* [17] Laurent Dinh, David Krueger, and Yoshua Bengio. Nice: non-linear independent components estimation.
arXiv preprint arXiv:1410.8516, 2014.
* [18] Brendan J Frey. Graphical models for machine learning and digital communication. MIT press, 1998.
* [19] Leon A. Gatys, Alexander S. Ecker, and Matthias Bethge. Texture synthesis using convolutional neural
networks. In Advances in Neural Information Processing Systems 28: Annual Conference on Neural
Information Processing Systems 2015, December 7-12, 2015, Montreal, Quebec, Canada, pages 262–270,
2015.
* [20] Mathieu Ger
Published as a conference paper at ICLR 2017
* [46] Aaron van den Oord, Nal Kalchbrenner, and Koray Kavukcuoglu. Pixel recurrent neural networks. arXiv
preprint arXiv:1601.06759, 2016.
* [47] Alec Radford, Luke Metz, and Soumith Chintala. Unsupervised representation learning with deep
convolutional generative adversarial networks. CoRR, abs/1511.06434, 2015.
* [48] Danilo Jimenez Rezende and Shakir Mohamed. Variational inference with normalizing flows. arXiv
preprint arXiv:1505.05770, 2015.
* [49] Danilo Jimenez Rezende, Shakir Mohamed, and Daan Wierstra. Stochastic backpropagation and approximate inference in deep generative models. arXiv preprint arXiv:1401.4082, 2014.
* [50] Oren Rippel and Ryan Prescott Adams. High-dimensional probability estimation with deep density models.
arXiv preprint arXiv:1302.5125, 2013.
* [51] David E Rumelhart, Geoffrey E Hinton, and Ronald J Williams. Learning representations by backpropagating errors. Cognitive modeling, 5(3):1, 1988.
* [52] Olga Russakovsky, Jia Deng, Hao Su, Jonathan Krause, Sanjeev Satheesh, Sean Ma, Zhiheng Huang,
Andrej Karpathy, Aditya Khosla, Michael Bernstein, et al. Imagenet large scale visual recognition challenge.
International Journal of Computer Vision, 115(3):211–252, 2015.
* [53] Ruslan Salakhutdinov and Geoffrey E Hinton. Deep boltzmann machines. In International conference on
artificial intelligence and statistics, pages 448–455, 2009.
* [54] Tim Salimans and Diederik P Kingma. Weight normalization: A simple reparameterization to accelerate
training of deep neural networks. arXiv preprint arXiv:1602.07868, 2016.
* [55] Tim Salimans, Diederik P Kingma, and Max Welling. Markov chain monte carlo and variational inference:
Bridging the gap. arXiv preprint arXiv:1410.6460, 2014.
* [56] Lawrence K Saul, Tommi Jaakkola, and Michael I Jordan. Mean field theory for sigmoid belief networks.
Journal of artificial intelligence research, 4(1):61–76, 1996.
* [57] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.
* [58] Paul Smolensky. Information processing in dynamical systems: Foundations of harmony theory. Technical
report, DTIC Document, 1986.
* [59] Jascha Sohl-Dickstein, Eric A. Weiss, Niru Maheswaranathan, and Surya Ganguli. Deep unsupervised
learning using nonequilibrium thermodynamics. In Proceedings of the 32nd International Conference on
Machine Learning, ICML 2015, Lille, France, 6-11 July 2015, pages 2256–2265, 2015.
* [60] Sasha Targ, Diogo Almeida, and Kevin Lyman. Resnet in resnet: Generalizing residual architectures.
CoRR, abs/1603.08029, 2016.
* [61] Lucas Theis and Matthias Bethge. Generative image modeling using spatial lstms. In Advances in Neural
Information Processing Systems, pages 1918–1926, 2015.
* [62] Lucas Theis, Aäron Van Den Oord, and Matthias Bethge. A note on the evaluation of generative models.
CoRR, abs/1511.01844, 2015.
* [63] Dustin Tran, Rajesh Ranganath, and David M Blei. Variational gaussian process. arXiv preprint
arXiv:1511.06499, 2015.
* [64] Benigno Uria, Iain Murray, and Hugo Larochelle. Rnade: The real-valued neural autoregressive densityestimator. In Advances in Neural Information Processing Systems, pages 2175–2183, 2013.
* [65] Hado van Hasselt, Arthur Guez, Matteo Hessel, and David Silver. Learning functions across many orders
of magnitudes. arXiv preprint arXiv:1602.07714, 2016.
* [66] Oriol Vinyals, Samy Bengio, and Manjunath Kudlur. Order matters: Sequence to sequence for sets. arXiv
preprint arXiv:1511.06391, 2015.
* [67] Manuel Watter, Jost Springenberg, Joschka Boedecker, and Martin Riedmiller. Embed to control: A locally
linear latent dynamics model for control from raw images. In Advances in Neural Information Processing
Systems, pages 2728–2736, 2015.
* [68] Ronald J Williams. Simple statistical gradient-following algorithms for connectionist reinforcement
learning. Machine learning, 8(3-4):229–256, 1992.
* [69] Fisher Yu and Vladlen Koltun. Multi-scale context aggregation by dilated convolutions. arXiv preprint
arXiv:1511.07122, 2015.
* [70] Fisher Yu, Yinda Zhang, Shuran Song, Ari Seff, and Jianxiong Xiao. Construction of a large-scale image
dataset using deep learning with humans in the loop. arXiv preprint arXiv:1506.03365, 2015.
* [71] Richard Zhang, Phillip Isola, and Alexei A Efros. Colorful image colorization. arXiv preprint
arXiv:1603.08511, 2016

#この記事のまとめ

* NICE同様、対数尤度の直接最適化でデータをモデリングする可逆な関数を設計した
* NICEでは加法的カップリングレイヤだったが、２種類(s,t)のCNNからなるアフィンカップリングレイヤに変更した
* 画像生成の性能自体はNICEより進化したが、それほどではない
* CNNにマスクが導入されているが、これの目的がよくわからない

##展望

* 評価指標であるbits/dimensionを理解したい。